diffsky 0.2.1__tar.gz → 0.2.3__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.3}/CHANGES.rst +10 -0
  2. {diffsky-0.2.1 → diffsky-0.2.3}/PKG-INFO +1 -1
  3. diffsky-0.2.3/diffsky/_version.py +1 -0
  4. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_cores.py +10 -0
  5. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_mock.py +36 -0
  6. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_cores.py +35 -0
  7. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_mock.py +109 -0
  8. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/lc_mock_production.py +46 -9
  9. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/lightcone_utils.py +140 -3
  10. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/load_lc_cf.py +15 -6
  11. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/load_lc_cf_synthetic.py +5 -5
  12. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/load_lc_mock.py +1 -1
  13. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/metadata_sfh_mock.py +70 -12
  14. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/test_lightcone_utils.py +146 -0
  15. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/test_load_lc_cf.py +1 -1
  16. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/testing_data/phi_haccytrees_tdata.txt +20 -0
  17. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/testing_data/redshift_haccytrees_tdata.txt +20 -0
  18. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/testing_data/theta_haccytrees_tdata.txt +20 -0
  19. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/testing_data/x_haccytrees_tdata.txt +20 -0
  20. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/testing_data/y_haccytrees_tdata.txt +20 -0
  21. diffsky-0.2.3/diffsky/data_loaders/hacc_utils/tests/testing_data/z_haccytrees_tdata.txt +20 -0
  22. diffsky-0.2.3/diffsky/data_loaders/io_utils.py +56 -0
  23. diffsky-0.2.3/diffsky/experimental/diagnostics/check_smhm.py +93 -0
  24. diffsky-0.2.3/diffsky/experimental/diagnostics/tests/test_check_smhm.py +13 -0
  25. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/mc_lightcone_halos.py +193 -92
  26. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_mc_lightcone_halos.py +60 -66
  27. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/__init__.py +19 -0
  28. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/disc_lcdm_hmf_params.txt +19 -0
  29. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/disc_lcdm_hmf_params_all.txt +19 -0
  30. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/hmf_param_reader.py +39 -0
  31. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/lj_hmf_params.txt +19 -0
  32. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/lj_hmf_params_all.txt +19 -0
  33. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf.py +4 -4
  34. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_subs.py +8 -4
  35. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/test_imports.py +5 -0
  36. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/test_lj_hmf.py +61 -0
  37. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_cuml_density_all.txt +30 -0
  38. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_cuml_density_cens.txt +30 -0
  39. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_logmp_bins.txt +30 -0
  40. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_redshift_bins.txt +7 -0
  41. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_cuml_density_all.txt +30 -0
  42. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_cuml_density_cens.txt +30 -0
  43. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_logmp_bins.txt +30 -0
  44. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_redshift_bins.txt +7 -0
  45. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.lgcuml_density.npy +0 -0
  46. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.lgcuml_density.npy +0 -0
  47. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.lgcuml_density.npy +0 -0
  48. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.lgcuml_density.npy +0 -0
  49. diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.lgcuml_density.npy +0 -0
  50. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/hmf_model.py +12 -8
  51. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/mc_hosts.py +20 -14
  52. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/measure_hmf.py +9 -1
  53. diffsky-0.2.3/diffsky/mass_functions/scripts/discovery_lcdm_calibration/fit_hmf_disc_lcdm.py +158 -0
  54. diffsky-0.2.3/diffsky/mass_functions/scripts/discovery_lcdm_calibration/measure_hmf_target_data_hacc.py +156 -0
  55. diffsky-0.2.3/diffsky/mass_functions/scripts/discovery_lcdm_calibration/run_hmf_tabulation_disc_lcdm.sh +21 -0
  56. diffsky-0.2.3/diffsky/mass_functions/scripts/last_journey_calibration/fit_hmf_lj.py +153 -0
  57. diffsky-0.2.3/diffsky/mass_functions/scripts/last_journey_calibration/measure_hmf_target_data_hacc.py +146 -0
  58. {diffsky-0.2.1/scripts/mass_functions → diffsky-0.2.3/diffsky/mass_functions/scripts/smdpl_calibration}/measure_smdpl_hmf_script.py +2 -3
  59. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/crossmatch_utils.py +1 -1
  60. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky.egg-info/PKG-INFO +1 -1
  61. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky.egg-info/SOURCES.txt +38 -5
  62. diffsky-0.2.3/docs/source/demo_mc_lightcones.ipynb +270 -0
  63. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/demos.rst +1 -0
  64. diffsky-0.2.3/scripts/LJ_LC_JOBS/generate_sfh_mock_jobs.py +109 -0
  65. diffsky-0.2.1/scripts/make_sfh_lc_mock_lj_serial.py → diffsky-0.2.3/scripts/LJ_LC_JOBS/make_sfh_lc_mock_lj.py +1 -1
  66. diffsky-0.2.3/scripts/__init__.py +0 -0
  67. diffsky-0.2.3/scripts/inspect_lc_mock.py +65 -0
  68. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/inspect_lightcone_mock.py +1 -1
  69. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/lc_cf_crossmatch_script.py +22 -7
  70. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/make_sfh_lightcone_last_journey.py +1 -1
  71. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/make_sfh_lj_mock.py +10 -15
  72. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/tabulate_coreforest_overlap.py +6 -5
  73. diffsky-0.2.3/scripts/tests/__init__.py +0 -0
  74. diffsky-0.2.1/diffsky/_version.py +0 -1
  75. diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_lightcone_utils.py +0 -50
  76. diffsky-0.2.1/diffsky/data_loaders/io_utils.py +0 -21
  77. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/__init__.py +0 -4
  78. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.lgcuml_density.npy +0 -0
  79. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.lgcuml_density.npy +0 -0
  80. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.lgcuml_density.npy +0 -0
  81. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.lgcuml_density.npy +0 -0
  82. diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.lgcuml_density.npy +0 -0
  83. diffsky-0.2.1/scripts/JOBS/run_sfh_mock_serial.sh +0 -28
  84. diffsky-0.2.1/scripts/make_diffsky_lj_mock.py +0 -492
  85. {diffsky-0.2.1 → diffsky-0.2.3}/.coveragerc +0 -0
  86. {diffsky-0.2.1 → diffsky-0.2.3}/.git_archival.txt +0 -0
  87. {diffsky-0.2.1 → diffsky-0.2.3}/.gitattributes +0 -0
  88. {diffsky-0.2.1 → diffsky-0.2.3}/.github/dependabot.yml +0 -0
  89. {diffsky-0.2.1 → diffsky-0.2.3}/.github/workflows/linting.yaml +0 -0
  90. {diffsky-0.2.1 → diffsky-0.2.3}/.github/workflows/monthly-warning-test.yaml +0 -0
  91. {diffsky-0.2.1 → diffsky-0.2.3}/.github/workflows/test_latest_releases.yaml +0 -0
  92. {diffsky-0.2.1 → diffsky-0.2.3}/.github/workflows/test_main_branch.yaml +0 -0
  93. {diffsky-0.2.1 → diffsky-0.2.3}/.github/workflows/tests_cron.yaml +0 -0
  94. {diffsky-0.2.1 → diffsky-0.2.3}/.gitignore +0 -0
  95. {diffsky-0.2.1 → diffsky-0.2.3}/.readthedocs.yml +0 -0
  96. {diffsky-0.2.1 → diffsky-0.2.3}/LICENSE.rst +0 -0
  97. {diffsky-0.2.1 → diffsky-0.2.3}/README.rst +0 -0
  98. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/__init__.py +0 -0
  99. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/__init__.py +0 -0
  100. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diagnostics/__init__.py +0 -0
  101. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diagnostics/plot_fburstpop.py +0 -0
  102. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diagnostics/plot_tburstpop.py +0 -0
  103. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diagnostics/tests/__init__.py +0 -0
  104. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diagnostics/tests/test_plot_fburstpop.py +0 -0
  105. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diagnostics/tests/test_plot_tburstpop.py +0 -0
  106. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diffburstpop.py +0 -0
  107. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diffqburstpop.py +0 -0
  108. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diffqburstpop_mono.py +0 -0
  109. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/diffqburstpop_mono_noise.py +0 -0
  110. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/fburstpop.py +0 -0
  111. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/fburstpop_mono.py +0 -0
  112. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/freqburst.py +0 -0
  113. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/freqburst_mono.py +0 -0
  114. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tburstpop.py +0 -0
  115. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/__init__.py +0 -0
  116. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_diffburstpop.py +0 -0
  117. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_diffqburstpop.py +0 -0
  118. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_diffqburstpop_mono.py +0 -0
  119. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_diffqburstpop_mono_noise.py +0 -0
  120. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_fburstpop.py +0 -0
  121. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_fburstpop_mono.py +0 -0
  122. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_freqburst.py +0 -0
  123. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_freqburst_mono.py +0 -0
  124. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/burstpop/tests/test_tburstpop.py +0 -0
  125. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/cosmos_utils/__init__.py +0 -0
  126. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/cosmos_utils/cosmos_mstar_model.py +0 -0
  127. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/cosmos_utils/tests/__init__.py +0 -0
  128. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/cosmos_utils/tests/test_cosmos_mstar_model.py +0 -0
  129. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/__init__.py +0 -0
  130. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/cosmos20_loader.py +0 -0
  131. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/__init__.py +0 -0
  132. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/data_validation/__init__.py +0 -0
  133. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/data_validation/tests/__init__.py +0 -0
  134. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/defaults.py +0 -0
  135. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/hacc_core_utils.py +0 -0
  136. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/load_hacc_cores.py +0 -0
  137. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/__init__.py +0 -0
  138. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/test_defaults.py +0 -0
  139. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/test_hacc_core_utils.py +0 -0
  140. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/test_lc_mock_production.py +0 -0
  141. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/test_load_hacc_cores.py +0 -0
  142. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/hacc_utils/tests/testing_data/lc_cores-decomposition.txt +0 -0
  143. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/mpi_utils.py +0 -0
  144. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/tests/__init__.py +0 -0
  145. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/tests/test_cosmos_loader.py +0 -0
  146. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/tests/test_imports.py +0 -0
  147. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/tests/testing_data/__init__.py +0 -0
  148. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/tests/testing_data/cosmos20_shasum.dat +0 -0
  149. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/data_loaders/um_binary_loader.py +0 -0
  150. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/__init__.py +0 -0
  151. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/plot_delta_mag_burstiness.py +0 -0
  152. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/plot_diffstar_fq.py +0 -0
  153. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/tests/__init__.py +0 -0
  154. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/tests/test_plot_delta_mag_burstiness.py +0 -0
  155. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/tests/test_plot_diffstar_fq.py +0 -0
  156. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diagnostics/utils.py +0 -0
  157. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/diffndhist.py +0 -0
  158. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/__init__.py +0 -0
  159. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/avpop.py +0 -0
  160. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/avpop_flex.py +0 -0
  161. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/avpop_mono.py +0 -0
  162. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/deltapop.py +0 -0
  163. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/diagnostics/__init__.py +0 -0
  164. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/diagnostics/plot_avpop_flex.py +0 -0
  165. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/diagnostics/plot_funopop_simple.py +0 -0
  166. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/diagnostics/tests/__init__.py +0 -0
  167. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/diagnostics/tests/test_plot_avpop_flex.py +0 -0
  168. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/diagnostics/tests/test_plot_funopop_simple.py +0 -0
  169. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/funopop.py +0 -0
  170. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/funopop_simple.py +0 -0
  171. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/funopop_ssfr.py +0 -0
  172. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/sbl18_dust.py +0 -0
  173. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/sbl18_dust_kernels.py +0 -0
  174. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/sbl18_dustpop.py +0 -0
  175. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/__init__.py +0 -0
  176. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_avpop.py +0 -0
  177. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_avpop_flex.py +0 -0
  178. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_avpop_mono.py +0 -0
  179. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_deltapop.py +0 -0
  180. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_funopop_model.py +0 -0
  181. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_funopop_simple.py +0 -0
  182. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_funopop_ssfr.py +0 -0
  183. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_sbl18_dustpop.py +0 -0
  184. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_tw_dust_kernels.py +0 -0
  185. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_tw_dustpop.py +0 -0
  186. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_tw_dustpop_mono.py +0 -0
  187. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_tw_dustpop_mono_noise.py +0 -0
  188. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tests/test_tw_dustpop_new.py +0 -0
  189. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tw_dust.py +0 -0
  190. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tw_dust_kernels.py +0 -0
  191. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tw_dustpop.py +0 -0
  192. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tw_dustpop_mono.py +0 -0
  193. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tw_dustpop_mono_noise.py +0 -0
  194. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/dustpop/tw_dustpop_new.py +0 -0
  195. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/__init__.py +0 -0
  196. {diffsky-0.2.1/diffsky/experimental/dspspop → diffsky-0.2.3/diffsky/experimental/diagnostics}/__init__.py +0 -0
  197. {diffsky-0.2.1/diffsky/experimental/dspspop → diffsky-0.2.3/diffsky/experimental/diagnostics}/tests/__init__.py +0 -0
  198. {diffsky-0.2.1/diffsky/experimental/tests → diffsky-0.2.3/diffsky/experimental/dspspop}/__init__.py +0 -0
  199. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/boris_dust.py +0 -0
  200. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/burstshapepop.py +0 -0
  201. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/dust_deltapop.py +0 -0
  202. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/dustpop.py +0 -0
  203. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/lgavpop.py +0 -0
  204. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/lgfburstpop.py +0 -0
  205. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/nagaraj22_dust.py +0 -0
  206. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/photpop.py +0 -0
  207. {diffsky-0.2.1/diffsky/fake_sats → diffsky-0.2.3/diffsky/experimental/dspspop/tests}/__init__.py +0 -0
  208. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/tests/test_attavpop.py +0 -0
  209. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/tests/test_boris_dust.py +0 -0
  210. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/tests/test_burstshapepop.py +0 -0
  211. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/tests/test_dustdeltapop.py +0 -0
  212. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/tests/test_lgfburstpop.py +0 -0
  213. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/dspspop/tests/test_photpop.py +0 -0
  214. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/lc_phot_kern.py +0 -0
  215. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/mc_diffsky_phot.py +0 -0
  216. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/phot_utils.py +0 -0
  217. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/photometry_interpolation.py +0 -0
  218. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/precompute_ssp_phot.py +0 -0
  219. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/scatter.py +0 -0
  220. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/ssp_err_pop.py +0 -0
  221. {diffsky-0.2.1/diffsky/fake_sats → diffsky-0.2.3/diffsky/experimental}/tests/__init__.py +0 -0
  222. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_lc_phot_kern.py +0 -0
  223. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_mc_diffsky_phot.py +0 -0
  224. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_photometry_interpolation.py +0 -0
  225. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_precompute_ssp_phot.py +0 -0
  226. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_scatter.py +0 -0
  227. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/experimental/tests/test_ssp_err_pop.py +0 -0
  228. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils → diffsky-0.2.3/diffsky/fake_sats}/__init__.py +0 -0
  229. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/ellipsoidal_nfw_phase_space.py +0 -0
  230. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/ellipsoidal_velocities.py +0 -0
  231. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/halo_boundary_functions.py +0 -0
  232. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/nfw_config_space.py +0 -0
  233. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/rotations3d.py +0 -0
  234. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations → diffsky-0.2.3/diffsky/fake_sats/tests}/__init__.py +0 -0
  235. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/test_ellipsoidal_nfw_phase_space.py +0 -0
  236. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/test_halo_boundary_functions.py +0 -0
  237. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/test_mc_ellipticial_velocities.py +0 -0
  238. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/test_nfw_config_space.py +0 -0
  239. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/test_rotations3d.py +0 -0
  240. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/testing_data/halo_mass_ht_test.txt +0 -0
  241. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/testing_data/halo_radius_200c_ht_test.txt +0 -0
  242. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/tests/testing_data/redshift_ht_test.txt +0 -0
  243. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/fake_sats/vector_utilities.py +0 -0
  244. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/__init__.py +0 -0
  245. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/ccshmf_model.py +0 -0
  246. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/README.rst +0 -0
  247. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations/tests → diffsky-0.2.3/diffsky/mass_functions/fitting_utils}/__init__.py +0 -0
  248. {diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics → diffsky-0.2.3/diffsky/mass_functions/fitting_utils/calibrations}/__init__.py +0 -0
  249. {diffsky-0.2.1 → diffsky-0.2.3}/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.3/diffsky/mass_functions/fitting_utils/calibrations}/tests/__init__.py +0 -0
  251. {diffsky-0.2.1 → diffsky-0.2.3}/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.3/diffsky/mass_functions/fitting_utils/diagnostics}/__init__.py +0 -0
  253. {diffsky-0.2.1 → diffsky-0.2.3}/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.3/diffsky/mass_functions/fitting_utils/diagnostics}/tests/__init__.py +0 -0
  255. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/diagnostics/tests/test_hmf_fit_diagnostics.py +0 -0
  256. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/fit_ccshmf.py +0 -0
  257. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/fit_ccshmf_kernels.py +0 -0
  258. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/fit_hmf_kernels.py +0 -0
  259. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/fit_hmf_model.py +0 -0
  260. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/fitting_helpers.py +0 -0
  261. {diffsky-0.2.1/diffsky/mass_functions/io_utils → diffsky-0.2.3/diffsky/mass_functions/fitting_utils/tests}/__init__.py +0 -0
  262. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf.py +0 -0
  263. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf_kernels.py +0 -0
  264. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_kernels.py +0 -0
  265. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_model.py +0 -0
  266. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_fitting_helpers.py +0 -0
  267. {diffsky-0.2.1/diffsky/mass_functions/kernels → diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests}/__init__.py +0 -0
  268. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/hmf_calibrations/tests/test_smdpl_hmf.py +0 -0
  269. {diffsky-0.2.1 → diffsky-0.2.3}/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.3}/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.3}/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.3}/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.3}/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.3}/diffsky/mass_functions/io_utils/README.txt +0 -0
  275. {diffsky-0.2.1/diffsky/mass_functions/kernels/tests → diffsky-0.2.3/diffsky/mass_functions/io_utils}/__init__.py +0 -0
  276. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/io_utils/loader.py +0 -0
  277. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/io_utils/smdpl_helpers.py +0 -0
  278. {diffsky-0.2.1/diffsky/mass_functions/smhm_kernels → diffsky-0.2.3/diffsky/mass_functions/kernels}/__init__.py +0 -0
  279. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/kernels/ccshmf_kernels.py +0 -0
  280. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/kernels/hmf_kernels.py +0 -0
  281. {diffsky-0.2.1/diffsky/mass_functions/smhm_kernels → diffsky-0.2.3/diffsky/mass_functions/kernels}/tests/__init__.py +0 -0
  282. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/kernels/tests/test_ccshmf_kernels.py +0 -0
  283. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/kernels/tests/test_hmf_kernels.py +0 -0
  284. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/mc_diffmah_tpeak.py +0 -0
  285. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/mc_subs.py +0 -0
  286. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/mc_tinfall.py +0 -0
  287. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/measure_ccshmf.py +0 -0
  288. {diffsky-0.2.1/scripts/mass_functions → diffsky-0.2.3/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.3/diffsky/mass_functions/smhm_kernels}/__init__.py +0 -0
  290. {diffsky-0.2.1/diffsky/mass_functions/tests/testing_data → diffsky-0.2.3/diffsky/mass_functions/smhm_kernels/tests}/__init__.py +0 -0
  291. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/smhm_kernels/tests/test_threeroll_smhm.py +0 -0
  292. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/smhm_kernels/threeroll_kernels.py +0 -0
  293. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/smhm_kernels/threeroll_smhm.py +0 -0
  294. {diffsky-0.2.1/diffsky/mass_functions/upweighting → diffsky-0.2.3/diffsky/mass_functions/tests}/__init__.py +0 -0
  295. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_ccshmf.py +0 -0
  296. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_hmf_model.py +0 -0
  297. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_mc_diffmah_tpeak.py +0 -0
  298. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_mc_hosts.py +0 -0
  299. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_mc_subs.py +0 -0
  300. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_mc_tinfall.py +0 -0
  301. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/test_measure_hmf.py +0 -0
  302. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/tests/testing_data/README.txt +0 -0
  303. {diffsky-0.2.1/diffsky/mass_functions/upweighting/tests → diffsky-0.2.3/diffsky/mass_functions/tests/testing_data}/__init__.py +0 -0
  304. {diffsky-0.2.1 → diffsky-0.2.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3/diffsky/mass_functions/upweighting}/__init__.py +0 -0
  313. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/upweighting/namedtuple_cat_utils.py +0 -0
  314. {diffsky-0.2.1/diffsky/merging/diagnostics → diffsky-0.2.3/diffsky/mass_functions/upweighting/tests}/__init__.py +0 -0
  315. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/upweighting/tests/test_mc_gen_upweighting.py +0 -0
  316. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/upweighting/upweighting.py +0 -0
  317. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mass_functions/utils.py +0 -0
  318. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/mc_diffsky.py +0 -0
  319. {diffsky-0.2.1/diffsky/merging/diagnostics/tests → diffsky-0.2.3/diffsky/merging}/__init__.py +0 -0
  320. {diffsky-0.2.1/diffsky/merging/tests → diffsky-0.2.3/diffsky/merging/diagnostics}/__init__.py +0 -0
  321. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/merging/diagnostics/plot_pmerge_vs_time.py +0 -0
  322. {diffsky-0.2.1/diffsky/param_utils → diffsky-0.2.3/diffsky/merging/diagnostics/tests}/__init__.py +0 -0
  323. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/merging/diagnostics/tests/test_plot_pmerge_vs_time.py +0 -0
  324. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/merging/fitmerge_multi_redshift.py +0 -0
  325. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/merging/merging_model.py +0 -0
  326. {diffsky-0.2.1/diffsky/param_utils → diffsky-0.2.3/diffsky/merging}/tests/__init__.py +0 -0
  327. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/merging/tests/test_fitmerge_multi_redshift.py +0 -0
  328. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/merging/tests/test_merging_model.py +0 -0
  329. {diffsky-0.2.1/diffsky/ssp_err_model → diffsky-0.2.3/diffsky/param_utils}/__init__.py +0 -0
  330. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/param_utils/diffsky_param_wrapper.py +0 -0
  331. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/param_utils/spspop_param_utils.py +0 -0
  332. {diffsky-0.2.1/diffsky/ssp_err_model → diffsky-0.2.3/diffsky/param_utils}/tests/__init__.py +0 -0
  333. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/param_utils/tests/test_diffsky_param_wrapper.py +0 -0
  334. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/param_utils/tests/test_spspop_param_utils.py +0 -0
  335. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/phot_utils.py +0 -0
  336. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/sbl18_photgrad.py +0 -0
  337. {diffsky-0.2.1/diffsky/sumstats → diffsky-0.2.3/diffsky/ssp_err_model}/__init__.py +0 -0
  338. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/ssp_err_model/ssp_err_model.py +0 -0
  339. {diffsky-0.2.1/diffsky/sumstats → diffsky-0.2.3/diffsky/ssp_err_model}/tests/__init__.py +0 -0
  340. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/ssp_err_model/tests/test_ssp_err_model.py +0 -0
  341. {diffsky-0.2.1/diffsky/systematics → diffsky-0.2.3/diffsky/sumstats}/__init__.py +0 -0
  342. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/sumstats/diffndhist.py +0 -0
  343. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/sumstats/smhm.py +0 -0
  344. {diffsky-0.2.1/diffsky/systematics → diffsky-0.2.3/diffsky/sumstats}/tests/__init__.py +0 -0
  345. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/sumstats/tests/test_smhm.py +0 -0
  346. {diffsky-0.2.1/diffsky/tests → diffsky-0.2.3/diffsky/systematics}/__init__.py +0 -0
  347. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/systematics/ssp_errors.py +0 -0
  348. {diffsky-0.2.1/diffsky/tests/testing_data → diffsky-0.2.3/diffsky/systematics/tests}/__init__.py +0 -0
  349. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/systematics/tests/test_ssp_errors.py +0 -0
  350. {diffsky-0.2.1/diffsky/utils → diffsky-0.2.3/diffsky}/tests/__init__.py +0 -0
  351. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_dependencies.py +0 -0
  352. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_diffndhist.py +0 -0
  353. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_diffsky_setup.py +0 -0
  354. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_mc_diffsky.py +0 -0
  355. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_phot_utils.py +0 -0
  356. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_sbl18_photgrad.py +0 -0
  357. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tests/test_tw_photgrad.py +0 -0
  358. {diffsky-0.2.1/scripts → diffsky-0.2.3/diffsky/tests/testing_data}/__init__.py +0 -0
  359. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/tw_photgrad.py +0 -0
  360. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/__init__.py +0 -0
  361. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/sfh_utils.py +0 -0
  362. {diffsky-0.2.1/scripts → diffsky-0.2.3/diffsky/utils}/tests/__init__.py +0 -0
  363. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/tests/test_crossmatch_utils.py +0 -0
  364. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/tests/test_sfh_utils.py +0 -0
  365. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/tests/test_tw_utils.py +0 -0
  366. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/tests/test_utility_funcs.py +0 -0
  367. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/tw_utils.py +0 -0
  368. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky/utils/utility_funcs.py +0 -0
  369. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky.egg-info/dependency_links.txt +0 -0
  370. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky.egg-info/requires.txt +0 -0
  371. {diffsky-0.2.1 → diffsky-0.2.3}/diffsky.egg-info/top_level.txt +0 -0
  372. {diffsky-0.2.1 → diffsky-0.2.3}/docs/Makefile +0 -0
  373. {diffsky-0.2.1 → diffsky-0.2.3}/docs/make.bat +0 -0
  374. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/citation.rst +0 -0
  375. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/conf.py +0 -0
  376. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/demo_diffmahpop_t_peak.ipynb +0 -0
  377. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/index.rst +0 -0
  378. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/installation.rst +0 -0
  379. {diffsky-0.2.1 → diffsky-0.2.3}/docs/source/rtd_environment.yaml +0 -0
  380. {diffsky-0.2.1 → diffsky-0.2.3}/pyproject.toml +0 -0
  381. {diffsky-0.2.1 → diffsky-0.2.3}/requirements.txt +0 -0
  382. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/tests/test_inspect_lightcone_mock.py +0 -0
  383. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/tests/test_lc_cf_crossmatch_script.py +0 -0
  384. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/tests/test_make_sfh_lj_mock.py +0 -0
  385. {diffsky-0.2.1 → diffsky-0.2.3}/scripts/tests/test_tabulate_coreforest_overlap.py +0 -0
  386. {diffsky-0.2.1 → diffsky-0.2.3}/setup.cfg +0 -0
  387. {diffsky-0.2.1 → diffsky-0.2.3}/setup.py +0 -0
@@ -1,3 +1,13 @@
1
+ 0.2.3 (2025-07-30)
2
+ -------------------
3
+ - Fix bug in lightcone data loader (https://github.com/ArgonneCPAC/diffsky/pull/195)
4
+
5
+
6
+ 0.2.2 (2025-07-17)
7
+ -------------------
8
+ - Change little h convention of Monte Carlo halo generators (https://github.com/ArgonneCPAC/diffsky/pull/184)
9
+
10
+
1
11
  0.2.1 (2025-06-30)
2
12
  -------------------
3
13
  - 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.3
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.3'
@@ -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,25 @@ 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"]
51
- hdf_out["data/ra"] = lc_data["phi"]
52
- hdf_out["data/dec"] = np.pi / 2.0 - lc_data["theta"]
82
+ hdf_out["data/redshift_true"] = lc_data["redshift_true"]
83
+ ra, dec = hlu._get_lon_lat_from_theta_phi(lc_data["theta"], lc_data["phi"])
84
+ hdf_out["data/ra"] = ra
85
+ hdf_out["data/dec"] = dec
53
86
  hdf_out["data/snapnum"] = lc_data["snapnum"]
54
87
 
55
- lc_data_keys_out = ("core_tag", "x", "y", "z", "top_host_idx", "central")
56
- for key in lc_data_keys_out:
88
+ for key in LC_DATA_KEYS_OUT:
57
89
  key_out = "data/" + key
58
90
  hdf_out[key_out] = lc_data[key]
59
91
 
60
- diffsky_data_keys_out = ("x_host", "y_host", "z_host", "logmp_obs_host")
61
- for key in diffsky_data_keys_out:
92
+ for key in DIFFSKY_DATA_KEYS_OUT:
62
93
  key_out = "data/" + key
63
94
  hdf_out[key_out] = diffsky_data[key]
64
95
 
65
96
 
66
97
  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)
98
+ lc_data["t_obs"] = flat_wcdm.age_at_z(
99
+ lc_data["redshift_true"], *sim_info.cosmo_params
100
+ )
68
101
 
69
102
  mah_params, msk_has_diffmah_fit = load_lc_cf.get_imputed_mah_params(
70
103
  ran_key, diffsky_data, lc_data, sim_info.lgt0
@@ -132,7 +165,7 @@ def reposition_satellites(sim_info, lc_data, diffsky_data, ran_key, fixed_conc=5
132
165
  diffsky_data["y_host"] = host_pos[:, 1]
133
166
  diffsky_data["z_host"] = host_pos[:, 2]
134
167
 
135
- args = (10**host_logmp_obs, sim_info.cosmo_params, lc_data["z_true"], "200m")
168
+ args = (10**host_logmp_obs, sim_info.cosmo_params, lc_data["redshift_true"], "200m")
136
169
  host_radius_mpc = hbf.halo_mass_to_halo_radius(*args) / 1000.0
137
170
 
138
171
  n_cores = host_logmp_obs.shape[0]
@@ -152,6 +185,10 @@ def reposition_satellites(sim_info, lc_data, diffsky_data, ran_key, fixed_conc=5
152
185
  lc_data["y_nfw"] = new_pos[:, 1]
153
186
  lc_data["z_nfw"] = new_pos[:, 2]
154
187
 
188
+ ra, dec = hlu.get_ra_dec(lc_data["x_nfw"], lc_data["y_nfw"], lc_data["z_nfw"])
189
+ lc_data["ra_nfw"] = ra
190
+ lc_data["dec_nfw"] = dec
191
+
155
192
  return lc_data, diffsky_data
156
193
 
157
194
 
@@ -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,7 +82,117 @@ 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_ra_dec_from_theta_phi(theta, phi):
137
+ """Change sky coordinates from {theta, phi} (radians) to {ra, dec} (degrees)"""
138
+ return _get_lon_lat_from_theta_phi(theta, phi)
139
+
140
+
141
+ @jjit
142
+ def _get_lon_lat_from_theta_phi(theta, phi):
143
+ lon = jnp.degrees(phi)
144
+ lat = 90.0 - jnp.degrees(theta)
145
+ return lon, lat
146
+
147
+
148
+ @jjit
149
+ def get_redshift_from_xyz(x_mpch, y_mpch, z_mpch, cosmo_params):
150
+ """Compute redshift from simulation xyz coords
151
+
152
+ Parameters
153
+ ----------
154
+ x,y,z : array, shape (n, )
155
+ Cartesian coords in Mpc/h
156
+
157
+ Returns
158
+ -------
159
+ redshift : array, shape (n, )
160
+
161
+ """
162
+ d_mpch = jnp.sqrt(x_mpch**2 + y_mpch**2 + z_mpch**2)
163
+ d_mpc = d_mpch / cosmo_params.h
164
+
165
+ z_table = jnp.linspace(0, 20, 1_000)
166
+ d_table = flat_wcdm.comoving_distance(
167
+ z_table, cosmo_params.Om0, cosmo_params.w0, cosmo_params.wa, cosmo_params.h
168
+ )
169
+ redshift = jnp.interp(d_mpc, d_table, z_table)
170
+
171
+ return redshift
172
+
173
+
72
174
  def read_lc_ra_dec_patch_decomposition(fn):
175
+ """Read and parse 'lc_cores-decomposition.txt'
176
+
177
+ Parameters
178
+ ----------
179
+ fname : string
180
+
181
+ Returns
182
+ -------
183
+ patch_decomposition : array shape (n_patches, 5)
184
+ Each row stores (patchnum, theta_low, theta_high, phi_low, phi_high)
185
+
186
+ The relationship between {theta, phi} and {ra, dec} is given by the
187
+ lightcone_utils.get_ra_dec_from_theta_phi function
188
+
189
+ sky_frac : array shape (n_patches, )
190
+ Size of the sky patch as a fraction of 4π steradians
191
+
192
+ solid_angles : array shape (n_patches, )
193
+ Size of the sky patch in deg^2
194
+
195
+ """
73
196
  collector = []
74
197
  with open(fn, "r") as f:
75
198
  next(f)
@@ -207,6 +330,12 @@ def get_diffsky_quantities_for_lc_patch(
207
330
 
208
331
  lc_patch_data_out["n_cf_match"][msk_olap] += 1
209
332
 
333
+ # Matchup core velocities
334
+ _keys = ("vx", "vy", "vz")
335
+ _olap_vel = [cf_matrices[key][olap_chunk_idx][:, timestep_idx] for key in _keys]
336
+ for key, v in zip(_keys, _olap_vel):
337
+ lc_patch_data_out[key][msk_olap] = v
338
+
210
339
  # Matchup mah_params
211
340
  _keys = (*DEFAULT_MAH_PARAMS._fields, "loss", "n_points_per_fit")
212
341
  _olap_data = [cf_diffmah_data[key][olap_chunk_idx] for key in _keys]
@@ -215,11 +344,18 @@ def get_diffsky_quantities_for_lc_patch(
215
344
 
216
345
  # Matchup uber host_mah_params
217
346
  mah_keys = DEFAULT_MAH_PARAMS._fields
218
- host_mah_keys = TOP_HOST_MAH_KEYS
219
- _olap_ult_host_data = [
347
+ _olap_ult_host_mah_data = [
220
348
  cf_diffmah_data[key][olap_chunk_ult_host_idx] for key in mah_keys
221
349
  ]
222
- for host_key, x in zip(host_mah_keys, _olap_ult_host_data):
350
+ for host_key, x in zip(TOP_HOST_MAH_KEYS, _olap_ult_host_mah_data):
351
+ lc_patch_data_out[host_key][msk_olap] = x
352
+
353
+ # Matchup uber host shapes
354
+ _olap_ult_host_shape_data = [
355
+ cf_matrices[key][:, timestep_idx][olap_chunk_ult_host_idx]
356
+ for key in SHAPE_KEYS
357
+ ]
358
+ for host_key, x in zip(TOP_HOST_SHAPE_KEYS, _olap_ult_host_shape_data):
223
359
  lc_patch_data_out[host_key][msk_olap] = x
224
360
 
225
361
  # Matchup secondary host_mah_params
@@ -388,3 +524,4 @@ def get_a_range_of_lc_cores_file(bname_lc_cores, sim_name):
388
524
  a_min_expected, a_max_expected = aarr[indx_step], aarr[indx_step + 1]
389
525
 
390
526
  return a_min_expected, a_max_expected
527
+ 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
@@ -29,7 +29,7 @@ def load_diffsky_lightcone(drn, sim_name, z_min, z_max, patch_list):
29
29
 
30
30
  data_collector = []
31
31
  for fn in fn_collector:
32
- lc_diffsky_data = load_flat_hdf5(fn)
32
+ lc_diffsky_data = load_flat_hdf5(fn, dataset="data")
33
33
  data_collector.append(lc_diffsky_data)
34
34
 
35
35
  diffsky_data = dict()