diffsky 0.2.3__tar.gz → 0.2.5__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.
- {diffsky-0.2.3 → diffsky-0.2.5}/.github/workflows/linting.yaml +1 -1
- {diffsky-0.2.3 → diffsky-0.2.5}/.github/workflows/monthly-warning-test.yaml +1 -1
- {diffsky-0.2.3 → diffsky-0.2.5}/.github/workflows/test_latest_releases.yaml +1 -1
- {diffsky-0.2.3 → diffsky-0.2.5}/.github/workflows/test_main_branch.yaml +1 -1
- {diffsky-0.2.3 → diffsky-0.2.5}/.github/workflows/tests_cron.yaml +1 -1
- {diffsky-0.2.3 → diffsky-0.2.5}/CHANGES.rst +10 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/PKG-INFO +1 -1
- diffsky-0.2.5/diffsky/_version.py +1 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/lc_mock_production.py +86 -4
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/lightcone_utils.py +11 -4
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/bulge_opt.py +157 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/bulge_shapes.py +43 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/disk_opt.py +130 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/disk_shapes.py +34 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/ellipse_proj_kernels.py +180 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/pdf_model_utils.py +30 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/test_bulge_opt.py +33 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/test_bulge_shapes.py +28 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/test_disk_opt.py +33 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/test_disk_shapes.py +28 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/test_ellipse_proj_kernels.py +121 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/test_pdf_model_utils.py +18 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/testing_data/ellipsoid_b_over_a_pdf_rodriguez_padilla_2013.txt +30 -0
- diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests/testing_data/spiral_b_over_a_pdf_rodriguez_padilla_2013.txt +33 -0
- diffsky-0.2.5/diffsky/experimental/__init__.py +2 -0
- diffsky-0.2.5/diffsky/experimental/black_hole_modeling/README.txt +1 -0
- diffsky-0.2.5/diffsky/experimental/black_hole_modeling/black_hole_accretion_rate.py +140 -0
- diffsky-0.2.5/diffsky/experimental/black_hole_modeling/black_hole_mass.py +61 -0
- diffsky-0.2.5/diffsky/experimental/black_hole_modeling/tests/test_black_hole_accretion_rate.py +30 -0
- diffsky-0.2.5/diffsky/experimental/black_hole_modeling/tests/test_black_hole_mass.py +25 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/disk_bulge_kernels.py +314 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/disk_knots.py +57 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/generate_bulge_disk_sample.py +80 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/mc_disk_bulge.py +133 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/tests/test_disk_bulge.py +291 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/tests/test_disk_knots.py +90 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/tests/test_generate_bulge_disk_sample.py +67 -0
- diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling/tests/test_mc_disk_bulge.py +81 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/lc_phot_kern.py +97 -4
- diffsky-0.2.5/diffsky/experimental/lc_utils.py +135 -0
- diffsky-0.2.5/diffsky/experimental/mc_diffsky_seds.py +904 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/mc_lightcone_halos.py +410 -62
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/precompute_ssp_phot.py +30 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_lc_phot_kern.py +44 -3
- diffsky-0.2.5/diffsky/experimental/tests/test_lc_utils.py +47 -0
- diffsky-0.2.5/diffsky/experimental/tests/test_mc_diffsky_seds.py +223 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_mc_lightcone_halos.py +41 -4
- diffsky-0.2.5/diffsky/experimental/tests/test_sobol_lightcone.py +67 -0
- diffsky-0.2.5/diffsky/experimental/tests/test_top_level_imports.py +14 -0
- diffsky-0.2.5/diffsky/mass_functions/fitting_utils/fit_flat_hmf_model.py +51 -0
- diffsky-0.2.5/diffsky/mass_functions/fitting_utils/fit_halobias_model.py +52 -0
- diffsky-0.2.5/diffsky/mass_functions/fitting_utils/fit_halobias_singlez_model.py +46 -0
- diffsky-0.2.5/diffsky/mass_functions/fitting_utils/tests/test_fit_flat_hmf_model.py +65 -0
- diffsky-0.2.5/diffsky/mass_functions/fitting_utils/tests/test_fit_halobias_model.py +58 -0
- diffsky-0.2.5/diffsky/mass_functions/fitting_utils/tests/test_fit_halobias_model_singlez.py +55 -0
- diffsky-0.2.5/diffsky/mass_functions/flat_hmf_model.py +133 -0
- diffsky-0.2.5/diffsky/mass_functions/halobias_model.py +207 -0
- diffsky-0.2.5/diffsky/mass_functions/halobias_singlez_model.py +155 -0
- diffsky-0.2.5/diffsky/mass_functions/tests/test_flat_hmf_model.py +68 -0
- diffsky-0.2.5/diffsky/mass_functions/tests/test_halobias_model.py +99 -0
- diffsky-0.2.5/diffsky/mass_functions/tests/test_halobias_singlez_model.py +87 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/param_utils/diffsky_param_wrapper.py +16 -13
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/param_utils/tests/test_diffsky_param_wrapper.py +11 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/phot_utils.py +10 -2
- diffsky-0.2.5/diffsky/tests/__init__.py +0 -0
- diffsky-0.2.5/diffsky/tests/test_imports.py +5 -0
- diffsky-0.2.5/diffsky/tests/testing_data/__init__.py +0 -0
- diffsky-0.2.5/diffsky/utils/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky.egg-info/PKG-INFO +1 -1
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky.egg-info/SOURCES.txt +68 -10
- diffsky-0.2.5/docs/source/demo_diffmahpop_lightcone.ipynb +269 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/demo_diffmahpop_t_peak.ipynb +2 -2
- diffsky-0.2.5/docs/source/demo_diffsky_lightcone.ipynb +469 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/demos.rst +3 -1
- diffsky-0.2.3/docs/source/demo_mc_lightcones.ipynb → diffsky-0.2.5/docs/source/validate_mc_lightcones.ipynb +12 -2
- diffsky-0.2.5/scripts/LJ_CROSSX/bebop_jobs.sh +1 -0
- diffsky-0.2.5/scripts/LJ_CROSSX/generate_lj_cf_crossmatch_jobs.py +124 -0
- diffsky-0.2.5/scripts/LJ_CROSSX/inspect_lc_cf_crossx_job_logs.py +116 -0
- diffsky-0.2.3/scripts/inspect_lightcone_mock.py → diffsky-0.2.5/scripts/LJ_CROSSX/inspect_lc_crossx_data.py +1 -1
- {diffsky-0.2.3/scripts → diffsky-0.2.5/scripts/LJ_CROSSX}/lc_cf_crossmatch_script.py +4 -4
- diffsky-0.2.5/scripts/LJ_CROSSX/run_lc_cf_crossmatch_base.sh +21 -0
- diffsky-0.2.5/scripts/LJ_CROSSX/run_tabulate_coreforest_overlap.sh +19 -0
- {diffsky-0.2.3/scripts → diffsky-0.2.5/scripts/LJ_CROSSX}/tabulate_coreforest_overlap.py +2 -2
- diffsky-0.2.5/scripts/LJ_LC_MOCKS/make_sed_lc_mock_lj.py +213 -0
- {diffsky-0.2.3/scripts/LJ_LC_JOBS → diffsky-0.2.5/scripts/LJ_LC_MOCKS}/make_sfh_lc_mock_lj.py +5 -3
- diffsky-0.2.5/scripts/__init__.py +0 -0
- diffsky-0.2.5/scripts/tests/__init__.py +0 -0
- diffsky-0.2.5/scripts/tests/test_inspect_lightcone_mock.py +5 -0
- diffsky-0.2.5/scripts/tests/test_make_sfh_lj_mock.py +5 -0
- diffsky-0.2.5/scripts/tests/test_tabulate_coreforest_overlap.py +5 -0
- diffsky-0.2.3/diffsky/_version.py +0 -1
- diffsky-0.2.3/scripts/make_sfh_lightcone_last_journey.py +0 -159
- diffsky-0.2.3/scripts/tests/test_inspect_lightcone_mock.py +0 -5
- diffsky-0.2.3/scripts/tests/test_lc_cf_crossmatch_script.py +0 -5
- diffsky-0.2.3/scripts/tests/test_make_sfh_lj_mock.py +0 -5
- diffsky-0.2.3/scripts/tests/test_tabulate_coreforest_overlap.py +0 -5
- {diffsky-0.2.3 → diffsky-0.2.5}/.coveragerc +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/.git_archival.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/.gitattributes +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/.github/dependabot.yml +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/.gitignore +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/.readthedocs.yml +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/LICENSE.rst +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/README.rst +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diagnostics/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diagnostics/plot_fburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diagnostics/plot_tburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diagnostics/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diagnostics/tests/test_plot_fburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diagnostics/tests/test_plot_tburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diffburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diffqburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diffqburstpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/diffqburstpop_mono_noise.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/fburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/fburstpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/freqburst.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/freqburst_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_diffburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_diffqburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_diffqburstpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_diffqburstpop_mono_noise.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_fburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_fburstpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_freqburst.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_freqburst_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/burstpop/tests/test_tburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/cosmos_utils/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/cosmos_utils/cosmos_mstar_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/cosmos_utils/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/cosmos_utils/tests/test_cosmos_mstar_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/cosmos20_loader.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/data_validation/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/data_validation/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_cores.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_mock.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_cores.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_mock.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/defaults.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/hacc_core_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/load_hacc_cores.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/load_lc_cf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/load_lc_cf_synthetic.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/load_lc_mock.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/metadata_sfh_mock.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/test_defaults.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/test_hacc_core_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/test_lc_mock_production.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/test_lightcone_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/test_load_hacc_cores.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/test_load_lc_cf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/lc_cores-decomposition.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/phi_haccytrees_tdata.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/redshift_haccytrees_tdata.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/theta_haccytrees_tdata.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/x_haccytrees_tdata.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/y_haccytrees_tdata.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/hacc_utils/tests/testing_data/z_haccytrees_tdata.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/io_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/mpi_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/tests/test_cosmos_loader.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/tests/test_imports.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/tests/testing_data/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/tests/testing_data/cosmos20_shasum.dat +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/data_loaders/um_binary_loader.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/plot_delta_mag_burstiness.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/plot_diffstar_fq.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/tests/test_plot_delta_mag_burstiness.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/tests/test_plot_diffstar_fq.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diagnostics/utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/diffndhist.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/avpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/avpop_flex.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/avpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/deltapop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/diagnostics/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/diagnostics/plot_avpop_flex.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/diagnostics/plot_funopop_simple.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/diagnostics/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/diagnostics/tests/test_plot_avpop_flex.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/diagnostics/tests/test_plot_funopop_simple.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/funopop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/funopop_simple.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/funopop_ssfr.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/sbl18_dust.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/sbl18_dust_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/sbl18_dustpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_avpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_avpop_flex.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_avpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_deltapop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_funopop_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_funopop_simple.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_funopop_ssfr.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_sbl18_dustpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_tw_dust_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_tw_dustpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_tw_dustpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_tw_dustpop_mono_noise.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tests/test_tw_dustpop_new.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tw_dust.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tw_dust_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tw_dustpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tw_dustpop_mono.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tw_dustpop_mono_noise.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/dustpop/tw_dustpop_new.py +0 -0
- {diffsky-0.2.3/diffsky/experimental → diffsky-0.2.5/diffsky/ellipsoidal_shapes}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/experimental/diagnostics → diffsky-0.2.5/diffsky/ellipsoidal_shapes/tests}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/experimental/diagnostics/tests → diffsky-0.2.5/diffsky/experimental/black_hole_modeling}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/experimental/dspspop → diffsky-0.2.5/diffsky/experimental/black_hole_modeling/tests}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/experimental/dspspop/tests → diffsky-0.2.5/diffsky/experimental/diagnostics}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/diagnostics/check_smhm.py +0 -0
- {diffsky-0.2.3/diffsky/experimental → diffsky-0.2.5/diffsky/experimental/diagnostics}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/diagnostics/tests/test_check_smhm.py +0 -0
- {diffsky-0.2.3/diffsky/fake_sats → diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/fake_sats → diffsky-0.2.5/diffsky/experimental/disk_bulge_modeling}/tests/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/fitting_utils → diffsky-0.2.5/diffsky/experimental/dspspop}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/boris_dust.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/burstshapepop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/dust_deltapop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/dustpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/lgavpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/lgfburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/nagaraj22_dust.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/photpop.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/fitting_utils/calibrations → diffsky-0.2.5/diffsky/experimental/dspspop/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/tests/test_attavpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/tests/test_boris_dust.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/tests/test_burstshapepop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/tests/test_dustdeltapop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/tests/test_lgfburstpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/dspspop/tests/test_photpop.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/mc_diffsky_phot.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/phot_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/photometry_interpolation.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/scatter.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/ssp_err_pop.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/fitting_utils/calibrations → diffsky-0.2.5/diffsky/experimental}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_mc_diffsky_phot.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_photometry_interpolation.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_precompute_ssp_phot.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_scatter.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/experimental/tests/test_ssp_err_pop.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/fitting_utils/diagnostics → diffsky-0.2.5/diffsky/fake_sats}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/ellipsoidal_nfw_phase_space.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/ellipsoidal_velocities.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/halo_boundary_functions.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/nfw_config_space.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/rotations3d.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/fitting_utils/diagnostics → diffsky-0.2.5/diffsky/fake_sats}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/test_ellipsoidal_nfw_phase_space.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/test_halo_boundary_functions.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/test_mc_ellipticial_velocities.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/test_nfw_config_space.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/test_rotations3d.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/testing_data/halo_mass_ht_test.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/testing_data/halo_radius_200c_ht_test.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/tests/testing_data/redshift_ht_test.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/fake_sats/vector_utilities.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/ccshmf_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/README.rst +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/fitting_utils/tests → diffsky-0.2.5/diffsky/mass_functions/fitting_utils}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/hmf_calibrations/tests → diffsky-0.2.5/diffsky/mass_functions/fitting_utils/calibrations}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/calibrations/hacc_core_shmf_params.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/io_utils → diffsky-0.2.5/diffsky/mass_functions/fitting_utils/calibrations/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/calibrations/tests/test_hacc_core_shmf_params.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/kernels → diffsky-0.2.5/diffsky/mass_functions/fitting_utils/diagnostics}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/diagnostics/hmf_fit_diagnostics.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/kernels → diffsky-0.2.5/diffsky/mass_functions/fitting_utils/diagnostics}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/diagnostics/tests/test_hmf_fit_diagnostics.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/fit_ccshmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/fit_ccshmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/fit_hmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/fit_hmf_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/fitting_helpers.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/smhm_kernels → diffsky-0.2.5/diffsky/mass_functions/fitting_utils/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/disc_lcdm_hmf_params.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/disc_lcdm_hmf_params_all.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/hmf_param_reader.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/lj_hmf_params.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/lj_hmf_params_all.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_fitting_helpers.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_subs.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/smhm_kernels → diffsky-0.2.5/diffsky/mass_functions/hmf_calibrations}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/test_imports.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/test_lj_hmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/test_smdpl_hmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_cuml_density_all.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_cuml_density_cens.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_logmp_bins.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/disc_lcdm_hmf_redshift_bins.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_cuml_density_all.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_cuml_density_cens.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_logmp_bins.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/lj_hmf_redshift_bins.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.lgcuml_density.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.logmp_bins.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.lgcuml_density.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.logmp_bins.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.lgcuml_density.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.logmp_bins.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.lgcuml_density.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.logmp_bins.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.lgcuml_density.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.logmp_bins.npy +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/hmf_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/io_utils/README.txt +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/tests → diffsky-0.2.5/diffsky/mass_functions/io_utils}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/io_utils/loader.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/io_utils/smdpl_helpers.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/tests/testing_data → diffsky-0.2.5/diffsky/mass_functions/kernels}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/kernels/ccshmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/kernels/hmf_kernels.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/upweighting → diffsky-0.2.5/diffsky/mass_functions/kernels/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/kernels/tests/test_ccshmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/kernels/tests/test_hmf_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/mc_diffmah_tpeak.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/mc_hosts.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/mc_subs.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/mc_tinfall.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/measure_ccshmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/measure_hmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/discovery_lcdm_calibration/fit_hmf_disc_lcdm.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/discovery_lcdm_calibration/measure_hmf_target_data_hacc.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/discovery_lcdm_calibration/run_hmf_tabulation_disc_lcdm.sh +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/last_journey_calibration/fit_hmf_lj.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/last_journey_calibration/measure_hmf_target_data_hacc.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/smdpl_calibration/fit_smdpl_hmf_script.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/scripts/smdpl_calibration/measure_smdpl_hmf_script.py +0 -0
- {diffsky-0.2.3/diffsky/mass_functions/upweighting/tests → diffsky-0.2.5/diffsky/mass_functions/smhm_kernels}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/merging → diffsky-0.2.5/diffsky/mass_functions/smhm_kernels/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/smhm_kernels/tests/test_threeroll_smhm.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/smhm_kernels/threeroll_kernels.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/smhm_kernels/threeroll_smhm.py +0 -0
- {diffsky-0.2.3/diffsky/merging/diagnostics → diffsky-0.2.5/diffsky/mass_functions/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_ccshmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_hmf_model.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_mc_diffmah_tpeak.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_mc_hosts.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_mc_subs.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_mc_tinfall.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/test_measure_hmf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/README.txt +0 -0
- {diffsky-0.2.3/diffsky/merging/diagnostics/tests → diffsky-0.2.5/diffsky/mass_functions/tests/testing_data}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_12.32.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_13.00.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_13.55.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_14.08.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_12.31.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_12.99.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_13.51.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_14.05.txt +0 -0
- {diffsky-0.2.3/diffsky/merging/tests → diffsky-0.2.5/diffsky/mass_functions/upweighting}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/upweighting/namedtuple_cat_utils.py +0 -0
- {diffsky-0.2.3/diffsky/param_utils → diffsky-0.2.5/diffsky/mass_functions/upweighting/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/upweighting/tests/test_mc_gen_upweighting.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/upweighting/upweighting.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mass_functions/utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/mc_diffsky.py +0 -0
- {diffsky-0.2.3/diffsky/param_utils/tests → diffsky-0.2.5/diffsky/merging}/__init__.py +0 -0
- {diffsky-0.2.3/diffsky/ssp_err_model → diffsky-0.2.5/diffsky/merging/diagnostics}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/merging/diagnostics/plot_pmerge_vs_time.py +0 -0
- {diffsky-0.2.3/diffsky/ssp_err_model → diffsky-0.2.5/diffsky/merging/diagnostics}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/merging/diagnostics/tests/test_plot_pmerge_vs_time.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/merging/fitmerge_multi_redshift.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/merging/merging_model.py +0 -0
- {diffsky-0.2.3/diffsky/sumstats → diffsky-0.2.5/diffsky/merging/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/merging/tests/test_fitmerge_multi_redshift.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/merging/tests/test_merging_model.py +0 -0
- {diffsky-0.2.3/diffsky/sumstats/tests → diffsky-0.2.5/diffsky/param_utils}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/param_utils/spspop_param_utils.py +0 -0
- {diffsky-0.2.3/diffsky/systematics → diffsky-0.2.5/diffsky/param_utils/tests}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/param_utils/tests/test_spspop_param_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/sbl18_photgrad.py +0 -0
- {diffsky-0.2.3/diffsky/systematics/tests → diffsky-0.2.5/diffsky/ssp_err_model}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/ssp_err_model/ssp_err_model.py +0 -0
- {diffsky-0.2.3/diffsky → diffsky-0.2.5/diffsky/ssp_err_model}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/ssp_err_model/tests/test_ssp_err_model.py +0 -0
- {diffsky-0.2.3/diffsky/tests/testing_data → diffsky-0.2.5/diffsky/sumstats}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/sumstats/diffndhist.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/sumstats/smhm.py +0 -0
- {diffsky-0.2.3/diffsky/utils → diffsky-0.2.5/diffsky/sumstats}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/sumstats/tests/test_smhm.py +0 -0
- {diffsky-0.2.3/scripts → diffsky-0.2.5/diffsky/systematics}/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/systematics/ssp_errors.py +0 -0
- {diffsky-0.2.3/scripts → diffsky-0.2.5/diffsky/systematics}/tests/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/systematics/tests/test_ssp_errors.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_dependencies.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_diffndhist.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_diffsky_setup.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_mc_diffsky.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_phot_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_sbl18_photgrad.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tests/test_tw_photgrad.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/tw_photgrad.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/__init__.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/crossmatch_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/sfh_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/tests/test_crossmatch_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/tests/test_sfh_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/tests/test_tw_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/tests/test_utility_funcs.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/tw_utils.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky/utils/utility_funcs.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky.egg-info/dependency_links.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky.egg-info/requires.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/diffsky.egg-info/top_level.txt +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/Makefile +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/make.bat +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/citation.rst +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/conf.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/index.rst +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/installation.rst +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/docs/source/rtd_environment.yaml +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/pyproject.toml +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/requirements.txt +0 -0
- {diffsky-0.2.3/scripts/LJ_LC_JOBS → diffsky-0.2.5/scripts/LJ_LC_MOCKS}/generate_sfh_mock_jobs.py +0 -0
- {diffsky-0.2.3/scripts → diffsky-0.2.5/scripts/LJ_LC_MOCKS}/inspect_lc_mock.py +0 -0
- /diffsky-0.2.3/scripts/make_sfh_lj_mock.py → /diffsky-0.2.5/scripts/LJ_SNAP_MOCKS/make_sfh_lj_snapshot_mock.py +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/setup.cfg +0 -0
- {diffsky-0.2.3 → diffsky-0.2.5}/setup.py +0 -0
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
0.2.5 (2025-10-01)
|
|
2
|
+
-------------------
|
|
3
|
+
- Minor changes before updating to diffstar v1.0
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
0.2.4 (2025-09-02)
|
|
7
|
+
-------------------
|
|
8
|
+
- Release associated with diffskyopt+kdescent calibration by Alan Pearl
|
|
9
|
+
|
|
10
|
+
|
|
1
11
|
0.2.3 (2025-07-30)
|
|
2
12
|
-------------------
|
|
3
13
|
- Fix bug in lightcone data loader (https://github.com/ArgonneCPAC/diffsky/pull/195)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.2.5'
|
|
@@ -15,8 +15,10 @@ from diffstarpop.param_utils import mc_select_diffstar_params
|
|
|
15
15
|
from dsps.cosmology import flat_wcdm
|
|
16
16
|
from jax import random as jran
|
|
17
17
|
|
|
18
|
+
from ...experimental import mc_diffsky_seds
|
|
18
19
|
from ...fake_sats import halo_boundary_functions as hbf
|
|
19
20
|
from ...fake_sats import nfw_config_space as nfwcs
|
|
21
|
+
from ...param_utils import diffsky_param_wrapper as dpw
|
|
20
22
|
from ...utils.sfh_utils import get_logsm_logssfr_at_t_obs
|
|
21
23
|
from . import lightcone_utils as hlu
|
|
22
24
|
from . import load_lc_cf
|
|
@@ -94,6 +96,10 @@ def write_lc_sfh_mock_to_disk(fnout, lc_data, diffsky_data):
|
|
|
94
96
|
hdf_out[key_out] = diffsky_data[key]
|
|
95
97
|
|
|
96
98
|
|
|
99
|
+
def write_lc_sed_mock_to_disk(fnout, lc_data, diffsky_data):
|
|
100
|
+
raise NotImplementedError("Need to add SED quantities to write_lc_sed_mock_to_disk")
|
|
101
|
+
|
|
102
|
+
|
|
97
103
|
def add_sfh_quantities_to_mock(sim_info, lc_data, diffsky_data, ran_key):
|
|
98
104
|
lc_data["t_obs"] = flat_wcdm.age_at_z(
|
|
99
105
|
lc_data["redshift_true"], *sim_info.cosmo_params
|
|
@@ -105,6 +111,7 @@ def add_sfh_quantities_to_mock(sim_info, lc_data, diffsky_data, ran_key):
|
|
|
105
111
|
for pname, pval in zip(mah_params._fields, mah_params):
|
|
106
112
|
diffsky_data[pname] = pval
|
|
107
113
|
diffsky_data["has_diffmah_fit"] = msk_has_diffmah_fit
|
|
114
|
+
diffsky_data["mah_params"] = mah_params
|
|
108
115
|
|
|
109
116
|
logmp0 = logmh_at_t_obs(
|
|
110
117
|
mah_params, np.zeros(mah_params.logm0.size) + 10**sim_info.lgt0, sim_info.lgt0
|
|
@@ -121,7 +128,7 @@ def add_sfh_quantities_to_mock(sim_info, lc_data, diffsky_data, ran_key):
|
|
|
121
128
|
gyr_since_infall = np.zeros_like(logmp0)
|
|
122
129
|
upids = np.where(lc_data["central"] == 1, -1, 0)
|
|
123
130
|
|
|
124
|
-
t_table = np.linspace(0.1, 10**sim_info.lgt0, 100)
|
|
131
|
+
diffsky_data["t_table"] = np.linspace(0.1, 10**sim_info.lgt0, 100)
|
|
125
132
|
|
|
126
133
|
args = (
|
|
127
134
|
DEFAULT_DIFFSTARPOP_PARAMS,
|
|
@@ -132,27 +139,102 @@ def add_sfh_quantities_to_mock(sim_info, lc_data, diffsky_data, ran_key):
|
|
|
132
139
|
logmhost_infall,
|
|
133
140
|
gyr_since_infall,
|
|
134
141
|
ran_key,
|
|
135
|
-
t_table,
|
|
142
|
+
diffsky_data["t_table"],
|
|
136
143
|
)
|
|
137
144
|
|
|
138
145
|
_res = mc_diffstar_sfh_galpop(*args)
|
|
139
146
|
sfh_params_ms, sfh_params_q, sfh_ms, sfh_q, frac_q, mc_is_q = _res
|
|
140
147
|
|
|
141
|
-
|
|
148
|
+
diffsky_data["sfh_table"] = np.where(mc_is_q.reshape((-1, 1)), sfh_q, sfh_ms)
|
|
142
149
|
sfh_params = mc_select_diffstar_params(sfh_params_q, sfh_params_ms, mc_is_q)
|
|
143
150
|
|
|
151
|
+
diffsky_data["sfh_table_ms"] = sfh_ms
|
|
152
|
+
diffsky_data["sfh_table_q"] = sfh_q
|
|
153
|
+
|
|
154
|
+
diffsky_data["mc_is_q"] = mc_is_q
|
|
155
|
+
# Need to add SFH table after MC selection
|
|
156
|
+
|
|
144
157
|
for key in sfh_params.ms_params._fields:
|
|
145
158
|
diffsky_data[key] = getattr(sfh_params.ms_params, key)
|
|
146
159
|
for key in sfh_params.q_params._fields:
|
|
147
160
|
diffsky_data[key] = getattr(sfh_params.q_params, key)
|
|
148
161
|
|
|
149
|
-
logsm_obs, logssfr_obs = get_logsm_logssfr_at_t_obs(
|
|
162
|
+
logsm_obs, logssfr_obs = get_logsm_logssfr_at_t_obs(
|
|
163
|
+
lc_data["t_obs"], diffsky_data["t_table"], diffsky_data["sfh_table"]
|
|
164
|
+
)
|
|
150
165
|
diffsky_data["logsm_obs"] = logsm_obs
|
|
151
166
|
diffsky_data["logssfr_obs"] = logssfr_obs
|
|
152
167
|
|
|
168
|
+
logsm_obs_ms, logssfr_obs_ms = get_logsm_logssfr_at_t_obs(
|
|
169
|
+
lc_data["t_obs"], diffsky_data["t_table"], diffsky_data["sfh_table_ms"]
|
|
170
|
+
)
|
|
171
|
+
diffsky_data["logsm_obs_ms"] = logsm_obs_ms
|
|
172
|
+
diffsky_data["logssfr_obs_ms"] = logssfr_obs_ms
|
|
173
|
+
|
|
174
|
+
logsm_obs_q, logssfr_obs_q = get_logsm_logssfr_at_t_obs(
|
|
175
|
+
lc_data["t_obs"], diffsky_data["t_table"], diffsky_data["sfh_table_q"]
|
|
176
|
+
)
|
|
177
|
+
diffsky_data["logsm_obs_q"] = logsm_obs_q
|
|
178
|
+
diffsky_data["logssfr_obs_q"] = logssfr_obs_q
|
|
179
|
+
|
|
153
180
|
return lc_data, diffsky_data
|
|
154
181
|
|
|
155
182
|
|
|
183
|
+
def add_sed_quantities_to_mock(
|
|
184
|
+
sim_info,
|
|
185
|
+
lc_data,
|
|
186
|
+
diffsky_data,
|
|
187
|
+
ssp_data,
|
|
188
|
+
u_param_arr,
|
|
189
|
+
precomputed_ssp_mag_table,
|
|
190
|
+
z_phot_table,
|
|
191
|
+
wave_eff_table,
|
|
192
|
+
ran_key,
|
|
193
|
+
):
|
|
194
|
+
u_param_collection = dpw.get_u_param_collection_from_u_param_array(u_param_arr)
|
|
195
|
+
param_collection = dpw.get_param_collection_from_u_param_collection(
|
|
196
|
+
*u_param_collection
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
(
|
|
200
|
+
diffstarpop_params,
|
|
201
|
+
mzr_params,
|
|
202
|
+
spspop_params,
|
|
203
|
+
scatter_params,
|
|
204
|
+
ssp_err_pop_params,
|
|
205
|
+
) = param_collection
|
|
206
|
+
|
|
207
|
+
n_z_table, n_bands, n_met, n_age = precomputed_ssp_mag_table.shape
|
|
208
|
+
|
|
209
|
+
ran_key, sfh_key = jran.split(ran_key, 2)
|
|
210
|
+
lc_data, diffsky_data = add_sfh_quantities_to_mock(
|
|
211
|
+
sim_info, lc_data, diffsky_data, sfh_key
|
|
212
|
+
)
|
|
213
|
+
n_gals = diffsky_data["logsm_obs"].size
|
|
214
|
+
|
|
215
|
+
ran_key, sed_key = jran.split(ran_key, 2)
|
|
216
|
+
args = (
|
|
217
|
+
sed_key,
|
|
218
|
+
lc_data["redshift_true"],
|
|
219
|
+
lc_data["t_obs"],
|
|
220
|
+
diffsky_data["mah_params"],
|
|
221
|
+
diffsky_data["logmp0"],
|
|
222
|
+
diffsky_data["t_table"],
|
|
223
|
+
ssp_data,
|
|
224
|
+
precomputed_ssp_mag_table,
|
|
225
|
+
z_phot_table,
|
|
226
|
+
wave_eff_table,
|
|
227
|
+
diffstarpop_params,
|
|
228
|
+
mzr_params,
|
|
229
|
+
spspop_params,
|
|
230
|
+
scatter_params,
|
|
231
|
+
ssp_err_pop_params,
|
|
232
|
+
sim_info.cosmo_params,
|
|
233
|
+
)
|
|
234
|
+
phot_info = mc_diffsky_seds._mc_diffsky_phot_kern(*args)
|
|
235
|
+
return phot_info, lc_data, diffsky_data
|
|
236
|
+
|
|
237
|
+
|
|
156
238
|
def reposition_satellites(sim_info, lc_data, diffsky_data, ran_key, fixed_conc=5.0):
|
|
157
239
|
|
|
158
240
|
pos = np.array((lc_data["x"], lc_data["y"], lc_data["z"])).T
|
|
@@ -302,16 +302,23 @@ def get_diffsky_quantities_for_lc_patch(
|
|
|
302
302
|
):
|
|
303
303
|
cf_first_row = cf_matrices["absolute_row_idx"][0]
|
|
304
304
|
cf_last_row = cf_matrices["absolute_row_idx"][-1]
|
|
305
|
-
msk_olap = lc_patch_data["
|
|
306
|
-
msk_olap &= lc_patch_data["
|
|
307
|
-
msk_olap &= lc_patch_data["
|
|
305
|
+
msk_olap = lc_patch_data["coreforest_file_idx"] == cf_file_idx
|
|
306
|
+
msk_olap &= lc_patch_data["coreforest_row_idx"] >= cf_first_row
|
|
307
|
+
msk_olap &= lc_patch_data["coreforest_row_idx"] <= cf_last_row
|
|
308
308
|
mpeak_history = np.maximum.accumulate(cf_matrices[DIFFMAH_MASS_COLNAME], axis=1)
|
|
309
309
|
mp_obs = mpeak_history[:, timestep_idx]
|
|
310
310
|
mp0 = mpeak_history[:, -1]
|
|
311
311
|
|
|
312
312
|
n_olap = msk_olap.sum()
|
|
313
313
|
if n_olap > 0:
|
|
314
|
-
olap_chunk_idx = lc_patch_data["
|
|
314
|
+
olap_chunk_idx = lc_patch_data["coreforest_row_idx"][msk_olap] - cf_first_row
|
|
315
|
+
|
|
316
|
+
# Enforce exact match in core_tag
|
|
317
|
+
core_tags_cf = cf_matrices["core_tag"][:, -1][olap_chunk_idx]
|
|
318
|
+
core_tags_lc = lc_patch_data["core_tag"][msk_olap]
|
|
319
|
+
msg = "Mismatched core_tag between coreforest and lc-cores"
|
|
320
|
+
assert np.allclose(core_tags_cf, core_tags_lc), msg
|
|
321
|
+
|
|
315
322
|
olap_chunk_ult_host_idx = cf_matrices["top_host_row"][:, timestep_idx][
|
|
316
323
|
olap_chunk_idx
|
|
317
324
|
]
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"""Functions and script for optimizing parameters of bulge_shapes model"""
|
|
2
|
+
|
|
3
|
+
from collections import namedtuple
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
from jax import jit as jjit
|
|
7
|
+
from jax import numpy as jnp
|
|
8
|
+
from jax import random as jran
|
|
9
|
+
from jax import value_and_grad
|
|
10
|
+
|
|
11
|
+
from .. import diffndhist
|
|
12
|
+
from . import bulge_shapes as eshape
|
|
13
|
+
from . import ellipse_proj_kernels as eproj
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@jjit
|
|
17
|
+
def _mae(pred, target):
|
|
18
|
+
diff = pred - target
|
|
19
|
+
return jnp.mean(jnp.abs(diff))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@jjit
|
|
23
|
+
def get_all_params_from_varied(varied_params, default_params):
|
|
24
|
+
all_params = default_params._replace(**varied_params._asdict())
|
|
25
|
+
return all_params
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@jjit
|
|
29
|
+
def _nondiff_loss_kern(bulge_params, loss_data):
|
|
30
|
+
x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins = loss_data
|
|
31
|
+
pred_data = ran_key, mu_ran, phi_ran, ba_bins, x_target
|
|
32
|
+
|
|
33
|
+
ba_pdf_pred = _nondiff_pred_kern(bulge_params, pred_data)
|
|
34
|
+
loss = _mae(ba_pdf_pred, ba_pdf_target)
|
|
35
|
+
return loss
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@jjit
|
|
39
|
+
def loss_kern(varied_params, loss_data):
|
|
40
|
+
x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins, default_params = (
|
|
41
|
+
loss_data
|
|
42
|
+
)
|
|
43
|
+
bulge_params = get_all_params_from_varied(varied_params, default_params)
|
|
44
|
+
loss = _loss_kern(
|
|
45
|
+
bulge_params, x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins
|
|
46
|
+
)
|
|
47
|
+
return loss
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@jjit
|
|
51
|
+
def _loss_kern(
|
|
52
|
+
bulge_params, x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins
|
|
53
|
+
):
|
|
54
|
+
pred_data = x_target, ran_key, mu_ran, phi_ran, ba_bins
|
|
55
|
+
|
|
56
|
+
ba_pdf_pred = _pred_kern(bulge_params, pred_data)
|
|
57
|
+
loss = _mae(ba_pdf_pred, ba_pdf_target)
|
|
58
|
+
return loss
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@jjit
|
|
62
|
+
def _pred_kern(bulge_params, pred_data):
|
|
63
|
+
x_target, ran_key, mu_ran, phi_ran, ba_bins = pred_data
|
|
64
|
+
|
|
65
|
+
ran_key, bulge_key = jran.split(ran_key, 2)
|
|
66
|
+
ellipse2d = _pred_ellipse_samples_kern(bulge_params, bulge_key, mu_ran, phi_ran)
|
|
67
|
+
|
|
68
|
+
nddata = jnp.array(ellipse2d.alpha / ellipse2d.beta).reshape((-1, 1))
|
|
69
|
+
ndsig = jnp.zeros_like(nddata) + 0.05
|
|
70
|
+
|
|
71
|
+
ndbins_lo = ba_bins[:-1].reshape((-1, 1))
|
|
72
|
+
ndbins_hi = ba_bins[1:].reshape((-1, 1))
|
|
73
|
+
|
|
74
|
+
wcounts = diffndhist.tw_ndhist(nddata, ndsig, ndbins_lo, ndbins_hi)
|
|
75
|
+
ba_pdf_pred_table = (wcounts / wcounts.sum()) / jnp.diff(ba_bins)
|
|
76
|
+
|
|
77
|
+
ba_binmids = 0.5 * (ba_bins[:-1] + ba_bins[1:])
|
|
78
|
+
ba_pdf_pred = jnp.interp(x_target, ba_binmids, ba_pdf_pred_table)
|
|
79
|
+
|
|
80
|
+
return ba_pdf_pred
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@jjit
|
|
84
|
+
def _pred_ellipse_samples_kern(bulge_params, bulge_key, mu_ran, phi_ran):
|
|
85
|
+
ngals = mu_ran.shape[0]
|
|
86
|
+
axis_ratios = eshape.sample_bulge_axis_ratios(bulge_key, ngals, bulge_params)
|
|
87
|
+
a = jnp.ones_like(mu_ran)
|
|
88
|
+
b = a * axis_ratios.b_over_a
|
|
89
|
+
c = a * axis_ratios.c_over_a
|
|
90
|
+
ellipse2d = eproj.compute_ellipse2d(a, b, c, mu_ran, phi_ran)
|
|
91
|
+
return ellipse2d
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
@jjit
|
|
95
|
+
def _nondiff_pred_kern(bulge_params, pred_data):
|
|
96
|
+
ran_key, mu_ran, phi_ran, ba_bins, x_target = pred_data
|
|
97
|
+
|
|
98
|
+
ran_key, bulge_key = jran.split(ran_key, 2)
|
|
99
|
+
ellipse2d = _pred_ellipse_samples_kern(bulge_params, bulge_key, mu_ran, phi_ran)
|
|
100
|
+
|
|
101
|
+
alpha_over_beta = ellipse2d.alpha / ellipse2d.beta
|
|
102
|
+
ba_pdf_table, __ = jnp.histogram(alpha_over_beta, ba_bins, density=True)
|
|
103
|
+
ba_binmids = 0.5 * (ba_bins[:-1] + ba_bins[1:])
|
|
104
|
+
ba_pdf_pred = jnp.interp(x_target, ba_binmids, ba_pdf_table)
|
|
105
|
+
|
|
106
|
+
return ba_pdf_pred
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
loss_and_grad_kern = jjit(value_and_grad(loss_kern, argnums=0))
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
if __name__ == "__main__":
|
|
113
|
+
import argparse
|
|
114
|
+
|
|
115
|
+
from diffsky.mass_functions.fitting_utils.fitting_helpers import jax_adam_wrapper
|
|
116
|
+
|
|
117
|
+
parser = argparse.ArgumentParser()
|
|
118
|
+
parser.add_argument(
|
|
119
|
+
"-seed", help="Integer input to jax.random.key(seed)", default=0, type=int
|
|
120
|
+
)
|
|
121
|
+
parser.add_argument(
|
|
122
|
+
"-ngals", help="Number of galaxies to estimate pdf", default=50_000, type=int
|
|
123
|
+
)
|
|
124
|
+
parser.add_argument(
|
|
125
|
+
"-tdata_fname",
|
|
126
|
+
help="Number of galaxies to estimate pdf",
|
|
127
|
+
default="ellipsoid_b_over_a_pdf_rodriguez_padilla_2013.txt",
|
|
128
|
+
)
|
|
129
|
+
args = parser.parse_args()
|
|
130
|
+
|
|
131
|
+
VariedParams = namedtuple("VariedParams", ("ba_peak", "ba_sigma", "c_min"))
|
|
132
|
+
varied_params = VariedParams._make(
|
|
133
|
+
[getattr(eshape.DEFAULT_BULGE_PARAMS, key) for key in VariedParams._fields]
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
ran_key = jran.key(args.seed)
|
|
137
|
+
ran_key, loss_key = jran.split(ran_key, 2)
|
|
138
|
+
|
|
139
|
+
target_data = np.loadtxt(args.tdata_fname, delimiter=",")
|
|
140
|
+
X = target_data[:, 0]
|
|
141
|
+
Y = target_data[:, 1]
|
|
142
|
+
|
|
143
|
+
ba_bins = np.linspace(0.01, 0.99, 50)
|
|
144
|
+
|
|
145
|
+
ran_key, mu_key, phi_key = jran.split(ran_key, 3)
|
|
146
|
+
mu_ran = jran.uniform(mu_key, minval=-1, maxval=1, shape=(args.ngals,))
|
|
147
|
+
phi_ran = jran.uniform(phi_key, minval=0, maxval=2 * np.pi, shape=(args.ngals,))
|
|
148
|
+
|
|
149
|
+
default_params = eshape.DEFAULT_BULGE_PARAMS
|
|
150
|
+
loss_data = X, Y, loss_key, mu_ran, phi_ran, ba_bins, default_params
|
|
151
|
+
args = loss_and_grad_kern, varied_params, loss_data, 100
|
|
152
|
+
_res = jax_adam_wrapper(*args)
|
|
153
|
+
p_best, loss, loss_hist = _res[:3]
|
|
154
|
+
bulge_params_best = default_params._replace(**p_best._asdict())
|
|
155
|
+
print(f"\nInitial parameters:\n{default_params}")
|
|
156
|
+
|
|
157
|
+
print(f"\nBest-fitting parameters:\n{bulge_params_best}")
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Ellipsoidal model for PDF of bulge shapes"""
|
|
2
|
+
|
|
3
|
+
from collections import namedtuple
|
|
4
|
+
from functools import partial
|
|
5
|
+
|
|
6
|
+
from jax import jit as jjit
|
|
7
|
+
from jax import numpy as jnp
|
|
8
|
+
from jax import random as jran
|
|
9
|
+
|
|
10
|
+
from .pdf_model_utils import truncated_normal_sample
|
|
11
|
+
|
|
12
|
+
AxisRatios = namedtuple("AxisRatios", ("b_over_a", "c_over_a"))
|
|
13
|
+
BulgeAxisRatioParams = namedtuple(
|
|
14
|
+
"BulgeAxisRatioParams", ("ba_peak", "ba_sigma", "ba_min", "ba_max", "c_min")
|
|
15
|
+
)
|
|
16
|
+
DEFAULT_BULGE_PARAMS = BulgeAxisRatioParams(
|
|
17
|
+
ba_peak=1.3, ba_sigma=0.38, ba_min=0.3, ba_max=1.0, c_min=0.61
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@partial(jjit, static_argnames=["n_samples"])
|
|
22
|
+
def sample_bulge_axis_ratios(ran_key, n_samples, bulge_params):
|
|
23
|
+
"""Draw samples of axis ratios for bulges"""
|
|
24
|
+
ran_key_b, ran_key_c = jran.split(ran_key, 2)
|
|
25
|
+
|
|
26
|
+
b_over_a = truncated_normal_sample(
|
|
27
|
+
ran_key_b,
|
|
28
|
+
(n_samples,),
|
|
29
|
+
bulge_params.ba_peak,
|
|
30
|
+
bulge_params.ba_sigma,
|
|
31
|
+
bulge_params.ba_min,
|
|
32
|
+
bulge_params.ba_max,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
c_over_b = jran.uniform(
|
|
36
|
+
ran_key_c, (n_samples,), minval=bulge_params.c_min, maxval=1.0
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
c_over_a = c_over_b * b_over_a
|
|
40
|
+
c_over_a = jnp.minimum(c_over_a, b_over_a * 0.99) # Ensure c <= b for safety
|
|
41
|
+
|
|
42
|
+
axis_ratios = AxisRatios(b_over_a, c_over_a)
|
|
43
|
+
return axis_ratios
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"""Functions and script for optimizing parameters of disk_shapes model"""
|
|
2
|
+
|
|
3
|
+
from collections import namedtuple
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
from jax import jit as jjit
|
|
7
|
+
from jax import numpy as jnp
|
|
8
|
+
from jax import random as jran
|
|
9
|
+
from jax import value_and_grad
|
|
10
|
+
|
|
11
|
+
from .. import diffndhist
|
|
12
|
+
from . import disk_shapes as dshape
|
|
13
|
+
from . import ellipse_proj_kernels as eproj
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@jjit
|
|
17
|
+
def _mae(pred, target):
|
|
18
|
+
diff = pred - target
|
|
19
|
+
return jnp.mean(jnp.abs(diff))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@jjit
|
|
23
|
+
def get_all_params_from_varied(varied_params, default_params):
|
|
24
|
+
all_params = default_params._replace(**varied_params._asdict())
|
|
25
|
+
return all_params
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@jjit
|
|
29
|
+
def loss_kern(varied_params, loss_data):
|
|
30
|
+
x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins, default_params = (
|
|
31
|
+
loss_data
|
|
32
|
+
)
|
|
33
|
+
disk_params = get_all_params_from_varied(varied_params, default_params)
|
|
34
|
+
loss = _loss_kern(
|
|
35
|
+
disk_params, x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins
|
|
36
|
+
)
|
|
37
|
+
return loss
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@jjit
|
|
41
|
+
def _loss_kern(disk_params, x_target, ba_pdf_target, ran_key, mu_ran, phi_ran, ba_bins):
|
|
42
|
+
pred_data = x_target, ran_key, mu_ran, phi_ran, ba_bins
|
|
43
|
+
|
|
44
|
+
ba_pdf_pred = _pred_kern(disk_params, pred_data)
|
|
45
|
+
loss = _mae(ba_pdf_pred, ba_pdf_target)
|
|
46
|
+
return loss
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@jjit
|
|
50
|
+
def _pred_kern(disk_params, pred_data):
|
|
51
|
+
x_target, ran_key, mu_ran, phi_ran, ba_bins = pred_data
|
|
52
|
+
|
|
53
|
+
ran_key, disk_key = jran.split(ran_key, 2)
|
|
54
|
+
ellipse2d = _pred_ellipse_samples_kern(disk_params, disk_key, mu_ran, phi_ran)
|
|
55
|
+
|
|
56
|
+
nddata = jnp.array(ellipse2d.alpha / ellipse2d.beta).reshape((-1, 1))
|
|
57
|
+
ndsig = jnp.zeros_like(nddata) + 0.05
|
|
58
|
+
|
|
59
|
+
ndbins_lo = ba_bins[:-1].reshape((-1, 1))
|
|
60
|
+
ndbins_hi = ba_bins[1:].reshape((-1, 1))
|
|
61
|
+
|
|
62
|
+
wcounts = diffndhist.tw_ndhist(nddata, ndsig, ndbins_lo, ndbins_hi)
|
|
63
|
+
ba_pdf_pred_table = (wcounts / wcounts.sum()) / jnp.diff(ba_bins)
|
|
64
|
+
|
|
65
|
+
ba_binmids = 0.5 * (ba_bins[:-1] + ba_bins[1:])
|
|
66
|
+
ba_pdf_pred = jnp.interp(x_target, ba_binmids, ba_pdf_pred_table)
|
|
67
|
+
|
|
68
|
+
return ba_pdf_pred
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
loss_and_grad_kern = jjit(value_and_grad(loss_kern, argnums=0))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@jjit
|
|
75
|
+
def _pred_ellipse_samples_kern(disk_params, disk_key, mu_ran, phi_ran):
|
|
76
|
+
ngals = mu_ran.shape[0]
|
|
77
|
+
axis_ratios = dshape.sample_disk_axis_ratios(disk_key, ngals, disk_params)
|
|
78
|
+
a = jnp.ones_like(mu_ran)
|
|
79
|
+
b = a * axis_ratios.b_over_a
|
|
80
|
+
c = a * axis_ratios.c_over_a
|
|
81
|
+
ellipse2d = eproj.compute_ellipse2d(a, b, c, mu_ran, phi_ran)
|
|
82
|
+
return ellipse2d
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
if __name__ == "__main__":
|
|
86
|
+
import argparse
|
|
87
|
+
|
|
88
|
+
from diffsky.mass_functions.fitting_utils.fitting_helpers import jax_adam_wrapper
|
|
89
|
+
|
|
90
|
+
parser = argparse.ArgumentParser()
|
|
91
|
+
parser.add_argument(
|
|
92
|
+
"-seed", help="Integer input to jax.random.key(seed)", default=0, type=int
|
|
93
|
+
)
|
|
94
|
+
parser.add_argument(
|
|
95
|
+
"-ngals", help="Number of galaxies to estimate pdf", default=50_000, type=int
|
|
96
|
+
)
|
|
97
|
+
parser.add_argument(
|
|
98
|
+
"-tdata_fname",
|
|
99
|
+
help="Number of galaxies to estimate pdf",
|
|
100
|
+
default="spiral_b_over_a_pdf_rodriguez_padilla_2013.txt",
|
|
101
|
+
)
|
|
102
|
+
args = parser.parse_args()
|
|
103
|
+
|
|
104
|
+
VariedParams = namedtuple("VariedParams", ("c_min", "c_max"))
|
|
105
|
+
varied_params = VariedParams._make(
|
|
106
|
+
[getattr(dshape.DEFAULT_DISK_PARAMS, key) for key in VariedParams._fields]
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
ran_key = jran.key(args.seed)
|
|
110
|
+
ran_key, loss_key = jran.split(ran_key, 2)
|
|
111
|
+
|
|
112
|
+
target_data = np.loadtxt(args.tdata_fname, delimiter=",")
|
|
113
|
+
X = target_data[:, 0]
|
|
114
|
+
Y = target_data[:, 1]
|
|
115
|
+
|
|
116
|
+
ba_bins = np.linspace(0.01, 0.99, 50)
|
|
117
|
+
|
|
118
|
+
ran_key, mu_key, phi_key = jran.split(ran_key, 3)
|
|
119
|
+
mu_ran = jran.uniform(mu_key, minval=-1, maxval=1, shape=(args.ngals,))
|
|
120
|
+
phi_ran = jran.uniform(phi_key, minval=0, maxval=2 * np.pi, shape=(args.ngals,))
|
|
121
|
+
|
|
122
|
+
default_params = dshape.DEFAULT_DISK_PARAMS
|
|
123
|
+
loss_data = X, Y, loss_key, mu_ran, phi_ran, ba_bins, default_params
|
|
124
|
+
args = loss_and_grad_kern, varied_params, loss_data, 100
|
|
125
|
+
_res = jax_adam_wrapper(*args)
|
|
126
|
+
p_best, loss, loss_hist = _res[:3]
|
|
127
|
+
disk_params_best = default_params._replace(**p_best._asdict())
|
|
128
|
+
print(f"\nInitial parameters:\n{default_params}")
|
|
129
|
+
|
|
130
|
+
print(f"\nBest-fitting parameters:\n{disk_params_best}")
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Ellipsoidal model for PDF of disk shapes"""
|
|
2
|
+
|
|
3
|
+
from collections import namedtuple
|
|
4
|
+
from functools import partial
|
|
5
|
+
|
|
6
|
+
from jax import jit as jjit
|
|
7
|
+
from jax import numpy as jnp
|
|
8
|
+
from jax import random as jran
|
|
9
|
+
|
|
10
|
+
AxisRatios = namedtuple("AxisRatios", ("b_over_a", "c_over_a"))
|
|
11
|
+
DiskAxisRatioParams = namedtuple(
|
|
12
|
+
"DiskAxisRatioParams", ("ba_min", "ba_max", "c_min", "c_max")
|
|
13
|
+
)
|
|
14
|
+
DEFAULT_DISK_PARAMS = DiskAxisRatioParams(ba_min=0.8, ba_max=1.0, c_min=0.2, c_max=0.5)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@partial(jjit, static_argnames=["n_samples"])
|
|
18
|
+
def sample_disk_axis_ratios(ran_key, n_samples, disk_params):
|
|
19
|
+
"""Draw samples of axis ratios for disks"""
|
|
20
|
+
ran_key_b, ran_key_c = jran.split(ran_key, 2)
|
|
21
|
+
|
|
22
|
+
b_over_a = jran.uniform(
|
|
23
|
+
ran_key_b, (n_samples,), minval=disk_params.ba_min, maxval=disk_params.ba_max
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
c_over_b = jran.uniform(
|
|
27
|
+
ran_key_c, (n_samples,), minval=disk_params.c_min, maxval=disk_params.c_max
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
c_over_a = c_over_b * b_over_a
|
|
31
|
+
c_over_a = jnp.minimum(c_over_a, b_over_a * 0.99) # Ensure c <= b for safety
|
|
32
|
+
|
|
33
|
+
axis_ratios = AxisRatios(b_over_a, c_over_a)
|
|
34
|
+
return axis_ratios
|