csiborgtools/notebooks/match_observation/harry_clusters.ipynb
Richard Stiskalek 779f2e76ac
Calculate upglade redshifts (#128)
* Update redshift reading

* Add helio to CMB redshift

* Update imports

* Update nb

* Run for Quijote

* Add script

* Update

* Update .gitignore

* Update imports

* Add Peery estimator

* Add bulk flow scripts

* Update typs

* Add comment

* Add blank space

* Update submission script

* Update description

* Add barriers

* Update nb

* Update nb

* Rename script

* Move to old

* Update imports

* Add nb

* Update script

* Fix catalogue key

* Update script

* Update submit

* Update comment

* Update .gitignore

* Update nb

* Update for stationary obsrevers

* Update submission

* Add nb

* Add better verbose control

* Update nb

* Update submit

* Update nb

* Add SN errors

* Add draft of the script

* Update verbosity flags

* Add submission script

* Debug script

* Quickfix

* Remove comment

* Update nb

* Update submission

* Update nb

* Processed UPGLADE
2024-06-20 14:33:00 +01:00

12 KiB

In [1]:
import numpy as np
import matplotlib.pyplot as plt
from h5py import File
from scipy.stats import spearmanr

import csiborgtools

%matplotlib inline
%load_ext autoreload
%autoreload 2
In [2]:
paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)
In [3]:
reader = csiborgtools.read.CSiBORG2Field(17417, "main")
In [4]:
density = reader.density_field("SPH", 1024)
In [5]:
def smoothen_field(field, smooth_scale, boxsize, threads=1, make_copy=False):
    """
    Smooth a field with a Gaussian filter.
    """
    W_k = SL.FT_filter(boxsize, smooth_scale, field.shape[0], "Gaussian",
                       threads)

    if make_copy:
        field = numpy.copy(field)

    return SL.field_smoothing(field, W_k, threads)
In [6]:
slabA = density[512, ...]

density_smoothed = csiborgtools.field.smoothen_field(density, 2, 676.6, threads=4, make_copy=True)
slabB = density_smoothed[512, ...]

density_smoothed = csiborgtools.field.smoothen_field(density, 8, 676.6, threads=4, make_copy=True)
slabC = density_smoothed[512, ...]
In [7]:
np.savez("./smoothed_field.npz", smooth_0=slabA, smooth_2=slabB, smooth8=slabC)
In [12]:
plt.figure()
plt.imshow(np.log10(slabB))
plt.show()
No description has been provided for this image
In [ ]:

In [3]:
nsa_alfalfa = csiborgtools.SDSSxALFALFA()()
nsa = csiborgtools.SDSS()()
WARNING: VerifyWarning: It is strongly recommended that column names contain only upper and lower-case ASCII letters, digits, or underscores for maximum compatibility with other software (got '#AGC'). [astropy.io.fits.column]
WARNING: VerifyWarning: It is strongly recommended that column names contain only upper and lower-case ASCII letters, digits, or underscores for maximum compatibility with other software (got '#AGCNr'). [astropy.io.fits.column]
/mnt/users/rstiskalek/csiborgtools/csiborgtools/read/obs.py:367: UserWarning: Key `IN_DR7_LSS` found in both `routine_keys` and `fits_keys`. Returning `routine_keys` value.
  warn(f"Key `{key}` found in both `routine_keys` and `fits_keys`. "
In [14]:
fval1_cb2, smooth_scales = csiborgtools.summary.read_interpolated_field(
    nsa_alfalfa, "csiborg2_random", "density", "SPH", 1024, paths)
fval2_cb2, smooth_scales = csiborgtools.summary.read_interpolated_field(
    nsa_alfalfa, "csiborg2_main", "density", "SPH", 1024, paths)
Reading fields: 100%|██████████| 20/20 [00:00<00:00, 20.89it/s]
Reading fields: 100%|██████████| 20/20 [00:00<00:00, 27.93it/s]
In [21]:
plt.figure()
plt.hist(np.log10(fval1_cb2[0, :, 2]), bins="auto", density=1, histtype="step",
         label="Random")
plt.hist(np.log10(fval2_cb2[10, :, 2]), bins="auto", density=1, histtype="step",
         label="CSiBORG")
# plt.yscale("log")
plt.legend()
plt.xlabel(r"$\log \rho ~ [h^2 M_\odot / \mathrm{kpc}^3]$")
plt.ylabel("Normalized counts")
plt.tight_layout()
plt.savefig("../plots/test_samples.png", dpi=450)
plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [ ]:

In [27]:
fval_rand, smooth_scales = csiborgtools.summary.read_interpolated_field(survey, "csiborg2_random", "density", "SPH", 1024, paths)
Reading fields: 100%|██████████| 20/20 [00:42<00:00,  2.10s/it]
In [51]:
survey.keys
Out[51]:
['SERSIC_ABSMAG_F',
 'SERSIC_ABSMAG_N',
 'SERSIC_ABSMAG_u',
 'SERSIC_ABSMAG_g',
 'SERSIC_ABSMAG_r',
 'SERSIC_ABSMAG_i',
 'SERSIC_ABSMAG_z',
 'ELPETRO_ABSMAG_F',
 'ELPETRO_ABSMAG_N',
 'ELPETRO_ABSMAG_u',
 'ELPETRO_ABSMAG_g',
 'ELPETRO_ABSMAG_r',
 'ELPETRO_ABSMAG_i',
 'ELPETRO_ABSMAG_z',
 'SERSIC_APPMAG_F',
 'SERSIC_APPMAG_N',
 'SERSIC_APPMAG_u',
 'SERSIC_APPMAG_g',
 'SERSIC_APPMAG_r',
 'SERSIC_APPMAG_i',
 'SERSIC_APPMAG_z',
 'ELPETRO_APPMAG_F',
 'ELPETRO_APPMAG_N',
 'ELPETRO_APPMAG_u',
 'ELPETRO_APPMAG_g',
 'ELPETRO_APPMAG_r',
 'ELPETRO_APPMAG_i',
 'ELPETRO_APPMAG_z',
 'SERSIC_COL_FF',
 'SERSIC_COL_FN',
 'SERSIC_COL_Fu',
 'SERSIC_COL_Fg',
 'SERSIC_COL_Fr',
 'SERSIC_COL_Fi',
 'SERSIC_COL_Fz',
 'SERSIC_COL_NF',
 'SERSIC_COL_NN',
 'SERSIC_COL_Nu',
 'SERSIC_COL_Ng',
 'SERSIC_COL_Nr',
 'SERSIC_COL_Ni',
 'SERSIC_COL_Nz',
 'SERSIC_COL_uF',
 'SERSIC_COL_uN',
 'SERSIC_COL_uu',
 'SERSIC_COL_ug',
 'SERSIC_COL_ur',
 'SERSIC_COL_ui',
 'SERSIC_COL_uz',
 'SERSIC_COL_gF',
 'SERSIC_COL_gN',
 'SERSIC_COL_gu',
 'SERSIC_COL_gg',
 'SERSIC_COL_gr',
 'SERSIC_COL_gi',
 'SERSIC_COL_gz',
 'SERSIC_COL_rF',
 'SERSIC_COL_rN',
 'SERSIC_COL_ru',
 'SERSIC_COL_rg',
 'SERSIC_COL_rr',
 'SERSIC_COL_ri',
 'SERSIC_COL_rz',
 'SERSIC_COL_iF',
 'SERSIC_COL_iN',
 'SERSIC_COL_iu',
 'SERSIC_COL_ig',
 'SERSIC_COL_ir',
 'SERSIC_COL_ii',
 'SERSIC_COL_iz',
 'SERSIC_COL_zF',
 'SERSIC_COL_zN',
 'SERSIC_COL_zu',
 'SERSIC_COL_zg',
 'SERSIC_COL_zr',
 'SERSIC_COL_zi',
 'SERSIC_COL_zz',
 'ELPETRO_COL_FF',
 'ELPETRO_COL_FN',
 'ELPETRO_COL_Fu',
 'ELPETRO_COL_Fg',
 'ELPETRO_COL_Fr',
 'ELPETRO_COL_Fi',
 'ELPETRO_COL_Fz',
 'ELPETRO_COL_NF',
 'ELPETRO_COL_NN',
 'ELPETRO_COL_Nu',
 'ELPETRO_COL_Ng',
 'ELPETRO_COL_Nr',
 'ELPETRO_COL_Ni',
 'ELPETRO_COL_Nz',
 'ELPETRO_COL_uF',
 'ELPETRO_COL_uN',
 'ELPETRO_COL_uu',
 'ELPETRO_COL_ug',
 'ELPETRO_COL_ur',
 'ELPETRO_COL_ui',
 'ELPETRO_COL_uz',
 'ELPETRO_COL_gF',
 'ELPETRO_COL_gN',
 'ELPETRO_COL_gu',
 'ELPETRO_COL_gg',
 'ELPETRO_COL_gr',
 'ELPETRO_COL_gi',
 'ELPETRO_COL_gz',
 'ELPETRO_COL_rF',
 'ELPETRO_COL_rN',
 'ELPETRO_COL_ru',
 'ELPETRO_COL_rg',
 'ELPETRO_COL_rr',
 'ELPETRO_COL_ri',
 'ELPETRO_COL_rz',
 'ELPETRO_COL_iF',
 'ELPETRO_COL_iN',
 'ELPETRO_COL_iu',
 'ELPETRO_COL_ig',
 'ELPETRO_COL_ir',
 'ELPETRO_COL_ii',
 'ELPETRO_COL_iz',
 'ELPETRO_COL_zF',
 'ELPETRO_COL_zN',
 'ELPETRO_COL_zu',
 'ELPETRO_COL_zg',
 'ELPETRO_COL_zr',
 'ELPETRO_COL_zi',
 'ELPETRO_COL_zz',
 'DIST',
 'DIST_UNCORRECTED',
 'SERSIC_MASS',
 'ELPETRO_MASS',
 'SERSIC_MTOL_F',
 'SERSIC_MTOL_N',
 'SERSIC_MTOL_u',
 'SERSIC_MTOL_g',
 'SERSIC_MTOL_r',
 'SERSIC_MTOL_i',
 'SERSIC_MTOL_z',
 'ELPETRO_MTOL_F',
 'ELPETRO_MTOL_N',
 'ELPETRO_MTOL_u',
 'ELPETRO_MTOL_g',
 'ELPETRO_MTOL_r',
 'ELPETRO_MTOL_i',
 'ELPETRO_MTOL_z',
 'IN_DR7_LSS',
 'IAUNAME',
 'SUBDIR',
 'RA_1',
 'DEC_1',
 'ISDSS',
 'INED',
 'ISIXDF',
 'IALFALFA',
 'IZCAT',
 'ITWODF',
 'MAG',
 'Z',
 'ZSRC',
 'SIZE',
 'RUN',
 'CAMCOL',
 'FIELD',
 'RERUN',
 'XPOS',
 'YPOS',
 'NSAID',
 'ZDIST',
 'SERSIC_NMGY',
 'SERSIC_NMGY_IVAR',
 'SERSIC_OK',
 'SERSIC_RNMGY',
 'SERSIC_ABSMAG',
 'SERSIC_AMIVAR',
 'EXTINCTION',
 'SERSIC_KCORRECT',
 'SERSIC_KCOEFF',
 'SERSIC_MTOL',
 'SERSIC_B300',
 'SERSIC_B1000',
 'SERSIC_METS',
 'SERSIC_MASS',
 'XCEN',
 'YCEN',
 'NPROF',
 'PROFMEAN',
 'PROFMEAN_IVAR',
 'QSTOKES',
 'USTOKES',
 'BASTOKES',
 'PHISTOKES',
 'PETRO_FLUX',
 'PETRO_FLUX_IVAR',
 'FIBER_FLUX',
 'FIBER_FLUX_IVAR',
 'PETRO_BA50',
 'PETRO_PHI50',
 'PETRO_BA90',
 'PETRO_PHI90',
 'SERSIC_FLUX',
 'SERSIC_FLUX_IVAR',
 'SERSIC_N',
 'SERSIC_BA',
 'SERSIC_PHI',
 'ASYMMETRY',
 'CLUMPY',
 'DFLAGS',
 'AID',
 'PID',
 'DVERSION',
 'PROFTHETA',
 'PETRO_THETA',
 'PETRO_TH50',
 'PETRO_TH90',
 'SERSIC_TH50',
 'PLATE',
 'FIBERID',
 'MJD',
 'RACAT',
 'DECCAT',
 'ZSDSSLINE',
 'SURVEY',
 'PROGRAMNAME',
 'PLATEQUALITY',
 'TILE',
 'PLUG_RA',
 'PLUG_DEC',
 'ELPETRO_BA',
 'ELPETRO_PHI',
 'ELPETRO_FLUX_R',
 'ELPETRO_FLUX_IVAR_R',
 'ELPETRO_THETA_R',
 'ELPETRO_TH50_R',
 'ELPETRO_TH90_R',
 'ELPETRO_THETA',
 'ELPETRO_FLUX',
 'ELPETRO_FLUX_IVAR',
 'ELPETRO_TH50',
 'ELPETRO_TH90',
 'ELPETRO_APCORR_R',
 'ELPETRO_APCORR',
 'ELPETRO_APCORR_SELF',
 'ELPETRO_NMGY',
 'ELPETRO_NMGY_IVAR',
 'ELPETRO_OK',
 'ELPETRO_RNMGY',
 'ELPETRO_ABSMAG',
 'ELPETRO_AMIVAR',
 'ELPETRO_KCORRECT',
 'ELPETRO_KCOEFF',
 'ELPETRO_MASS',
 'ELPETRO_MTOL',
 'ELPETRO_B300',
 'ELPETRO_B1000',
 'ELPETRO_METS',
 'IN_DR7_LSS',
 '#AGC',
 'objID',
 'parentID',
 'specObjID',
 'ra_2',
 'dec_2',
 'modelMag_u',
 'modelMag_g',
 'modelMag_r',
 'modelMag_i',
 'modelMag_z',
 'modelMagErr_u',
 'modelMagErr_g',
 'modelMagErr_r',
 'modelMagErr_i',
 'modelMagErr_z',
 'cModelMag_u',
 'cModelMag_g',
 'cModelMag_r',
 'cModelMag_i',
 'cModelMag_z',
 'cModelMagErr_u',
 'cModelMagErr_g',
 'cModelMagErr_r',
 'cModelMagErr_i',
 'cModelMagErr_z',
 'petroMag_u',
 'petroMag_g',
 'petroMag_r(28)',
 'petroMag_i',
 'petroMag_z',
 'petroMagErr_u',
 'petroMagErr_g',
 'petroMagErr_r',
 'petroMagErr_i',
 'petroMagErr_z',
 'petroRad_u',
 'petroRad_g',
 'petroRad_r',
 'petroRad_i',
 'petroRad_z',
 'petroR50_g',
 'petroR50_r',
 'petroR50_i',
 'petroR90_g',
 'petroR90_r',
 'petroR90_i',
 'extinction_u',
 'extinction_g',
 'extinction_r',
 'extinction_i',
 'extinction_z',
 'expAB_g',
 'expAB_r',
 'expAB_i',
 'expMag_g',
 'expMag_r',
 'expMag_i',
 'flags_u',
 'flags_g',
 'flags_r',
 'flags_i',
 'flags_z',
 'flags',
 'lnLExp_r',
 'lnLDeV_r',
 'type',
 'fracDev_g',
 'fracDev_r',
 'fracDev_i',
 'expRad_g',
 'expRad_r',
 'expRad_i',
 '#AGCNr',
 'Name',
 'RAdeg_HI',
 'DECdeg_HI',
 'RAdeg_OC',
 'DECdeg_OC',
 'Vhelio',
 'W50',
 'sigW',
 'W20',
 'HIflux',
 'sigflux',
 'SNR',
 'RMS',
 'Dist',
 'sigDist',
 'logMH',
 'siglogMH',
 'HIcode',
 'Separation',
 'INDEX']
In [90]:
col = np.log10(survey["SERSIC_B300"])
/mnt/zfsusers/rstiskalek/csiborgtools/csiborgtools/read/obs.py:374: UserWarning: Returning a FITS property `SERSIC_B300`. Be careful about little h!
  warn(f"Returning a FITS property `{key}`. "
In [91]:
fval.shape
Out[91]:
(20, 17737, 5)
In [96]:
k = 3
n = 5
print(smooth_scales[k])
print("MAIN ", spearmanr(col, fval[n, :, k]))
print("RAND ", spearmanr(col, fval_rand[n, :, k]))

plt.figure()
plt.scatter(col, fval[n, :, k], s=1)
# plt.scatter(col, fval_rand[n, :, k], s=1)
plt.yscale("log")
plt.show()
8.0
MAIN  SignificanceResult(statistic=0.01800564415653568, pvalue=0.01648383065884433)
RAND  SignificanceResult(statistic=-0.09834925186515843, pvalue=2.2430402522333184e-39)
No description has been provided for this image
In [ ]:

In [100]:
k = 3
y1 = np.mean(fval[:, :, k], axis=0)
y2 = np.mean(fval_rand[:, :, k], axis=0)


print("MAIN ", spearmanr(col, y1))
print("RAND ", spearmanr(col, y2))

plt.figure()
plt.scatter(col, y1, s=1)
plt.yscale("log")
plt.show()
MAIN  SignificanceResult(statistic=0.01727582463129473, pvalue=0.021402398915955124)
RAND  SignificanceResult(statistic=0.02077892643371117, pvalue=0.00564970605187618)
No description has been provided for this image
In [ ]:

In [ ]:

In [10]:
survey.selection_mask.shape
Out[10]:
(22478,)
In [ ]:
paths.field_interpolated()
In [4]:
radvel_path = paths.field("radvel", "SPH", 1024, 16217, "csiborg2_main")
In [9]:
d = np.load(radvel_path)
In [8]:
!du -h /mnt/extraspace/rstiskalek/csiborg_postprocessing/environment/radvel_csiborg2_main_SPH_16217_1024.npy
4.1G	/mnt/extraspace/rstiskalek/csiborg_postprocessing/environment/radvel_csiborg2_main_SPH_16217_1024.npy
In [5]:
# x1 = d["val"]
In [7]:
x2 = d["val"]
In [22]:
d["smooth_scales"]
Out[22]:
array([ 0.,  2.,  4.,  8., 16.])
In [29]:
k = -1

m = np.isfinite(x1[:, k]) & np.isfinite(x2[:, k])
In [30]:
print(spearmanr(x1[m, k], x2[m, k]))

plt.figure()
plt.scatter(x1[m, k], x2[m, k], s=1)
plt.xscale("log")
plt.yscale("log")
plt.show()
SignificanceResult(statistic=0.9946039397587731, pvalue=0.0)
No description has been provided for this image
In [13]:

Out[13]:
array([413.8776  ,  36.502567,  42.72512 , ...,  86.33546 ,  46.866375,
        16.672348], dtype=float32)
In [ ]:

In [9]:
x1.shape
Out[9]:
(641409, 5)
In [ ]:

In [ ]:

In [4]:
field.density_field("SPH", 1024)
Out[4]:
array([[[38.309074, 37.35447 , 33.675297, ..., 38.631912, 37.806564,
         38.30662 ],
        [36.995125, 35.11136 , 31.615524, ..., 41.488594, 39.508347,
         38.271282],
        [35.551605, 32.419254, 28.316347, ..., 44.668957, 41.425102,
         38.46228 ],
        ...,
        [44.0867  , 46.94581 , 47.402313, ..., 38.326492, 38.893078,
         40.331207],
        [39.54499 , 39.829464, 38.81296 , ..., 36.481358, 36.73762 ,
         37.66062 ],
        [38.683113, 38.04618 , 35.1861  , ..., 36.864704, 36.749477,
         37.77259 ]],

       [[39.680145, 39.896065, 37.5201  , ..., 35.309006, 35.451256,
         37.65782 ],
        [38.184814, 37.705723, 34.6373  , ..., 38.367054, 37.28385 ,
         37.66665 ],
        [36.350132, 34.192383, 30.708448, ..., 42.486446, 39.748688,
         37.757904],
        ...,
        [48.202843, 51.6801  , 54.201912, ..., 37.41573 , 39.070263,
         41.48212 ],
        [41.606823, 44.06209 , 46.2296  , ..., 33.731186, 35.463955,
         37.43514 ],
        [40.023647, 41.03199 , 39.59713 , ..., 33.46958 , 34.77913 ,
         37.458004]],

       [[42.269516, 44.800823, 43.88061 , ..., 31.999905, 33.81479 ,
         38.11813 ],
        [40.689667, 41.8762  , 40.181072, ..., 35.19038 , 35.086533,
         38.080868],
        [38.505177, 37.81341 , 35.218002, ..., 39.726883, 37.880917,
         37.98939 ],
        ...,
        [53.54201 , 58.9436  , 66.00325 , ..., 36.82529 , 41.091465,
         46.317104],
        [44.265858, 50.393852, 55.040318, ..., 31.7586  , 34.622643,
         39.686398],
        [42.591843, 46.13804 , 46.71531 , ..., 30.522701, 32.33912 ,
         37.310055]],

       ...,

       [[36.964626, 33.57419 , 29.586971, ..., 43.06893 , 41.11846 ,
         39.331432],
        [36.032703, 32.74095 , 28.373114, ..., 43.962837, 41.521736,
         38.690216],
        [35.184982, 31.26581 , 27.127985, ..., 44.944073, 42.05588 ,
         38.838474],
        ...,
        [38.095966, 37.35273 , 34.85196 , ..., 42.916054, 41.808567,
         40.2956  ],
        [37.57452 , 35.121746, 32.29693 , ..., 42.38733 , 41.167664,
         39.764378],
        [37.60174 , 34.37987 , 30.65371 , ..., 42.481983, 41.12721 ,
         39.814762]],

       [[36.984535, 33.885307, 29.960264, ..., 42.689564, 40.912434,
         39.279568],
        [36.086666, 32.507336, 28.38868 , ..., 44.143845, 41.76999 ,
         38.934032],
        [35.14676 , 31.207554, 26.969011, ..., 45.590717, 42.514576,
         39.190063],
        ...,
        [40.034714, 39.873127, 39.855125, ..., 40.560432, 40.166527,
         40.173508],
        [37.800323, 36.153614, 33.418015, ..., 40.476524, 39.99206 ,
         39.203354],
        [37.445255, 34.964134, 31.208267, ..., 41.27682 , 40.32644 ,
         39.46384 ]],

       [[37.365154, 35.074844, 31.241234, ..., 41.14966 , 39.78451 ,
         38.712948],
        [36.41588 , 33.426365, 29.391582, ..., 43.479816, 41.18592 ,
         38.77536 ],
        [35.295177, 31.421724, 27.27295 , ..., 45.680676, 42.432396,
         39.032627],
        ...,
        [40.50576 , 42.841057, 42.216366, ..., 39.10556 , 39.566757,
         40.411335],
        [38.77279 , 37.562416, 35.394333, ..., 38.59305 , 38.3598  ,
         38.760056],
        [37.811317, 36.106308, 32.836246, ..., 39.24028 , 38.665195,
         38.452446]]], dtype=float32)
In [ ]:

In [206]:
mreader = csiborgtools.read.CSiBORG2MergerTreeReader(16517, "main")
Creating group to tree ID mapping...
In [238]:
cat["dist"][4]
Out[238]:
136.42772691506084
In [251]:
d = mreader.main_progenitor(3000)
In [252]:
np.max(d["MaxNextProgenitorMass"] / d["MainProgenitorMass"])
Out[252]:
0.07736389817838397
In [253]:
plt.figure()
plt.plot(d["Redshift"], d["MainProgenitorMass"])
plt.plot(d["Redshift"], d["MaxNextProgenitorMass"])


plt.yscale("log")

plt.show()
No description has been provided for this image
In [ ]:

In [202]:
n = 0

main_progenitor = tree["TreeMainProgenitor"]
next_progenitor = tree["TreeNextProgenitor"]
snapnum = tree["SnapNum"]

for i in range(5):

    print(i)
    next_progenitor
    # print(main_progenitor[n], snapnum[main_progenitor[n]])
    # print(next_progenitor[n], snapnum[next_progenitor[n]])
    print("")
    
    
    n = main_progenitor[n]
0
702 98
-1 7

1
1415 97
1075 98

2
2142 96
1902 97

3
2887 95
2602 96

4
3642 94
3262 95

In [ ]:

In [ ]:

In [ ]:

In [180]:
# z, y = mreader.fof_progenitor(30)
d = mreader.main_progenitor(30)
In [181]:
plt.figure()
plt.plot(d["Redshift"], d["MainProgenitorMass"], label="Main progenitor")
# plt.plot(z, y, label="FoF group")
plt.legend()
plt.yscale("log")
plt.show()
No description has been provided for this image
In [ ]:

In [164]:
plt.figure()
plt.plot(y)
plt.yscale("log")
plt.show()
No description has been provided for this image
In [ ]:

In [132]:
cat = csiborgtools.read.CSiBORG2Catalogue(16517, 99, "main")
In [136]:
cat["totmass"]
Out[136]:
array([2.9051551e+15, 1.6921947e+15, 1.3596260e+15, ..., 9.9620782e+10,
       9.9620782e+10, 9.9620782e+10], dtype=float32)
In [ ]:

In [131]:
d1 = mreader.fof_progenitor(1)
0 99
383 98
776 97
1176 96
1588 95
2012 94
2447 93
2888 92
3338 91
3788 90
4246 89
4718 88
5198 87
5683 86
6169 85
6657 84
7146 83
7633 82
8130 81
8651 80
9173 79
9723 78
10286 77
10856 76
11443 75
12041 74
12650 73
13267 72
13899 71
14536 70
15193 69
15866 68
16540 67
17215 66
17914 65
18637 64
19377 63
20128 62
20899 61
21685 60
22491 59
23311 58
24159 57
25150 56
26026 55
26897 54
27806 53
28738 52
29568 51
30531 50
31514 49
32513 48
33520 47
34554 46
35609 45
36684 44
37773 43
38860 42
39967 41
41089 40
42234 39
43403 38
44575 37
45766 36
46974 35
48177 34
49394 33
50614 32
51855 31
53100 30
54360 29
55601 28
56820 27
58039 26
59241 25
60419 24
61581 23
62730 22
63774 21
64754 20
65636 19
66424 18
67096 17
67683 16
68154 15
68525 14
68842 13
69008 12
69119 11
69177 10
In [ ]:

In [ ]:

In [ ]:

In [ ]:

In [ ]:
d1["Group_M_Crit200"]
In [129]:
plt.figure()
plt.plot(d1["Redshift"], d1["MainProgenitorMass"])
# plt.plot(z1, m1)
plt.yscale("log")
plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [22]:
f = h5py.File(paths.trees(16517, "csiborg2_main"), 'r')
print(f.keys())
<KeysViewHDF5 ['Config', 'Header', 'Parameters', 'TreeHalos', 'TreeTable', 'TreeTimes']>
In [31]:
f["TreeHalos"].keys()
Out[31]:
<KeysViewHDF5 ['GroupNr', 'Group_M_Crit200', 'SnapNum', 'SubhaloHalfmassRad', 'SubhaloIDMostbound', 'SubhaloLen', 'SubhaloMass', 'SubhaloNr', 'SubhaloPos', 'SubhaloSpin', 'SubhaloVel', 'SubhaloVelDisp', 'SubhaloVmax', 'SubhaloVmaxRad', 'TreeDescendant', 'TreeFirstDescendant', 'TreeFirstHaloInFOFgroup', 'TreeFirstProgenitor', 'TreeID', 'TreeIndex', 'TreeMainProgenitor', 'TreeNextDescendant', 'TreeNextHaloInFOFgroup', 'TreeNextProgenitor', 'TreeProgenitor']>
In [35]:
offset = f["TreeTable/StartOffset"][:]
length = f["TreeTable/Length"][:]


groupnr = f["TreeHalos/GroupNr"][:]
snapnum = f["TreeHalos/SnapNum"][:]
treeid = f["TreeHalos/TreeID"][:]

treeid[mask][groupnr[mask] == 300000]
In [48]:
treeid = f["TreeHalos/TreeID"][:]
In [43]:
mask = snapnum==99
In [58]:
treeid[mask][groupnr[mask] == 300000]
Out[58]:
array([279606])
In [ ]:

In [41]:
cat
Out[41]:
<CSiBORG2Catalogue> (nsim = 16517, nsnap = 99, nhalo = 573522)
In [39]:
for n in range(3):
    i = offset[n]
    j = i + length[n]
    
    
    m = snapnum[i:j] == 99
148
85
68
In [24]:
f["TreeHalos/GroupNr"]
Out[24]:
<HDF5 dataset "GroupNr": shape (54136877,), type "<i8">
In [ ]:

In [ ]:

In [136]:
f["TreeTable/StartOffset"][:]
Out[136]:
array([       0,   118794,   187990, ..., 54136874, 54136875, 54136876])
In [137]:
f["TreeTable/Length"][:]
Out[137]:
array([118794,  69196,  53723, ...,      1,      1,      1], dtype=int32)
In [138]:
for key in f["TreeHalos"].keys():
    print(key)
GroupNr
Group_M_Crit200
SnapNum
SubhaloHalfmassRad
SubhaloIDMostbound
SubhaloLen
SubhaloMass
SubhaloNr
SubhaloPos
SubhaloSpin
SubhaloVel
SubhaloVelDisp
SubhaloVmax
SubhaloVmaxRad
TreeDescendant
TreeFirstDescendant
TreeFirstHaloInFOFgroup
TreeFirstProgenitor
TreeID
TreeIndex
TreeMainProgenitor
TreeNextDescendant
TreeNextHaloInFOFgroup
TreeNextProgenitor
TreeProgenitor
In [ ]:

In [150]:
cat["GroupContamination"]
Out[150]:
array([0.0044236 , 0.02276927, 0.        , ..., 0.        , 0.        ,
       0.        ], dtype=float32)
In [147]:
n = 0
tot = 0
while True:
    print(n, snap[n])

    if n == -1:
        break
    tot += m[n]
    
    n = nexthalo[n]
0 99
1 99
2 99
3 99
4 99
5 99
6 99
7 99
8 99
9 99
10 99
11 99
12 99
13 99
14 99
15 99
16 99
17 99
18 99
19 99
20 99
21 99
22 99
23 99
24 99
25 99
26 99
27 99
28 99
29 99
30 99
31 99
32 99
33 99
34 99
35 99
36 99
37 99
38 99
39 99
40 99
41 99
42 99
43 99
44 99
45 99
46 99
47 99
48 99
49 99
50 99
51 99
52 99
53 99
54 99
55 99
56 99
57 99
58 99
59 99
60 99
61 99
62 99
63 99
64 99
65 99
66 99
67 99
68 99
69 99
70 99
71 99
72 99
73 99
74 99
75 99
76 99
77 99
78 99
79 99
80 99
81 99
82 99
83 99
84 99
85 99
86 99
87 99
88 99
89 99
90 99
91 99
92 99
93 99
94 99
95 99
96 99
97 99
98 99
99 99
100 99
101 99
102 99
103 99
104 99
105 99
106 99
107 99
108 99
109 99
110 99
111 99
112 99
113 99
114 99
115 99
116 99
117 99
118 99
119 99
120 99
121 99
122 99
123 99
124 99
125 99
126 99
127 99
128 99
129 99
130 99
131 99
132 99
133 99
134 99
135 99
136 99
137 99
138 99
139 99
140 99
141 99
142 99
143 99
144 99
145 99
146 99
147 99
148 99
149 99
150 99
151 99
152 99
153 99
154 99
155 99
156 99
157 99
158 99
159 99
160 99
161 99
162 99
163 99
164 99
165 99
166 99
167 99
168 99
169 99
170 99
171 99
172 99
173 99
174 99
175 99
176 99
177 99
178 99
179 99
180 99
181 99
182 99
183 99
184 99
185 99
186 99
187 99
188 99
189 99
190 99
191 99
192 99
193 99
194 99
195 99
196 99
197 99
198 99
199 99
200 99
201 99
202 99
203 99
204 99
205 99
206 99
207 99
208 99
209 99
210 99
211 99
212 99
213 99
214 99
215 99
216 99
217 99
218 99
219 99
220 99
221 99
222 99
223 99
224 99
225 99
226 99
227 99
228 99
229 99
230 99
231 99
232 99
233 99
234 99
235 99
236 99
237 99
238 99
239 99
240 99
241 99
242 99
243 99
244 99
245 99
246 99
247 99
248 99
249 99
250 99
251 99
252 99
253 99
254 99
255 99
256 99
257 99
258 99
259 99
260 99
261 99
262 99
263 99
264 99
265 99
266 99
267 99
268 99
269 99
270 99
271 99
272 99
273 99
274 99
275 99
276 99
277 99
278 99
279 99
280 99
281 99
282 99
283 99
284 99
285 99
286 99
287 99
288 99
289 99
290 99
291 99
292 99
293 99
294 99
295 99
296 99
297 99
298 99
299 99
300 99
301 99
302 99
303 99
304 99
305 99
306 99
307 99
308 99
309 99
310 99
311 99
312 99
313 99
314 99
315 99
316 99
317 99
318 99
319 99
320 99
321 99
322 99
323 99
324 99
325 99
326 99
327 99
328 99
329 99
330 99
331 99
332 99
333 99
334 99
335 99
336 99
337 99
338 99
339 99
340 99
341 99
342 99
343 99
344 99
345 99
346 99
347 99
348 99
349 99
350 99
351 99
352 99
353 99
354 99
355 99
356 99
357 99
358 99
359 99
360 99
361 99
362 99
363 99
364 99
365 99
366 99
367 99
368 99
369 99
370 99
371 99
372 99
373 99
374 99
375 99
376 99
377 99
378 99
379 99
380 99
381 99
382 99
383 99
384 99
385 99
386 99
387 99
388 99
389 99
390 99
391 99
392 99
393 99
394 99
395 99
396 99
397 99
398 99
399 99
400 99
401 99
402 99
403 99
404 99
405 99
406 99
407 99
408 99
409 99
410 99
411 99
412 99
413 99
414 99
415 99
416 99
417 99
418 99
419 99
420 99
421 99
422 99
423 99
424 99
425 99
426 99
427 99
428 99
429 99
430 99
431 99
432 99
433 99
434 99
435 99
436 99
437 99
438 99
439 99
440 99
441 99
442 99
443 99
444 99
445 99
446 99
447 99
448 99
449 99
450 99
451 99
452 99
453 99
454 99
455 99
456 99
457 99
458 99
459 99
460 99
461 99
462 99
463 99
464 99
465 99
466 99
467 99
468 99
469 99
470 99
471 99
472 99
473 99
474 99
475 99
476 99
477 99
478 99
479 99
480 99
481 99
482 99
483 99
484 99
485 99
486 99
487 99
488 99
489 99
490 99
491 99
492 99
493 99
494 99
495 99
496 99
497 99
498 99
499 99
500 99
501 99
502 99
503 99
504 99
505 99
506 99
507 99
508 99
509 99
510 99
511 99
512 99
513 99
514 99
515 99
516 99
517 99
518 99
519 99
520 99
521 99
522 99
523 99
524 99
-1 7
In [141]:
cat["totmass"]
Out[141]:
array([2.9051551e+15, 1.6921947e+15, 1.3596260e+15, ..., 9.9620782e+10,
       9.9620782e+10, 9.9620782e+10], dtype=float32)
In [145]:
tot * 1e10 / 2.9051551e+15
Out[145]:
0.9089129421107761
In [ ]:

In [ ]:

In [ ]:

In [ ]:

In [118]:
f["TreeHalos/GroupNr"][:400]
Out[118]:
array([     0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,      0,      0,      0,      0,
            0,      0,      0,      0,    920,    920,    920,    920,
          920,    920,    920,    920,    920,    920,    920,    920,
          920,    920,    920,   8873,   8873,   8873,   8873,   8873,
         8873,   8873,   8873,  17862,  17862,  17862,  17862,  17862,
        17862,  18228,  18228,  27161,  34487,  35365,  35365,  35365,
        47500,  48049,  50329,  50329,  50329,  58254,  58536,  61800,
        61800,  61800,  65113,  65114,  68491,  68491,  68491,  79269,
        86428,  86428,  86428,  90962,  91557,  91766,  91925,  95075,
        95075,  96564,  97574, 100676, 104544, 121822, 129509, 133645,
       144461, 147189, 149021, 155739, 156038, 157391, 159351, 164256])
In [ ]:

In [108]:
x = f["TreeHalos/TreeMainProgenitor"][:73895]
s = f["TreeHalos/SnapNum"][:73895]
x
Out[108]:
array([  458,   765,   459, ...,    -1, 73894,    -1], dtype=int32)
In [102]:
y = f["TreeHalos/TreeFirstProgenitor"][:73895]
y
Out[102]:
array([  458,   765,   459, ...,    -1, 73894,    -1], dtype=int32)
In [104]:
np.where(x != y)
Out[104]:
(array([ 5267,  8923, 31233, 34714, 36776, 57800, 57826, 64048, 67037,
        67200, 68473, 69140, 69301, 70258, 72159]),)
In [ ]:

In [ ]:

In [62]:
cat["Group_M_Crit200"]
Out[62]:
array([1.4632333e+05, 8.7416617e+04, 1.7587738e+04, ..., 8.7168188e+00,
       7.7828741e+00, 7.1602445e+00], dtype=float32)
In [50]:
cat["totmass"] * 1e-10
Out[50]:
array([1.8495028e+05, 1.2342685e+05, 1.0729690e+05, ..., 9.9620781e+00,
       9.9620781e+00, 9.9620781e+00], dtype=float32)
In [75]:
np.where(f["TreeHalos"]["SnapNum"][:1000] == 98)
Out[75]:
(array([458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
        471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
        484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
        497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
        510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
        523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
        536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
        549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561,
        562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
        575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
        588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
        601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
        614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626,
        627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639,
        640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652,
        653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
        666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678,
        679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691,
        692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
        705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717,
        718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730,
        731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
        744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
        757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769,
        770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782,
        783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795,
        796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808,
        809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821,
        822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
        835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847,
        848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860,
        861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
        874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886,
        887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
        900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
        913, 914, 915, 916, 917]),)
In [77]:
f["TreeHalos"]["TreeFirstHaloInFOFgroup"][:1000][330]
Out[77]:
324
In [44]:
f["TreeHalos/SnapNum"][73895:73895+100]
Out[44]:
array([99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99],
      dtype=int32)
In [ ]:

In [ ]:

In [5]:
snap_final = csiborgtools.read.CSiBORG2Snapshot(1, 99, "varysmall")
snap_init = csiborgtools.read.CSiBORG2Snapshot(1, 0, "varysmall")
In [6]:
# print("Loading final")
# pid_final = snap_final.particle_ids()

# print("Loading init")
# pid_init = snap_init.particle_ids()
In [23]:
hid = 7
pos_final = snap_final.halo_coordinates(hid)
In [24]:
pos_init = snap_init.halo_coordinates(hid)
In [25]:
pos_final.shape
Out[25]:
(231277, 3)
In [27]:
plt.figure()
# plt.scatter(pos_init[:,0], pos_init[:, 1], s=0.1)
plt.scatter(pos_final[:,0], pos_final[:, 1], s=0.1)

plt.show()
No description has been provided for this image
In [46]:
cat = csiborgtools.read.CSiBORG2Catalogue(15617, 99, "main", bounds={"dist": (None, 120)})
<KeysViewHDF5 ['GroupAscale', 'GroupFirstSub', 'GroupLen', 'GroupLenPrevMostBnd', 'GroupLenType', 'GroupMass', 'GroupMassType', 'GroupNsubs', 'GroupOffsetType', 'GroupPos', 'GroupVel', 'Group_M_Crit200', 'Group_M_Crit500', 'Group_M_Mean200', 'Group_M_TopHat200', 'Group_R_Crit200', 'Group_R_Crit500', 'Group_R_Mean200', 'Group_R_TopHat200']>
<KeysViewHDF5 ['GroupAscale', 'GroupFirstSub', 'GroupLen', 'GroupLenPrevMostBnd', 'GroupLenType', 'GroupMass', 'GroupMassType', 'GroupNsubs', 'GroupOffsetType', 'GroupPos', 'GroupVel', 'Group_M_Crit200', 'Group_M_Crit500', 'Group_M_Mean200', 'Group_M_TopHat200', 'Group_R_Crit200', 'Group_R_Crit500', 'Group_R_Mean200', 'Group_R_TopHat200']>
In [47]:
x = cat["dist"]
y = cat["GroupContamination"]
<KeysViewHDF5 ['GroupAscale', 'GroupFirstSub', 'GroupLen', 'GroupLenPrevMostBnd', 'GroupLenType', 'GroupMass', 'GroupMassType', 'GroupNsubs', 'GroupOffsetType', 'GroupPos', 'GroupVel', 'Group_M_Crit200', 'Group_M_Crit500', 'Group_M_Mean200', 'Group_M_TopHat200', 'Group_R_Crit200', 'Group_R_Crit500', 'Group_R_Mean200', 'Group_R_TopHat200']>
<KeysViewHDF5 ['GroupAscale', 'GroupFirstSub', 'GroupLen', 'GroupLenPrevMostBnd', 'GroupLenType', 'GroupMass', 'GroupMassType', 'GroupNsubs', 'GroupOffsetType', 'GroupPos', 'GroupVel', 'Group_M_Crit200', 'Group_M_Crit500', 'Group_M_Mean200', 'Group_M_TopHat200', 'Group_R_Crit200', 'Group_R_Crit500', 'Group_R_Mean200', 'Group_R_TopHat200']>
In [48]:
plt.figure()
plt.scatter(x / 0.676, y, s=0.1)
plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [ ]:

In [10]:
cat.keys()
Out[10]:
['cartesian_pos',
 'spherical_pos',
 'dist',
 'cartesian_redshiftspace_pos',
 'spherical_redshiftspace_pos',
 'redshiftspace_dist',
 'cartesian_vel',
 'particle_offsetnpart',
 'totmass',
 'index',
 'lagpatch_coordinates',
 'lagpatch_radius']
In [56]:
len(cat)
Out[56]:
168736
In [55]:
cat["m200c"]
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[55], line 1
----> 1 cat["m200c"]

File ~/csiborgtools/csiborgtools/read/catalogue.py:486, in BaseCatalogue.__getitem__(self, key)
    484 elif key in self._custom_keys:
    485     out = getattr(self, key)
--> 486 elif key in self.data[self.catalogue_name].keys():
    487     out = self.data[f"{self.catalogue_name}/{key}"][:]
    488 else:

AttributeError: 'CSiBORG1Catalogue' object has no attribute 'data'
In [ ]:

In [46]:
cat["index"]
Out[46]:
array([     1,      2,      3, ..., 168734, 168735, 168736], dtype=int32)
In [43]:
cat._read_fof_catalogue("xx")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[43], line 1
----> 1 cat._read_fof_catalogue("xx")

File ~/csiborgtools/csiborgtools/read/catalogue.py:566, in CSiBORG1Catalogue._read_fof_catalogue(self, kind)
    564 with File(fpath, 'r') as f:
    565     if kind not in f.keys():
--> 566         raise ValueError(f"FoF catalogue key '{kind}' not available. Available keys are: {list(f.keys())}")  # noqa
    567     out = f[kind][...]
    568 return out

ValueError: FoF catalogue key 'xx' not available. Available keys are: ['GroupOffset', 'index', 'm200c', 'totpartmass', 'x', 'y', 'z']
In [49]:
getattr(cat, "npart")
Out[49]:
array([165, 341, 189, ..., 524, 281, 606], dtype=uint32)
In [ ]:

In [42]:
cat["totmass"] / cat["npart"]
Out[42]:
array([3.12599134e+09, 3.11626524e+09, 3.12360110e+09, ...,
       3.56968138e+09, 3.11820731e+09, 6.41428993e+09])
In [ ]:

In [ ]:

In [30]:
cat["cartesian_pos"]
Out[30]:
array([[246.23767, 248.68051, 246.8038 ],
       [245.89716, 248.3562 , 246.68607],
       [251.61401, 249.80145, 251.0754 ],
       ...,
       [239.69035, 436.81116, 251.61401],
       [238.87607, 435.89465, 251.42436],
       [239.18134, 437.3216 , 250.3281 ]], dtype=float32)
In [31]:
cat._read_fof_catalogue("x")
<KeysViewHDF5 ['GroupOffset', 'index', 'm200c', 'totpartmass', 'x', 'y', 'z']>
Out[31]:
array([246.23767, 245.89716, 251.61401, ..., 239.69035, 238.87607,
       239.18134], dtype=float32)
In [ ]:

In [29]:
cat.cache_keys()
Out[29]:
['spherical_pos', 'cartesian_pos']
In [37]:
x = np.arange(10)
In [41]:
np.vstack([x.reshape(-1, 1), x.reshape(-1, 1)]).shape
Out[41]:
(20, 1)
In [45]:
np.hstack([x, x]).shape
Out[45]:
(20,)
In [29]:
np.vstack([x, x]).shape
Out[29]:
(38733704, 3)
In [11]:
x = snapshot.halo_coordinates(0)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[11], line 1
----> 1 x = snapshot.halo_coordinates(0)

File ~/csiborgtools/csiborgtools/read/snapshot.py:255, in CSiBORG1Snapshot.halo_coordinates(self, halo_id, is_group)
    252 if not is_group:
    253     raise ValueError("There is no subhalo catalogue for CSiBORG1.")
--> 255 return self._get_halo_particles(halo_id, "Coordinates")

File ~/csiborgtools/csiborgtools/read/snapshot.py:245, in CSiBORG1Snapshot._get_halo_particles(self, halo_id, kind)
    242     i, j = self.hid2offset.get(halo_id, (None, None))
    244     if i is None:
--> 245         raise ValueError(f"Halo `{halo_id}` not found.")
    247     x = f[kind][i:j + 1]
    249 return x

ValueError: Halo `0` not found.
In [10]:
x
Out[10]:
array([[396.24 , 662.408, 314.148],
       [398.16 , 661.776, 314.764],
       [398.04 , 660.472, 313.024],
       ...,
       [396.26 , 661.08 , 314.384],
       [396.052, 661.296, 313.964],
       [397.068, 662.008, 312.492]], dtype=float32)
In [ ]:

In [ ]:

In [ ]:

In [23]:
x
Out[23]:
array([3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09, 3.0900434e+09, 3.0900434e+09,
       3.0900434e+09, 3.0900434e+09], dtype=float32)
In [ ]:

In [10]:
snapshot.hid2offset
In [ ]:

In [16]:
d = {i: (j, k) for i, j, k in offset}
In [20]:
d[1]
Out[20]:
(295030069, 295030234)
In [ ]:

In [10]:
ids = snapshot.particle_ids()
In [3]:
from h5py import File


with File("/mnt/extraspace/rstiskalek/csiborg1/chain_7516/snapshot_00946.hdf5", 'r') as f:
    print(f.keys())
<KeysViewHDF5 ['Coordinates', 'Header', 'Masses', 'ParticleIDs', 'Velocities']>
In [ ]:

In [9]:
ids
Out[9]:
<bound method CSiBORG1Snapshot.particle_ids of <csiborgtools.read.snapshot.CSiBORG1Snapshot object at 0x7f924a96d9d0>>
In [ ]:

In [ ]:

In [27]:
d1["val"].shape
Out[27]:
(22478, 7)
In [28]:
d2["val"].shape
Out[28]:
(17737, 7)
In [ ]:

In [22]:
surv = csiborgtools.SDSSxALFALFA()(apply_selection=True)
WARNING: VerifyWarning: It is strongly recommended that column names contain only upper and lower-case ASCII letters, digits, or underscores for maximum compatibility with other software (got '#AGC'). [astropy.io.fits.column]
WARNING: VerifyWarning: It is strongly recommended that column names contain only upper and lower-case ASCII letters, digits, or underscores for maximum compatibility with other software (got '#AGCNr'). [astropy.io.fits.column]
/mnt/zfsusers/rstiskalek/csiborgtools/csiborgtools/read/obs.py:368: UserWarning: Key `IN_DR7_LSS` found in both `routine_keys` and `fits_keys`. Returning `routine_keys` value.
  warn(f"Key `{key}` found in both `routine_keys` and `fits_keys`. "
In [25]:
surv.selection_mask.size
Out[25]:
22478
In [1]:
x
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[1], line 1
----> 1 x

NameError: name 'x' is not defined
In [8]:
d["val"].shape
Out[8]:
(17737, 7)
In [ ]:

In [43]:
paths.get_ics("quijote")
Out[43]:
array([0, 1])
In [78]:
paths.get_snapshots(1, "quijote")
True
Out[78]:
['ics', 4]
In [82]:
str("ICs").zfill(3)
Out[82]:
'ICs'
In [80]:
paths.snapshot(980, 7444, "csiborg")
Out[80]:
'/mnt/extraspace/rstiskalek/csiborg1/chain_7444/snapshot_00980.hdf5'
In [ ]:

In [ ]:
with h5py.File("/mnt/extraspace/rstiskalek/quijote/fiducial_processed/chain_0/fof_004.hdf5", 'r') as f:
    print(f.keys())
In [5]:
pos0
Out[5]:
array([[9.9994348e+02, 2.3538021e+01, 1.3582062e+01],
       [1.2109435e+02, 9.1827988e+01, 4.8249097e+02],
       [1.2107726e+02, 9.1833275e+01, 4.8052374e+02],
       ...,
       [9.9808612e+02, 9.7062708e+02, 9.3360345e+02],
       [2.6784971e-02, 9.7256281e+02, 9.3554065e+02],
       [9.9810071e+02, 9.6868726e+02, 9.3552893e+02]], dtype=float32)
In [ ]:

In [ ]:
paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)
In [ ]:

In [ ]:

In [ ]:
Omega0 0.307000011205673
OmegaBaryon 0.0
OmegaLambda 0.693000018596649
In [26]:
box._omega_l
Out[26]:
0.693000018596649
In [20]:
box.Om0
Out[20]:
0.307000011205673
In [ ]:

In [18]:
box.box2vel(1)
Out[18]:
67682.75228061239
In [ ]:
2.654327164967911e+19
In [5]:
paths.get_ics("csiborg2_main")
Out[5]:
array([15517, 15617, 15717, 15817, 15917, 16017, 16117, 16217, 16317,
       16417, 16517, 16617, 16717, 16817, 16917, 17117, 17217, 17317,
       17417])
In [11]:
paths.get_snapshots(15517, "csiborg2_main")
Out[11]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
       34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
       51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
       68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
       85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
In [ ]:

In [9]:
!ls /mnt/extraspace/rstiskalek/csiborg2_main/chain_15517/output
bak-subhalo_treelink_000.hdf5	     snapshot-prevmostboundonly_045.hdf5
bak-subhalo_treelink_001.hdf5	     snapshot-prevmostboundonly_046.hdf5
bak-subhalo_treelink_002.hdf5	     snapshot-prevmostboundonly_047.hdf5
bak-subhalo_treelink_003.hdf5	     snapshot-prevmostboundonly_048.hdf5
bak-subhalo_treelink_004.hdf5	     snapshot-prevmostboundonly_049.hdf5
bak-subhalo_treelink_005.hdf5	     snapshot-prevmostboundonly_050.hdf5
bak-subhalo_treelink_006.hdf5	     snapshot-prevmostboundonly_051.hdf5
bak-subhalo_treelink_007.hdf5	     snapshot-prevmostboundonly_052.hdf5
bak-subhalo_treelink_008.hdf5	     snapshot-prevmostboundonly_053.hdf5
bak-subhalo_treelink_009.hdf5	     snapshot-prevmostboundonly_054.hdf5
bak-subhalo_treelink_010.hdf5	     snapshot-prevmostboundonly_055.hdf5
bak-subhalo_treelink_011.hdf5	     snapshot-prevmostboundonly_056.hdf5
bak-subhalo_treelink_012.hdf5	     snapshot-prevmostboundonly_057.hdf5
bak-subhalo_treelink_013.hdf5	     snapshot-prevmostboundonly_058.hdf5
bak-subhalo_treelink_014.hdf5	     snapshot-prevmostboundonly_059.hdf5
bak-subhalo_treelink_015.hdf5	     snapshot-prevmostboundonly_060.hdf5
bak-subhalo_treelink_016.hdf5	     snapshot-prevmostboundonly_061.hdf5
bak-subhalo_treelink_017.hdf5	     snapshot-prevmostboundonly_062.hdf5
bak-subhalo_treelink_018.hdf5	     snapshot-prevmostboundonly_063.hdf5
bak-subhalo_treelink_019.hdf5	     snapshot-prevmostboundonly_064.hdf5
bak-subhalo_treelink_020.hdf5	     snapshot-prevmostboundonly_065.hdf5
bak-subhalo_treelink_021.hdf5	     snapshot-prevmostboundonly_066.hdf5
bak-subhalo_treelink_022.hdf5	     snapshot-prevmostboundonly_067.hdf5
bak-subhalo_treelink_023.hdf5	     snapshot-prevmostboundonly_068.hdf5
bak-subhalo_treelink_024.hdf5	     snapshot-prevmostboundonly_069.hdf5
bak-subhalo_treelink_025.hdf5	     snapshot-prevmostboundonly_070.hdf5
bak-subhalo_treelink_026.hdf5	     snapshot-prevmostboundonly_071.hdf5
bak-subhalo_treelink_027.hdf5	     snapshot-prevmostboundonly_072.hdf5
bak-subhalo_treelink_028.hdf5	     snapshot-prevmostboundonly_073.hdf5
bak-subhalo_treelink_029.hdf5	     snapshot-prevmostboundonly_074.hdf5
bak-subhalo_treelink_030.hdf5	     snapshot-prevmostboundonly_075.hdf5
bak-subhalo_treelink_031.hdf5	     snapshot-prevmostboundonly_076.hdf5
bak-subhalo_treelink_032.hdf5	     snapshot-prevmostboundonly_077.hdf5
bak-subhalo_treelink_033.hdf5	     snapshot-prevmostboundonly_078.hdf5
bak-subhalo_treelink_034.hdf5	     snapshot-prevmostboundonly_079.hdf5
bak-subhalo_treelink_035.hdf5	     snapshot-prevmostboundonly_080.hdf5
bak-subhalo_treelink_036.hdf5	     snapshot-prevmostboundonly_081.hdf5
bak-subhalo_treelink_037.hdf5	     snapshot-prevmostboundonly_082.hdf5
bak-subhalo_treelink_038.hdf5	     snapshot-prevmostboundonly_083.hdf5
bak-subhalo_treelink_039.hdf5	     snapshot-prevmostboundonly_084.hdf5
bak-subhalo_treelink_040.hdf5	     snapshot-prevmostboundonly_085.hdf5
bak-subhalo_treelink_041.hdf5	     snapshot-prevmostboundonly_086.hdf5
bak-subhalo_treelink_042.hdf5	     snapshot-prevmostboundonly_087.hdf5
bak-subhalo_treelink_043.hdf5	     snapshot-prevmostboundonly_088.hdf5
bak-subhalo_treelink_044.hdf5	     snapshot-prevmostboundonly_089.hdf5
bak-subhalo_treelink_045.hdf5	     snapshot-prevmostboundonly_090.hdf5
bak-subhalo_treelink_046.hdf5	     snapshot-prevmostboundonly_091.hdf5
bak-subhalo_treelink_047.hdf5	     snapshot-prevmostboundonly_092.hdf5
bak-subhalo_treelink_048.hdf5	     snapshot-prevmostboundonly_093.hdf5
bak-subhalo_treelink_049.hdf5	     snapshot-prevmostboundonly_094.hdf5
bak-subhalo_treelink_050.hdf5	     snapshot-prevmostboundonly_095.hdf5
bak-subhalo_treelink_051.hdf5	     snapshot-prevmostboundonly_096.hdf5
bak-subhalo_treelink_052.hdf5	     snapshot-prevmostboundonly_097.hdf5
bak-subhalo_treelink_053.hdf5	     snapshot-prevmostboundonly_098.hdf5
bak-subhalo_treelink_054.hdf5	     snapshot-prevmostboundonly_099.hdf5
bak-subhalo_treelink_055.hdf5	     subhalo_desc_000.hdf5
bak-subhalo_treelink_056.hdf5	     subhalo_desc_001.hdf5
bak-subhalo_treelink_057.hdf5	     subhalo_desc_002.hdf5
bak-subhalo_treelink_058.hdf5	     subhalo_desc_003.hdf5
bak-subhalo_treelink_059.hdf5	     subhalo_desc_004.hdf5
bak-subhalo_treelink_060.hdf5	     subhalo_desc_005.hdf5
bak-subhalo_treelink_061.hdf5	     subhalo_desc_006.hdf5
bak-subhalo_treelink_062.hdf5	     subhalo_desc_007.hdf5
bak-subhalo_treelink_063.hdf5	     subhalo_desc_008.hdf5
bak-subhalo_treelink_064.hdf5	     subhalo_desc_009.hdf5
bak-subhalo_treelink_065.hdf5	     subhalo_desc_010.hdf5
bak-subhalo_treelink_066.hdf5	     subhalo_desc_011.hdf5
bak-subhalo_treelink_067.hdf5	     subhalo_desc_012.hdf5
bak-subhalo_treelink_068.hdf5	     subhalo_desc_013.hdf5
bak-subhalo_treelink_069.hdf5	     subhalo_desc_014.hdf5
bak-subhalo_treelink_070.hdf5	     subhalo_desc_015.hdf5
bak-subhalo_treelink_071.hdf5	     subhalo_desc_016.hdf5
bak-subhalo_treelink_072.hdf5	     subhalo_desc_017.hdf5
bak-subhalo_treelink_073.hdf5	     subhalo_desc_018.hdf5
bak-subhalo_treelink_074.hdf5	     subhalo_desc_019.hdf5
bak-subhalo_treelink_075.hdf5	     subhalo_desc_020.hdf5
bak-subhalo_treelink_076.hdf5	     subhalo_desc_021.hdf5
bak-subhalo_treelink_077.hdf5	     subhalo_desc_022.hdf5
bak-subhalo_treelink_078.hdf5	     subhalo_desc_023.hdf5
bak-subhalo_treelink_079.hdf5	     subhalo_desc_024.hdf5
bak-subhalo_treelink_080.hdf5	     subhalo_desc_025.hdf5
bak-subhalo_treelink_081.hdf5	     subhalo_desc_026.hdf5
bak-subhalo_treelink_082.hdf5	     subhalo_desc_027.hdf5
bak-subhalo_treelink_083.hdf5	     subhalo_desc_028.hdf5
bak-subhalo_treelink_084.hdf5	     subhalo_desc_029.hdf5
bak-subhalo_treelink_085.hdf5	     subhalo_desc_030.hdf5
bak-subhalo_treelink_086.hdf5	     subhalo_desc_031.hdf5
bak-subhalo_treelink_087.hdf5	     subhalo_desc_032.hdf5
bak-subhalo_treelink_088.hdf5	     subhalo_desc_033.hdf5
bak-subhalo_treelink_089.hdf5	     subhalo_desc_034.hdf5
bak-subhalo_treelink_090.hdf5	     subhalo_desc_035.hdf5
bak-subhalo_treelink_091.hdf5	     subhalo_desc_036.hdf5
bak-subhalo_treelink_092.hdf5	     subhalo_desc_037.hdf5
bak-subhalo_treelink_093.hdf5	     subhalo_desc_038.hdf5
bak-subhalo_treelink_094.hdf5	     subhalo_desc_039.hdf5
bak-subhalo_treelink_095.hdf5	     subhalo_desc_040.hdf5
bak-subhalo_treelink_096.hdf5	     subhalo_desc_041.hdf5
bak-subhalo_treelink_097.hdf5	     subhalo_desc_042.hdf5
bak-subhalo_treelink_098.hdf5	     subhalo_desc_043.hdf5
bak-subhalo_treelink_099.hdf5	     subhalo_desc_044.hdf5
bak-trees.hdf5			     subhalo_desc_045.hdf5
balance.txt			     subhalo_desc_046.hdf5
cpu.csv				     subhalo_desc_047.hdf5
cpu.txt				     subhalo_desc_048.hdf5
density.txt			     subhalo_desc_049.hdf5
domain.txt			     subhalo_desc_050.hdf5
energy.txt			     subhalo_desc_051.hdf5
fof_subhalo_tab_000.hdf5	     subhalo_desc_052.hdf5
fof_subhalo_tab_001.hdf5	     subhalo_desc_053.hdf5
fof_subhalo_tab_002.hdf5	     subhalo_desc_054.hdf5
fof_subhalo_tab_003.hdf5	     subhalo_desc_055.hdf5
fof_subhalo_tab_004.hdf5	     subhalo_desc_056.hdf5
fof_subhalo_tab_005.hdf5	     subhalo_desc_057.hdf5
fof_subhalo_tab_006.hdf5	     subhalo_desc_058.hdf5
fof_subhalo_tab_007.hdf5	     subhalo_desc_059.hdf5
fof_subhalo_tab_008.hdf5	     subhalo_desc_060.hdf5
fof_subhalo_tab_009.hdf5	     subhalo_desc_061.hdf5
fof_subhalo_tab_010.hdf5	     subhalo_desc_062.hdf5
fof_subhalo_tab_011.hdf5	     subhalo_desc_063.hdf5
fof_subhalo_tab_012.hdf5	     subhalo_desc_064.hdf5
fof_subhalo_tab_013.hdf5	     subhalo_desc_065.hdf5
fof_subhalo_tab_014.hdf5	     subhalo_desc_066.hdf5
fof_subhalo_tab_015.hdf5	     subhalo_desc_067.hdf5
fof_subhalo_tab_016.hdf5	     subhalo_desc_068.hdf5
fof_subhalo_tab_017.hdf5	     subhalo_desc_069.hdf5
fof_subhalo_tab_018.hdf5	     subhalo_desc_070.hdf5
fof_subhalo_tab_019.hdf5	     subhalo_desc_071.hdf5
fof_subhalo_tab_020.hdf5	     subhalo_desc_072.hdf5
fof_subhalo_tab_021.hdf5	     subhalo_desc_073.hdf5
fof_subhalo_tab_022.hdf5	     subhalo_desc_074.hdf5
fof_subhalo_tab_023.hdf5	     subhalo_desc_075.hdf5
fof_subhalo_tab_024.hdf5	     subhalo_desc_076.hdf5
fof_subhalo_tab_025.hdf5	     subhalo_desc_077.hdf5
fof_subhalo_tab_026.hdf5	     subhalo_desc_078.hdf5
fof_subhalo_tab_027.hdf5	     subhalo_desc_079.hdf5
fof_subhalo_tab_028.hdf5	     subhalo_desc_080.hdf5
fof_subhalo_tab_029.hdf5	     subhalo_desc_081.hdf5
fof_subhalo_tab_030.hdf5	     subhalo_desc_082.hdf5
fof_subhalo_tab_031.hdf5	     subhalo_desc_083.hdf5
fof_subhalo_tab_032.hdf5	     subhalo_desc_084.hdf5
fof_subhalo_tab_033.hdf5	     subhalo_desc_085.hdf5
fof_subhalo_tab_034.hdf5	     subhalo_desc_086.hdf5
fof_subhalo_tab_035.hdf5	     subhalo_desc_087.hdf5
fof_subhalo_tab_036.hdf5	     subhalo_desc_088.hdf5
fof_subhalo_tab_037.hdf5	     subhalo_desc_089.hdf5
fof_subhalo_tab_038.hdf5	     subhalo_desc_090.hdf5
fof_subhalo_tab_039.hdf5	     subhalo_desc_091.hdf5
fof_subhalo_tab_040.hdf5	     subhalo_desc_092.hdf5
fof_subhalo_tab_041.hdf5	     subhalo_desc_093.hdf5
fof_subhalo_tab_042.hdf5	     subhalo_desc_094.hdf5
fof_subhalo_tab_043.hdf5	     subhalo_desc_095.hdf5
fof_subhalo_tab_044.hdf5	     subhalo_desc_096.hdf5
fof_subhalo_tab_045.hdf5	     subhalo_desc_097.hdf5
fof_subhalo_tab_046.hdf5	     subhalo_desc_098.hdf5
fof_subhalo_tab_047.hdf5	     subhalo_prog_001.hdf5
fof_subhalo_tab_048.hdf5	     subhalo_prog_002.hdf5
fof_subhalo_tab_049.hdf5	     subhalo_prog_003.hdf5
fof_subhalo_tab_050.hdf5	     subhalo_prog_004.hdf5
fof_subhalo_tab_051.hdf5	     subhalo_prog_005.hdf5
fof_subhalo_tab_052.hdf5	     subhalo_prog_006.hdf5
fof_subhalo_tab_053.hdf5	     subhalo_prog_007.hdf5
fof_subhalo_tab_054.hdf5	     subhalo_prog_008.hdf5
fof_subhalo_tab_055.hdf5	     subhalo_prog_009.hdf5
fof_subhalo_tab_056.hdf5	     subhalo_prog_010.hdf5
fof_subhalo_tab_057.hdf5	     subhalo_prog_011.hdf5
fof_subhalo_tab_058.hdf5	     subhalo_prog_012.hdf5
fof_subhalo_tab_059.hdf5	     subhalo_prog_013.hdf5
fof_subhalo_tab_060.hdf5	     subhalo_prog_014.hdf5
fof_subhalo_tab_061.hdf5	     subhalo_prog_015.hdf5
fof_subhalo_tab_062.hdf5	     subhalo_prog_016.hdf5
fof_subhalo_tab_063.hdf5	     subhalo_prog_017.hdf5
fof_subhalo_tab_064.hdf5	     subhalo_prog_018.hdf5
fof_subhalo_tab_065.hdf5	     subhalo_prog_019.hdf5
fof_subhalo_tab_066.hdf5	     subhalo_prog_020.hdf5
fof_subhalo_tab_067.hdf5	     subhalo_prog_021.hdf5
fof_subhalo_tab_068.hdf5	     subhalo_prog_022.hdf5
fof_subhalo_tab_069.hdf5	     subhalo_prog_023.hdf5
fof_subhalo_tab_070.hdf5	     subhalo_prog_024.hdf5
fof_subhalo_tab_071.hdf5	     subhalo_prog_025.hdf5
fof_subhalo_tab_072.hdf5	     subhalo_prog_026.hdf5
fof_subhalo_tab_073.hdf5	     subhalo_prog_027.hdf5
fof_subhalo_tab_074.hdf5	     subhalo_prog_028.hdf5
fof_subhalo_tab_075.hdf5	     subhalo_prog_029.hdf5
fof_subhalo_tab_076.hdf5	     subhalo_prog_030.hdf5
fof_subhalo_tab_077.hdf5	     subhalo_prog_031.hdf5
fof_subhalo_tab_078.hdf5	     subhalo_prog_032.hdf5
fof_subhalo_tab_079.hdf5	     subhalo_prog_033.hdf5
fof_subhalo_tab_080.hdf5	     subhalo_prog_034.hdf5
fof_subhalo_tab_081.hdf5	     subhalo_prog_035.hdf5
fof_subhalo_tab_082.hdf5	     subhalo_prog_036.hdf5
fof_subhalo_tab_083.hdf5	     subhalo_prog_037.hdf5
fof_subhalo_tab_084.hdf5	     subhalo_prog_038.hdf5
fof_subhalo_tab_085.hdf5	     subhalo_prog_039.hdf5
fof_subhalo_tab_086.hdf5	     subhalo_prog_040.hdf5
fof_subhalo_tab_087.hdf5	     subhalo_prog_041.hdf5
fof_subhalo_tab_088.hdf5	     subhalo_prog_042.hdf5
fof_subhalo_tab_089.hdf5	     subhalo_prog_043.hdf5
fof_subhalo_tab_090.hdf5	     subhalo_prog_044.hdf5
fof_subhalo_tab_091.hdf5	     subhalo_prog_045.hdf5
fof_subhalo_tab_092.hdf5	     subhalo_prog_046.hdf5
fof_subhalo_tab_093.hdf5	     subhalo_prog_047.hdf5
fof_subhalo_tab_094.hdf5	     subhalo_prog_048.hdf5
fof_subhalo_tab_095.hdf5	     subhalo_prog_049.hdf5
fof_subhalo_tab_096.hdf5	     subhalo_prog_050.hdf5
fof_subhalo_tab_097.hdf5	     subhalo_prog_051.hdf5
fof_subhalo_tab_098.hdf5	     subhalo_prog_052.hdf5
fof_subhalo_tab_099.hdf5	     subhalo_prog_053.hdf5
hydro.txt			     subhalo_prog_054.hdf5
info.txt			     subhalo_prog_055.hdf5
memory_ghostranks.txt		     subhalo_prog_056.hdf5
memory.txt			     subhalo_prog_057.hdf5
parameters-usedvalues		     subhalo_prog_058.hdf5
snapshot_000_cut.hdf5		     subhalo_prog_059.hdf5
snapshot_001_cut.hdf5		     subhalo_prog_060.hdf5
snapshot_002_cut.hdf5		     subhalo_prog_061.hdf5
snapshot_003_cut.hdf5		     subhalo_prog_062.hdf5
snapshot_004_cut.hdf5		     subhalo_prog_063.hdf5
snapshot_005_cut.hdf5		     subhalo_prog_064.hdf5
snapshot_006_cut.hdf5		     subhalo_prog_065.hdf5
snapshot_007_cut.hdf5		     subhalo_prog_066.hdf5
snapshot_008_cut.hdf5		     subhalo_prog_067.hdf5
snapshot_009_cut.hdf5		     subhalo_prog_068.hdf5
snapshot_010_cut.hdf5		     subhalo_prog_069.hdf5
snapshot_011_cut.hdf5		     subhalo_prog_070.hdf5
snapshot_012_cut.hdf5		     subhalo_prog_071.hdf5
snapshot_013_cut.hdf5		     subhalo_prog_072.hdf5
snapshot_014_cut.hdf5		     subhalo_prog_073.hdf5
snapshot_015_cut.hdf5		     subhalo_prog_074.hdf5
snapshot_016_cut.hdf5		     subhalo_prog_075.hdf5
snapshot_017_cut.hdf5		     subhalo_prog_076.hdf5
snapshot_018_cut.hdf5		     subhalo_prog_077.hdf5
snapshot_019_cut.hdf5		     subhalo_prog_078.hdf5
snapshot_020_cut.hdf5		     subhalo_prog_079.hdf5
snapshot_021_cut.hdf5		     subhalo_prog_080.hdf5
snapshot_022_cut.hdf5		     subhalo_prog_081.hdf5
snapshot_023_cut.hdf5		     subhalo_prog_082.hdf5
snapshot_024_cut.hdf5		     subhalo_prog_083.hdf5
snapshot_025_cut.hdf5		     subhalo_prog_084.hdf5
snapshot_026_cut.hdf5		     subhalo_prog_085.hdf5
snapshot_027_cut.hdf5		     subhalo_prog_086.hdf5
snapshot_028_cut.hdf5		     subhalo_prog_087.hdf5
snapshot_029_cut.hdf5		     subhalo_prog_088.hdf5
snapshot_030_cut.hdf5		     subhalo_prog_089.hdf5
snapshot_031_cut.hdf5		     subhalo_prog_090.hdf5
snapshot_032_cut.hdf5		     subhalo_prog_091.hdf5
snapshot_033_cut.hdf5		     subhalo_prog_092.hdf5
snapshot_034_cut.hdf5		     subhalo_prog_093.hdf5
snapshot_035_cut.hdf5		     subhalo_prog_094.hdf5
snapshot_036_cut.hdf5		     subhalo_prog_095.hdf5
snapshot_037_cut.hdf5		     subhalo_prog_096.hdf5
snapshot_038_cut.hdf5		     subhalo_prog_097.hdf5
snapshot_039_cut.hdf5		     subhalo_prog_098.hdf5
snapshot_040_cut.hdf5		     subhalo_prog_099.hdf5
snapshot_041_cut.hdf5		     subhalo_treelink_000.hdf5
snapshot_042_cut.hdf5		     subhalo_treelink_001.hdf5
snapshot_043_cut.hdf5		     subhalo_treelink_002.hdf5
snapshot_044_cut.hdf5		     subhalo_treelink_003.hdf5
snapshot_045_cut.hdf5		     subhalo_treelink_004.hdf5
snapshot_046_cut.hdf5		     subhalo_treelink_005.hdf5
snapshot_047_cut.hdf5		     subhalo_treelink_006.hdf5
snapshot_048_cut.hdf5		     subhalo_treelink_007.hdf5
snapshot_049_cut.hdf5		     subhalo_treelink_008.hdf5
snapshot_050_cut.hdf5		     subhalo_treelink_009.hdf5
snapshot_051_cut.hdf5		     subhalo_treelink_010.hdf5
snapshot_052_cut.hdf5		     subhalo_treelink_011.hdf5
snapshot_053_cut.hdf5		     subhalo_treelink_012.hdf5
snapshot_054_cut.hdf5		     subhalo_treelink_013.hdf5
snapshot_055_cut.hdf5		     subhalo_treelink_014.hdf5
snapshot_056_cut.hdf5		     subhalo_treelink_015.hdf5
snapshot_057_cut.hdf5		     subhalo_treelink_016.hdf5
snapshot_058_cut.hdf5		     subhalo_treelink_017.hdf5
snapshot_059_cut.hdf5		     subhalo_treelink_018.hdf5
snapshot_060_cut.hdf5		     subhalo_treelink_019.hdf5
snapshot_061_cut.hdf5		     subhalo_treelink_020.hdf5
snapshot_062_cut.hdf5		     subhalo_treelink_021.hdf5
snapshot_063_cut.hdf5		     subhalo_treelink_022.hdf5
snapshot_064_cut.hdf5		     subhalo_treelink_023.hdf5
snapshot_065_cut.hdf5		     subhalo_treelink_024.hdf5
snapshot_066_cut.hdf5		     subhalo_treelink_025.hdf5
snapshot_067_cut.hdf5		     subhalo_treelink_026.hdf5
snapshot_068_cut.hdf5		     subhalo_treelink_027.hdf5
snapshot_069_cut.hdf5		     subhalo_treelink_028.hdf5
snapshot_070_cut.hdf5		     subhalo_treelink_029.hdf5
snapshot_071_cut.hdf5		     subhalo_treelink_030.hdf5
snapshot_072_cut.hdf5		     subhalo_treelink_031.hdf5
snapshot_073_cut.hdf5		     subhalo_treelink_032.hdf5
snapshot_074_cut.hdf5		     subhalo_treelink_033.hdf5
snapshot_075_cut.hdf5		     subhalo_treelink_034.hdf5
snapshot_076_cut.hdf5		     subhalo_treelink_035.hdf5
snapshot_077_cut.hdf5		     subhalo_treelink_036.hdf5
snapshot_078_cut.hdf5		     subhalo_treelink_037.hdf5
snapshot_079_cut.hdf5		     subhalo_treelink_038.hdf5
snapshot_080_cut.hdf5		     subhalo_treelink_039.hdf5
snapshot_081_cut.hdf5		     subhalo_treelink_040.hdf5
snapshot_082_cut.hdf5		     subhalo_treelink_041.hdf5
snapshot_083_cut.hdf5		     subhalo_treelink_042.hdf5
snapshot_084_cut.hdf5		     subhalo_treelink_043.hdf5
snapshot_085_cut.hdf5		     subhalo_treelink_044.hdf5
snapshot_086_cut.hdf5		     subhalo_treelink_045.hdf5
snapshot_087_cut.hdf5		     subhalo_treelink_046.hdf5
snapshot_088_cut.hdf5		     subhalo_treelink_047.hdf5
snapshot_089_cut.hdf5		     subhalo_treelink_048.hdf5
snapshot_090_cut.hdf5		     subhalo_treelink_049.hdf5
snapshot_091_cut.hdf5		     subhalo_treelink_050.hdf5
snapshot_092_cut.hdf5		     subhalo_treelink_051.hdf5
snapshot_093_cut.hdf5		     subhalo_treelink_052.hdf5
snapshot_094_cut.hdf5		     subhalo_treelink_053.hdf5
snapshot_095_cut.hdf5		     subhalo_treelink_054.hdf5
snapshot_096_cut.hdf5		     subhalo_treelink_055.hdf5
snapshot_097_cut.hdf5		     subhalo_treelink_056.hdf5
snapshot_098_cut.hdf5		     subhalo_treelink_057.hdf5
snapshot_099_full.hdf5		     subhalo_treelink_058.hdf5
snapshot-prevmostboundonly_000.hdf5  subhalo_treelink_059.hdf5
snapshot-prevmostboundonly_001.hdf5  subhalo_treelink_060.hdf5
snapshot-prevmostboundonly_002.hdf5  subhalo_treelink_061.hdf5
snapshot-prevmostboundonly_003.hdf5  subhalo_treelink_062.hdf5
snapshot-prevmostboundonly_004.hdf5  subhalo_treelink_063.hdf5
snapshot-prevmostboundonly_005.hdf5  subhalo_treelink_064.hdf5
snapshot-prevmostboundonly_006.hdf5  subhalo_treelink_065.hdf5
snapshot-prevmostboundonly_007.hdf5  subhalo_treelink_066.hdf5
snapshot-prevmostboundonly_008.hdf5  subhalo_treelink_067.hdf5
snapshot-prevmostboundonly_009.hdf5  subhalo_treelink_068.hdf5
snapshot-prevmostboundonly_010.hdf5  subhalo_treelink_069.hdf5
snapshot-prevmostboundonly_011.hdf5  subhalo_treelink_070.hdf5
snapshot-prevmostboundonly_012.hdf5  subhalo_treelink_071.hdf5
snapshot-prevmostboundonly_013.hdf5  subhalo_treelink_072.hdf5
snapshot-prevmostboundonly_014.hdf5  subhalo_treelink_073.hdf5
snapshot-prevmostboundonly_015.hdf5  subhalo_treelink_074.hdf5
snapshot-prevmostboundonly_016.hdf5  subhalo_treelink_075.hdf5
snapshot-prevmostboundonly_017.hdf5  subhalo_treelink_076.hdf5
snapshot-prevmostboundonly_018.hdf5  subhalo_treelink_077.hdf5
snapshot-prevmostboundonly_019.hdf5  subhalo_treelink_078.hdf5
snapshot-prevmostboundonly_020.hdf5  subhalo_treelink_079.hdf5
snapshot-prevmostboundonly_021.hdf5  subhalo_treelink_080.hdf5
snapshot-prevmostboundonly_022.hdf5  subhalo_treelink_081.hdf5
snapshot-prevmostboundonly_023.hdf5  subhalo_treelink_082.hdf5
snapshot-prevmostboundonly_024.hdf5  subhalo_treelink_083.hdf5
snapshot-prevmostboundonly_025.hdf5  subhalo_treelink_084.hdf5
snapshot-prevmostboundonly_026.hdf5  subhalo_treelink_085.hdf5
snapshot-prevmostboundonly_027.hdf5  subhalo_treelink_086.hdf5
snapshot-prevmostboundonly_028.hdf5  subhalo_treelink_087.hdf5
snapshot-prevmostboundonly_029.hdf5  subhalo_treelink_088.hdf5
snapshot-prevmostboundonly_030.hdf5  subhalo_treelink_089.hdf5
snapshot-prevmostboundonly_031.hdf5  subhalo_treelink_090.hdf5
snapshot-prevmostboundonly_032.hdf5  subhalo_treelink_091.hdf5
snapshot-prevmostboundonly_033.hdf5  subhalo_treelink_092.hdf5
snapshot-prevmostboundonly_034.hdf5  subhalo_treelink_093.hdf5
snapshot-prevmostboundonly_035.hdf5  subhalo_treelink_094.hdf5
snapshot-prevmostboundonly_036.hdf5  subhalo_treelink_095.hdf5
snapshot-prevmostboundonly_037.hdf5  subhalo_treelink_096.hdf5
snapshot-prevmostboundonly_038.hdf5  subhalo_treelink_097.hdf5
snapshot-prevmostboundonly_039.hdf5  subhalo_treelink_098.hdf5
snapshot-prevmostboundonly_040.hdf5  subhalo_treelink_099.hdf5
snapshot-prevmostboundonly_041.hdf5  timebins.txt
snapshot-prevmostboundonly_042.hdf5  timings.txt
snapshot-prevmostboundonly_043.hdf5  trees.hdf5
snapshot-prevmostboundonly_044.hdf5
In [ ]:

In [4]:
cat = csiborgtools.read.CSiBORGCatalogue(7444, paths, catalogue_name="halo_catalogue", halo_finder="FOF",
                                         bounds={"dist": (0, 50)})
2023-11-16 12:14:34.150916:   opening `/mnt/extraspace/rstiskalek/CSiBORG/processed_output/parts_FOF_07444.hdf5`.
In [6]:
d = np.load(paths.field("density", "PCS", 512, 7444, False, None))
In [12]:
over = d / d.mean() - 1
In [16]:
import Pk_library as PKL
In [18]:
Pk = PKL.Pk(over, 677.6, 0, "PCS", 1, True)


# 3D P(k)
k       = Pk.k3D
Pk0     = Pk.Pk[:,0] #monopole
Pk2     = Pk.Pk[:,1] #quadrupole
Pk4     = Pk.Pk[:,2] #hexadecapole
Pkphase = Pk.Pkphase #power spectrum of the phases
Nmodes  = Pk.Nmodes3D
Computing power spectrum of the field...
Time to complete loop = 8.22
Time taken = 15.66 seconds
In [21]:
plt.figure()
plt.plot(k, Pk0, label='monopole')
plt.xscale('log')
plt.yscale('log')
plt.show()
No description has been provided for this image
In [15]:
plt.figure()
plt.imshow(np.log10(over[0, :, :] + 1))
plt.colorbar()

plt.show()
/tmp/ipykernel_1249/2763035238.py:2: RuntimeWarning: divide by zero encountered in log10
  plt.imshow(np.log10(over[0, :, :] + 1))
No description has been provided for this image
In [6]:
pos = cat["snapshot_final/pos"]
In [8]:
pos = pos[:]
In [ ]:

In [ ]:

In [7]:
totmass = numpy.sum(cat["snapshot_final/mass"][:])
In [10]:
totmass / (677.7 * 1000)**3 / 0.3
Out[10]:
284.507446985742
In [ ]:

In [8]:
virgo = csiborgtools.virgo

print(virgo)
X = np.array([virgo["dist"], virgo["RA"], virgo["DEC"]]).reshape(-1, 3)


dist, indxs = cat.angular_neighbours(X, False, 20, radial_tolerance=5)
dist, indxs = dist[0], indxs[0]
{'RA': 186.75, 'DEC': 12.717, 'dist': 11.28}
In [7]:
dist
Out[7]:
array([], dtype=float64)
In [308]:
k = np.argmax(cat["mtot"])

k = np.argsort(cat["mtot"])[::-1][8]

c = cat["cartesian_pos"][k]

print(np.log10(cat["mtot"][k]))
14.294649
In [309]:
indx1 = cat.select_in_box(c, 20)
pos1 = cat["cartesian_pos"][indx1]

indx2 = pcat.select_in_box(c, 20)
pos2 = pcat["cartesian_pos"][indx2]

m1 = cat["mtot"][indx1]
m2 = pcat["summed_mass"][indx2]
In [311]:
plt.figure()
plt.scatter(pos1[:, 0], pos1[:, 1], c=np.log10(m1))
plt.colorbar()
plt.scatter(pos2[:, 0], pos2[:, 1],  marker="x", c=np.log10(m2))

plt.show()
No description has been provided for this image
In [293]:
virgo = csiborgtools.virgo

print(virgo)
X = np.array([virgo["dist"], virgo["RA"], virgo["DEC"]]).reshape(-1, 3)


dist, indxs = cat.angular_neighbours(X, False, 20, radial_tolerance=5)
dist, indxs = dist[0], indxs[0]
{'RA': 195, 'DEC': 28, 'dist': 70.5}
In [294]:
print(cat["mtot"][indxs])

k = np.argmax(cat["mtot"][indxs])
kk = indxs[k]
dist[k], np.log10(cat["mtot"][indxs[k]]), cat["index"][indxs[k]]
[]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb Cell 9 line 3
      <a href='vscode-notebook-cell://ssh-remote%2Bglamdring.physics.ox.ac.uk/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb#Y234sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a> print(cat["mtot"][indxs])
----> <a href='vscode-notebook-cell://ssh-remote%2Bglamdring.physics.ox.ac.uk/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb#Y234sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2'>3</a> k = np.argmax(cat["mtot"][indxs])
      <a href='vscode-notebook-cell://ssh-remote%2Bglamdring.physics.ox.ac.uk/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb#Y234sdnNjb2RlLXJlbW90ZQ%3D%3D?line=3'>4</a> kk = indxs[k]
      <a href='vscode-notebook-cell://ssh-remote%2Bglamdring.physics.ox.ac.uk/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb#Y234sdnNjb2RlLXJlbW90ZQ%3D%3D?line=4'>5</a> dist[k], np.log10(cat["mtot"][indxs[k]]), cat["index"][indxs[k]]

File <__array_function__ internals>:200, in argmax(*args, **kwargs)

File ~/csiborgtools/venv_csiborg/lib/python3.11/site-packages/numpy/core/fromnumeric.py:1242, in argmax(a, axis, out, keepdims)
   1155 """
   1156 Returns the indices of the maximum values along an axis.
   1157 
   (...)
   1239 (2, 1, 4)
   1240 """
   1241 kwds = {'keepdims': keepdims} if keepdims is not np._NoValue else {}
-> 1242 return _wrapfunc(a, 'argmax', axis=axis, out=out, **kwds)

File ~/csiborgtools/venv_csiborg/lib/python3.11/site-packages/numpy/core/fromnumeric.py:57, in _wrapfunc(obj, method, *args, **kwds)
     54     return _wrapit(obj, method, *args, **kwds)
     56 try:
---> 57     return bound(*args, **kwds)
     58 except TypeError:
     59     # A TypeError occurs if the object does have such a method in its
     60     # class, but its signature is not identical to that of NumPy's. This
   (...)
     64     # Call _wrapit from within the except clause to ensure a potential
     65     # exception has a traceback chain.
     66     return _wrapit(obj, method, *args, **kwds)

ValueError: attempt to get argmax of an empty sequence
In [ ]:

In [234]:
print(np.argsort(pcat["summed_mass"])[::-1][:10])
 
k = 46519
[87053 61697 53097 80742 84525  4223 22315  1717 46519 23735]
In [163]:
np.log10(pcat["summed_mass"][k]), pcat["dist"][k], pcat["is_main"][k], pcat["index"][k]
Out[163]:
(15.115513, 70.65002323342219, True, 11506838)
In [235]:
data = merger_reader.walk_main_progenitor(20520136, 951, True)
Clump 3947225 (193): : 24it [00:06,  3.58it/s] 
In [236]:
# pos, mass, x = csiborgtools.read.track_halo_manually(cats, 21344979, maxdist=5, max_dlogm=1)
hist = csiborgtools.read.track_halo_manually(cats, 20520136, maxdist=0.25, max_dlogm=0.5)
Tracking halo: 100%|██████████| 651/651 [00:53<00:00, 12.16it/s]
In [237]:
hist
Out[237]:
array([(951., 275.3906 , 323.64114, 375.0767 , 1.6992810e+15,        nan),
       (950., 275.3763 , 323.63602, 375.09222, 1.6949284e+15, 0.02171533),
       (949.,       nan,       nan,       nan,           nan,        nan),
       (948.,       nan,       nan,       nan,           nan,        nan),
       (947.,       nan,       nan,       nan,           nan,        nan),
       (946., 275.3962 , 323.66205, 375.0974 , 1.6972969e+15, 0.03317323),
       (945., 275.38544, 323.63733, 375.10263, 1.6828855e+15, 0.02746497),
       (944.,       nan,       nan,       nan,           nan,        nan),
       (943., 275.3182 , 323.42926, 375.11832, 1.6848843e+15, 0.21922271),
       (942., 275.40613, 323.66183, 375.09247, 1.6838351e+15, 0.24997829),
       (941.,       nan,       nan,       nan,           nan,        nan),
       (940.,       nan,       nan,       nan,           nan,        nan),
       (939., 275.4062 , 323.67218, 375.10422, 1.6796080e+15, 0.01565495),
       (938., 275.41653, 323.6784 , 375.1182 , 1.6778127e+15, 0.01847009),
       (937., 275.41656, 323.6723 , 375.10312, 1.6801732e+15, 0.01626438),
       (936., 275.41644, 323.6785 , 375.10773, 1.6768492e+15, 0.00772197),
       (935., 275.40656, 323.68253, 375.10254, 1.6768536e+15, 0.01187051),
       (934., 275.4118 , 323.68808, 375.11337, 1.6766885e+15, 0.01325788),
       (933., 275.40176, 323.69287, 375.10986, 1.6758714e+15, 0.01166534),
       (932., 275.4113 , 323.69806, 375.10876, 1.6753592e+15, 0.01089866),
       (931., 275.40616, 323.688  , 375.11325, 1.6729041e+15, 0.0121586 ),
       (930.,       nan,       nan,       nan,           nan,        nan),
       (929., 275.40662, 323.70328, 375.10873, 1.6784032e+15, 0.01594905),
       (928., 275.4029 , 323.70837, 375.114  , 1.6702815e+15, 0.00822855),
       (927.,       nan,       nan,       nan,           nan,        nan),
       (926.,       nan,       nan,       nan,           nan,        nan),
       (925., 275.40613, 323.7088 , 375.11807, 1.6753509e+15, 0.00520779),
       (924.,       nan,       nan,       nan,           nan,        nan),
       (923.,       nan,       nan,       nan,           nan,        nan),
       (922.,       nan,       nan,       nan,           nan,        nan),
       (921.,       nan,       nan,       nan,           nan,        nan),
       (920.,       nan,       nan,       nan,           nan,        nan),
       (919.,       nan,       nan,       nan,           nan,        nan),
       (918.,       nan,       nan,       nan,           nan,        nan),
       (917.,       nan,       nan,       nan,           nan,        nan),
       (916., 275.42737, 323.76526, 375.12524, 1.6692198e+15, 0.06074563),
       (915., 275.42163, 323.76016, 375.12943, 1.6662816e+15, 0.00873901),
       (914., 275.4565 , 323.9011 , 375.04697, 1.6648903e+15, 0.1669654 ),
       (913., 275.44412, 323.87256, 375.06506, 1.6669104e+15, 0.03598888),
       (912., 275.4463 , 323.85443, 375.0858 , 1.6663322e+15, 0.0276166 ),
       (911., 275.4364 , 323.81332, 375.10388, 1.6690872e+15, 0.04598984),
       (910., 275.44257, 323.79114, 375.12875, 1.6643460e+15, 0.03389455),
       (909., 275.43716, 323.7563 , 375.1497 , 1.6618427e+15, 0.04101282),
       (908., 275.44235, 323.72913, 375.16998, 1.6647001e+15, 0.03429971),
       (907., 275.4527 , 323.6882 , 375.18622, 1.6636756e+15, 0.04522604),
       (906., 275.4528 , 323.66183, 375.20285, 1.6558421e+15, 0.03117472),
       (905., 275.46817, 323.636  , 375.22156, 1.6558695e+15, 0.03542135),
       (904., 275.46817, 323.59464, 375.23706, 1.6531395e+15, 0.04416189),
       (903.,       nan,       nan,       nan,           nan,        nan),
       (902.,       nan,       nan,       nan,           nan,        nan),
       (901., 275.49405, 323.5119 , 375.268  , 1.6528571e+15, 0.09204388),
       (900.,       nan,       nan,       nan,           nan,        nan),
       (899.,       nan,       nan,       nan,           nan,        nan),
       (898.,       nan,       nan,       nan,           nan,        nan),
       (897.,       nan,       nan,       nan,           nan,        nan),
       (896.,       nan,       nan,       nan,           nan,        nan),
       (895.,       nan,       nan,       nan,           nan,        nan),
       (894.,       nan,       nan,       nan,           nan,        nan),
       (893., 275.5768 , 323.3052 , 375.3415 , 1.6435312e+15, 0.23446347),
       (892.,       nan,       nan,       nan,           nan,        nan),
       (891.,       nan,       nan,       nan,           nan,        nan),
       (890.,       nan,       nan,       nan,           nan,        nan),
       (889.,       nan,       nan,       nan,           nan,        nan),
       (888.,       nan,       nan,       nan,           nan,        nan),
       (887.,       nan,       nan,       nan,           nan,        nan),
       (886.,       nan,       nan,       nan,           nan,        nan),
       (885.,       nan,       nan,       nan,           nan,        nan),
       (884.,       nan,       nan,       nan,           nan,        nan),
       (883.,       nan,       nan,       nan,           nan,        nan),
       (882.,       nan,       nan,       nan,           nan,        nan),
       (881.,       nan,       nan,       nan,           nan,        nan),
       (880.,       nan,       nan,       nan,           nan,        nan),
       (879.,       nan,       nan,       nan,           nan,        nan),
       (878.,       nan,       nan,       nan,           nan,        nan),
       (877.,       nan,       nan,       nan,           nan,        nan),
       (876.,       nan,       nan,       nan,           nan,        nan),
       (875.,       nan,       nan,       nan,           nan,        nan),
       (874.,       nan,       nan,       nan,           nan,        nan),
       (873.,       nan,       nan,       nan,           nan,        nan),
       (872.,       nan,       nan,       nan,           nan,        nan),
       (871.,       nan,       nan,       nan,           nan,        nan),
       (870.,       nan,       nan,       nan,           nan,        nan),
       (869.,       nan,       nan,       nan,           nan,        nan),
       (868.,       nan,       nan,       nan,           nan,        nan),
       (867.,       nan,       nan,       nan,           nan,        nan),
       (866.,       nan,       nan,       nan,           nan,        nan),
       (865.,       nan,       nan,       nan,           nan,        nan),
       (864.,       nan,       nan,       nan,           nan,        nan),
       (863.,       nan,       nan,       nan,           nan,        nan),
       (862.,       nan,       nan,       nan,           nan,        nan),
       (861.,       nan,       nan,       nan,           nan,        nan),
       (860.,       nan,       nan,       nan,           nan,        nan),
       (859.,       nan,       nan,       nan,           nan,        nan),
       (858.,       nan,       nan,       nan,           nan,        nan),
       (857.,       nan,       nan,       nan,           nan,        nan),
       (856.,       nan,       nan,       nan,           nan,        nan),
       (855.,       nan,       nan,       nan,           nan,        nan),
       (854.,       nan,       nan,       nan,           nan,        nan),
       (853.,       nan,       nan,       nan,           nan,        nan),
       (852.,       nan,       nan,       nan,           nan,        nan),
       (851.,       nan,       nan,       nan,           nan,        nan),
       (850.,       nan,       nan,       nan,           nan,        nan),
       (849.,       nan,       nan,       nan,           nan,        nan),
       (848.,       nan,       nan,       nan,           nan,        nan),
       (847.,       nan,       nan,       nan,           nan,        nan),
       (846.,       nan,       nan,       nan,           nan,        nan),
       (845.,       nan,       nan,       nan,           nan,        nan),
       (844.,       nan,       nan,       nan,           nan,        nan),
       (843.,       nan,       nan,       nan,           nan,        nan),
       (842.,       nan,       nan,       nan,           nan,        nan),
       (841.,       nan,       nan,       nan,           nan,        nan),
       (840.,       nan,       nan,       nan,           nan,        nan),
       (839.,       nan,       nan,       nan,           nan,        nan),
       (838.,       nan,       nan,       nan,           nan,        nan),
       (837.,       nan,       nan,       nan,           nan,        nan),
       (836.,       nan,       nan,       nan,           nan,        nan),
       (835.,       nan,       nan,       nan,           nan,        nan),
       (834.,       nan,       nan,       nan,           nan,        nan),
       (833.,       nan,       nan,       nan,           nan,        nan),
       (832.,       nan,       nan,       nan,           nan,        nan),
       (831.,       nan,       nan,       nan,           nan,        nan),
       (830.,       nan,       nan,       nan,           nan,        nan),
       (829.,       nan,       nan,       nan,           nan,        nan),
       (828.,       nan,       nan,       nan,           nan,        nan),
       (827.,       nan,       nan,       nan,           nan,        nan),
       (826.,       nan,       nan,       nan,           nan,        nan),
       (825.,       nan,       nan,       nan,           nan,        nan),
       (824.,       nan,       nan,       nan,           nan,        nan),
       (823.,       nan,       nan,       nan,           nan,        nan),
       (822.,       nan,       nan,       nan,           nan,        nan),
       (821.,       nan,       nan,       nan,           nan,        nan),
       (820.,       nan,       nan,       nan,           nan,        nan),
       (819.,       nan,       nan,       nan,           nan,        nan),
       (818.,       nan,       nan,       nan,           nan,        nan),
       (817.,       nan,       nan,       nan,           nan,        nan),
       (816.,       nan,       nan,       nan,           nan,        nan),
       (815.,       nan,       nan,       nan,           nan,        nan),
       (814.,       nan,       nan,       nan,           nan,        nan),
       (813.,       nan,       nan,       nan,           nan,        nan),
       (812.,       nan,       nan,       nan,           nan,        nan),
       (811.,       nan,       nan,       nan,           nan,        nan),
       (810.,       nan,       nan,       nan,           nan,        nan),
       (809.,       nan,       nan,       nan,           nan,        nan),
       (808.,       nan,       nan,       nan,           nan,        nan),
       (807.,       nan,       nan,       nan,           nan,        nan),
       (806.,       nan,       nan,       nan,           nan,        nan),
       (805.,       nan,       nan,       nan,           nan,        nan),
       (804.,       nan,       nan,       nan,           nan,        nan),
       (803.,       nan,       nan,       nan,           nan,        nan),
       (802.,       nan,       nan,       nan,           nan,        nan),
       (801.,       nan,       nan,       nan,           nan,        nan),
       (800.,       nan,       nan,       nan,           nan,        nan),
       (799.,       nan,       nan,       nan,           nan,        nan),
       (798.,       nan,       nan,       nan,           nan,        nan),
       (797.,       nan,       nan,       nan,           nan,        nan),
       (796.,       nan,       nan,       nan,           nan,        nan),
       (795.,       nan,       nan,       nan,           nan,        nan),
       (794.,       nan,       nan,       nan,           nan,        nan),
       (793.,       nan,       nan,       nan,           nan,        nan),
       (792.,       nan,       nan,       nan,           nan,        nan),
       (791.,       nan,       nan,       nan,           nan,        nan),
       (790.,       nan,       nan,       nan,           nan,        nan),
       (789.,       nan,       nan,       nan,           nan,        nan),
       (788.,       nan,       nan,       nan,           nan,        nan),
       (787.,       nan,       nan,       nan,           nan,        nan),
       (786.,       nan,       nan,       nan,           nan,        nan),
       (785.,       nan,       nan,       nan,           nan,        nan),
       (784.,       nan,       nan,       nan,           nan,        nan),
       (783.,       nan,       nan,       nan,           nan,        nan),
       (782.,       nan,       nan,       nan,           nan,        nan),
       (781.,       nan,       nan,       nan,           nan,        nan),
       (780.,       nan,       nan,       nan,           nan,        nan),
       (779.,       nan,       nan,       nan,           nan,        nan),
       (778.,       nan,       nan,       nan,           nan,        nan),
       (777.,       nan,       nan,       nan,           nan,        nan),
       (776.,       nan,       nan,       nan,           nan,        nan),
       (775.,       nan,       nan,       nan,           nan,        nan),
       (774.,       nan,       nan,       nan,           nan,        nan),
       (773.,       nan,       nan,       nan,           nan,        nan),
       (772.,       nan,       nan,       nan,           nan,        nan),
       (771.,       nan,       nan,       nan,           nan,        nan),
       (770.,       nan,       nan,       nan,           nan,        nan),
       (769.,       nan,       nan,       nan,           nan,        nan),
       (768.,       nan,       nan,       nan,           nan,        nan),
       (767.,       nan,       nan,       nan,           nan,        nan),
       (766.,       nan,       nan,       nan,           nan,        nan),
       (765.,       nan,       nan,       nan,           nan,        nan),
       (764.,       nan,       nan,       nan,           nan,        nan),
       (763.,       nan,       nan,       nan,           nan,        nan),
       (762.,       nan,       nan,       nan,           nan,        nan),
       (761.,       nan,       nan,       nan,           nan,        nan),
       (760.,       nan,       nan,       nan,           nan,        nan),
       (759.,       nan,       nan,       nan,           nan,        nan),
       (758.,       nan,       nan,       nan,           nan,        nan),
       (757.,       nan,       nan,       nan,           nan,        nan),
       (756.,       nan,       nan,       nan,           nan,        nan),
       (755.,       nan,       nan,       nan,           nan,        nan),
       (754.,       nan,       nan,       nan,           nan,        nan),
       (753.,       nan,       nan,       nan,           nan,        nan),
       (752.,       nan,       nan,       nan,           nan,        nan),
       (751.,       nan,       nan,       nan,           nan,        nan),
       (750.,       nan,       nan,       nan,           nan,        nan),
       (749.,       nan,       nan,       nan,           nan,        nan),
       (748.,       nan,       nan,       nan,           nan,        nan),
       (747.,       nan,       nan,       nan,           nan,        nan),
       (746.,       nan,       nan,       nan,           nan,        nan),
       (745.,       nan,       nan,       nan,           nan,        nan),
       (744.,       nan,       nan,       nan,           nan,        nan),
       (743.,       nan,       nan,       nan,           nan,        nan),
       (742.,       nan,       nan,       nan,           nan,        nan),
       (741.,       nan,       nan,       nan,           nan,        nan),
       (740.,       nan,       nan,       nan,           nan,        nan),
       (739.,       nan,       nan,       nan,           nan,        nan),
       (738.,       nan,       nan,       nan,           nan,        nan),
       (737.,       nan,       nan,       nan,           nan,        nan),
       (736.,       nan,       nan,       nan,           nan,        nan),
       (735.,       nan,       nan,       nan,           nan,        nan),
       (734.,       nan,       nan,       nan,           nan,        nan),
       (733.,       nan,       nan,       nan,           nan,        nan),
       (732.,       nan,       nan,       nan,           nan,        nan),
       (731.,       nan,       nan,       nan,           nan,        nan),
       (730.,       nan,       nan,       nan,           nan,        nan),
       (729.,       nan,       nan,       nan,           nan,        nan),
       (728.,       nan,       nan,       nan,           nan,        nan),
       (727.,       nan,       nan,       nan,           nan,        nan),
       (726.,       nan,       nan,       nan,           nan,        nan),
       (725.,       nan,       nan,       nan,           nan,        nan),
       (724.,       nan,       nan,       nan,           nan,        nan),
       (723.,       nan,       nan,       nan,           nan,        nan),
       (722.,       nan,       nan,       nan,           nan,        nan),
       (721.,       nan,       nan,       nan,           nan,        nan),
       (720.,       nan,       nan,       nan,           nan,        nan),
       (719.,       nan,       nan,       nan,           nan,        nan),
       (718.,       nan,       nan,       nan,           nan,        nan),
       (717.,       nan,       nan,       nan,           nan,        nan),
       (716.,       nan,       nan,       nan,           nan,        nan),
       (715.,       nan,       nan,       nan,           nan,        nan),
       (714.,       nan,       nan,       nan,           nan,        nan),
       (713.,       nan,       nan,       nan,           nan,        nan),
       (712.,       nan,       nan,       nan,           nan,        nan),
       (711.,       nan,       nan,       nan,           nan,        nan),
       (710.,       nan,       nan,       nan,           nan,        nan),
       (709.,       nan,       nan,       nan,           nan,        nan),
       (708.,       nan,       nan,       nan,           nan,        nan),
       (707.,       nan,       nan,       nan,           nan,        nan),
       (706.,       nan,       nan,       nan,           nan,        nan),
       (705.,       nan,       nan,       nan,           nan,        nan),
       (704.,       nan,       nan,       nan,           nan,        nan),
       (703.,       nan,       nan,       nan,           nan,        nan),
       (702.,       nan,       nan,       nan,           nan,        nan),
       (701.,       nan,       nan,       nan,           nan,        nan),
       (700.,       nan,       nan,       nan,           nan,        nan),
       (699.,       nan,       nan,       nan,           nan,        nan),
       (698.,       nan,       nan,       nan,           nan,        nan),
       (697.,       nan,       nan,       nan,           nan,        nan),
       (696.,       nan,       nan,       nan,           nan,        nan),
       (695.,       nan,       nan,       nan,           nan,        nan),
       (694.,       nan,       nan,       nan,           nan,        nan),
       (693.,       nan,       nan,       nan,           nan,        nan),
       (692.,       nan,       nan,       nan,           nan,        nan),
       (691.,       nan,       nan,       nan,           nan,        nan),
       (690.,       nan,       nan,       nan,           nan,        nan),
       (689.,       nan,       nan,       nan,           nan,        nan),
       (688.,       nan,       nan,       nan,           nan,        nan),
       (687.,       nan,       nan,       nan,           nan,        nan),
       (686.,       nan,       nan,       nan,           nan,        nan),
       (685.,       nan,       nan,       nan,           nan,        nan),
       (684.,       nan,       nan,       nan,           nan,        nan),
       (683.,       nan,       nan,       nan,           nan,        nan),
       (682.,       nan,       nan,       nan,           nan,        nan),
       (681.,       nan,       nan,       nan,           nan,        nan),
       (680.,       nan,       nan,       nan,           nan,        nan),
       (679.,       nan,       nan,       nan,           nan,        nan),
       (678.,       nan,       nan,       nan,           nan,        nan),
       (677.,       nan,       nan,       nan,           nan,        nan),
       (676.,       nan,       nan,       nan,           nan,        nan),
       (675.,       nan,       nan,       nan,           nan,        nan),
       (674.,       nan,       nan,       nan,           nan,        nan),
       (673.,       nan,       nan,       nan,           nan,        nan),
       (672.,       nan,       nan,       nan,           nan,        nan),
       (671.,       nan,       nan,       nan,           nan,        nan),
       (670.,       nan,       nan,       nan,           nan,        nan),
       (669.,       nan,       nan,       nan,           nan,        nan),
       (668.,       nan,       nan,       nan,           nan,        nan),
       (667.,       nan,       nan,       nan,           nan,        nan),
       (666.,       nan,       nan,       nan,           nan,        nan),
       (665.,       nan,       nan,       nan,           nan,        nan),
       (664.,       nan,       nan,       nan,           nan,        nan),
       (663.,       nan,       nan,       nan,           nan,        nan),
       (662.,       nan,       nan,       nan,           nan,        nan),
       (661.,       nan,       nan,       nan,           nan,        nan),
       (660.,       nan,       nan,       nan,           nan,        nan),
       (659.,       nan,       nan,       nan,           nan,        nan),
       (658.,       nan,       nan,       nan,           nan,        nan),
       (657.,       nan,       nan,       nan,           nan,        nan),
       (656.,       nan,       nan,       nan,           nan,        nan),
       (655.,       nan,       nan,       nan,           nan,        nan),
       (654.,       nan,       nan,       nan,           nan,        nan),
       (653.,       nan,       nan,       nan,           nan,        nan),
       (652.,       nan,       nan,       nan,           nan,        nan),
       (651.,       nan,       nan,       nan,           nan,        nan),
       (650.,       nan,       nan,       nan,           nan,        nan),
       (649.,       nan,       nan,       nan,           nan,        nan),
       (648.,       nan,       nan,       nan,           nan,        nan),
       (647.,       nan,       nan,       nan,           nan,        nan),
       (646.,       nan,       nan,       nan,           nan,        nan),
       (645.,       nan,       nan,       nan,           nan,        nan),
       (644.,       nan,       nan,       nan,           nan,        nan),
       (643.,       nan,       nan,       nan,           nan,        nan),
       (642.,       nan,       nan,       nan,           nan,        nan),
       (641.,       nan,       nan,       nan,           nan,        nan),
       (640.,       nan,       nan,       nan,           nan,        nan),
       (639.,       nan,       nan,       nan,           nan,        nan),
       (638.,       nan,       nan,       nan,           nan,        nan),
       (637.,       nan,       nan,       nan,           nan,        nan),
       (636.,       nan,       nan,       nan,           nan,        nan),
       (635.,       nan,       nan,       nan,           nan,        nan),
       (634.,       nan,       nan,       nan,           nan,        nan),
       (633.,       nan,       nan,       nan,           nan,        nan),
       (632.,       nan,       nan,       nan,           nan,        nan),
       (631.,       nan,       nan,       nan,           nan,        nan),
       (630.,       nan,       nan,       nan,           nan,        nan),
       (629.,       nan,       nan,       nan,           nan,        nan),
       (628.,       nan,       nan,       nan,           nan,        nan),
       (627.,       nan,       nan,       nan,           nan,        nan),
       (626.,       nan,       nan,       nan,           nan,        nan),
       (625.,       nan,       nan,       nan,           nan,        nan),
       (624.,       nan,       nan,       nan,           nan,        nan),
       (623.,       nan,       nan,       nan,           nan,        nan),
       (622.,       nan,       nan,       nan,           nan,        nan),
       (621.,       nan,       nan,       nan,           nan,        nan),
       (620.,       nan,       nan,       nan,           nan,        nan),
       (619.,       nan,       nan,       nan,           nan,        nan),
       (618.,       nan,       nan,       nan,           nan,        nan),
       (617.,       nan,       nan,       nan,           nan,        nan),
       (616.,       nan,       nan,       nan,           nan,        nan),
       (615.,       nan,       nan,       nan,           nan,        nan),
       (614.,       nan,       nan,       nan,           nan,        nan),
       (613.,       nan,       nan,       nan,           nan,        nan),
       (612.,       nan,       nan,       nan,           nan,        nan),
       (611.,       nan,       nan,       nan,           nan,        nan),
       (610.,       nan,       nan,       nan,           nan,        nan),
       (609.,       nan,       nan,       nan,           nan,        nan),
       (608.,       nan,       nan,       nan,           nan,        nan),
       (607.,       nan,       nan,       nan,           nan,        nan),
       (606.,       nan,       nan,       nan,           nan,        nan),
       (605.,       nan,       nan,       nan,           nan,        nan),
       (604.,       nan,       nan,       nan,           nan,        nan),
       (603.,       nan,       nan,       nan,           nan,        nan),
       (602.,       nan,       nan,       nan,           nan,        nan),
       (601.,       nan,       nan,       nan,           nan,        nan),
       (600.,       nan,       nan,       nan,           nan,        nan),
       (599.,       nan,       nan,       nan,           nan,        nan),
       (598.,       nan,       nan,       nan,           nan,        nan),
       (597.,       nan,       nan,       nan,           nan,        nan),
       (596.,       nan,       nan,       nan,           nan,        nan),
       (595.,       nan,       nan,       nan,           nan,        nan),
       (594.,       nan,       nan,       nan,           nan,        nan),
       (593.,       nan,       nan,       nan,           nan,        nan),
       (592.,       nan,       nan,       nan,           nan,        nan),
       (591.,       nan,       nan,       nan,           nan,        nan),
       (590.,       nan,       nan,       nan,           nan,        nan),
       (589.,       nan,       nan,       nan,           nan,        nan),
       (588.,       nan,       nan,       nan,           nan,        nan),
       (587.,       nan,       nan,       nan,           nan,        nan),
       (586.,       nan,       nan,       nan,           nan,        nan),
       (585.,       nan,       nan,       nan,           nan,        nan),
       (584.,       nan,       nan,       nan,           nan,        nan),
       (583.,       nan,       nan,       nan,           nan,        nan),
       (582.,       nan,       nan,       nan,           nan,        nan),
       (581.,       nan,       nan,       nan,           nan,        nan),
       (580.,       nan,       nan,       nan,           nan,        nan),
       (579.,       nan,       nan,       nan,           nan,        nan),
       (578.,       nan,       nan,       nan,           nan,        nan),
       (577.,       nan,       nan,       nan,           nan,        nan),
       (576.,       nan,       nan,       nan,           nan,        nan),
       (575.,       nan,       nan,       nan,           nan,        nan),
       (574.,       nan,       nan,       nan,           nan,        nan),
       (573.,       nan,       nan,       nan,           nan,        nan),
       (572.,       nan,       nan,       nan,           nan,        nan),
       (571.,       nan,       nan,       nan,           nan,        nan),
       (570.,       nan,       nan,       nan,           nan,        nan),
       (569.,       nan,       nan,       nan,           nan,        nan),
       (568.,       nan,       nan,       nan,           nan,        nan),
       (567.,       nan,       nan,       nan,           nan,        nan),
       (566.,       nan,       nan,       nan,           nan,        nan),
       (565.,       nan,       nan,       nan,           nan,        nan),
       (564.,       nan,       nan,       nan,           nan,        nan),
       (563.,       nan,       nan,       nan,           nan,        nan),
       (562.,       nan,       nan,       nan,           nan,        nan),
       (561.,       nan,       nan,       nan,           nan,        nan),
       (560.,       nan,       nan,       nan,           nan,        nan),
       (559.,       nan,       nan,       nan,           nan,        nan),
       (558.,       nan,       nan,       nan,           nan,        nan),
       (557.,       nan,       nan,       nan,           nan,        nan),
       (556.,       nan,       nan,       nan,           nan,        nan),
       (555.,       nan,       nan,       nan,           nan,        nan),
       (554.,       nan,       nan,       nan,           nan,        nan),
       (553.,       nan,       nan,       nan,           nan,        nan),
       (552.,       nan,       nan,       nan,           nan,        nan),
       (551.,       nan,       nan,       nan,           nan,        nan),
       (550.,       nan,       nan,       nan,           nan,        nan),
       (549.,       nan,       nan,       nan,           nan,        nan),
       (548.,       nan,       nan,       nan,           nan,        nan),
       (547.,       nan,       nan,       nan,           nan,        nan),
       (546.,       nan,       nan,       nan,           nan,        nan),
       (545.,       nan,       nan,       nan,           nan,        nan),
       (544.,       nan,       nan,       nan,           nan,        nan),
       (543.,       nan,       nan,       nan,           nan,        nan),
       (542.,       nan,       nan,       nan,           nan,        nan),
       (541.,       nan,       nan,       nan,           nan,        nan),
       (540.,       nan,       nan,       nan,           nan,        nan),
       (539.,       nan,       nan,       nan,           nan,        nan),
       (538.,       nan,       nan,       nan,           nan,        nan),
       (537.,       nan,       nan,       nan,           nan,        nan),
       (536.,       nan,       nan,       nan,           nan,        nan),
       (535.,       nan,       nan,       nan,           nan,        nan),
       (534.,       nan,       nan,       nan,           nan,        nan),
       (533.,       nan,       nan,       nan,           nan,        nan),
       (532.,       nan,       nan,       nan,           nan,        nan),
       (531.,       nan,       nan,       nan,           nan,        nan),
       (530.,       nan,       nan,       nan,           nan,        nan),
       (529.,       nan,       nan,       nan,           nan,        nan),
       (528.,       nan,       nan,       nan,           nan,        nan),
       (527.,       nan,       nan,       nan,           nan,        nan),
       (526.,       nan,       nan,       nan,           nan,        nan),
       (525.,       nan,       nan,       nan,           nan,        nan),
       (524.,       nan,       nan,       nan,           nan,        nan),
       (523.,       nan,       nan,       nan,           nan,        nan),
       (522.,       nan,       nan,       nan,           nan,        nan),
       (521.,       nan,       nan,       nan,           nan,        nan),
       (520.,       nan,       nan,       nan,           nan,        nan),
       (519.,       nan,       nan,       nan,           nan,        nan),
       (518.,       nan,       nan,       nan,           nan,        nan),
       (517.,       nan,       nan,       nan,           nan,        nan),
       (516.,       nan,       nan,       nan,           nan,        nan),
       (515.,       nan,       nan,       nan,           nan,        nan),
       (514.,       nan,       nan,       nan,           nan,        nan),
       (513.,       nan,       nan,       nan,           nan,        nan),
       (512.,       nan,       nan,       nan,           nan,        nan),
       (511.,       nan,       nan,       nan,           nan,        nan),
       (510.,       nan,       nan,       nan,           nan,        nan),
       (509.,       nan,       nan,       nan,           nan,        nan),
       (508.,       nan,       nan,       nan,           nan,        nan),
       (507.,       nan,       nan,       nan,           nan,        nan),
       (506.,       nan,       nan,       nan,           nan,        nan),
       (505.,       nan,       nan,       nan,           nan,        nan),
       (504.,       nan,       nan,       nan,           nan,        nan),
       (503.,       nan,       nan,       nan,           nan,        nan),
       (502.,       nan,       nan,       nan,           nan,        nan),
       (501.,       nan,       nan,       nan,           nan,        nan),
       (500.,       nan,       nan,       nan,           nan,        nan),
       (499.,       nan,       nan,       nan,           nan,        nan),
       (498.,       nan,       nan,       nan,           nan,        nan),
       (497.,       nan,       nan,       nan,           nan,        nan),
       (496.,       nan,       nan,       nan,           nan,        nan),
       (495.,       nan,       nan,       nan,           nan,        nan),
       (494.,       nan,       nan,       nan,           nan,        nan),
       (493.,       nan,       nan,       nan,           nan,        nan),
       (492.,       nan,       nan,       nan,           nan,        nan),
       (491.,       nan,       nan,       nan,           nan,        nan),
       (490.,       nan,       nan,       nan,           nan,        nan),
       (489.,       nan,       nan,       nan,           nan,        nan),
       (488.,       nan,       nan,       nan,           nan,        nan),
       (487.,       nan,       nan,       nan,           nan,        nan),
       (486.,       nan,       nan,       nan,           nan,        nan),
       (485.,       nan,       nan,       nan,           nan,        nan),
       (484.,       nan,       nan,       nan,           nan,        nan),
       (483.,       nan,       nan,       nan,           nan,        nan),
       (482.,       nan,       nan,       nan,           nan,        nan),
       (481.,       nan,       nan,       nan,           nan,        nan),
       (480.,       nan,       nan,       nan,           nan,        nan),
       (479.,       nan,       nan,       nan,           nan,        nan),
       (478.,       nan,       nan,       nan,           nan,        nan),
       (477.,       nan,       nan,       nan,           nan,        nan),
       (476.,       nan,       nan,       nan,           nan,        nan),
       (475.,       nan,       nan,       nan,           nan,        nan),
       (474.,       nan,       nan,       nan,           nan,        nan),
       (473.,       nan,       nan,       nan,           nan,        nan),
       (472.,       nan,       nan,       nan,           nan,        nan),
       (471.,       nan,       nan,       nan,           nan,        nan),
       (470.,       nan,       nan,       nan,           nan,        nan),
       (469.,       nan,       nan,       nan,           nan,        nan),
       (468.,       nan,       nan,       nan,           nan,        nan),
       (467.,       nan,       nan,       nan,           nan,        nan),
       (466.,       nan,       nan,       nan,           nan,        nan),
       (465.,       nan,       nan,       nan,           nan,        nan),
       (464.,       nan,       nan,       nan,           nan,        nan),
       (463.,       nan,       nan,       nan,           nan,        nan),
       (462.,       nan,       nan,       nan,           nan,        nan),
       (461.,       nan,       nan,       nan,           nan,        nan),
       (460.,       nan,       nan,       nan,           nan,        nan),
       (459.,       nan,       nan,       nan,           nan,        nan),
       (458.,       nan,       nan,       nan,           nan,        nan),
       (457.,       nan,       nan,       nan,           nan,        nan),
       (456.,       nan,       nan,       nan,           nan,        nan),
       (455.,       nan,       nan,       nan,           nan,        nan),
       (454.,       nan,       nan,       nan,           nan,        nan),
       (453.,       nan,       nan,       nan,           nan,        nan),
       (452.,       nan,       nan,       nan,           nan,        nan),
       (451.,       nan,       nan,       nan,           nan,        nan),
       (450.,       nan,       nan,       nan,           nan,        nan),
       (449.,       nan,       nan,       nan,           nan,        nan),
       (448.,       nan,       nan,       nan,           nan,        nan),
       (447.,       nan,       nan,       nan,           nan,        nan),
       (446.,       nan,       nan,       nan,           nan,        nan),
       (445.,       nan,       nan,       nan,           nan,        nan),
       (444.,       nan,       nan,       nan,           nan,        nan),
       (443.,       nan,       nan,       nan,           nan,        nan),
       (442.,       nan,       nan,       nan,           nan,        nan),
       (441.,       nan,       nan,       nan,           nan,        nan),
       (440.,       nan,       nan,       nan,           nan,        nan),
       (439.,       nan,       nan,       nan,           nan,        nan),
       (438.,       nan,       nan,       nan,           nan,        nan),
       (437.,       nan,       nan,       nan,           nan,        nan),
       (436.,       nan,       nan,       nan,           nan,        nan),
       (435.,       nan,       nan,       nan,           nan,        nan),
       (434.,       nan,       nan,       nan,           nan,        nan),
       (433.,       nan,       nan,       nan,           nan,        nan),
       (432.,       nan,       nan,       nan,           nan,        nan),
       (431.,       nan,       nan,       nan,           nan,        nan),
       (430.,       nan,       nan,       nan,           nan,        nan),
       (429.,       nan,       nan,       nan,           nan,        nan),
       (428.,       nan,       nan,       nan,           nan,        nan),
       (427.,       nan,       nan,       nan,           nan,        nan),
       (426.,       nan,       nan,       nan,           nan,        nan),
       (425.,       nan,       nan,       nan,           nan,        nan),
       (424.,       nan,       nan,       nan,           nan,        nan),
       (423.,       nan,       nan,       nan,           nan,        nan),
       (422.,       nan,       nan,       nan,           nan,        nan),
       (421.,       nan,       nan,       nan,           nan,        nan),
       (420.,       nan,       nan,       nan,           nan,        nan),
       (419.,       nan,       nan,       nan,           nan,        nan),
       (418.,       nan,       nan,       nan,           nan,        nan),
       (417.,       nan,       nan,       nan,           nan,        nan),
       (416.,       nan,       nan,       nan,           nan,        nan),
       (415.,       nan,       nan,       nan,           nan,        nan),
       (414.,       nan,       nan,       nan,           nan,        nan),
       (413.,       nan,       nan,       nan,           nan,        nan),
       (412.,       nan,       nan,       nan,           nan,        nan),
       (411.,       nan,       nan,       nan,           nan,        nan),
       (410.,       nan,       nan,       nan,           nan,        nan),
       (409.,       nan,       nan,       nan,           nan,        nan),
       (408.,       nan,       nan,       nan,           nan,        nan),
       (407.,       nan,       nan,       nan,           nan,        nan),
       (406.,       nan,       nan,       nan,           nan,        nan),
       (405.,       nan,       nan,       nan,           nan,        nan),
       (404.,       nan,       nan,       nan,           nan,        nan),
       (403.,       nan,       nan,       nan,           nan,        nan),
       (402.,       nan,       nan,       nan,           nan,        nan),
       (401.,       nan,       nan,       nan,           nan,        nan),
       (400.,       nan,       nan,       nan,           nan,        nan),
       (399.,       nan,       nan,       nan,           nan,        nan),
       (398.,       nan,       nan,       nan,           nan,        nan),
       (397.,       nan,       nan,       nan,           nan,        nan),
       (396.,       nan,       nan,       nan,           nan,        nan),
       (395.,       nan,       nan,       nan,           nan,        nan),
       (394.,       nan,       nan,       nan,           nan,        nan),
       (393.,       nan,       nan,       nan,           nan,        nan),
       (392.,       nan,       nan,       nan,           nan,        nan),
       (391.,       nan,       nan,       nan,           nan,        nan),
       (390.,       nan,       nan,       nan,           nan,        nan),
       (389.,       nan,       nan,       nan,           nan,        nan),
       (388.,       nan,       nan,       nan,           nan,        nan),
       (387.,       nan,       nan,       nan,           nan,        nan),
       (386.,       nan,       nan,       nan,           nan,        nan),
       (385.,       nan,       nan,       nan,           nan,        nan),
       (384.,       nan,       nan,       nan,           nan,        nan),
       (383.,       nan,       nan,       nan,           nan,        nan),
       (382.,       nan,       nan,       nan,           nan,        nan),
       (381.,       nan,       nan,       nan,           nan,        nan),
       (380.,       nan,       nan,       nan,           nan,        nan),
       (379.,       nan,       nan,       nan,           nan,        nan),
       (378.,       nan,       nan,       nan,           nan,        nan),
       (377.,       nan,       nan,       nan,           nan,        nan),
       (376.,       nan,       nan,       nan,           nan,        nan),
       (375.,       nan,       nan,       nan,           nan,        nan),
       (374.,       nan,       nan,       nan,           nan,        nan),
       (373.,       nan,       nan,       nan,           nan,        nan),
       (372.,       nan,       nan,       nan,           nan,        nan),
       (371.,       nan,       nan,       nan,           nan,        nan),
       (370.,       nan,       nan,       nan,           nan,        nan),
       (369.,       nan,       nan,       nan,           nan,        nan),
       (368.,       nan,       nan,       nan,           nan,        nan),
       (367.,       nan,       nan,       nan,           nan,        nan),
       (366.,       nan,       nan,       nan,           nan,        nan),
       (365.,       nan,       nan,       nan,           nan,        nan),
       (364.,       nan,       nan,       nan,           nan,        nan),
       (363.,       nan,       nan,       nan,           nan,        nan),
       (362.,       nan,       nan,       nan,           nan,        nan),
       (361.,       nan,       nan,       nan,           nan,        nan),
       (360.,       nan,       nan,       nan,           nan,        nan),
       (359.,       nan,       nan,       nan,           nan,        nan),
       (358.,       nan,       nan,       nan,           nan,        nan),
       (357.,       nan,       nan,       nan,           nan,        nan),
       (356.,       nan,       nan,       nan,           nan,        nan),
       (355.,       nan,       nan,       nan,           nan,        nan),
       (354.,       nan,       nan,       nan,           nan,        nan),
       (353.,       nan,       nan,       nan,           nan,        nan),
       (352.,       nan,       nan,       nan,           nan,        nan),
       (351.,       nan,       nan,       nan,           nan,        nan),
       (350.,       nan,       nan,       nan,           nan,        nan),
       (349.,       nan,       nan,       nan,           nan,        nan),
       (348.,       nan,       nan,       nan,           nan,        nan),
       (347.,       nan,       nan,       nan,           nan,        nan),
       (346.,       nan,       nan,       nan,           nan,        nan),
       (345.,       nan,       nan,       nan,           nan,        nan),
       (344.,       nan,       nan,       nan,           nan,        nan),
       (343.,       nan,       nan,       nan,           nan,        nan),
       (342.,       nan,       nan,       nan,           nan,        nan),
       (341.,       nan,       nan,       nan,           nan,        nan),
       (340.,       nan,       nan,       nan,           nan,        nan),
       (339.,       nan,       nan,       nan,           nan,        nan),
       (338.,       nan,       nan,       nan,           nan,        nan),
       (337.,       nan,       nan,       nan,           nan,        nan),
       (336.,       nan,       nan,       nan,           nan,        nan),
       (335.,       nan,       nan,       nan,           nan,        nan),
       (334.,       nan,       nan,       nan,           nan,        nan),
       (333.,       nan,       nan,       nan,           nan,        nan),
       (332.,       nan,       nan,       nan,           nan,        nan),
       (331.,       nan,       nan,       nan,           nan,        nan),
       (330.,       nan,       nan,       nan,           nan,        nan),
       (329.,       nan,       nan,       nan,           nan,        nan),
       (328.,       nan,       nan,       nan,           nan,        nan),
       (327.,       nan,       nan,       nan,           nan,        nan),
       (326.,       nan,       nan,       nan,           nan,        nan),
       (325.,       nan,       nan,       nan,           nan,        nan),
       (324.,       nan,       nan,       nan,           nan,        nan),
       (323.,       nan,       nan,       nan,           nan,        nan),
       (322.,       nan,       nan,       nan,           nan,        nan),
       (321.,       nan,       nan,       nan,           nan,        nan),
       (320.,       nan,       nan,       nan,           nan,        nan),
       (319.,       nan,       nan,       nan,           nan,        nan),
       (318.,       nan,       nan,       nan,           nan,        nan),
       (317.,       nan,       nan,       nan,           nan,        nan),
       (316.,       nan,       nan,       nan,           nan,        nan),
       (315.,       nan,       nan,       nan,           nan,        nan),
       (314.,       nan,       nan,       nan,           nan,        nan),
       (313.,       nan,       nan,       nan,           nan,        nan),
       (312.,       nan,       nan,       nan,           nan,        nan),
       (311.,       nan,       nan,       nan,           nan,        nan),
       (310.,       nan,       nan,       nan,           nan,        nan),
       (309.,       nan,       nan,       nan,           nan,        nan),
       (308.,       nan,       nan,       nan,           nan,        nan),
       (307.,       nan,       nan,       nan,           nan,        nan),
       (306.,       nan,       nan,       nan,           nan,        nan),
       (305.,       nan,       nan,       nan,           nan,        nan),
       (304.,       nan,       nan,       nan,           nan,        nan),
       (303.,       nan,       nan,       nan,           nan,        nan),
       (302.,       nan,       nan,       nan,           nan,        nan),
       (301.,       nan,       nan,       nan,           nan,        nan),
       (300.,       nan,       nan,       nan,           nan,        nan)],
      dtype=[('snapshot_index', '<f4'), ('x', '<f4'), ('y', '<f4'), ('z', '<f4'), ('mass', '<f4'), ('desc_dist', '<f4')])
In [238]:
plt.figure()
plt.scatter(hist["x"], hist["y"], c=hist["snapshot_index"])
plt.show()

plt.figure()
plt.plot(hist["snapshot_index"], hist["mass"])
# m = data["desc_snapshot_index"] > 0
# plt.plot(data["desc_snapshot_index"][m], data["desc_mass"][m])
plt.yscale("log")
plt.show()
No description has been provided for this image
No description has been provided for this image
In [222]:
plt.figure()
plt.scatter(pos[:, 0], pos[:, 1], c=np.log10(mass))
plt.colorbar()

plt.scatter(x[0], x[1], c="r", marker='x')

plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [ ]:

In [ ]:

In [47]:
hist
Out[47]:
array([(951., 284.35236, 246.34824, 370.83707, 2.8412564e+15,        nan),
       (950.,       nan,       nan,       nan,           nan,        nan),
       (949.,       nan,       nan,       nan,           nan,        nan),
       (948.,       nan,       nan,       nan,           nan,        nan),
       (947.,       nan,       nan,       nan,           nan,        nan),
       (946.,       nan,       nan,       nan,           nan,        nan),
       (945.,       nan,       nan,       nan,           nan,        nan),
       (944.,       nan,       nan,       nan,           nan,        nan),
       (943.,       nan,       nan,       nan,           nan,        nan),
       (942.,       nan,       nan,       nan,           nan,        nan),
       (941.,       nan,       nan,       nan,           nan,        nan),
       (940.,       nan,       nan,       nan,           nan,        nan),
       (939.,       nan,       nan,       nan,           nan,        nan),
       (938.,       nan,       nan,       nan,           nan,        nan),
       (937.,       nan,       nan,       nan,           nan,        nan),
       (936.,       nan,       nan,       nan,           nan,        nan),
       (935.,       nan,       nan,       nan,           nan,        nan),
       (934.,       nan,       nan,       nan,           nan,        nan),
       (933., 284.46155, 246.00227, 370.8075 , 2.8477622e+15, 0.36398822),
       (932., 284.4702 , 245.98221, 370.80765, 2.8483010e+15, 0.02185764),
       (931.,       nan,       nan,       nan,           nan,        nan),
       (930.,       nan,       nan,       nan,           nan,        nan),
       (929.,       nan,       nan,       nan,           nan,        nan),
       (928.,       nan,       nan,       nan,           nan,        nan),
       (927., 284.5113 , 245.87349, 370.80716, 2.8455723e+15, 0.11622101),
       (926., 284.5216 , 245.85237, 370.81116, 2.8424150e+15, 0.02384024),
       (925.,       nan,       nan,       nan,           nan,        nan),
       (924., 284.53732, 245.8114 , 370.8111 , 2.8395653e+15, 0.043881  ),
       (923.,       nan,       nan,       nan,           nan,        nan),
       (922.,       nan,       nan,       nan,           nan,        nan),
       (921.,       nan,       nan,       nan,           nan,        nan),
       (920.,       nan,       nan,       nan,           nan,        nan),
       (919.,       nan,       nan,       nan,           nan,        nan),
       (918.,       nan,       nan,       nan,           nan,        nan),
       (917.,       nan,       nan,       nan,           nan,        nan),
       (916.,       nan,       nan,       nan,           nan,        nan),
       (915.,       nan,       nan,       nan,           nan,        nan),
       (914.,       nan,       nan,       nan,           nan,        nan),
       (913.,       nan,       nan,       nan,           nan,        nan),
       (912.,       nan,       nan,       nan,           nan,        nan),
       (911.,       nan,       nan,       nan,           nan,        nan),
       (910.,       nan,       nan,       nan,           nan,        nan),
       (909.,       nan,       nan,       nan,           nan,        nan),
       (908.,       nan,       nan,       nan,           nan,        nan),
       (907.,       nan,       nan,       nan,           nan,        nan),
       (906.,       nan,       nan,       nan,           nan,        nan),
       (905.,       nan,       nan,       nan,           nan,        nan),
       (904.,       nan,       nan,       nan,           nan,        nan),
       (903.,       nan,       nan,       nan,           nan,        nan),
       (902.,       nan,       nan,       nan,           nan,        nan),
       (901.,       nan,       nan,       nan,           nan,        nan),
       (900.,       nan,       nan,       nan,           nan,        nan)],
      dtype=[('snapshot_index', '<f4'), ('x', '<f4'), ('y', '<f4'), ('z', '<f4'), ('mass', '<f4'), ('desc_dist', '<f4')])
In [27]:
data
Out[27]:
array([(951., 2.8871637e+15, 284.3524 , 246.34824, 370.83704, 950., 2.8882882e+15, 2.8788946e+15, 9.3937321e+12, 0.00093918),
       (950., 2.8788946e+15, 286.42444, 244.69951, 373.20593, 949., 2.8756223e+15, 2.8672700e+15, 8.3523876e+12, 0.00110787),
       (949., 2.8672700e+15, 286.40372, 244.72537, 373.17398, 948., 3.8162037e+12, 1.4894010e+12, 2.3268027e+12, 0.81327796),
       (948., 1.4894010e+12, 286.77917, 242.59756, 372.9749 , 947.,           nan,           nan,           nan,        nan)],
      dtype=[('desc_snapshot_index', '<f4'), ('desc_mass', '<f4'), ('desc_x', '<f4'), ('desc_y', '<f4'), ('desc_z', '<f4'), ('prog_snapshot_index', '<f4'), ('prog_totmass', '<f4'), ('mainprog_mass', '<f4'), ('minprog_totmass', '<f4'), ('merger_ratio', '<f4')])
In [28]:
mladen = np.genfromtxt("/mnt/extraspace/rstiskalek/CSiBORG/cleaned_mtree/ramses_out_7444/mergertree_00951_halo-21344979.txt", skip_header=1)
In [31]:
mladen
Out[31]:
array([[ 9.5100000e+02, -6.0000000e-04,  2.1344979e+07,  4.0949790e+15,
         1.3323500e+13,  0.0000000e+00],
       [ 9.5000000e+02,  7.0000000e-04,  2.1390351e+07,  4.0832510e+15,
         7.5558290e+12,  4.2906940e+12],
       [ 9.4900000e+02,  2.1000000e-03,  2.1382973e+07,  4.0667630e+15,
         2.1738350e+12,  1.1263620e+12],
       [ 9.4800000e+02,  3.5000000e-03,  2.1405046e+07,  2.1124770e+12,
         0.0000000e+00,  0.0000000e+00]])
In [ ]:

In [ ]:

In [18]:
plt.figure()
plt.plot(data["desc_snapshot_index"], data["desc_mass"])
m = mladen[:, 0] > 700
plt.plot(mladen[:,0][m], (mladen[:,3][m] - mladen[:, 5][m]) * 0.7)

plt.yscale("log")
plt.show()
No description has been provided for this image
In [ ]:

In [298]:
snaps = paths.get_snapshots(7468, "csiborg")
In [299]:
nsnaps = range(800, 944 + 1)
from tqdm import tqdm
cats = {}
for nsnap in tqdm(nsnaps):
    cats[nsnap] = csiborgtools.read.CSiBORGPHEWCatalogue(
        nsnap, 7468, paths, bounds={"dist": (None, 155.5), "is_main": True})
100%|██████████| 145/145 [01:46<00:00,  1.36it/s]
In [230]:
cats[944]["dist"][cats[944]["hid_to_array_index"][20467619]]
Out[230]:
15.50197501793565
In [454]:
# hid = cats[944]["index"][np.argmax(cats[944]["summed_mass"])]
hid = 20467619
In [455]:
hist = csiborgtools.read.track_halo_manually(cats, hid)
# x, y = csiborgtools.read.track_halo_manually(cats, hid)
100%|██████████| 144/144 [00:00<00:00, 1348.89it/s]
In [456]:
plt.figure()
plt.scatter(hist["snapshot_index"], hist["mass"] / hist["mass"][0], c=hist["desc_dist"])
plt.colorbar()
# plt.yscale("log")
plt.show()
No description has been provided for this image
In [457]:
plt.figure()
plt.scatter(hist["x"], hist["y"], c=hist["snapshot_index"])
plt.colorbar()
plt.show()
No description has been provided for this image
In [458]:
plt.figure()
plt.scatter(hist["snapshot_index"], hist["desc_dist"])

plt.show()
No description has been provided for this image
In [459]:
x = np.arange(len(pos_history))
In [293]:
plt.figure()
plt.plot(dist_history)
plt.show()
No description has been provided for this image
In [276]:
plt.figure()
plt.scatter(pos_history[:, 0], pos_history[:, 1], c=x)
plt.colorbar()
plt.show()


plt.figure()
plt.plot(mass_history)
plt.show()
No description has been provided for this image
No description has been provided for this image
In [148]:
nsnap0 = 944
k = cats[nsnap0]["hid_to_array_index"][hid]
pos = cats[nsnap0]["cartesian_pos"][k]
In [166]:
nsnap = 939
cats[nsnap0]["dist"][k]
indxs = cats[nsnap].select_in_box(pos, 5)
nearby_pos = cats[nsnap]["cartesian_pos"][indxs]
nearby_mass = cats[nsnap]["summed_mass"][indxs]
In [167]:
plt.figure()
plt.scatter(nearby_pos[:, 0], nearby_pos[:, 1], c=np.log10(nearby_mass))
plt.colorbar()

plt.scatter(pos[0], pos[1], c="r", marker="x")
plt.xlim(pos[0] - 5, pos[0] + 5)
plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [50]:
plt.figure()
plt.plot(mass_history)

plt.show()
No description has been provided for this image
In [51]:
plt.figure()
plt.scatter(dist, rank, c=rank)
plt.colorbar()


plt.show()
No description has been provided for this image
In [ ]:

In [147]:
dist
Out[147]:
array([0.03469291, 1.4941071 , 1.6137327 , 1.9338818 , 1.9451369 ,
       1.9745505 , 2.1557822 , 2.1732695 , 2.1866972 , 2.188077  ,
       2.1966248 , 2.2173362 , 2.2315993 , 2.2622092 , 2.3083584 ,
       2.3235521 , 2.3334928 , 2.3339765 , 2.3409498 , 2.3531873 ,
       2.3956246 , 2.4191911 , 2.4279647 , 2.44543   , 2.4778795 ,
       2.4828646 , 2.4840972 , 2.5520175 , 2.5533767 , 2.5614178 ,
       2.5633898 , 2.569979  , 2.585207  , 2.6075015 , 2.6134186 ,
       2.6162403 , 2.6280391 , 2.6483216 , 2.6745644 , 2.675266  ,
       2.7104652 , 2.710785  , 2.717791  , 2.723212  , 2.7351549 ,
       2.7434163 , 2.760779  , 2.786919  , 2.8479278 , 2.855215  ,
       2.8956635 , 2.9201431 , 2.9495463 , 2.9762506 , 3.0421073 ,
       3.051291  , 3.1273162 , 3.2203753 , 3.2434456 , 3.3662832 ,
       3.4216032 , 3.4361768 , 3.4840217 , 3.5633564 , 3.9444454 ],
      dtype=float32)
In [ ]:

In [144]:
np.log10(dx)
Out[144]:
array([15.143617 , 11.506105 , 12.061865 , 11.754903 , 12.1637535,
       11.706644 , 11.527555 , 11.81453  , 12.305587 , 12.008193 ,
       12.468391 , 12.135068 , 12.20031  , 12.3106165, 12.231938 ,
       11.548329 , 12.199055 , 12.237394 , 12.008322 , 12.201574 ,
       11.60354  , 12.199569 , 11.6475315, 12.25819  , 12.761718 ,
       12.20017  , 12.319948 , 11.594081 , 12.582169 , 12.207142 ,
       12.232144 , 12.207256 , 12.191118 , 12.230139 , 12.195937 ,
       12.181732 , 12.241584 , 11.854617 , 12.172837 , 11.583755 ,
       11.785564 , 12.170507 , 12.247758 , 12.217982 , 12.198726 ,
       12.500331 , 12.096592 , 11.642915 , 12.206478 , 12.189644 ,
       12.199734 , 12.29456  , 13.210453 , 12.040288 , 12.19934  ,
       11.566858 , 11.664642 , 12.346448 , 11.688704 , 12.551069 ,
       12.198501 , 12.084832 , 12.190776 , 12.184218 , 12.298596 ],
      dtype=float32)
In [143]:
np.log10(mass)
Out[143]:
15.47017
In [140]:
np.abs(np.log10(dx / mass))
Out[140]:
array([0.3265535, 3.9640648, 3.408305 , 3.7152677, 3.3064172, 3.7635257,
       3.9426146, 3.6556396, 3.1645837, 3.4619775, 3.001779 , 3.3351023,
       3.2698607, 3.1595533, 3.2382321, 3.9218407, 3.2711155, 3.2327757,
       3.461849 , 3.2685957, 3.8666298, 3.2706015, 3.8226388, 3.21198  ,
       2.7084525, 3.2700012, 3.1502216, 3.876089 , 2.888002 , 3.263028 ,
       3.2380261, 3.262914 , 3.279052 , 3.2400315, 3.2742333, 3.2884378,
       3.2285862, 3.615553 , 3.297333 , 3.8864155, 3.684606 , 3.299663 ,
       3.2224126, 3.252188 , 3.2714448, 2.9698398, 3.3735788, 3.8272555,
       3.2636924, 3.2805262, 3.2704363, 3.1756098, 2.2597172, 3.4298823,
       3.2708306, 3.9033115, 3.8055282, 3.1237218, 3.7814672, 2.9191008,
       3.27167  , 3.3853385, 3.2793946, 3.2859516, 3.1715744],
      dtype=float32)
In [ ]:

In [107]:
plt.figure()
plt.scatter(dist, dm)
plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [133]:
pcat = csiborgtools.read.CSiBORGPHEWCatalogue(
    940, 7468, paths, bounds={"dist": (None, 155.5), "is_main": True})
In [134]:
k = np.argmax(pcat["summed_mass"])
In [135]:
# center = pcat["cartesian_pos"][k]
In [136]:
indxs = pcat.select_in_box(center, 10)
In [137]:
pos = pcat["cartesian_pos"][indxs]
mass = np.log10(pcat["summed_mass"][indxs])
In [138]:
plt.figure()
plt.scatter(pos[:, 0], pos[:, 1], c=mass)
plt.colorbar()
plt.scatter(center[0], center[1], c="r", marker="x")


plt.show()
No description has been provided for this image
In [55]:
pcat["is_main"].sum() / len(pcat)
Out[55]:
0.34072953251081034
In [46]:
pcat.keys()
Out[46]:
['940/index',
 '940/mass_cl',
 '940/parent',
 '940/summed_mass',
 '940/ultimate_parent',
 '940/x',
 '940/y',
 '940/z',
 'cartesian_pos',
 'spherical_pos',
 'dist']
In [42]:
x = pcat["mass_cl"]
In [43]:
y = pcat["summed_mass"]
In [44]:
plt.figure()
plt.scatter(x, y, s=1)

plt.xscale("log")
plt.yscale("log")
plt.show()
No description has been provided for this image
In [23]:
indxs = pcat.select_in_box([338.85, 338.85, 338.85], 40, False)
In [24]:
pos = pcat["cartesian_pos"][indxs]

# indxs
In [26]:
)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb Cell 6 line 1
----> <a href='vscode-notebook-cell://ssh-remote%2Bglamdring.physics.ox.ac.uk/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb#Y112sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a> indxs.keys()

AttributeError: 'list' object has no attribute 'keys'
In [25]:
plt.figure()
plt.scatter(pos[:, 0], pos[:, 2])

plt.show()
No description has been provided for this image
In [ ]:

In [105]:
clumparr = reader.read_phew_clumps(951, 7444, True)

# clindex = clumparr['index']
# clindex_to_array_index = {clindex[i]: i for i in range(clindex.size)}
In [ ]:

In [ ]:

In [103]:
x, y = reader.find_parents(clumparr, verbose=True)
Ultimate clump: 100%|██████████| 541043/541043 [00:00<00:00, 1486022.37it/s]
In [98]:
m = clumparr["index"] == clumparr["parent"]

plt.figure()
plt.scatter(clumparr["mass_cl"][m], y[m], s=1)

plt.xscale('log')
plt.yscale('log')

plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [55]:
clindex = clumparr["index"]
parindex = clumparr["parent"]

clindex_to_array_index = {clindex[i]: i for i in range(clindex.size)}
In [70]:
i = 2333

cl = clindex[i]
par = parindex[i]
print(cl, par)

while cl != par:
    print(cl, par)

    element = clindex_to_array_index[par]

    cl = clindex[element]
    par = parindex[element]
    
cl, par
74641 57778
74641 57778
57778 57675
Out[70]:
(57675, 57675)
In [75]:
clumparr[1338]
Out[75]:
(57675, 0, 57675, 2235., 328.36127, 247.63182, 338.77762, 80.28267, 227150.55, 515.31525, 2.6499586e+12, 209.85902)
In [74]:
clindex_to_array_index[57675]
Out[74]:
1338
In [57]:
cl, par
Out[57]:
(16, 16)
In [49]:
clumparr[92]
Out[49]:
(283, 0, 244, 3475., 330.3978, 200.27946, 299.4979, 80.01514, 166588.81, 533.9489, 5.616282e+12, 34.512917)
In [53]:
clindex_to_array_index[244]
Out[53]:
66
In [54]:
clumparr[66]
Out[54]:
(244, 1, 16, 2946., 330.4896, 200.48395, 299.27054, 81.122246, 184821.58, 539.8623, 4.571406e+12, 38.29027)
In [44]:
clumparr[]
Out[44]:
(283, 0, 244, 3475., 330.3978, 200.27946, 299.4979, 80.01514, 166588.81, 533.9489, 5.616282e+12, 34.512917)
In [47]:
clindex_to_array_index[16]
Out[47]:
13
In [48]:
clumparr[13]
Out[48]:
(16, 0, 16, 6257., 330.06946, 200.00058, 299.66724, 80.11476, 782089.5, 536.5994, 9.229422e+12, 107.78266)
In [ ]:

In [26]:
x[0] == clumparr["index"]
Out[26]:
array([ True, False, False, ..., False, False, False])
In [31]:
m = clumparr["index"] == clumparr["parent"]

plt.figure()
plt.scatter(clumparr["mass_cl"][~m], y[~m], s=0.5)

plt.axline((1e12, 1e12), slope=1, color="black", linestyle="--")

plt.xscale("log")
plt.yscale("log")

plt.show()
No description has been provided for this image
In [71]:
clindex_to_array_index = {clindex[i]: i for i in range(clindex.size)}
In [ ]:
a
In [110]:
clumparr2 = reader.read_phew_clumps(951, 7444, True)
<__array_function__ internals>:200: RuntimeWarning: invalid value encountered in cast
Ultimate clump: 100%|██████████| 541043/541043 [00:00<00:00, 1174427.26it/s]
 73%|███████▎  | 395059/541043 [00:22<00:08, 17753.93it/s]
The Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. View Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details.
In [109]:
m.sum() / m.size
Out[109]:
0.339305748341629
In [107]:
plt.figure()

m = clumparr2["index"] == clumparr2["parent"]


# plt.scatter(clumparr2["mass_cl"][m], clumparr2["summed_mass"][m], s=1)
plt.scatter(clumparr2["mass_cl"][~m], clumparr2["summed_mass"][~m], s=1)

plt.axline((1e12, 1e12), slope=1, color="black", linestyle="--")


plt.xscale("log")
plt.yscale("log")


plt.show()
No description has been provided for this image
In [ ]:

In [ ]:

In [83]:
clindex
Out[83]:
array([       1,        2,        3, ..., 21824378, 21824463, 21825308],
      dtype=int32)
In [86]:
par = 21824378

%timeit clindex_to_array_index[par]
1.22 µs ± 15 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
In [85]:
clindex_to_array_index[par]
Out[85]:
541040
In [87]:
%timeit numpy.where(clindex == par)[0][0]
2.69 ms ± 130 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
In [ ]:

In [ ]:

In [18]:
numpy.where(clumparr["index"] == 3)[0][0]
Out[18]:
2
In [25]:
def is_sorted_np(arr):
    return np.all(arr[:-1] <= arr[1:])
In [29]:
from numba import jit
In [47]:
def is_sorted(arr):
    for i in range(1, len(arr)):
        if arr[i-1] > arr[i]:
            return False
    return True

@jit(nopython=True, boundscheck=False, fastmath=True)
def is_sorted2(arr):
    for i in range(1, len(arr)):
        if arr[i-1] > arr[i]:
            return False
    return True
In [49]:
is_sorted2(clumparr["index"])
Out[49]:
True
In [ ]:

In [28]:
%timeit is_sorted_np(clumparr["index"])
2.59 ms ± 85.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
In [20]:
ks = np.argsort(clumparr["index"])
In [24]:
np.alltrue(clumparr["index"][ks] == clumparr["index"])
Out[24]:
True
In [ ]:

In [ ]:

In [10]:
reader.find_parents(clumparr, verbose=True)
Ultimate clump:   6%|▌         | 33740/541043 [01:01<15:18, 552.21it/s] 
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb Cell 5 line 1
----> <a href='vscode-notebook-cell://ssh-remote%2Bglamdring.physics.ox.ac.uk/mnt/zfsusers/rstiskalek/csiborgtools/notebooks/test.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a> reader.find_parents(clumparr, verbose=True)

File ~/csiborgtools/csiborgtools/read/readsim.py:426, in CSiBORGReader.find_parents(self, clumparr, verbose)
    422 par = parindex[i]  # First we try the parent of this clump
    423 while tocont:
    424     # The element of the array corresponding to the parent clump to
    425     # the one we're looking at
--> 426     element = numpy.where(clindex == par)[0][0]
    427     # We stop if the parent is its own parent, so a main halo. Else
    428     # move onto the parent of the parent. Eventually this is its
    429     # own parent and we stop, with ultimate parent=par
    430     if clindex[element] == clindex[element]:

File <__array_function__ internals>:177, in where(*args, **kwargs)

KeyboardInterrupt: 
In [ ]: