diffsky 0.2.1__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. {diffsky-0.2.1 → diffsky-0.2.2}/CHANGES.rst +5 -0
  2. {diffsky-0.2.1 → diffsky-0.2.2}/PKG-INFO +1 -1
  3. diffsky-0.2.2/diffsky/_version.py +1 -0
  4. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_cores.py +10 -0
  5. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_mock.py +36 -0
  6. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_cores.py +35 -0
  7. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_mock.py +109 -0
  8. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/lc_mock_production.py +43 -7
  9. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/lightcone_utils.py +113 -3
  10. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/load_lc_cf.py +15 -6
  11. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/load_lc_cf_synthetic.py +5 -5
  12. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/metadata_sfh_mock.py +70 -12
  13. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/test_lightcone_utils.py +146 -0
  14. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/test_load_lc_cf.py +1 -1
  15. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/testing_data/phi_haccytrees_tdata.txt +20 -0
  16. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/testing_data/redshift_haccytrees_tdata.txt +20 -0
  17. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/testing_data/theta_haccytrees_tdata.txt +20 -0
  18. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/testing_data/x_haccytrees_tdata.txt +20 -0
  19. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/testing_data/y_haccytrees_tdata.txt +20 -0
  20. diffsky-0.2.2/diffsky/data_loaders/hacc_utils/tests/testing_data/z_haccytrees_tdata.txt +20 -0
  21. diffsky-0.2.2/diffsky/data_loaders/io_utils.py +51 -0
  22. diffsky-0.2.2/diffsky/experimental/diagnostics/check_smhm.py +93 -0
  23. diffsky-0.2.2/diffsky/experimental/diagnostics/tests/test_check_smhm.py +13 -0
  24. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/mc_lightcone_halos.py +193 -92
  25. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_mc_lightcone_halos.py +60 -66
  26. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/__init__.py +19 -0
  27. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/disc_lcdm_hmf_params.txt +19 -0
  28. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/disc_lcdm_hmf_params_all.txt +19 -0
  29. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/hmf_param_reader.py +39 -0
  30. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/lj_hmf_params.txt +19 -0
  31. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/lj_hmf_params_all.txt +19 -0
  32. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf.py +4 -4
  33. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_subs.py +8 -4
  34. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/test_imports.py +5 -0
  35. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/test_lj_hmf.py +61 -0
  36. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_cuml_density_all.txt +30 -0
  37. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_cuml_density_cens.txt +30 -0
  38. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_logmp_bins.txt +30 -0
  39. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_redshift_bins.txt +7 -0
  40. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_cuml_density_all.txt +30 -0
  41. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_cuml_density_cens.txt +30 -0
  42. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_logmp_bins.txt +30 -0
  43. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_redshift_bins.txt +7 -0
  44. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.lgcuml_density.npy +0 -0
  45. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.lgcuml_density.npy +0 -0
  46. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.lgcuml_density.npy +0 -0
  47. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.lgcuml_density.npy +0 -0
  48. diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.lgcuml_density.npy +0 -0
  49. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_model.py +12 -8
  50. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/mc_hosts.py +20 -14
  51. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/measure_hmf.py +9 -1
  52. diffsky-0.2.2/diffsky/mass_functions/scripts/discovery_lcdm_calibration/fit_hmf_disc_lcdm.py +158 -0
  53. diffsky-0.2.2/diffsky/mass_functions/scripts/discovery_lcdm_calibration/measure_hmf_target_data_hacc.py +156 -0
  54. diffsky-0.2.2/diffsky/mass_functions/scripts/discovery_lcdm_calibration/run_hmf_tabulation_disc_lcdm.sh +21 -0
  55. diffsky-0.2.2/diffsky/mass_functions/scripts/last_journey_calibration/fit_hmf_lj.py +153 -0
  56. diffsky-0.2.2/diffsky/mass_functions/scripts/last_journey_calibration/measure_hmf_target_data_hacc.py +146 -0
  57. {diffsky-0.2.1/scripts/mass_functions → diffsky-0.2.2/diffsky/mass_functions/scripts/smdpl_calibration}/measure_smdpl_hmf_script.py +2 -3
  58. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/crossmatch_utils.py +1 -1
  59. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky.egg-info/PKG-INFO +1 -1
  60. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky.egg-info/SOURCES.txt +38 -5
  61. diffsky-0.2.2/docs/source/demo_mc_lightcones.ipynb +270 -0
  62. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/demos.rst +1 -0
  63. diffsky-0.2.2/scripts/LJ_LC_JOBS/generate_sfh_mock_jobs.py +109 -0
  64. diffsky-0.2.1/scripts/make_sfh_lc_mock_lj_serial.py → diffsky-0.2.2/scripts/LJ_LC_JOBS/make_sfh_lc_mock_lj.py +1 -1
  65. diffsky-0.2.2/scripts/__init__.py +0 -0
  66. diffsky-0.2.2/scripts/inspect_lc_mock.py +65 -0
  67. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/inspect_lightcone_mock.py +1 -1
  68. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/lc_cf_crossmatch_script.py +22 -7
  69. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/make_sfh_lightcone_last_journey.py +1 -1
  70. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/make_sfh_lj_mock.py +10 -15
  71. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/tabulate_coreforest_overlap.py +6 -5
  72. diffsky-0.2.2/scripts/tests/__init__.py +0 -0
  73. diffsky-0.2.1/diffsky/_version.py +0 -1
  74. diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_lightcone_utils.py +0 -50
  75. diffsky-0.2.1/diffsky/data_loaders/io_utils.py +0 -21
  76. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/__init__.py +0 -4
  77. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.lgcuml_density.npy +0 -0
  78. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.lgcuml_density.npy +0 -0
  79. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.lgcuml_density.npy +0 -0
  80. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.lgcuml_density.npy +0 -0
  81. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.lgcuml_density.npy +0 -0
  82. diffsky-0.2.1/scripts/JOBS/run_sfh_mock_serial.sh +0 -28
  83. diffsky-0.2.1/scripts/make_diffsky_lj_mock.py +0 -492
  84. {diffsky-0.2.1 → diffsky-0.2.2}/.coveragerc +0 -0
  85. {diffsky-0.2.1 → diffsky-0.2.2}/.git_archival.txt +0 -0
  86. {diffsky-0.2.1 → diffsky-0.2.2}/.gitattributes +0 -0
  87. {diffsky-0.2.1 → diffsky-0.2.2}/.github/dependabot.yml +0 -0
  88. {diffsky-0.2.1 → diffsky-0.2.2}/.github/workflows/linting.yaml +0 -0
  89. {diffsky-0.2.1 → diffsky-0.2.2}/.github/workflows/monthly-warning-test.yaml +0 -0
  90. {diffsky-0.2.1 → diffsky-0.2.2}/.github/workflows/test_latest_releases.yaml +0 -0
  91. {diffsky-0.2.1 → diffsky-0.2.2}/.github/workflows/test_main_branch.yaml +0 -0
  92. {diffsky-0.2.1 → diffsky-0.2.2}/.github/workflows/tests_cron.yaml +0 -0
  93. {diffsky-0.2.1 → diffsky-0.2.2}/.gitignore +0 -0
  94. {diffsky-0.2.1 → diffsky-0.2.2}/.readthedocs.yml +0 -0
  95. {diffsky-0.2.1 → diffsky-0.2.2}/LICENSE.rst +0 -0
  96. {diffsky-0.2.1 → diffsky-0.2.2}/README.rst +0 -0
  97. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/__init__.py +0 -0
  98. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/__init__.py +0 -0
  99. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diagnostics/__init__.py +0 -0
  100. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diagnostics/plot_fburstpop.py +0 -0
  101. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diagnostics/plot_tburstpop.py +0 -0
  102. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diagnostics/tests/__init__.py +0 -0
  103. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diagnostics/tests/test_plot_fburstpop.py +0 -0
  104. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diagnostics/tests/test_plot_tburstpop.py +0 -0
  105. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diffburstpop.py +0 -0
  106. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diffqburstpop.py +0 -0
  107. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diffqburstpop_mono.py +0 -0
  108. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/diffqburstpop_mono_noise.py +0 -0
  109. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/fburstpop.py +0 -0
  110. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/fburstpop_mono.py +0 -0
  111. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/freqburst.py +0 -0
  112. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/freqburst_mono.py +0 -0
  113. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tburstpop.py +0 -0
  114. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/__init__.py +0 -0
  115. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_diffburstpop.py +0 -0
  116. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_diffqburstpop.py +0 -0
  117. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_diffqburstpop_mono.py +0 -0
  118. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_diffqburstpop_mono_noise.py +0 -0
  119. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_fburstpop.py +0 -0
  120. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_fburstpop_mono.py +0 -0
  121. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_freqburst.py +0 -0
  122. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_freqburst_mono.py +0 -0
  123. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/burstpop/tests/test_tburstpop.py +0 -0
  124. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/cosmos_utils/__init__.py +0 -0
  125. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/cosmos_utils/cosmos_mstar_model.py +0 -0
  126. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/cosmos_utils/tests/__init__.py +0 -0
  127. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/cosmos_utils/tests/test_cosmos_mstar_model.py +0 -0
  128. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/__init__.py +0 -0
  129. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/cosmos20_loader.py +0 -0
  130. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/__init__.py +0 -0
  131. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/data_validation/__init__.py +0 -0
  132. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/data_validation/tests/__init__.py +0 -0
  133. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/defaults.py +0 -0
  134. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/hacc_core_utils.py +0 -0
  135. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/load_hacc_cores.py +0 -0
  136. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/load_lc_mock.py +0 -0
  137. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/__init__.py +0 -0
  138. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/test_defaults.py +0 -0
  139. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/test_hacc_core_utils.py +0 -0
  140. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/test_lc_mock_production.py +0 -0
  141. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/test_load_hacc_cores.py +0 -0
  142. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/hacc_utils/tests/testing_data/lc_cores-decomposition.txt +0 -0
  143. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/mpi_utils.py +0 -0
  144. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/tests/__init__.py +0 -0
  145. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/tests/test_cosmos_loader.py +0 -0
  146. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/tests/test_imports.py +0 -0
  147. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/tests/testing_data/__init__.py +0 -0
  148. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/tests/testing_data/cosmos20_shasum.dat +0 -0
  149. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/data_loaders/um_binary_loader.py +0 -0
  150. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/__init__.py +0 -0
  151. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/plot_delta_mag_burstiness.py +0 -0
  152. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/plot_diffstar_fq.py +0 -0
  153. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/tests/__init__.py +0 -0
  154. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/tests/test_plot_delta_mag_burstiness.py +0 -0
  155. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/tests/test_plot_diffstar_fq.py +0 -0
  156. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diagnostics/utils.py +0 -0
  157. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/diffndhist.py +0 -0
  158. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/__init__.py +0 -0
  159. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/avpop.py +0 -0
  160. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/avpop_flex.py +0 -0
  161. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/avpop_mono.py +0 -0
  162. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/deltapop.py +0 -0
  163. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/diagnostics/__init__.py +0 -0
  164. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/diagnostics/plot_avpop_flex.py +0 -0
  165. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/diagnostics/plot_funopop_simple.py +0 -0
  166. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/diagnostics/tests/__init__.py +0 -0
  167. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/diagnostics/tests/test_plot_avpop_flex.py +0 -0
  168. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/diagnostics/tests/test_plot_funopop_simple.py +0 -0
  169. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/funopop.py +0 -0
  170. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/funopop_simple.py +0 -0
  171. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/funopop_ssfr.py +0 -0
  172. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/sbl18_dust.py +0 -0
  173. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/sbl18_dust_kernels.py +0 -0
  174. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/sbl18_dustpop.py +0 -0
  175. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/__init__.py +0 -0
  176. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_avpop.py +0 -0
  177. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_avpop_flex.py +0 -0
  178. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_avpop_mono.py +0 -0
  179. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_deltapop.py +0 -0
  180. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_funopop_model.py +0 -0
  181. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_funopop_simple.py +0 -0
  182. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_funopop_ssfr.py +0 -0
  183. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_sbl18_dustpop.py +0 -0
  184. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_tw_dust_kernels.py +0 -0
  185. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_tw_dustpop.py +0 -0
  186. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_tw_dustpop_mono.py +0 -0
  187. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_tw_dustpop_mono_noise.py +0 -0
  188. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tests/test_tw_dustpop_new.py +0 -0
  189. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tw_dust.py +0 -0
  190. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tw_dust_kernels.py +0 -0
  191. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tw_dustpop.py +0 -0
  192. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tw_dustpop_mono.py +0 -0
  193. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tw_dustpop_mono_noise.py +0 -0
  194. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/dustpop/tw_dustpop_new.py +0 -0
  195. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/__init__.py +0 -0
  196. {diffsky-0.2.1/diffsky/experimental/dspspop → diffsky-0.2.2/diffsky/experimental/diagnostics}/__init__.py +0 -0
  197. {diffsky-0.2.1/diffsky/experimental/dspspop → diffsky-0.2.2/diffsky/experimental/diagnostics}/tests/__init__.py +0 -0
  198. {diffsky-0.2.1/diffsky/experimental/tests → diffsky-0.2.2/diffsky/experimental/dspspop}/__init__.py +0 -0
  199. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/boris_dust.py +0 -0
  200. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/burstshapepop.py +0 -0
  201. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/dust_deltapop.py +0 -0
  202. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/dustpop.py +0 -0
  203. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/lgavpop.py +0 -0
  204. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/lgfburstpop.py +0 -0
  205. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/nagaraj22_dust.py +0 -0
  206. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/photpop.py +0 -0
  207. {diffsky-0.2.1/diffsky/fake_sats → diffsky-0.2.2/diffsky/experimental/dspspop/tests}/__init__.py +0 -0
  208. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/tests/test_attavpop.py +0 -0
  209. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/tests/test_boris_dust.py +0 -0
  210. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/tests/test_burstshapepop.py +0 -0
  211. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/tests/test_dustdeltapop.py +0 -0
  212. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/tests/test_lgfburstpop.py +0 -0
  213. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/dspspop/tests/test_photpop.py +0 -0
  214. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/lc_phot_kern.py +0 -0
  215. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/mc_diffsky_phot.py +0 -0
  216. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/phot_utils.py +0 -0
  217. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/photometry_interpolation.py +0 -0
  218. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/precompute_ssp_phot.py +0 -0
  219. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/scatter.py +0 -0
  220. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/ssp_err_pop.py +0 -0
  221. {diffsky-0.2.1/diffsky/fake_sats → diffsky-0.2.2/diffsky/experimental}/tests/__init__.py +0 -0
  222. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_lc_phot_kern.py +0 -0
  223. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_mc_diffsky_phot.py +0 -0
  224. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_photometry_interpolation.py +0 -0
  225. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_precompute_ssp_phot.py +0 -0
  226. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_scatter.py +0 -0
  227. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/experimental/tests/test_ssp_err_pop.py +0 -0
  228. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils → diffsky-0.2.2/diffsky/fake_sats}/__init__.py +0 -0
  229. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/ellipsoidal_nfw_phase_space.py +0 -0
  230. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/ellipsoidal_velocities.py +0 -0
  231. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/halo_boundary_functions.py +0 -0
  232. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/nfw_config_space.py +0 -0
  233. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/rotations3d.py +0 -0
  234. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations → diffsky-0.2.2/diffsky/fake_sats/tests}/__init__.py +0 -0
  235. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/test_ellipsoidal_nfw_phase_space.py +0 -0
  236. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/test_halo_boundary_functions.py +0 -0
  237. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/test_mc_ellipticial_velocities.py +0 -0
  238. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/test_nfw_config_space.py +0 -0
  239. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/test_rotations3d.py +0 -0
  240. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/testing_data/halo_mass_ht_test.txt +0 -0
  241. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/testing_data/halo_radius_200c_ht_test.txt +0 -0
  242. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/tests/testing_data/redshift_ht_test.txt +0 -0
  243. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/fake_sats/vector_utilities.py +0 -0
  244. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/__init__.py +0 -0
  245. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/ccshmf_model.py +0 -0
  246. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/README.rst +0 -0
  247. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations/tests → diffsky-0.2.2/diffsky/mass_functions/fitting_utils}/__init__.py +0 -0
  248. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics → diffsky-0.2.2/diffsky/mass_functions/fitting_utils/calibrations}/__init__.py +0 -0
  249. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/calibrations/hacc_core_shmf_params.py +0 -0
  250. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics → diffsky-0.2.2/diffsky/mass_functions/fitting_utils/calibrations}/tests/__init__.py +0 -0
  251. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/calibrations/tests/test_hacc_core_shmf_params.py +0 -0
  252. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/tests → diffsky-0.2.2/diffsky/mass_functions/fitting_utils/diagnostics}/__init__.py +0 -0
  253. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/diagnostics/hmf_fit_diagnostics.py +0 -0
  254. {diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations → diffsky-0.2.2/diffsky/mass_functions/fitting_utils/diagnostics}/tests/__init__.py +0 -0
  255. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/diagnostics/tests/test_hmf_fit_diagnostics.py +0 -0
  256. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/fit_ccshmf.py +0 -0
  257. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/fit_ccshmf_kernels.py +0 -0
  258. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/fit_hmf_kernels.py +0 -0
  259. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/fit_hmf_model.py +0 -0
  260. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/fitting_helpers.py +0 -0
  261. {diffsky-0.2.1/diffsky/mass_functions/io_utils → diffsky-0.2.2/diffsky/mass_functions/fitting_utils/tests}/__init__.py +0 -0
  262. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf.py +0 -0
  263. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf_kernels.py +0 -0
  264. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_kernels.py +0 -0
  265. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_model.py +0 -0
  266. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_fitting_helpers.py +0 -0
  267. {diffsky-0.2.1/diffsky/mass_functions/kernels → diffsky-0.2.2/diffsky/mass_functions/hmf_calibrations/tests}/__init__.py +0 -0
  268. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/tests/test_smdpl_hmf.py +0 -0
  269. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.logmp_bins.npy +0 -0
  270. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.logmp_bins.npy +0 -0
  271. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.logmp_bins.npy +0 -0
  272. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.logmp_bins.npy +0 -0
  273. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.logmp_bins.npy +0 -0
  274. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/io_utils/README.txt +0 -0
  275. {diffsky-0.2.1/diffsky/mass_functions/kernels/tests → diffsky-0.2.2/diffsky/mass_functions/io_utils}/__init__.py +0 -0
  276. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/io_utils/loader.py +0 -0
  277. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/io_utils/smdpl_helpers.py +0 -0
  278. {diffsky-0.2.1/diffsky/mass_functions/smhm_kernels → diffsky-0.2.2/diffsky/mass_functions/kernels}/__init__.py +0 -0
  279. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/kernels/ccshmf_kernels.py +0 -0
  280. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/kernels/hmf_kernels.py +0 -0
  281. {diffsky-0.2.1/diffsky/mass_functions/smhm_kernels → diffsky-0.2.2/diffsky/mass_functions/kernels}/tests/__init__.py +0 -0
  282. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/kernels/tests/test_ccshmf_kernels.py +0 -0
  283. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/kernels/tests/test_hmf_kernels.py +0 -0
  284. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/mc_diffmah_tpeak.py +0 -0
  285. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/mc_subs.py +0 -0
  286. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/mc_tinfall.py +0 -0
  287. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/measure_ccshmf.py +0 -0
  288. {diffsky-0.2.1/scripts/mass_functions → diffsky-0.2.2/diffsky/mass_functions/scripts/smdpl_calibration}/fit_smdpl_hmf_script.py +0 -0
  289. {diffsky-0.2.1/diffsky/mass_functions/tests → diffsky-0.2.2/diffsky/mass_functions/smhm_kernels}/__init__.py +0 -0
  290. {diffsky-0.2.1/diffsky/mass_functions/tests/testing_data → diffsky-0.2.2/diffsky/mass_functions/smhm_kernels/tests}/__init__.py +0 -0
  291. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/smhm_kernels/tests/test_threeroll_smhm.py +0 -0
  292. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/smhm_kernels/threeroll_kernels.py +0 -0
  293. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/smhm_kernels/threeroll_smhm.py +0 -0
  294. {diffsky-0.2.1/diffsky/mass_functions/upweighting → diffsky-0.2.2/diffsky/mass_functions/tests}/__init__.py +0 -0
  295. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_ccshmf.py +0 -0
  296. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_hmf_model.py +0 -0
  297. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_mc_diffmah_tpeak.py +0 -0
  298. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_mc_hosts.py +0 -0
  299. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_mc_subs.py +0 -0
  300. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_mc_tinfall.py +0 -0
  301. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/test_measure_hmf.py +0 -0
  302. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/README.txt +0 -0
  303. {diffsky-0.2.1/diffsky/mass_functions/upweighting/tests → diffsky-0.2.2/diffsky/mass_functions/tests/testing_data}/__init__.py +0 -0
  304. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_12.32.txt +0 -0
  305. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_13.00.txt +0 -0
  306. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_13.55.txt +0 -0
  307. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_14.08.txt +0 -0
  308. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_12.31.txt +0 -0
  309. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_12.99.txt +0 -0
  310. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_13.51.txt +0 -0
  311. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_14.05.txt +0 -0
  312. {diffsky-0.2.1/diffsky/merging → diffsky-0.2.2/diffsky/mass_functions/upweighting}/__init__.py +0 -0
  313. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/upweighting/namedtuple_cat_utils.py +0 -0
  314. {diffsky-0.2.1/diffsky/merging/diagnostics → diffsky-0.2.2/diffsky/mass_functions/upweighting/tests}/__init__.py +0 -0
  315. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/upweighting/tests/test_mc_gen_upweighting.py +0 -0
  316. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/upweighting/upweighting.py +0 -0
  317. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mass_functions/utils.py +0 -0
  318. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/mc_diffsky.py +0 -0
  319. {diffsky-0.2.1/diffsky/merging/diagnostics/tests → diffsky-0.2.2/diffsky/merging}/__init__.py +0 -0
  320. {diffsky-0.2.1/diffsky/merging/tests → diffsky-0.2.2/diffsky/merging/diagnostics}/__init__.py +0 -0
  321. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/merging/diagnostics/plot_pmerge_vs_time.py +0 -0
  322. {diffsky-0.2.1/diffsky/param_utils → diffsky-0.2.2/diffsky/merging/diagnostics/tests}/__init__.py +0 -0
  323. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/merging/diagnostics/tests/test_plot_pmerge_vs_time.py +0 -0
  324. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/merging/fitmerge_multi_redshift.py +0 -0
  325. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/merging/merging_model.py +0 -0
  326. {diffsky-0.2.1/diffsky/param_utils → diffsky-0.2.2/diffsky/merging}/tests/__init__.py +0 -0
  327. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/merging/tests/test_fitmerge_multi_redshift.py +0 -0
  328. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/merging/tests/test_merging_model.py +0 -0
  329. {diffsky-0.2.1/diffsky/ssp_err_model → diffsky-0.2.2/diffsky/param_utils}/__init__.py +0 -0
  330. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/param_utils/diffsky_param_wrapper.py +0 -0
  331. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/param_utils/spspop_param_utils.py +0 -0
  332. {diffsky-0.2.1/diffsky/ssp_err_model → diffsky-0.2.2/diffsky/param_utils}/tests/__init__.py +0 -0
  333. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/param_utils/tests/test_diffsky_param_wrapper.py +0 -0
  334. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/param_utils/tests/test_spspop_param_utils.py +0 -0
  335. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/phot_utils.py +0 -0
  336. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/sbl18_photgrad.py +0 -0
  337. {diffsky-0.2.1/diffsky/sumstats → diffsky-0.2.2/diffsky/ssp_err_model}/__init__.py +0 -0
  338. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/ssp_err_model/ssp_err_model.py +0 -0
  339. {diffsky-0.2.1/diffsky/sumstats → diffsky-0.2.2/diffsky/ssp_err_model}/tests/__init__.py +0 -0
  340. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/ssp_err_model/tests/test_ssp_err_model.py +0 -0
  341. {diffsky-0.2.1/diffsky/systematics → diffsky-0.2.2/diffsky/sumstats}/__init__.py +0 -0
  342. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/sumstats/diffndhist.py +0 -0
  343. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/sumstats/smhm.py +0 -0
  344. {diffsky-0.2.1/diffsky/systematics → diffsky-0.2.2/diffsky/sumstats}/tests/__init__.py +0 -0
  345. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/sumstats/tests/test_smhm.py +0 -0
  346. {diffsky-0.2.1/diffsky/tests → diffsky-0.2.2/diffsky/systematics}/__init__.py +0 -0
  347. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/systematics/ssp_errors.py +0 -0
  348. {diffsky-0.2.1/diffsky/tests/testing_data → diffsky-0.2.2/diffsky/systematics/tests}/__init__.py +0 -0
  349. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/systematics/tests/test_ssp_errors.py +0 -0
  350. {diffsky-0.2.1/diffsky/utils → diffsky-0.2.2/diffsky}/tests/__init__.py +0 -0
  351. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_dependencies.py +0 -0
  352. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_diffndhist.py +0 -0
  353. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_diffsky_setup.py +0 -0
  354. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_mc_diffsky.py +0 -0
  355. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_phot_utils.py +0 -0
  356. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_sbl18_photgrad.py +0 -0
  357. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tests/test_tw_photgrad.py +0 -0
  358. {diffsky-0.2.1/scripts → diffsky-0.2.2/diffsky/tests/testing_data}/__init__.py +0 -0
  359. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/tw_photgrad.py +0 -0
  360. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/__init__.py +0 -0
  361. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/sfh_utils.py +0 -0
  362. {diffsky-0.2.1/scripts → diffsky-0.2.2/diffsky/utils}/tests/__init__.py +0 -0
  363. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/tests/test_crossmatch_utils.py +0 -0
  364. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/tests/test_sfh_utils.py +0 -0
  365. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/tests/test_tw_utils.py +0 -0
  366. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/tests/test_utility_funcs.py +0 -0
  367. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/tw_utils.py +0 -0
  368. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky/utils/utility_funcs.py +0 -0
  369. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky.egg-info/dependency_links.txt +0 -0
  370. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky.egg-info/requires.txt +0 -0
  371. {diffsky-0.2.1 → diffsky-0.2.2}/diffsky.egg-info/top_level.txt +0 -0
  372. {diffsky-0.2.1 → diffsky-0.2.2}/docs/Makefile +0 -0
  373. {diffsky-0.2.1 → diffsky-0.2.2}/docs/make.bat +0 -0
  374. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/citation.rst +0 -0
  375. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/conf.py +0 -0
  376. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/demo_diffmahpop_t_peak.ipynb +0 -0
  377. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/index.rst +0 -0
  378. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/installation.rst +0 -0
  379. {diffsky-0.2.1 → diffsky-0.2.2}/docs/source/rtd_environment.yaml +0 -0
  380. {diffsky-0.2.1 → diffsky-0.2.2}/pyproject.toml +0 -0
  381. {diffsky-0.2.1 → diffsky-0.2.2}/requirements.txt +0 -0
  382. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/tests/test_inspect_lightcone_mock.py +0 -0
  383. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/tests/test_lc_cf_crossmatch_script.py +0 -0
  384. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/tests/test_make_sfh_lj_mock.py +0 -0
  385. {diffsky-0.2.1 → diffsky-0.2.2}/scripts/tests/test_tabulate_coreforest_overlap.py +0 -0
  386. {diffsky-0.2.1 → diffsky-0.2.2}/setup.cfg +0 -0
  387. {diffsky-0.2.1 → diffsky-0.2.2}/setup.py +0 -0
@@ -1,3 +1,8 @@
1
+ 0.2.2 (unreleased)
2
+ -------------------
3
+ - Change little h convention of Monte Carlo halo generators (https://github.com/ArgonneCPAC/diffsky/pull/184)
4
+
5
+
1
6
  0.2.1 (2025-06-30)
2
7
  -------------------
3
8
  - Incorporate synthetic lightcone into mock production pipeline (https://github.com/ArgonneCPAC/diffsky/pull/165)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsky
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Library for differentiable generation of synthetic skies
5
5
  Author-email: Andrew Hearin <ahearin@anl.gov>
6
6
  License: BSD 3-Clause License
@@ -0,0 +1 @@
1
+ __version__ = '0.2.2'
@@ -87,3 +87,13 @@ def test_check_top_host_idx_tag_agreement():
87
87
  if len(msg) > 0:
88
88
  bn = os.path.basename(fn_lc_cores)
89
89
  raise ValueError(f"{bn} has mismatching top_host_idx")
90
+
91
+
92
+ @pytest.mark.skipif(not CAN_RUN_LJ_DATA_TESTS, reason=POBOY_MSG)
93
+ def test_check_host_pos_is_near_galaxy_pos():
94
+ """"""
95
+ bnpat = vlcc.BNPAT_LC_CORES.format("*", "*")
96
+ fn_list = glob(os.path.join(DRN_LC_CORES_POBOY, bnpat))
97
+ for fn_lc_cores in fn_list:
98
+ msg = vlcc.check_host_pos_is_near_galaxy_pos(fn_lc_cores)
99
+ assert len(msg) == 0, msg
@@ -0,0 +1,36 @@
1
+ """"""
2
+
3
+ import os
4
+ from glob import glob
5
+
6
+ import pytest
7
+
8
+ from .. import validate_lc_mock as vlcm
9
+
10
+ DRN_LC_MOCK_POBOY = "/Users/aphearin/work/DATA/LastJourney/lc_mock"
11
+
12
+ try:
13
+ from haccytrees import Simulation as HACCSim # noqa
14
+
15
+ HAS_HACCYTREES = True
16
+ except ImportError:
17
+ HAS_HACCYTREES = False
18
+
19
+
20
+ try:
21
+ assert os.path.isdir(DRN_LC_MOCK_POBOY)
22
+ CAN_RUN_LJ_DATA_TESTS = True
23
+ except AssertionError:
24
+ CAN_RUN_LJ_DATA_TESTS = False
25
+ CAN_RUN_LJ_DATA_TESTS = CAN_RUN_LJ_DATA_TESTS & HAS_HACCYTREES
26
+ POBOY_MSG = "This test only runs on poboy machine with haccytrees installed"
27
+
28
+
29
+ @pytest.mark.skipif(not CAN_RUN_LJ_DATA_TESTS, reason=POBOY_MSG)
30
+ def test_check_all_columns_are_finite():
31
+ """"""
32
+ bnpat = vlcm.BNPAT_LC_MOCK.format("*", "*")
33
+ fn_list = glob(os.path.join(DRN_LC_MOCK_POBOY, bnpat))
34
+ for fn_lc_cores in fn_list:
35
+ msg = vlcm.check_all_columns_are_finite(fn_lc_cores)
36
+ assert len(msg) == 0
@@ -102,3 +102,38 @@ def check_top_host_idx_tag_agreement(fn_lc_cores, lc_cores=None):
102
102
  msg.append(s)
103
103
 
104
104
  return msg
105
+
106
+
107
+ def check_host_pos_is_near_galaxy_pos(fn_lc_cores, lc_cores=None):
108
+ """host position should be reasonably close to galaxy position"""
109
+ if lc_cores is None:
110
+ lc_cores = load_flat_hdf5(fn_lc_cores)
111
+
112
+ bn = os.path.basename(fn_lc_cores)
113
+
114
+ host_x = lc_cores["x"][lc_cores["top_host_idx"]]
115
+ host_y = lc_cores["y"][lc_cores["top_host_idx"]]
116
+ host_z = lc_cores["z"][lc_cores["top_host_idx"]]
117
+ dx = lc_cores["x"] - host_x
118
+ dy = lc_cores["y"] - host_y
119
+ dz = lc_cores["z"] - host_z
120
+ host_dist = np.sqrt(dx**2 + dy**2 + dz**2)
121
+
122
+ msg = []
123
+ n_very_far = np.sum(host_dist > 5)
124
+ if n_very_far > 10:
125
+ s = f"{n_very_far} galaxies in {bn} with "
126
+ s += "unexpectedly large xyz distance from top_host_idx"
127
+ msg.append(s)
128
+
129
+ msk_cen = lc_cores["central"]
130
+ mean_sat_dist = np.abs(np.mean(host_dist[~msk_cen]))
131
+ std_sat_dist = np.std(host_dist[~msk_cen])
132
+ if mean_sat_dist > 1:
133
+ s = f"<dist_sat>={mean_sat_dist:.2f} Mpc/h is unexpectedly large"
134
+ msg.append(s)
135
+ if std_sat_dist > 0.5:
136
+ s = f"std(dist_sat)={std_sat_dist:.2f} Mpc/h is unexpectedly large"
137
+ msg.append(s)
138
+
139
+ return msg
@@ -0,0 +1,109 @@
1
+ """ """
2
+
3
+ import os
4
+
5
+ import h5py
6
+ import numpy as np
7
+
8
+ from .. import load_flat_hdf5
9
+
10
+ BNPAT_LC_MOCK = "data-{0}.{1}.diffsky_gals.hdf5"
11
+
12
+ HLINE = "----------"
13
+
14
+
15
+ def get_lc_mock_data_report(fn_lc_mock):
16
+ report = dict()
17
+ data = load_flat_hdf5(fn_lc_mock, dataset="data")
18
+
19
+ msg = check_all_columns_are_finite(fn_lc_mock, data=data)
20
+ if len(msg) > 0:
21
+ report["finite_colums"] = msg
22
+
23
+ msg = check_host_pos_is_near_galaxy_pos(fn_lc_mock, data=data)
24
+ if len(msg) > 0:
25
+ report["nfw_host_distance"] = msg
26
+
27
+ msg = check_all_data_columns_have_metadata(fn_lc_mock)
28
+ if len(msg) > 0:
29
+ report["column_metadata"] = msg
30
+
31
+ return report
32
+
33
+
34
+ def write_lc_mock_report_to_disk(report, fn_lc_mock, drn_report):
35
+ if len(report) > 0:
36
+ bn_report = os.path.basename(fn_lc_mock).replace(".hdf5", ".report.txt")
37
+ fn_report = os.path.join(drn_report, bn_report)
38
+ with open(fn_report, "w") as fn_out:
39
+ for test_key, test_result in report.items():
40
+ fn_out.write(test_key + "\n")
41
+ for line in test_result:
42
+ fn_out.write(line + "\n")
43
+ fn_out.write(HLINE + "\n")
44
+
45
+
46
+ def check_all_columns_are_finite(fn_lc_mock, data=None):
47
+ bn = os.path.basename(fn_lc_mock)
48
+
49
+ if data is None:
50
+ data = load_flat_hdf5(fn_lc_mock, dataset="data")
51
+
52
+ msg = []
53
+ for key, arr in data.items():
54
+ if not np.all(np.isfinite(arr)):
55
+ s = f"Column {key} in {bn} has either NaN or inf"
56
+ msg.append(s)
57
+
58
+ return msg
59
+
60
+
61
+ def check_all_data_columns_have_metadata(fn_lc_mock):
62
+
63
+ msg = []
64
+ with h5py.File(fn_lc_mock, "r") as hdf:
65
+ for key in hdf["data"].keys():
66
+ try:
67
+ unit = hdf["data/" + key].attrs["unit"]
68
+ assert len(unit) > 0
69
+ description = hdf["data/" + key].attrs["description"]
70
+ assert len(description) > 0
71
+ except (KeyError, AssertionError):
72
+ s = f"{key} is missing metadata"
73
+ msg.append(s)
74
+ return msg
75
+
76
+
77
+ def check_host_pos_is_near_galaxy_pos(fn_lc_mock, data=None):
78
+ """host position should be reasonably close to galaxy position"""
79
+ if data is None:
80
+ data = load_flat_hdf5(fn_lc_mock)
81
+
82
+ bn = os.path.basename(fn_lc_mock)
83
+
84
+ host_x = data["x"][data["top_host_idx"]]
85
+ host_y = data["y"][data["top_host_idx"]]
86
+ host_z = data["z"][data["top_host_idx"]]
87
+ dx = data["x_nfw"] - host_x
88
+ dy = data["y_nfw"] - host_y
89
+ dz = data["z_nfw"] - host_z
90
+ host_dist = np.sqrt(dx**2 + dy**2 + dz**2)
91
+
92
+ msg = []
93
+ n_very_far = np.sum(host_dist > 5)
94
+ if n_very_far > 10:
95
+ s = f"{n_very_far} galaxies in {bn} with "
96
+ s += "unexpectedly large xyz distance from top_host_idx"
97
+ msg.append(s)
98
+
99
+ msk_cen = data["central"]
100
+ mean_sat_dist = np.abs(np.mean(host_dist[~msk_cen]))
101
+ std_sat_dist = np.std(host_dist[~msk_cen])
102
+ if mean_sat_dist > 1.0:
103
+ s = f"<dist_sat>={mean_sat_dist:.2f} Mpc/h is unexpectedly large"
104
+ msg.append(s)
105
+ if std_sat_dist > 1.0:
106
+ s = f"std(dist_sat)={std_sat_dist:.2f} Mpc/h is unexpectedly large"
107
+ msg.append(s)
108
+
109
+ return msg
@@ -18,11 +18,43 @@ from jax import random as jran
18
18
  from ...fake_sats import halo_boundary_functions as hbf
19
19
  from ...fake_sats import nfw_config_space as nfwcs
20
20
  from ...utils.sfh_utils import get_logsm_logssfr_at_t_obs
21
+ from . import lightcone_utils as hlu
21
22
  from . import load_lc_cf
22
23
 
23
24
  LC_CF_BNPAT = "lc_cores-{0}.{1}.diffsky_data.hdf5"
24
25
  LC_MOCK_BNPAT = LC_CF_BNPAT.replace("diffsky_data", "diffsky_gals")
25
26
 
27
+ shapes_1 = [f"infall_fof_halo_eigS1{x}" for x in ("X", "Y", "Z")]
28
+ shapes_2 = [f"infall_fof_halo_eigS2{x}" for x in ("X", "Y", "Z")]
29
+ shapes_3 = [f"infall_fof_halo_eigS3{x}" for x in ("X", "Y", "Z")]
30
+ SHAPE_KEYS = (*shapes_1, *shapes_2, *shapes_3)
31
+ TOP_HOST_SHAPE_KEYS = ["top_host_" + key for key in SHAPE_KEYS]
32
+
33
+ LC_DATA_KEYS_OUT = (
34
+ "core_tag",
35
+ "x",
36
+ "y",
37
+ "z",
38
+ "x_nfw",
39
+ "y_nfw",
40
+ "z_nfw",
41
+ "top_host_idx",
42
+ "central",
43
+ "ra_nfw",
44
+ "dec_nfw",
45
+ )
46
+
47
+ DIFFSKY_DATA_KEYS_OUT = (
48
+ "x_host",
49
+ "y_host",
50
+ "z_host",
51
+ "vx",
52
+ "vy",
53
+ "vz",
54
+ "logmp_obs_host",
55
+ *TOP_HOST_SHAPE_KEYS,
56
+ )
57
+
26
58
 
27
59
  def write_lc_sfh_mock_to_disk(fnout, lc_data, diffsky_data):
28
60
  with h5py.File(fnout, "w") as hdf_out:
@@ -47,24 +79,24 @@ def write_lc_sfh_mock_to_disk(fnout, lc_data, diffsky_data):
47
79
  hdf_out["data/logsm_obs"] = diffsky_data["logsm_obs"]
48
80
  hdf_out["data/logssfr_obs"] = diffsky_data["logssfr_obs"]
49
81
 
50
- hdf_out["data/z_true"] = lc_data["z_true"]
82
+ hdf_out["data/redshift_true"] = lc_data["redshift_true"]
51
83
  hdf_out["data/ra"] = lc_data["phi"]
52
84
  hdf_out["data/dec"] = np.pi / 2.0 - lc_data["theta"]
53
85
  hdf_out["data/snapnum"] = lc_data["snapnum"]
54
86
 
55
- lc_data_keys_out = ("core_tag", "x", "y", "z", "top_host_idx", "central")
56
- for key in lc_data_keys_out:
87
+ for key in LC_DATA_KEYS_OUT:
57
88
  key_out = "data/" + key
58
89
  hdf_out[key_out] = lc_data[key]
59
90
 
60
- diffsky_data_keys_out = ("x_host", "y_host", "z_host", "logmp_obs_host")
61
- for key in diffsky_data_keys_out:
91
+ for key in DIFFSKY_DATA_KEYS_OUT:
62
92
  key_out = "data/" + key
63
93
  hdf_out[key_out] = diffsky_data[key]
64
94
 
65
95
 
66
96
  def add_sfh_quantities_to_mock(sim_info, lc_data, diffsky_data, ran_key):
67
- lc_data["t_obs"] = flat_wcdm.age_at_z(lc_data["z_true"], *sim_info.cosmo_params)
97
+ lc_data["t_obs"] = flat_wcdm.age_at_z(
98
+ lc_data["redshift_true"], *sim_info.cosmo_params
99
+ )
68
100
 
69
101
  mah_params, msk_has_diffmah_fit = load_lc_cf.get_imputed_mah_params(
70
102
  ran_key, diffsky_data, lc_data, sim_info.lgt0
@@ -132,7 +164,7 @@ def reposition_satellites(sim_info, lc_data, diffsky_data, ran_key, fixed_conc=5
132
164
  diffsky_data["y_host"] = host_pos[:, 1]
133
165
  diffsky_data["z_host"] = host_pos[:, 2]
134
166
 
135
- args = (10**host_logmp_obs, sim_info.cosmo_params, lc_data["z_true"], "200m")
167
+ args = (10**host_logmp_obs, sim_info.cosmo_params, lc_data["redshift_true"], "200m")
136
168
  host_radius_mpc = hbf.halo_mass_to_halo_radius(*args) / 1000.0
137
169
 
138
170
  n_cores = host_logmp_obs.shape[0]
@@ -152,6 +184,10 @@ def reposition_satellites(sim_info, lc_data, diffsky_data, ran_key, fixed_conc=5
152
184
  lc_data["y_nfw"] = new_pos[:, 1]
153
185
  lc_data["z_nfw"] = new_pos[:, 2]
154
186
 
187
+ ra, dec = hlu.get_ra_dec(lc_data["x_nfw"], lc_data["y_nfw"], lc_data["z_nfw"])
188
+ lc_data["ra_nfw"] = ra
189
+ lc_data["dec_nfw"] = dec
190
+
155
191
  return lc_data, diffsky_data
156
192
 
157
193
 
@@ -8,7 +8,9 @@ from glob import glob
8
8
  import h5py
9
9
  import numpy as np
10
10
  from diffmah.defaults import DEFAULT_MAH_PARAMS
11
+ from dsps.cosmology import flat_wcdm
11
12
  from jax import jit as jjit
13
+ from jax import numpy as jnp
12
14
  from jax import vmap
13
15
 
14
16
  from .. import load_flat_hdf5
@@ -23,10 +25,18 @@ SQDEG_OF_SPHERE = SQDEG_PER_STER * 4 * np.pi
23
25
  TOP_HOST_MAH_KEYS = ["top_host_" + key for key in DEFAULT_MAH_PARAMS._fields]
24
26
  SECONDARY_HOST_MAH_KEYS = ["sec_host_" + key for key in DEFAULT_MAH_PARAMS._fields]
25
27
 
28
+ shapes_1 = [f"infall_fof_halo_eigS1{x}" for x in ("X", "Y", "Z")]
29
+ shapes_2 = [f"infall_fof_halo_eigS2{x}" for x in ("X", "Y", "Z")]
30
+ shapes_3 = [f"infall_fof_halo_eigS3{x}" for x in ("X", "Y", "Z")]
31
+ SHAPE_KEYS = [*shapes_1, *shapes_2, *shapes_3]
32
+ TOP_HOST_SHAPE_KEYS = ["top_host_" + key for key in SHAPE_KEYS]
33
+
34
+
26
35
  LC_PATCH_OUT_KEYS = (
27
36
  *DEFAULT_MAH_PARAMS._fields,
28
37
  *TOP_HOST_MAH_KEYS,
29
38
  *SECONDARY_HOST_MAH_KEYS,
39
+ *TOP_HOST_SHAPE_KEYS,
30
40
  "loss",
31
41
  "n_points_per_fit",
32
42
  "indx_t_ult_inf",
@@ -34,6 +44,9 @@ LC_PATCH_OUT_KEYS = (
34
44
  "n_cf_match",
35
45
  "mp_obs",
36
46
  "mp0",
47
+ "vx",
48
+ "vy",
49
+ "vz",
37
50
  )
38
51
  LC_PATCH_OUT_INT_KEYS = (
39
52
  "n_points_per_fit",
@@ -69,6 +82,89 @@ def jnp_take_matrix(matrix, indxarr):
69
82
  return _jnp_take_vmap(matrix, indxarr)
70
83
 
71
84
 
85
+ @jjit
86
+ def get_theta_phi(x, y, z):
87
+ """Compute lightcone angles from simulation xyz coords
88
+
89
+ Parameters
90
+ ----------
91
+ x,y,z : array, shape (n, )
92
+ Cartesian coords in any units
93
+
94
+ Returns
95
+ -------
96
+ theta : array, shape (n, )
97
+ colatitude in radians
98
+ 0 < θ < π
99
+
100
+ phi : array, shape (n, )
101
+ longitude in radians
102
+ 0 < φ < 2π
103
+
104
+ """
105
+ rsq = x * x + y * y + z * z
106
+ r = jnp.sqrt(rsq)
107
+ theta = jnp.arccos(z / r)
108
+ phi = jnp.arctan2(y, x) + jnp.pi
109
+ return theta, phi
110
+
111
+
112
+ @jjit
113
+ def get_ra_dec(x, y, z):
114
+ """Compute ra, dec in degrees from simulation xyz coords
115
+
116
+ Parameters
117
+ ----------
118
+ x,y,z : array, shape (n, )
119
+ Cartesian coords in any units
120
+
121
+ Returns
122
+ -------
123
+ ra : array, shape (n, )
124
+ 0 < ra < 360
125
+
126
+ dec : array, shape (n, )
127
+ -90 < dec < 90
128
+
129
+ """
130
+ theta, phi = get_theta_phi(x, y, z)
131
+ ra, dec = _get_lon_lat_from_theta_phi(theta, phi)
132
+ return ra, dec
133
+
134
+
135
+ @jjit
136
+ def _get_lon_lat_from_theta_phi(theta, phi):
137
+ lon = jnp.degrees(phi)
138
+ lat = 90.0 - jnp.degrees(theta)
139
+ return lon, lat
140
+
141
+
142
+ @jjit
143
+ def get_redshift_from_xyz(x_mpch, y_mpch, z_mpch, cosmo_params):
144
+ """Compute redshift from simulation xyz coords
145
+
146
+ Parameters
147
+ ----------
148
+ x,y,z : array, shape (n, )
149
+ Cartesian coords in Mpc/h
150
+
151
+ Returns
152
+ -------
153
+ redshift : array, shape (n, )
154
+
155
+ """
156
+ d_mpch = jnp.sqrt(x_mpch**2 + y_mpch**2 + z_mpch**2)
157
+ d_mpc = d_mpch / cosmo_params.h
158
+
159
+ z_table = jnp.linspace(0, 20, 1_000)
160
+ d_table = flat_wcdm.comoving_distance(
161
+ z_table, cosmo_params.Om0, cosmo_params.w0, cosmo_params.wa, cosmo_params.h
162
+ )
163
+ redshift = jnp.interp(d_mpc, d_table, z_table)
164
+
165
+ return redshift
166
+
167
+
72
168
  def read_lc_ra_dec_patch_decomposition(fn):
73
169
  collector = []
74
170
  with open(fn, "r") as f:
@@ -207,6 +303,12 @@ def get_diffsky_quantities_for_lc_patch(
207
303
 
208
304
  lc_patch_data_out["n_cf_match"][msk_olap] += 1
209
305
 
306
+ # Matchup core velocities
307
+ _keys = ("vx", "vy", "vz")
308
+ _olap_vel = [cf_matrices[key][olap_chunk_idx][:, timestep_idx] for key in _keys]
309
+ for key, v in zip(_keys, _olap_vel):
310
+ lc_patch_data_out[key][msk_olap] = v
311
+
210
312
  # Matchup mah_params
211
313
  _keys = (*DEFAULT_MAH_PARAMS._fields, "loss", "n_points_per_fit")
212
314
  _olap_data = [cf_diffmah_data[key][olap_chunk_idx] for key in _keys]
@@ -215,11 +317,18 @@ def get_diffsky_quantities_for_lc_patch(
215
317
 
216
318
  # Matchup uber host_mah_params
217
319
  mah_keys = DEFAULT_MAH_PARAMS._fields
218
- host_mah_keys = TOP_HOST_MAH_KEYS
219
- _olap_ult_host_data = [
320
+ _olap_ult_host_mah_data = [
220
321
  cf_diffmah_data[key][olap_chunk_ult_host_idx] for key in mah_keys
221
322
  ]
222
- for host_key, x in zip(host_mah_keys, _olap_ult_host_data):
323
+ for host_key, x in zip(TOP_HOST_MAH_KEYS, _olap_ult_host_mah_data):
324
+ lc_patch_data_out[host_key][msk_olap] = x
325
+
326
+ # Matchup uber host shapes
327
+ _olap_ult_host_shape_data = [
328
+ cf_matrices[key][:, timestep_idx][olap_chunk_ult_host_idx]
329
+ for key in SHAPE_KEYS
330
+ ]
331
+ for host_key, x in zip(TOP_HOST_SHAPE_KEYS, _olap_ult_host_shape_data):
223
332
  lc_patch_data_out[host_key][msk_olap] = x
224
333
 
225
334
  # Matchup secondary host_mah_params
@@ -388,3 +497,4 @@ def get_a_range_of_lc_cores_file(bname_lc_cores, sim_name):
388
497
  a_min_expected, a_max_expected = aarr[indx_step], aarr[indx_step + 1]
389
498
 
390
499
  return a_min_expected, a_max_expected
500
+ return a_min_expected, a_max_expected
@@ -21,7 +21,7 @@ try:
21
21
  except ImportError:
22
22
  HAS_HACCYTREES = False
23
23
 
24
- SIM_INFO_KEYS = ("sim", "cosmo_params", "z_sim", "t_sim", "lgt0", "fb")
24
+ SIM_INFO_KEYS = ("sim", "cosmo_params", "z_sim", "t_sim", "lgt0", "fb", "num_subvols")
25
25
  DiffskySimInfo = namedtuple("DiffskySimInfo", SIM_INFO_KEYS)
26
26
 
27
27
 
@@ -38,7 +38,16 @@ def get_diffsky_info_from_hacc_sim(sim_name):
38
38
  lgt0 = np.log10(t0)
39
39
  fb = sim.cosmo.Omega_b / sim.cosmo.Omega_m
40
40
 
41
- diffsky_info = DiffskySimInfo(sim, cosmo_params, z_sim, t_sim, lgt0, fb)
41
+ if sim_name == "LastJourney":
42
+ num_subvols = 256
43
+ elif sim_name in ("DiscoveryLCDM", "DiscoveryW0WA"):
44
+ num_subvols = 96
45
+ else:
46
+ num_subvols = np.nan
47
+
48
+ diffsky_info = DiffskySimInfo(
49
+ sim, cosmo_params, z_sim, t_sim, lgt0, fb, num_subvols
50
+ )
42
51
 
43
52
  return diffsky_info
44
53
 
@@ -51,9 +60,9 @@ def load_lc_diffsky_patch_data(fn_lc_diffsky, indir_lc_data):
51
60
  fn_lc = os.path.join(indir_lc_data, bn_lc)
52
61
  lc_data = load_flat_hdf5(fn_lc)
53
62
 
54
- lc_data["z_true"] = 1 / lc_data["scale_factor"] - 1
63
+ lc_data["redshift_true"] = 1 / lc_data["scale_factor"] - 1
55
64
 
56
- assert lc_data["z_true"].shape[0] == diffsky_data["logm0"].shape[0]
65
+ assert lc_data["redshift_true"].shape[0] == diffsky_data["logm0"].shape[0]
57
66
 
58
67
  return lc_data, diffsky_data
59
68
 
@@ -82,9 +91,9 @@ def collect_lc_diffsky_data(fn_list, drn_lc_data=None):
82
91
  for key in lc_data_collector[0].keys():
83
92
  lc_data[key] = np.concatenate([x[key] for x in lc_data_collector])
84
93
 
85
- lc_data["z_true"] = 1 / lc_data["scale_factor"] - 1
94
+ lc_data["redshift_true"] = 1 / lc_data["scale_factor"] - 1
86
95
 
87
- assert lc_data["z_true"].shape[0] == diffsky_data["logm0"].shape[0]
96
+ assert lc_data["redshift_true"].shape[0] == diffsky_data["logm0"].shape[0]
88
97
 
89
98
  return lc_data, diffsky_data
90
99
 
@@ -38,10 +38,10 @@ def load_lc_diffsky_patch_data(fn_lc_cores, sim_name, ran_key, lgmp_min, lgmp_ma
38
38
  diffsky_data = mclh.mc_lightcone_host_halo_diffmah(
39
39
  *args, logmp_cutoff=11.0, lgmp_max=lgmp_max
40
40
  )
41
- diffsky_data["z_true"] = diffsky_data["z_obs"]
41
+ diffsky_data["redshift_true"] = diffsky_data["z_obs"]
42
42
  del diffsky_data["z_obs"]
43
43
 
44
- diffsky_data["top_host_idx"] = np.arange(len(diffsky_data["z_true"])).astype(int)
44
+ diffsky_data["top_host_idx"] = np.arange(len(diffsky_data["redshift_true"])).astype(int)
45
45
  for key in diffsky_data["mah_params"]._fields:
46
46
  diffsky_data[key] = getattr(diffsky_data["mah_params"], key)
47
47
 
@@ -55,10 +55,10 @@ def load_lc_diffsky_patch_data(fn_lc_cores, sim_name, ran_key, lgmp_min, lgmp_ma
55
55
  diffsky_data.pop("mah_params")
56
56
 
57
57
  for key in ("x", "y", "z", "x_host", "y_host", "z_host", "ra", "dec"):
58
- diffsky_data[key] = np.zeros(len(diffsky_data["z_true"])) - 1.0
58
+ diffsky_data[key] = np.zeros(len(diffsky_data["redshift_true"])) - 1.0
59
59
 
60
- ZZ = np.zeros(len(diffsky_data["z_true"]))
61
- diffsky_data["core_tag"] = -np.ones(len(diffsky_data["z_true"])).astype(int)
60
+ ZZ = np.zeros(len(diffsky_data["redshift_true"]))
61
+ diffsky_data["core_tag"] = -np.ones(len(diffsky_data["redshift_true"])).astype(int)
62
62
  diffsky_data["has_diffmah_fit"] = ZZ.astype(int) + 1
63
63
  diffsky_data["n_points_per_fit"] = ZZ.astype(int) + 10_000
64
64
  diffsky_data["loss"] = ZZ + 1e-5
@@ -9,8 +9,8 @@ from . import load_lc_cf
9
9
  column_metadata = dict()
10
10
  column_metadata["central"] = ("None", "0 for satellite, 1 for central")
11
11
  column_metadata["core_tag"] = ("None", "ID of the simulated core")
12
- column_metadata["ra"] = ("None", "right ascension")
13
- column_metadata["dec"] = ("None", "declination")
12
+ column_metadata["ra"] = ("degrees", "right ascension")
13
+ column_metadata["dec"] = ("degrees", "declination")
14
14
 
15
15
  column_metadata["early_index"] = ("None", "Diffmah parameter for halo mass assembly")
16
16
  column_metadata["late_index"] = ("None", "Diffmah parameter for halo mass assembly")
@@ -42,19 +42,77 @@ column_metadata["logssfr_obs"] = ("1/yr ", "Log10(SFR/Mstar) at time of observat
42
42
 
43
43
  column_metadata["top_host_idx"] = ("None", "Index of host core")
44
44
 
45
- column_metadata["x"] = ("Mpc", "Cartesian coordinate of lightcone position")
46
- column_metadata["y"] = ("Mpc", "Cartesian coordinate of lightcone position")
47
- column_metadata["z"] = ("Mpc", "Cartesian coordinate of lightcone position")
45
+ column_metadata["x"] = ("Mpc/h", "Comoving coordinate of lightcone position")
46
+ column_metadata["y"] = ("Mpc/h", "Comoving coordinate of lightcone position")
47
+ column_metadata["z"] = ("Mpc/h", "Comoving coordinate of lightcone position")
48
48
 
49
- column_metadata["x_host"] = ("Mpc", "Cartesian coord of host halo lightcone position")
50
- column_metadata["y_host"] = ("Mpc", "Cartesian coord of host halo lightcone position")
51
- column_metadata["z_host"] = ("Mpc", "Cartesian coord of host halo lightcone position")
49
+ column_metadata["x_host"] = ("Mpc/h", "Comoving coord of host halo lightcone position")
50
+ column_metadata["y_host"] = ("Mpc/h", "Comoving coord of host halo lightcone position")
51
+ column_metadata["z_host"] = ("Mpc/h", "Comoving coord of host halo lightcone position")
52
52
 
53
- column_metadata["z_true"] = ("None", "True redshift")
53
+ column_metadata["x_nfw"] = ("Mpc/h", "Comoving coord with NFW-repositioned satellites")
54
+ column_metadata["y_nfw"] = ("Mpc/h", "Comoving coord with NFW-repositioned satellites")
55
+ column_metadata["z_nfw"] = ("Mpc/h", "Comoving coord with NFW-repositioned satellites")
56
+
57
+ column_metadata["vx"] = ("km/s", "Comoving peculiar velocity in x-direction")
58
+ column_metadata["vy"] = ("km/s", "Comoving peculiar velocity in y-direction")
59
+ column_metadata["vz"] = ("km/s", "Comoving peculiar velocity in z-direction")
60
+
61
+ column_metadata["top_host_infall_fof_halo_eigS1X"] = (
62
+ "Mpc/h",
63
+ "x-component of first eigendirection of halo shape (unreduced intertia tensor)",
64
+ )
65
+ column_metadata["top_host_infall_fof_halo_eigS1Y"] = (
66
+ "Mpc/h",
67
+ "y-component of first eigendirection of halo shape (unreduced intertia tensor)",
68
+ )
69
+ column_metadata["top_host_infall_fof_halo_eigS1Z"] = (
70
+ "Mpc/h",
71
+ "z-component of first eigendirection of halo shape (unreduced intertia tensor)",
72
+ )
73
+
74
+ column_metadata["top_host_infall_fof_halo_eigS2X"] = (
75
+ "Mpc/h",
76
+ "x-component of second eigendirection of halo shape (unreduced intertia tensor)",
77
+ )
78
+ column_metadata["top_host_infall_fof_halo_eigS2Y"] = (
79
+ "Mpc/h",
80
+ "y-component of second eigendirection of halo shape (unreduced intertia tensor)",
81
+ )
82
+ column_metadata["top_host_infall_fof_halo_eigS2Z"] = (
83
+ "Mpc/h",
84
+ "z-component of second eigendirection of halo shape (unreduced intertia tensor)",
85
+ )
86
+
87
+ column_metadata["top_host_infall_fof_halo_eigS3X"] = (
88
+ "Mpc/h",
89
+ "x-component of third eigendirection of halo shape (unreduced intertia tensor)",
90
+ )
91
+ column_metadata["top_host_infall_fof_halo_eigS3Y"] = (
92
+ "Mpc/h",
93
+ "y-component of third eigendirection of halo shape (unreduced intertia tensor)",
94
+ )
95
+ column_metadata["top_host_infall_fof_halo_eigS3Z"] = (
96
+ "Mpc/h",
97
+ "z-component of third eigendirection of halo shape (unreduced intertia tensor)",
98
+ )
99
+
100
+
101
+ column_metadata["redshift_true"] = ("None", "True redshift")
102
+ column_metadata["ra_nfw"] = (
103
+ "degrees",
104
+ "Longitude in degrees. Based on NFW-repositioned satellites.",
105
+ )
106
+ column_metadata["dec_nfw"] = (
107
+ "degrees",
108
+ "Latitude in degrees. Based on NFW-repositioned satellites.",
109
+ )
54
110
 
55
111
 
56
112
  HEADER_COMMENT = """
57
113
  This file contains diffsky galaxy data.
114
+ Each file stores mock galaxies in a thin redshift shell of a small patch of sky.
115
+ Each column of data includes metadata with units and comments about the column.
58
116
  Contact: ahearin@anl.gov for questions.
59
117
  """
60
118
 
@@ -98,9 +156,9 @@ def append_metadata(fnout, sim_name):
98
156
  key_out = "data/" + key
99
157
  assert key_out in hdf_out.keys(), f"{key_out} is missing from {fnout}"
100
158
 
101
- units, comment = val
102
- hdf_out[key_out].attrs["units"] = units
103
- hdf_out[key_out].attrs["comment"] = comment
159
+ unit, description = val
160
+ hdf_out[key_out].attrs["unit"] = unit
161
+ hdf_out[key_out].attrs["description"] = description
104
162
 
105
163
 
106
164
  def get_dependency_versions():