csiborgtools/notebooks/MAH/mah.ipynb
Richard Stiskalek ee222cd010
Fix overlap runs (#125)
* Update nb

* Update script

* Update script

* Rename

* Update script

* Update script

* Remove warning

* Ignore minors when extracting MAH

* Fix paths bug

* Move notebooks

* Move files

* Rename and delete things

* Rename file

* Move file

* Rename things

* Remove old print statement

* Add basic MAH plot

* Add random MAH path

* Output snapshot numbers

* Add MAH random extraction

* Fix redshift bug

* Edit script

* Add extracting random MAH

* Little updates

* Add CB2 redshift

* Add some caching

* Add diagnostic plots

* Add caching

* Minor updates

* Update nb

* Update notebook

* Update script

* Add Sorce randoms

* Add CB2 varysmall

* Update nb

* Update nb

* Update nb

* Use catalogue HMF

* Move definition of radec2galactic

* Update nb

* Update import

* Update import

* Add galatic coords to catalogues

* Update nb
2024-04-08 11:23:21 +02:00

390 KiB

In [1]:
import sys
from os.path import join
import numpy as np
import matplotlib.pyplot as plt
from numba import jit
from tqdm import tqdm, trange
import joblib
sys.path.append("../")
import csiborgtools

%matplotlib widget
%load_ext autoreload
%autoreload 2
../csiborgtools/field/__init__.py:20: UserWarning: MAS_library not found, `DensityField` will not be available
  warn("MAS_library not found, `DensityField` will not be available", UserWarning)  # noqa
In [2]:
srcdir = "/cosma8/data/dp016/dc-stis1/csiborg_new"
dumpdir = "/cosma8/data/dp016/dc-stis1/csiborg_dump"
paths = csiborgtools.read.CSiBORGPaths(srcdir=srcdir, dumpdir=dumpdir)


reader = csiborgtools.read.ParticleReader(paths)
In [3]:
part = reader.read_particle(1, 7444, ["x", "y", "z", "M", "ID"], verbose=True)
Reading in output `00001` with ncpu = `324`.
Opened 324 particle files.
100%|██████████| 324/324 [03:57<00:00,  1.36it/s]
In [4]:
/cosma8/data/dp016/dc-stis1/csiborg_new/ramses_out_7444_new/output_00001/info_00001.txt
ls: cannot access /cosma8/data/dp016/dc-stis1/csiborg_new/ramsess_out_7444/outputs_00001/: No such file or directory
In [9]:
!cat /cosma8/data/dp016/dc-stis1/csiborg_new/ramses_out_7444/output_00001/info_00001.txt
cat: /cosma8/data/dp016/dc-stis1/csiborg_new/ramses_out_7444/output_00001/info_00001.txt: No such file or directory
In [8]:
!cat /cosma8/data/dp016/dc-stis1/csiborg_new/ramses_out_7444_new/output_00001/info_00001.txt
ncpu        =        324
ndim        =          3
levelmin    =          8
levelmax    =         19
ngridmax    =    2800000
nstep_coarse=          0

boxlen      =  0.100000000000000E+01
time        = -0.260788354371079E+02
aexp        =  0.142857000000000E-01
H0          =  0.705000000000000E+02
omega_m     =  0.307000011205673E+00
omega_l     =  0.693000018596649E+00
omega_k     = -0.298023223876953E-07
omega_b     =  0.000000000000000E+00
unit_l      =  0.423740962969913E+26
unit_d      =  0.983942902810118E-24
unit_t      =  0.893232429772148E+14

ordering type=hilbert                                                                         
   DOMAIN   ind_min                 ind_max
       1   0.000000000000000E+00   0.890921902481080E+17
       2   0.890921902481080E+17   0.903741664479150E+17
       3   0.903741664479150E+17   0.905655754235576E+17
       4   0.905655754235576E+17   0.907569842649825E+17
       5   0.907569842649825E+17   0.910375727335997E+17
       6   0.910375727335997E+17   0.916149055929713E+17
       7   0.916149055929713E+17   0.918096761858294E+17
       8   0.918096761858294E+17   0.920010850272543E+17
       9   0.920010850272543E+17   0.942688305781146E+17
      10   0.942688305781146E+17   0.945672973849723E+17
      11   0.945672973849723E+17   0.947587062263972E+17
      12   0.947587062263972E+17   0.949501751973642E+17
      13   0.949501751973642E+17   0.955129510703923E+17
      14   0.955129510703923E+17   0.958726141818962E+17
      15   0.958726141818962E+17   0.963097707172332E+17
      16   0.963097707172332E+17   0.965012398224179E+17
      17   0.965012398224179E+17   0.966926486638428E+17
      18   0.966926486638428E+17   0.968840576394854E+17
      19   0.968840576394854E+17   0.970754664809103E+17
      20   0.970754664809103E+17   0.972668753223352E+17
      21   0.972668753223352E+17   0.974582842979779E+17
      22   0.974582842979779E+17   0.976496931394028E+17
      23   0.976496931394028E+17   0.978411019808276E+17
      24   0.978411019808276E+17   0.980325109564703E+17
      25   0.980325109564703E+17   0.982239197978952E+17
      26   0.982239197978952E+17   0.984153286393201E+17
      27   0.984153286393201E+17   0.986067376149627E+17
      28   0.986067376149627E+17   0.987981464563876E+17
      29   0.987981464563876E+17   0.989895554320302E+17
      30   0.989895554320302E+17   0.991810244029972E+17
      31   0.991810244029972E+17   0.993724332444221E+17
      32   0.993724332444221E+17   0.995638422200648E+17
      33   0.995638422200648E+17   0.997552510614897E+17
      34   0.997552510614897E+17   0.999467200324567E+17
      35   0.999467200324567E+17   0.100143568852615E+18
      36   0.100143568852615E+18   0.100840961751384E+18
      37   0.100840961751384E+18   0.101193427034571E+18
      38   0.101193427034571E+18   0.101812721724424E+18
      39   0.101812721724424E+18   0.107245430957408E+18
      40   0.107245430957408E+18   0.115866535335035E+18
      41   0.115866535335035E+18   0.204958656863666E+18
      42   0.204958656863666E+18   0.252936659161580E+18
      43   0.252936659161580E+18   0.257043514674643E+18
      44   0.257043514674643E+18   0.258590894486192E+18
      45   0.258590894486192E+18   0.259300492205621E+18
      46   0.259300492205621E+18   0.259620404321059E+18
      47   0.259620404321059E+18   0.260240103140491E+18
      48   0.260240103140491E+18   0.260431693444284E+18
      49   0.260431693444284E+18   0.260623102285709E+18
      50   0.260623102285709E+18   0.260814511127134E+18
      51   0.260814511127134E+18   0.261005920102777E+18
      52   0.261005920102777E+18   0.261197381557551E+18
      53   0.261197381557551E+18   0.261388790398976E+18
      54   0.261388790398976E+18   0.261580199374619E+18
      55   0.261580199374619E+18   0.261771608216044E+18
      56   0.261771608216044E+18   0.261963017057468E+18
      57   0.261963017057468E+18   0.262154426033111E+18
      58   0.262154426033111E+18   0.262345834874536E+18
      59   0.262345834874536E+18   0.262537243850179E+18
      60   0.262537243850179E+18   0.262728652691603E+18
      61   0.262728652691603E+18   0.262920061533028E+18
      62   0.262920061533028E+18   0.263111470508671E+18
      63   0.263111470508671E+18   0.263302879350096E+18
      64   0.263302879350096E+18   0.263494288191521E+18
      65   0.263494288191521E+18   0.263685697167163E+18
      66   0.263685697167163E+18   0.263877106008588E+18
      67   0.263877106008588E+18   0.264074332383216E+18
      68   0.264074332383216E+18   0.264505062976389E+18
      69   0.264505062976389E+18   0.265212269338558E+18
      70   0.265212269338558E+18   0.265425398098035E+18
      71   0.265425398098035E+18   0.265616859552809E+18
      72   0.265616859552809E+18   0.265859579026342E+18
      73   0.265859579026342E+18   0.268130852221747E+18
      74   0.268130852221747E+18   0.268372849603903E+18
      75   0.268372849603903E+18   0.268567500742984E+18
      76   0.268567500742984E+18   0.268759689523626E+18
      77   0.268759689523626E+18   0.269423404241650E+18
      78   0.269423404241650E+18   0.269614813217292E+18
      79   0.269614813217292E+18   0.269806222058717E+18
      80   0.269806222058717E+18   0.269997630900142E+18
      81   0.269997630900142E+18   0.306265813826929E+18
      82   0.306265813826929E+18   0.306556648074248E+18
      83   0.306556648074248E+18   0.306748056915673E+18
      84   0.306748056915673E+18   0.306939465757098E+18
      85   0.306939465757098E+18   0.307221961728066E+18
      86   0.307221961728066E+18   0.307794217399222E+18
      87   0.307794217399222E+18   0.307988715395875E+18
      88   0.307988715395875E+18   0.308180124237300E+18
      89   0.308180124237300E+18   0.310444717550600E+18
      90   0.310444717550600E+18   0.310740185664979E+18
      91   0.310740185664979E+18   0.310931594506404E+18
      92   0.310931594506404E+18   0.311123041063010E+18
      93   0.311123041063010E+18   0.311680816251929E+18
      94   0.311680816251929E+18   0.312038281548136E+18
      95   0.312038281548136E+18   0.312471011985457E+18
      96   0.312471011985457E+18   0.312662450891653E+18
      97   0.312662450891653E+18   0.312853859867296E+18
      98   0.312853859867296E+18   0.313045268708721E+18
      99   0.313045268708721E+18   0.313236677684363E+18
     100   0.313236677684363E+18   0.313428086525788E+18
     101   0.313428086525788E+18   0.313619495367213E+18
     102   0.313619495367213E+18   0.313810904342856E+18
     103   0.313810904342856E+18   0.314002313184281E+18
     104   0.314002313184281E+18   0.314193722025705E+18
     105   0.314193722025705E+18   0.314385131001348E+18
     106   0.314385131001348E+18   0.314576539842773E+18
     107   0.314576539842773E+18   0.314767948684198E+18
     108   0.314767948684198E+18   0.314959357659841E+18
     109   0.314959357659841E+18   0.315150766501265E+18
     110   0.315150766501265E+18   0.315342175476908E+18
     111   0.315342175476908E+18   0.315533614383104E+18
     112   0.315533614383104E+18   0.315725023224529E+18
     113   0.315725023224529E+18   0.315916432200172E+18
     114   0.315916432200172E+18   0.316107878622560E+18
     115   0.316107878622560E+18   0.316302087245791E+18
     116   0.316302087245791E+18   0.316995494012256E+18
     117   0.316995494012256E+18   0.317341733203476E+18
     118   0.317341733203476E+18   0.317950474621813E+18
     119   0.317950474621813E+18   0.322765279123735E+18
     120   0.322765279123735E+18   0.323602548101480E+18
     121   0.323602548101480E+18   0.404285202853003E+18
     122   0.404285202853003E+18   0.493377324381635E+18
     123   0.493377324381635E+18   0.505798757690900E+18
     124   0.505798757690900E+18   0.506944051119915E+18
     125   0.506944051119915E+18   0.507135512574689E+18
     126   0.507135512574689E+18   0.507326921550332E+18
     127   0.507326921550332E+18   0.507518330391757E+18
     128   0.507518330391757E+18   0.507896890285621E+18
     129   0.507896890285621E+18   0.508206872973541E+18
     130   0.508206872973541E+18   0.508401475257369E+18
     131   0.508401475257369E+18   0.508600811534680E+18
     132   0.508600811534680E+18   0.509602348381766E+18
     133   0.509602348381766E+18   0.514502795336876E+18
     134   0.514502795336876E+18   0.515690615787225E+18
     135   0.515690615787225E+18   0.516460272584491E+18
     136   0.516460272584491E+18   0.516797047278404E+18
     137   0.516797047278404E+18   0.516988456254046E+18
     138   0.516988456254046E+18   0.517179865095471E+18
     139   0.517179865095471E+18   0.517371326550245E+18
     140   0.517371326550245E+18   0.517587226905805E+18
     141   0.517587226905805E+18   0.517778688494797E+18
     142   0.517778688494797E+18   0.517970097336222E+18
     143   0.517970097336222E+18   0.518161506177647E+18
     144   0.518161506177647E+18   0.518352915153289E+18
     145   0.518352915153289E+18   0.518544323994714E+18
     146   0.518544323994714E+18   0.518735732970357E+18
     147   0.518735732970357E+18   0.518927141811782E+18
     148   0.518927141811782E+18   0.519118550653207E+18
     149   0.519118550653207E+18   0.519309959628849E+18
     150   0.519309959628849E+18   0.519501368470274E+18
     151   0.519501368470274E+18   0.519692777311699E+18
     152   0.519692777311699E+18   0.519884186287342E+18
     153   0.519884186287342E+18   0.520075595128766E+18
     154   0.520075595128766E+18   0.520267003970191E+18
     155   0.520267003970191E+18   0.520458412945834E+18
     156   0.520458412945834E+18   0.520649874400608E+18
     157   0.520649874400608E+18   0.520844424205304E+18
     158   0.520844424205304E+18   0.521057601685815E+18
     159   0.521057601685815E+18   0.521249010661458E+18
     160   0.521249010661458E+18   0.521948424208122E+18
     161   0.521948424208122E+18   0.522338053038014E+18
     162   0.522338053038014E+18   0.598485619475218E+18
     163   0.598485619475218E+18   0.630677923535258E+18
     164   0.630677923535258E+18   0.631528434165613E+18
     165   0.631528434165613E+18   0.631765173702492E+18
     166   0.631765173702492E+18   0.631956582543917E+18
     167   0.631956582543917E+18   0.632172306134729E+18
     168   0.632172306134729E+18   0.632363767589503E+18
     169   0.632363767589503E+18   0.632555176430928E+18
     170   0.632555176430928E+18   0.632746585406570E+18
     171   0.632746585406570E+18   0.632937994247995E+18
     172   0.632937994247995E+18   0.633129403089420E+18
     173   0.633129403089420E+18   0.633320812065063E+18
     174   0.633320812065063E+18   0.633512220906488E+18
     175   0.633512220906488E+18   0.633703629747913E+18
     176   0.633703629747913E+18   0.633895038723555E+18
     177   0.633895038723555E+18   0.634086447564980E+18
     178   0.634086447564980E+18   0.634277856540623E+18
     179   0.634277856540623E+18   0.634469265382048E+18
     180   0.634469265382048E+18   0.634660674223473E+18
     181   0.634660674223473E+18   0.634852083199115E+18
     182   0.634852083199115E+18   0.635043492040540E+18
     183   0.635043492040540E+18   0.635234938462929E+18
     184   0.635234938462929E+18   0.635447299497001E+18
     185   0.635447299497001E+18   0.635641591737876E+18
     186   0.635641591737876E+18   0.635833030778290E+18
     187   0.635833030778290E+18   0.636024439619715E+18
     188   0.636024439619715E+18   0.636215848461140E+18
     189   0.636215848461140E+18   0.636750937767018E+18
     190   0.636750937767018E+18   0.638195828250378E+18
     191   0.638195828250378E+18   0.643163132008595E+18
     192   0.643163132008595E+18   0.643481123736781E+18
     193   0.643481123736781E+18   0.644410277365809E+18
     194   0.644410277365809E+18   0.644604712548565E+18
     195   0.644604712548565E+18   0.644796121389990E+18
     196   0.644796121389990E+18   0.645181291506958E+18
     197   0.645181291506958E+18   0.645480259617030E+18
     198   0.645480259617030E+18   0.645671668458455E+18
     199   0.645671668458455E+18   0.645863077434098E+18
     200   0.645863077434098E+18   0.646078413001458E+18
     201   0.646078413001458E+18   0.647196133008867E+18
     202   0.647196133008867E+18   0.692703801651495E+18
     203   0.692703801651495E+18   0.781795991899603E+18
     204   0.781795991899603E+18   0.829396574483251E+18
     205   0.829396574483251E+18   0.833478057611231E+18
     206   0.833478057611231E+18   0.835041939358220E+18
     207   0.835041939358220E+18   0.835748986135511E+18
     208   0.835748986135511E+18   0.836066892501221E+18
     209   0.836066892501221E+18   0.836684653485097E+18
     210   0.836684653485097E+18   0.836876197752209E+18
     211   0.836876197752209E+18   0.837067606593634E+18
     212   0.837067606593634E+18   0.837259015435059E+18
     213   0.837259015435059E+18   0.837450424410702E+18
     214   0.837450424410702E+18   0.837641863316898E+18
     215   0.837641863316898E+18   0.837833272158323E+18
     216   0.837833272158323E+18   0.838024681133965E+18
     217   0.838024681133965E+18   0.838216089975390E+18
     218   0.838216089975390E+18   0.838407498951033E+18
     219   0.838407498951033E+18   0.838598907792458E+18
     220   0.838598907792458E+18   0.838790316633883E+18
     221   0.838790316633883E+18   0.838981725609525E+18
     222   0.838981725609525E+18   0.839173134450950E+18
     223   0.839173134450950E+18   0.839364543292375E+18
     224   0.839364543292375E+18   0.839555952268018E+18
     225   0.839555952268018E+18   0.839747361109443E+18
     226   0.839747361109443E+18   0.839938769950867E+18
     227   0.839938769950867E+18   0.840130178926510E+18
     228   0.840130178926510E+18   0.840321587767935E+18
     229   0.840321587767935E+18   0.840515962821149E+18
     230   0.840515962821149E+18   0.840945666917138E+18
     231   0.840945666917138E+18   0.841646435928637E+18
     232   0.841646435928637E+18   0.841858285861601E+18
     233   0.841858285861601E+18   0.842049724767797E+18
     234   0.842049724767797E+18   0.842281563210121E+18
     235   0.842281563210121E+18   0.842722369393918E+18
     236   0.842722369393918E+18   0.844794685611311E+18
     237   0.844794685611311E+18   0.844986094452736E+18
     238   0.844986094452736E+18   0.845180402799739E+18
     239   0.845180402799739E+18   0.845839342990524E+18
     240   0.845839342990524E+18   0.846030781896720E+18
     241   0.846030781896720E+18   0.846222190738145E+18
     242   0.846222190738145E+18   0.846413599713788E+18
     243   0.846413599713788E+18   0.864502974527832E+18
     244   0.864502974527832E+18   0.882968182065725E+18
     245   0.882968182065725E+18   0.883159590907150E+18
     246   0.883159590907150E+18   0.883350999882793E+18
     247   0.883350999882793E+18   0.883542438788989E+18
     248   0.883542438788989E+18   0.884202639686894E+18
     249   0.884202639686894E+18   0.884397114195444E+18
     250   0.884397114195444E+18   0.884588523036869E+18
     251   0.884588523036869E+18   0.886662527579062E+18
     252   0.886662527579062E+18   0.887140268334121E+18
     253   0.887140268334121E+18   0.887338684146254E+18
     254   0.887338684146254E+18   0.887530145735246E+18
     255   0.887530145735246E+18   0.887743060014793E+18
     256   0.887743060014793E+18   0.888448298610852E+18
     257   0.888448298610852E+18   0.888883030502932E+18
     258   0.888883030502932E+18   0.889075884332417E+18
     259   0.889075884332417E+18   0.889267293308060E+18
     260   0.889267293308060E+18   0.889458702149485E+18
     261   0.889458702149485E+18   0.889650110990909E+18
     262   0.889650110990909E+18   0.889841519966552E+18
     263   0.889841519966552E+18   0.890032928807977E+18
     264   0.890032928807977E+18   0.890224337783620E+18
     265   0.890224337783620E+18   0.890415746625044E+18
     266   0.890415746625044E+18   0.890607155466469E+18
     267   0.890607155466469E+18   0.890798564442112E+18
     268   0.890798564442112E+18   0.890989973283537E+18
     269   0.890989973283537E+18   0.891181382124962E+18
     270   0.891181382124962E+18   0.891372791100604E+18
     271   0.891372791100604E+18   0.891564199942029E+18
     272   0.891564199942029E+18   0.891755608783454E+18
     273   0.891755608783454E+18   0.891947055340061E+18
     274   0.891947055340061E+18   0.892138464181486E+18
     275   0.892138464181486E+18   0.892329873022910E+18
     276   0.892329873022910E+18   0.892521312063324E+18
     277   0.892521312063324E+18   0.892712833647641E+18
     278   0.892712833647641E+18   0.893333954101248E+18
     279   0.893333954101248E+18   0.893653827830415E+18
     280   0.893653827830415E+18   0.894359090988319E+18
     281   0.894359090988319E+18   0.899130547593282E+18
     282   0.899130547593282E+18   0.900009270521627E+18
     283   0.900009270521627E+18   0.958721087984632E+18
     284   0.958721087984632E+18   0.104545954810770E+19
     285   0.104545954810770E+19   0.104631566863643E+19
     286   0.104631566863643E+19   0.105113412305525E+19
     287   0.105113412305525E+19   0.105174324551772E+19
     288   0.105174324551772E+19   0.105209241884269E+19
     289   0.105209241884269E+19   0.105278706349926E+19
     290   0.105278706349926E+19   0.105298166296451E+19
     291   0.105298166296451E+19   0.105317312455351E+19
     292   0.105317312455351E+19   0.105336453339493E+19
     293   0.105336453339493E+19   0.105355594223636E+19
     294   0.105355594223636E+19   0.105374735121200E+19
     295   0.105374735121200E+19   0.105393881266677E+19
     296   0.105393881266677E+19   0.105413022150820E+19
     297   0.105413022150820E+19   0.105432163048384E+19
     298   0.105432163048384E+19   0.105451303932527E+19
     299   0.105451303932527E+19   0.105470444830091E+19
     300   0.105470444830091E+19   0.105489585714233E+19
     301   0.105489585714233E+19   0.105508726598376E+19
     302   0.105508726598376E+19   0.105527867495940E+19
     303   0.105527867495940E+19   0.105547008380083E+19
     304   0.105547008380083E+19   0.105566149264225E+19
     305   0.105566149264225E+19   0.105585290161789E+19
     306   0.105585290161789E+19   0.105604431045932E+19
     307   0.105604431045932E+19   0.105623571930074E+19
     308   0.105623571930074E+19   0.105642712827639E+19
     309   0.105642712827639E+19   0.105661858973116E+19
     310   0.105661858973116E+19   0.105705459105451E+19
     311   0.105705459105451E+19   0.105742519707160E+19
     312   0.105742519707160E+19   0.105797542036583E+19
     313   0.105797542036583E+19   0.105816688182061E+19
     314   0.105816688182061E+19   0.105835829066203E+19
     315   0.105835829066203E+19   0.105865633938067E+19
     316   0.105865633938067E+19   0.106092287187170E+19
     317   0.106092287187170E+19   0.106111428071313E+19
     318   0.106111428071313E+19   0.106130893198642E+19
     319   0.106130893198642E+19   0.106188462242346E+19
     320   0.106188462242346E+19   0.106216483535087E+19
     321   0.106216483535087E+19   0.106235624432651E+19
     322   0.106235624432651E+19   0.106254765316794E+19
     323   0.106254765316794E+19   0.106382938307822E+19
     324   0.106382938307822E+19   0.115292150460685E+19
In [10]:
paths.dumpdir
Out[10]:
'/cosma8/data/dp016/dc-stis1/csiborg_dump'
In [8]:
len(paths.get_ics(tonew=True))
Out[8]:
101
In [ ]:
fname = "ramses_out_{}_{}.npy".format(
            str(self.nsim).zfill(5), str(self.nsnap).zfill(5))
        data = numpy.load(join(self.paths.dumpdir, fname))
In [2]:
cat0 = csiborgtools.read.ClumpsCatalogue(7468)
catx = csiborgtools.read.ClumpsCatalogue(7588)
In [3]:
reader = csiborgtools.read.PairOverlap(cat0, catx, max_dist=150 / 0.705)
In [31]:
ks = np.argsort(reader.cat0("totpartmass"))[::-1]
k = ks[1]


plt.figure()
plt.scatter(reader.dist(False, "r200")[k], reader.mass_ratio()[k], c=reader.overlap(False)[k])
plt.colorbar(label="Overlap")

plt.title(r"$\log M_{{\rm tot}} / M_\odot = {:.4f}$".format(np.log10(reader.cat0("totpartmass")[k])))
plt.xlabel(r"$\Delta r_i / R_{200c}$")
plt.ylabel(r"$|\log \dfrac{M_i}{M_{\rm tot}}|$")
plt.tight_layout()
plt.show()
No description has been provided for this image
In [32]:
print("Starting: {}.".format(datetime.now()))
clumps0 = np.load("/mnt/extraspace/rstiskalek/csiborg/initmatch/clump_7468_particles.npy", allow_pickle=True)
print("Loaded `clump0`: {}.".format(datetime.now()))
clumpsx = np.load("/mnt/extraspace/rstiskalek/csiborg/initmatch/clump_7588_particles.npy", allow_pickle=True)
print("Loaded `clumpx`: {}.".format(datetime.now()))

overlapper = csiborgtools.match.ParticleOverlap()

hid2clumps0 = {hid: n for n, hid in enumerate(clumps0["ID"])}
hid2clumpsx = {hid: n for n, hid in enumerate(clumpsx["ID"])}
Starting: 2023-03-24 14:27:05.644524.
Loaded `clump0`: 2023-03-24 14:41:48.868024.
Loaded `clumpx`: 2023-03-24 14:49:25.871648.
In [33]:
# Convert positions to cell IDs
overlapper.clumps_pos2cell(clumps0)
overlapper.clumps_pos2cell(clumpsx)

mins0, maxs0 = csiborgtools.match.get_halolims(clumps0, overlapper.inv_clength, overlapper.nshift)
minsx, maxsx = csiborgtools.match.get_halolims(clumpsx, overlapper.inv_clength, overlapper.nshift)
In [34]:
delta_bckg = overlapper.make_bckg_delta(clumps0)
delta_bckg = overlapper.make_bckg_delta(clumpsx, delta=delta_bckg)
In [369]:
smooth_kwargs = {"sigma": 1, "truncate": 4, "mode": "constant", "cval": 0.0}

delta_bckg_smooth = gaussian_filter(delta_bckg, **smooth_kwargs)
In [363]:
# k = 24734 # skull!

ks = np.argsort(reader.cat0("totpartmass"))[::-1]
# k = ks[1]
k = 331
n = 0

print("Ratio is ", summed_ratio[k])

print("Original overlap is ", overlap_raw[k][n])
print("Smoothed overlap is ", overlap_smoothed[k][n])

index_cl0 = hid2clumps0[reader.cat0("index", k)]
cl0 = clumps0[index_cl0][0]
mins_cl0, maxs_cl0 = mins0[index_cl0], maxs0[index_cl0]

index_clx = hid2clumpsx[reader.catx("index", reader["match_indxs"][k][n])]
clx = clumpsx[index_clx][0]
mins_clx, maxs_clx = minsx[index_clx], maxsx[index_clx]



delta1, delta2, cellmins, nonzero = overlapper.make_deltas(
    cl0, clx, mins_cl0, maxs_cl0, mins_clx, maxs_clx, smooth_kwargs=smooth_kwargs)

csiborgtools.match.calculate_overlap(delta1, delta2, cellmins, delta_bckg_smooth)
Ratio is  0.9820815
Original overlap is  0.6785714
Smoothed overlap is  0.6664124
Out[363]:
0.32628544480462635
In [364]:
xs = []
for n in range(reader["match_indxs"][k].size):

    index_clx = hid2clumpsx[reader.catx("index", reader["match_indxs"][k][n])]
    clx = clumpsx[index_clx][0]
    mins_clx, maxs_clx = minsx[index_clx], maxsx[index_clx]
    
    print("NGP/smoothed overlap ", overlap_raw[k][n], overlap_smoothed[k][n])
    delta1, delta2, cellmins, nonzero1 = overlapper.make_deltas(
        cl0, clx, mins_cl0, maxs_cl0, mins_clx, maxs_clx, smooth_kwargs=smooth_kwargs)
    
    x = csiborgtools.match.calculate_overlap(delta1, delta2, cellmins, delta_bckg_smooth)
    print(x)
    xs.append(x)
    
print("Sum is ", sum(xs))
print("Originally NGP/smoothed was ", summed_raw[k], summed_smoothed[k])
NGP/smoothed overlap  0.6785714 0.6664124
0.32628544480462635
Sum is  0.32628544480462635
Originally NGP/smoothed was  0.6785714 0.6664124
In [ ]:

In [ ]:

In [ ]:

In [ ]:
dlogm = [None] * len(indxs)
mass = [None] * len(indxs)
for k in trange(len(indxs)):
    dlogm[k] = np.abs(np.log10(cat[0]["totpartmass"][k]) - np.log10(cat[1]["totpartmass"][indxs[k]]))
    mass[k] = np.ones(indxs[k].size) * cat[0]["totpartmass"][k]
dlogm = np.asanyarray(dlogm)
mass = np.asanyarray(mass)
In [ ]:
plt.figure()
plt.scatter(np.concatenate(dlogm), np.concatenate(overlap), s=1, rasterized=True)
t = np.linspace(0, 2)
plt.plot(t, 10**(-t), c="red", label=r"$10^{-|\log M_1 / M_2|}$")
plt.xlabel(r"$|\log M_1 / M_2|$")
plt.ylabel(r"$\mathcal{O}$")
plt.legend()
plt.tight_layout()
# plt.savefig("../plots/mass_comparison.png", dpi=450)
plt.show()
In [ ]:

In [ ]:
for k in trange(len(indxs)):
    if np.any((dlogm[k] > 1.75) & (overlap[k] > 0.15)):
        print(k)
In [ ]:
k = 97788
print(dlogm[k])
print(overlap[k])
n = np.argmax(overlap[k])

index_cl0 = [cl[1] for cl in clumps0].index(cat[0][k]["index"])
cl0 = clumps0[index_cl0][0]
mins_cl0, maxs_cl0 = mins0[index_cl0], maxs0[index_cl0]

index_clx = [cl[1] for cl in clumpsx].index(cat[1]["index"][indxs[k]][n])
clx = clumpsx[index_clx][0]
mins_clx, maxs_clx = minsx[index_clx], maxsx[index_clx]
In [ ]:
delta1, delta2, cellmins = overlapper.make_deltas(cl0, clx, mins_cl0, maxs_cl0, mins_clx, maxs_clx)
In [ ]:
overlapper.overlap(delta1, delta2, cellmins, delta)
In [ ]:
delta1.sum() / delta2.sum()
In [ ]:

In [ ]:
plt.figure()
plt.imshow(np.sum(delta1, axis=2))
plt.show()

plt.figure()
plt.imshow(np.sum(delta2, axis=2))
plt.show()
In [ ]:

In [ ]:

In [ ]:
ncounter = len(indxs[k])
true_overlap = np.full(ncounter, np.nan)
spherical_overlap = np.full(ncounter, np.nan)

for n in trange(len(indxs[k])):
    clx = clumpsx[[cl[1] for cl in clumpsx].index(cat[1]["index"][indxs[k]][n])][0]
    
    R1 = (3 * cl0.size / (4 * np.pi))**(1./3) * 1 / 2048
    R2 = (3 * clx.size / (4 * np.pi))**(1./3) * 1 / 2048
    d = np.linalg.norm([np.mean(cl0[p]) - np.mean(clx[p]) for p in ('x', 'y', 'z')])
    
    spherical_overlap[n] = csiborgtools.match.spherical_overlap(R1, R2, d)
    true_overlap[n] = overlapper(cl0, clx, delta)
    
#     print(true_overlap, spherical_overlap)
In [ ]:
plt.figure()
plt.scatter(true_overlap, spherical_overlap)

t = np.linspace(0, 1, 100)
plt.plot(t, t, c="k", ls="--")

plt.xlabel("True overlap")
plt.ylabel("Spherical overlap")
# plt.xscale("log")
# plt.yscale("log")
plt.show()
In [ ]:

In [ ]:
R1 = (3 * cl0.size / (4 * np.pi))**(1./3) * 1 / 2048
R2 = (3 * clx.size / (4 * np.pi))**(1./3) * 1 / 2048
d = np.linalg.norm([np.mean(cl0[p]) - np.mean(clx[p]) for p in ('x', 'y', 'z')])
In [ ]:

In [ ]:

In [ ]:

In [ ]:
box = cat[0].box
maverage = box.box2solarmass(clumps0[2][0]["M"][0])
cell = box.box2mpc(1/2048)
In [ ]:
n_sim = 0
import numpy

R = (3 * cat.cats[n_sim]["npart"] / (4 * numpy.pi))**(1./3) * 1 / 2048
R = cat.cats[n_sim].box.box2mpc(R)
In [ ]:
# dlogm = [None] * len(indxs)
# for k in trange(len(indxs)):
#     dlogm[k] = np.abs(np.log10(cat[0]["totpartmass"][k]) - np.log10(cat[1]["totpartmass"][indxs[k]]))
# dlogm = np.asanyarray(dlogm)

normdist = [None] * len(indxs)
masses = [None] * len(indxs)
for k in trange(len(indxs)):
    normdist[k] = dist0[k] / ((3 * cat[0]["totpartmass"][k] / (4 * np.pi * maverage))**(1/3) * cell)
    masses[k] = np.log10(np.ones(indxs[k].size) * cat[0]["totpartmass"][k])
    
normdist = np.asanyarray(normdist)
masses = np.asanyarray(masses)
In [ ]:
plt.figure()

# plt.scatter(np.concatenate(normdist), np.concatenate(overlap), c=np.concatenate(masses), s=4)

plt.scatter(np.concatenate(normdist), np.concatenate(masses), c=np.concatenate(overlap), s=4)


plt.colorbar()
# plt.xlabel(r"$z = 0$ normalised separation by $\hat{R}$")
# plt.xlabel(r"Absolute difference in total mass [dex]")
# plt.xscale("log")
# plt.ylabel(r"$\mathcal{O}$")
plt.xscale("log")
plt.tight_layout()
# plt.savefig("../plots/another_view.png", dpi=450)
plt.show()
In [ ]:

In [ ]:

In [ ]:

In [ ]:

In [ ]:
cl0 = clumps0[[cl[1] for cl in clumps0].index(cat[0][k]["index"])][0]






clx = clumpsx[[cl[1] for cl in clumpsx].index(cat[1]["index"][indxs[k]][n])][0]
In [ ]: