diffsky 0.2.0__tar.gz → 0.2.1__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.0 → diffsky-0.2.1}/.github/workflows/monthly-warning-test.yaml +1 -1
- {diffsky-0.2.0 → diffsky-0.2.1}/.github/workflows/test_latest_releases.yaml +0 -3
- {diffsky-0.2.0 → diffsky-0.2.1}/.github/workflows/test_main_branch.yaml +1 -1
- {diffsky-0.2.0 → diffsky-0.2.1}/.github/workflows/tests_cron.yaml +1 -1
- {diffsky-0.2.0 → diffsky-0.2.1}/.gitignore +3 -0
- diffsky-0.2.1/CHANGES.rst +26 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/PKG-INFO +5 -4
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/__init__.py +2 -2
- diffsky-0.2.1/diffsky/_version.py +1 -0
- diffsky-0.2.1/diffsky/burstpop/diffqburstpop_mono_noise.py +136 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/fburstpop_mono.py +3 -4
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/freqburst_mono.py +6 -7
- diffsky-0.2.1/diffsky/burstpop/tests/test_diffqburstpop_mono_noise.py +137 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_freqburst_mono.py +2 -3
- diffsky-0.2.1/diffsky/data_loaders/__init__.py +5 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/__init__.py +7 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/data_validation/tests/test_validate_lc_cores.py +89 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/data_validation/validate_lc_cores.py +104 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/defaults.py +14 -0
- {diffsky-0.2.0/diffsky/data_loaders → diffsky-0.2.1/diffsky/data_loaders/hacc_utils}/hacc_core_utils.py +25 -40
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/lc_mock_production.py +162 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/lightcone_utils.py +390 -0
- {diffsky-0.2.0/diffsky/data_loaders → diffsky-0.2.1/diffsky/data_loaders/hacc_utils}/load_hacc_cores.py +110 -80
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/load_lc_cf.py +142 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/load_lc_cf_synthetic.py +72 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/load_lc_mock.py +39 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/metadata_sfh_mock.py +125 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_defaults.py +9 -0
- {diffsky-0.2.0/diffsky/data_loaders → diffsky-0.2.1/diffsky/data_loaders/hacc_utils}/tests/test_hacc_core_utils.py +21 -2
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_lc_mock_production.py +35 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_lightcone_utils.py +50 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_load_hacc_cores.py +131 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/test_load_lc_cf.py +37 -0
- diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests/testing_data/lc_cores-decomposition.txt +1538 -0
- diffsky-0.2.1/diffsky/data_loaders/io_utils.py +21 -0
- diffsky-0.2.1/diffsky/data_loaders/mpi_utils.py +46 -0
- diffsky-0.2.1/diffsky/data_loaders/tests/test_imports.py +7 -0
- diffsky-0.2.1/diffsky/data_loaders/um_binary_loader.py +33 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/diagnostics/plot_delta_mag_burstiness.py +15 -85
- diffsky-0.2.1/diffsky/diagnostics/utils.py +87 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/sbl18_dust_kernels.py +3 -3
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_tw_dustpop_mono.py +4 -4
- diffsky-0.2.1/diffsky/dustpop/tests/test_tw_dustpop_mono_noise.py +42 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tw_dust_kernels.py +3 -3
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tw_dustpop_mono.py +2 -2
- diffsky-0.2.1/diffsky/dustpop/tw_dustpop_mono_noise.py +75 -0
- diffsky-0.2.1/diffsky/experimental/lc_phot_kern.py +407 -0
- diffsky-0.2.1/diffsky/experimental/mc_diffsky_phot.py +545 -0
- diffsky-0.2.1/diffsky/experimental/mc_lightcone_halos.py +1032 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/photometry_interpolation.py +7 -2
- diffsky-0.2.1/diffsky/experimental/scatter.py +80 -0
- diffsky-0.2.1/diffsky/experimental/ssp_err_pop.py +147 -0
- diffsky-0.2.1/diffsky/experimental/tests/test_lc_phot_kern.py +158 -0
- diffsky-0.2.1/diffsky/experimental/tests/test_mc_diffsky_phot.py +61 -0
- diffsky-0.2.1/diffsky/experimental/tests/test_mc_lightcone_halos.py +340 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/tests/test_photometry_interpolation.py +1 -0
- diffsky-0.2.1/diffsky/experimental/tests/test_scatter.py +94 -0
- diffsky-0.2.1/diffsky/experimental/tests/test_ssp_err_pop.py +96 -0
- diffsky-0.2.1/diffsky/fake_sats/ellipsoidal_nfw_phase_space.py +39 -0
- diffsky-0.2.1/diffsky/fake_sats/ellipsoidal_velocities.py +99 -0
- diffsky-0.2.1/diffsky/fake_sats/halo_boundary_functions.py +65 -0
- diffsky-0.2.1/diffsky/fake_sats/nfw_config_space.py +174 -0
- diffsky-0.2.1/diffsky/fake_sats/rotations3d.py +94 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/test_ellipsoidal_nfw_phase_space.py +29 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/test_halo_boundary_functions.py +49 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/test_mc_ellipticial_velocities.py +19 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/test_nfw_config_space.py +30 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/test_rotations3d.py +28 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/testing_data/halo_mass_ht_test.txt +250 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/testing_data/halo_radius_200c_ht_test.txt +250 -0
- diffsky-0.2.1/diffsky/fake_sats/tests/testing_data/redshift_ht_test.txt +250 -0
- diffsky-0.2.1/diffsky/fake_sats/vector_utilities.py +243 -0
- diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations/hacc_core_shmf_params.py +41 -0
- diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations/tests/test_hacc_core_shmf_params.py +11 -0
- diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics/hmf_fit_diagnostics.py +42 -0
- diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics/tests/test_hmf_fit_diagnostics.py +26 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/fit_hmf_model.py +2 -2
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_model.py +3 -5
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/__init__.py +4 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/smdpl_hmf.py +41 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_fitting_helpers.py +46 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/smdpl_hmf_subs.py +42 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/test_smdpl_hmf.py +49 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.lgcuml_density.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.219000.subhalos.logmp_bins.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.lgcuml_density.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.hosthalos.logmp_bins.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.lgcuml_density.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_0.460000.subhalos.logmp_bins.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.lgcuml_density.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.hosthalos.logmp_bins.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.lgcuml_density.npy +0 -0
- diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations/tests/testing_data/sfr_catalog_1.000000.subhalos.logmp_bins.npy +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/hmf_model.py +4 -33
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/mc_diffmah_tpeak.py +12 -4
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/mc_hosts.py +19 -8
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/mc_subs.py +9 -10
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_hmf_model.py +9 -15
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_mc_diffmah_tpeak.py +2 -3
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_mc_hosts.py +8 -2
- diffsky-0.2.1/diffsky/mass_functions/tests/testing_data/__init__.py +0 -0
- diffsky-0.2.1/diffsky/mass_functions/upweighting/__init__.py +0 -0
- diffsky-0.2.1/diffsky/mass_functions/upweighting/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mc_diffsky.py +14 -5
- diffsky-0.2.1/diffsky/merging/__init__.py +0 -0
- diffsky-0.2.1/diffsky/merging/diagnostics/__init__.py +0 -0
- diffsky-0.2.1/diffsky/merging/diagnostics/plot_pmerge_vs_time.py +66 -0
- diffsky-0.2.1/diffsky/merging/diagnostics/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/merging/diagnostics/tests/test_plot_pmerge_vs_time.py +14 -0
- diffsky-0.2.1/diffsky/merging/fitmerge_multi_redshift.py +486 -0
- diffsky-0.2.1/diffsky/merging/merging_model.py +590 -0
- diffsky-0.2.1/diffsky/merging/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/merging/tests/test_fitmerge_multi_redshift.py +247 -0
- diffsky-0.2.1/diffsky/merging/tests/test_merging_model.py +293 -0
- diffsky-0.2.1/diffsky/param_utils/__init__.py +0 -0
- diffsky-0.2.1/diffsky/param_utils/diffsky_param_wrapper.py +309 -0
- diffsky-0.2.1/diffsky/param_utils/spspop_param_utils.py +132 -0
- diffsky-0.2.1/diffsky/param_utils/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/param_utils/tests/test_diffsky_param_wrapper.py +94 -0
- diffsky-0.2.1/diffsky/param_utils/tests/test_spspop_param_utils.py +41 -0
- diffsky-0.2.1/diffsky/phot_utils.py +115 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/sbl18_photgrad.py +3 -3
- diffsky-0.2.1/diffsky/ssp_err_model/__init__.py +0 -0
- diffsky-0.2.1/diffsky/ssp_err_model/ssp_err_model.py +580 -0
- diffsky-0.2.1/diffsky/ssp_err_model/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/ssp_err_model/tests/test_ssp_err_model.py +211 -0
- diffsky-0.2.1/diffsky/sumstats/__init__.py +0 -0
- diffsky-0.2.1/diffsky/sumstats/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/systematics/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/systematics/ssp_errors.py +12 -17
- diffsky-0.2.1/diffsky/systematics/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/systematics/tests/test_ssp_errors.py +4 -4
- diffsky-0.2.1/diffsky/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/tests/test_phot_utils.py +54 -0
- diffsky-0.2.1/diffsky/tests/testing_data/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tw_photgrad.py +3 -3
- diffsky-0.2.1/diffsky/utils/__init__.py +7 -0
- diffsky-0.2.1/diffsky/utils/crossmatch_utils.py +214 -0
- diffsky-0.2.1/diffsky/utils/sfh_utils.py +47 -0
- diffsky-0.2.1/diffsky/utils/tests/__init__.py +0 -0
- diffsky-0.2.1/diffsky/utils/tests/test_crossmatch_utils.py +132 -0
- diffsky-0.2.1/diffsky/utils/tests/test_sfh_utils.py +27 -0
- diffsky-0.2.1/diffsky/utils/tests/test_tw_utils.py +29 -0
- diffsky-0.2.0/diffsky/tests/test_utils.py → diffsky-0.2.1/diffsky/utils/tests/test_utility_funcs.py +7 -4
- {diffsky-0.2.0/diffsky → diffsky-0.2.1/diffsky/utils}/tw_utils.py +22 -9
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky.egg-info/PKG-INFO +5 -4
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky.egg-info/SOURCES.txt +126 -14
- diffsky-0.2.1/diffsky.egg-info/requires.txt +7 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/rtd_environment.yaml +4 -3
- {diffsky-0.2.0 → diffsky-0.2.1}/pyproject.toml +2 -2
- diffsky-0.2.1/requirements.txt +7 -0
- diffsky-0.2.1/scripts/JOBS/run_sfh_mock_serial.sh +28 -0
- diffsky-0.2.1/scripts/__init__.py +0 -0
- diffsky-0.2.1/scripts/inspect_lightcone_mock.py +43 -0
- diffsky-0.2.1/scripts/lc_cf_crossmatch_script.py +233 -0
- diffsky-0.2.1/scripts/make_sfh_lc_mock_lj_serial.py +180 -0
- diffsky-0.2.1/scripts/make_sfh_lightcone_last_journey.py +159 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/scripts/make_sfh_lj_mock.py +14 -7
- diffsky-0.2.1/scripts/mass_functions/fit_smdpl_hmf_script.py +52 -0
- diffsky-0.2.1/scripts/mass_functions/measure_smdpl_hmf_script.py +65 -0
- diffsky-0.2.1/scripts/tabulate_coreforest_overlap.py +80 -0
- diffsky-0.2.1/scripts/tests/__init__.py +0 -0
- diffsky-0.2.1/scripts/tests/test_inspect_lightcone_mock.py +5 -0
- diffsky-0.2.1/scripts/tests/test_lc_cf_crossmatch_script.py +5 -0
- diffsky-0.2.1/scripts/tests/test_make_sfh_lj_mock.py +5 -0
- diffsky-0.2.1/scripts/tests/test_tabulate_coreforest_overlap.py +5 -0
- diffsky-0.2.0/CHANGES.rst +0 -18
- diffsky-0.2.0/diffsky/_version.py +0 -1
- diffsky-0.2.0/diffsky/data_loaders/load_discovery_cores.py +0 -395
- diffsky-0.2.0/diffsky/data_loaders/tests/test_load_discovery_cores.py +0 -23
- diffsky-0.2.0/diffsky/data_loaders/tests/test_load_hacc_cores.py +0 -49
- diffsky-0.2.0/diffsky/dustpop/tests/test_tw_dustpop_mono_noise.py +0 -117
- diffsky-0.2.0/diffsky/dustpop/tw_dustpop_mono_noise.py +0 -133
- diffsky-0.2.0/diffsky/mass_functions/tests/testing_data/smdpl_hmf_cuml_redshift_0.05.txt +0 -48
- diffsky-0.2.0/diffsky/mass_functions/tests/testing_data/smdpl_hmf_cuml_redshift_1.00.txt +0 -47
- diffsky-0.2.0/diffsky/mass_functions/tests/testing_data/smdpl_hmf_cuml_redshift_2.14.txt +0 -44
- diffsky-0.2.0/diffsky/mass_functions/tests/testing_data/smdpl_hmf_cuml_redshift_3.95.txt +0 -45
- diffsky-0.2.0/diffsky.egg-info/requires.txt +0 -6
- diffsky-0.2.0/requirements.txt +0 -6
- {diffsky-0.2.0 → diffsky-0.2.1}/.coveragerc +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/.git_archival.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/.gitattributes +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/.github/dependabot.yml +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/.github/workflows/linting.yaml +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/.readthedocs.yml +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/LICENSE.rst +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/README.rst +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diagnostics/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diagnostics/plot_fburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diagnostics/plot_tburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diagnostics/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diagnostics/tests/test_plot_fburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diagnostics/tests/test_plot_tburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diffburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diffqburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/diffqburstpop_mono.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/fburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/freqburst.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_diffburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_diffqburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_diffqburstpop_mono.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_fburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_fburstpop_mono.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_freqburst.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/burstpop/tests/test_tburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/cosmos_utils/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/cosmos_utils/cosmos_mstar_model.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/cosmos_utils/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/cosmos_utils/tests/test_cosmos_mstar_model.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/data_loaders/cosmos20_loader.py +0 -0
- {diffsky-0.2.0/diffsky/data_loaders → diffsky-0.2.1/diffsky/data_loaders/hacc_utils/data_validation}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/data_loaders → diffsky-0.2.1/diffsky/data_loaders/hacc_utils/data_validation}/tests/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/data_loaders/tests/testing_data → diffsky-0.2.1/diffsky/data_loaders/hacc_utils/tests}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/diagnostics → diffsky-0.2.1/diffsky/data_loaders/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/data_loaders/tests/test_cosmos_loader.py +0 -0
- {diffsky-0.2.0/diffsky/diagnostics/tests → diffsky-0.2.1/diffsky/data_loaders/tests/testing_data}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/data_loaders/tests/testing_data/cosmos20_shasum.dat +0 -0
- {diffsky-0.2.0/diffsky/dustpop → diffsky-0.2.1/diffsky}/diagnostics/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/diagnostics/plot_diffstar_fq.py +0 -0
- {diffsky-0.2.0/diffsky/dustpop → diffsky-0.2.1/diffsky}/diagnostics/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/diagnostics/tests/test_plot_delta_mag_burstiness.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/diagnostics/tests/test_plot_diffstar_fq.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/diffndhist.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/avpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/avpop_flex.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/avpop_mono.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/deltapop.py +0 -0
- {diffsky-0.2.0/diffsky/dustpop/tests → diffsky-0.2.1/diffsky/dustpop/diagnostics}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/diagnostics/plot_avpop_flex.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/diagnostics/plot_funopop_simple.py +0 -0
- {diffsky-0.2.0/diffsky/experimental → diffsky-0.2.1/diffsky/dustpop/diagnostics/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/diagnostics/tests/test_plot_avpop_flex.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/diagnostics/tests/test_plot_funopop_simple.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/funopop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/funopop_simple.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/funopop_ssfr.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/sbl18_dust.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/sbl18_dustpop.py +0 -0
- {diffsky-0.2.0/diffsky/experimental/dspspop → diffsky-0.2.1/diffsky/dustpop/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_avpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_avpop_flex.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_avpop_mono.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_deltapop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_funopop_model.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_funopop_simple.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_funopop_ssfr.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_sbl18_dustpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_tw_dust_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_tw_dustpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tests/test_tw_dustpop_new.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tw_dust.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tw_dustpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/dustpop/tw_dustpop_new.py +0 -0
- {diffsky-0.2.0/diffsky/experimental/dspspop/tests → diffsky-0.2.1/diffsky/experimental}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/experimental/tests → diffsky-0.2.1/diffsky/experimental/dspspop}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/boris_dust.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/burstshapepop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/dust_deltapop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/dustpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/lgavpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/lgfburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/nagaraj22_dust.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/photpop.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/fitting_utils → diffsky-0.2.1/diffsky/experimental/dspspop/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/tests/test_attavpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/tests/test_boris_dust.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/tests/test_burstshapepop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/tests/test_dustdeltapop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/tests/test_lgfburstpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/dspspop/tests/test_photpop.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/phot_utils.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/precompute_ssp_phot.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/fitting_utils → diffsky-0.2.1/diffsky/experimental}/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/experimental/tests/test_precompute_ssp_phot.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/io_utils → diffsky-0.2.1/diffsky/fake_sats}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/kernels → diffsky-0.2.1/diffsky/fake_sats/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/ccshmf_model.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/README.rst +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/kernels/tests → diffsky-0.2.1/diffsky/mass_functions/fitting_utils}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/smhm_kernels → diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/smhm_kernels → diffsky-0.2.1/diffsky/mass_functions/fitting_utils/calibrations}/tests/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/tests → diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/tests/testing_data → diffsky-0.2.1/diffsky/mass_functions/fitting_utils/diagnostics/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/fit_ccshmf.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/fit_ccshmf_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/fit_hmf_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/fitting_helpers.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/upweighting → diffsky-0.2.1/diffsky/mass_functions/fitting_utils/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/tests/test_fit_ccshmf_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/fitting_utils/tests/test_fit_hmf_kernels.py +0 -0
- {diffsky-0.2.0/diffsky/mass_functions/upweighting → diffsky-0.2.1/diffsky/mass_functions/hmf_calibrations}/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/io_utils/README.txt +0 -0
- {diffsky-0.2.0/diffsky/sumstats → diffsky-0.2.1/diffsky/mass_functions/io_utils}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/io_utils/loader.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/io_utils/smdpl_helpers.py +0 -0
- {diffsky-0.2.0/diffsky/sumstats/tests → diffsky-0.2.1/diffsky/mass_functions/kernels}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/kernels/ccshmf_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/kernels/hmf_kernels.py +0 -0
- {diffsky-0.2.0/diffsky/systematics → diffsky-0.2.1/diffsky/mass_functions/kernels/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/kernels/tests/test_ccshmf_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/kernels/tests/test_hmf_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/mc_tinfall.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/measure_ccshmf.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/measure_hmf.py +0 -0
- {diffsky-0.2.0/diffsky/systematics/tests → diffsky-0.2.1/diffsky/mass_functions/smhm_kernels}/__init__.py +0 -0
- {diffsky-0.2.0/diffsky → diffsky-0.2.1/diffsky/mass_functions/smhm_kernels}/tests/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/smhm_kernels/tests/test_threeroll_smhm.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/smhm_kernels/threeroll_kernels.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/smhm_kernels/threeroll_smhm.py +0 -0
- {diffsky-0.2.0/diffsky/tests/testing_data → diffsky-0.2.1/diffsky/mass_functions/tests}/__init__.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_ccshmf.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_mc_subs.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_mc_tinfall.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/test_measure_hmf.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/README.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_12.32.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_13.00.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_13.55.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_0.00_lgmhost_14.08.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_12.31.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_12.99.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_13.51.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/tests/testing_data/smdpl_cshmf_cuml_redshift_1.00_lgmhost_14.05.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/upweighting/namedtuple_cat_utils.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/upweighting/tests/test_mc_gen_upweighting.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/upweighting/upweighting.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/mass_functions/utils.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/sumstats/diffndhist.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/sumstats/smhm.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/sumstats/tests/test_smhm.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tests/test_dependencies.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tests/test_diffndhist.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tests/test_diffsky_setup.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tests/test_mc_diffsky.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tests/test_sbl18_photgrad.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky/tests/test_tw_photgrad.py +0 -0
- /diffsky-0.2.0/diffsky/utils.py → /diffsky-0.2.1/diffsky/utils/utility_funcs.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky.egg-info/dependency_links.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/diffsky.egg-info/top_level.txt +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/Makefile +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/make.bat +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/citation.rst +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/conf.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/demo_diffmahpop_t_peak.ipynb +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/demos.rst +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/index.rst +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/docs/source/installation.rst +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/scripts/make_diffsky_lj_mock.py +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/setup.cfg +0 -0
- {diffsky-0.2.0 → diffsky-0.2.1}/setup.py +0 -0
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
pip install --no-deps git+https://github.com/ArgonneCPAC/diffmah.git
|
|
55
55
|
pip install --no-deps git+https://github.com/ArgonneCPAC/diffstar.git
|
|
56
56
|
pip install --no-deps git+https://github.com/ArgonneCPAC/dsps.git
|
|
57
|
-
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git
|
|
57
|
+
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git@main
|
|
58
58
|
python -m pip install --no-build-isolation --no-deps -e .
|
|
59
59
|
|
|
60
60
|
- name: test that no warnings are raised
|
|
@@ -47,9 +47,6 @@ jobs:
|
|
|
47
47
|
matplotlib \
|
|
48
48
|
astropy \
|
|
49
49
|
python-build
|
|
50
|
-
pip uninstall dsps --yes
|
|
51
|
-
pip install --no-deps git+https://github.com/ArgonneCPAC/dsps.git
|
|
52
|
-
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git
|
|
53
50
|
python -m pip install --no-build-isolation --no-deps -e .
|
|
54
51
|
|
|
55
52
|
- name: test
|
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
pip install --no-deps git+https://github.com/ArgonneCPAC/diffmah.git
|
|
54
54
|
pip install --no-deps git+https://github.com/ArgonneCPAC/diffstar.git
|
|
55
55
|
pip install --no-deps git+https://github.com/ArgonneCPAC/dsps.git
|
|
56
|
-
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git
|
|
56
|
+
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git@main
|
|
57
57
|
python -m pip install --no-build-isolation --no-deps -e .
|
|
58
58
|
|
|
59
59
|
- name: test
|
|
@@ -57,7 +57,7 @@ jobs:
|
|
|
57
57
|
pip install --no-deps git+https://github.com/ArgonneCPAC/diffmah.git
|
|
58
58
|
pip install --no-deps git+https://github.com/ArgonneCPAC/diffstar.git
|
|
59
59
|
pip install --no-deps git+https://github.com/ArgonneCPAC/dsps.git
|
|
60
|
-
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git
|
|
60
|
+
pip install --no-deps git+https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/ArgonneCPAC/diffstarpop.git@main
|
|
61
61
|
python -m pip install --no-build-isolation --no-deps -e .
|
|
62
62
|
|
|
63
63
|
- name: test
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
0.2.1 (2025-06-30)
|
|
2
|
+
-------------------
|
|
3
|
+
- Incorporate synthetic lightcone into mock production pipeline (https://github.com/ArgonneCPAC/diffsky/pull/165)
|
|
4
|
+
- Add pipeline to generate lightcone mocks (https://github.com/ArgonneCPAC/diffsky/pull/154)
|
|
5
|
+
- Improve accuracy of young-star contribution stellar age PDF (https://github.com/ArgonneCPAC/diffsky/pull/151)
|
|
6
|
+
- Implement synthetic lightcones to extend resolution limits (https://github.com/ArgonneCPAC/diffsky/pull/143)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
0.2.0 (2025-03-24)
|
|
10
|
+
-------------------
|
|
11
|
+
- Update population-level photometry models of dust and burstiness
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
0.1.2 (2024-10-25)
|
|
15
|
+
-------------------
|
|
16
|
+
- Update calls to diffmah v0.6.1 and diffstar v0.3.2
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
0.1.1 (2023-10-04)
|
|
20
|
+
-------------------
|
|
21
|
+
- Update calls to dsps v0.3.4
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
0.1.0 (2023-10-03)
|
|
25
|
+
-------------------
|
|
26
|
+
- First release. Compatible with diffstar v0.2.1 and dsps v0.3.3.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffsky
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
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
|
|
@@ -40,9 +40,10 @@ Description-Content-Type: text/x-rst
|
|
|
40
40
|
License-File: LICENSE.rst
|
|
41
41
|
Requires-Dist: numpy
|
|
42
42
|
Requires-Dist: jax
|
|
43
|
-
Requires-Dist: diffmah>=0.7.
|
|
44
|
-
Requires-Dist: diffstar>=0.3.
|
|
45
|
-
Requires-Dist:
|
|
43
|
+
Requires-Dist: diffmah>=0.7.2
|
|
44
|
+
Requires-Dist: diffstar>=0.3.4
|
|
45
|
+
Requires-Dist: diffstarpop>=0.0.2
|
|
46
|
+
Requires-Dist: dsps>=0.4.5
|
|
46
47
|
Requires-Dist: h5py
|
|
47
48
|
Dynamic: license-file
|
|
48
49
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.2.1'
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
""" """
|
|
2
|
+
|
|
3
|
+
from collections import namedtuple
|
|
4
|
+
|
|
5
|
+
from dsps.sfh.diffburst import BurstParams, calc_bursty_age_weights
|
|
6
|
+
from jax import jit as jjit
|
|
7
|
+
from jax import numpy as jnp
|
|
8
|
+
|
|
9
|
+
from .fburstpop_mono import (
|
|
10
|
+
DEFAULT_FBURSTPOP_PARAMS,
|
|
11
|
+
ZEROBURST_FBURSTPOP_PARAMS,
|
|
12
|
+
get_bounded_fburstpop_params,
|
|
13
|
+
get_fburst_from_fburstpop_params,
|
|
14
|
+
get_unbounded_fburstpop_params,
|
|
15
|
+
_get_bounded_fburstpop_param,
|
|
16
|
+
_get_unbounded_fburstpop_param
|
|
17
|
+
)
|
|
18
|
+
from .freqburst_mono import (
|
|
19
|
+
DEFAULT_FREQBURST_PARAMS,
|
|
20
|
+
ZEROBURST_FREQBURST_PARAMS,
|
|
21
|
+
get_bounded_freqburst_params,
|
|
22
|
+
get_unbounded_freqburst_params,
|
|
23
|
+
)
|
|
24
|
+
from .tburstpop import (
|
|
25
|
+
DEFAULT_TBURSTPOP_PARAMS,
|
|
26
|
+
get_bounded_tburstpop_params,
|
|
27
|
+
get_tburst_params_from_tburstpop_params,
|
|
28
|
+
get_unbounded_tburstpop_params,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
from ..utils.utility_funcs import _inverse_sigmoid
|
|
32
|
+
|
|
33
|
+
DiffburstPopParams = namedtuple(
|
|
34
|
+
"DiffburstPopParams", ["freqburst_params", "fburstpop_params", "tburstpop_params"]
|
|
35
|
+
)
|
|
36
|
+
DEFAULT_DIFFBURSTPOP_PARAMS = DiffburstPopParams(
|
|
37
|
+
DEFAULT_FREQBURST_PARAMS, DEFAULT_FBURSTPOP_PARAMS, DEFAULT_TBURSTPOP_PARAMS
|
|
38
|
+
)
|
|
39
|
+
_BURSTPOP_UPNAMES = [
|
|
40
|
+
key.replace("params", "u_params") for key in DEFAULT_DIFFBURSTPOP_PARAMS._fields
|
|
41
|
+
]
|
|
42
|
+
DiffburstPopUParams = namedtuple("DiffburstPopUParams", _BURSTPOP_UPNAMES)
|
|
43
|
+
|
|
44
|
+
ZERO_DIFFBURSTPOP_PARAMS = DiffburstPopParams(
|
|
45
|
+
ZEROBURST_FREQBURST_PARAMS, ZEROBURST_FBURSTPOP_PARAMS, DEFAULT_TBURSTPOP_PARAMS
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
FBURST_BOUNDS = (0.0, 1.0)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@jjit
|
|
52
|
+
def get_bounded_diffburstpop_params(u_params):
|
|
53
|
+
u_freqburst_params, u_fburstpop_params, u_tburstpop_params = u_params
|
|
54
|
+
bounded_freqburst_params = get_bounded_freqburst_params(u_freqburst_params)
|
|
55
|
+
bounded_tburstpop_params = get_bounded_tburstpop_params(u_tburstpop_params)
|
|
56
|
+
bounded_fburstpop_params = get_bounded_fburstpop_params(u_fburstpop_params)
|
|
57
|
+
diffburstpop_params = DiffburstPopParams(
|
|
58
|
+
bounded_freqburst_params, bounded_fburstpop_params, bounded_tburstpop_params
|
|
59
|
+
)
|
|
60
|
+
return diffburstpop_params
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@jjit
|
|
64
|
+
def get_unbounded_diffburstpop_params(params):
|
|
65
|
+
freqburst_params, fburstpop_params, tburstpop_params = params
|
|
66
|
+
unbounded_freqburst_params = get_unbounded_freqburst_params(freqburst_params)
|
|
67
|
+
unbounded_fburstpop_params = get_unbounded_fburstpop_params(fburstpop_params)
|
|
68
|
+
unbounded_tburstpop_params = get_unbounded_tburstpop_params(tburstpop_params)
|
|
69
|
+
diffburstpop_u_params = DiffburstPopUParams(
|
|
70
|
+
unbounded_freqburst_params,
|
|
71
|
+
unbounded_fburstpop_params,
|
|
72
|
+
unbounded_tburstpop_params,
|
|
73
|
+
)
|
|
74
|
+
return diffburstpop_u_params
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@jjit
|
|
78
|
+
def calc_bursty_age_weights_from_diffburstpop_params(
|
|
79
|
+
diffburstpop_params,
|
|
80
|
+
logsm,
|
|
81
|
+
logssfr,
|
|
82
|
+
ssp_lg_age_gyr,
|
|
83
|
+
smooth_age_weights,
|
|
84
|
+
random_draw_burst,
|
|
85
|
+
scatter_params,
|
|
86
|
+
):
|
|
87
|
+
f_burst = get_fburst_from_fburstpop_params(
|
|
88
|
+
diffburstpop_params.fburstpop_params, logsm, logssfr
|
|
89
|
+
)
|
|
90
|
+
ufburst = _get_unbounded_fburstpop_param(f_burst, FBURST_BOUNDS)
|
|
91
|
+
noisy_ufburst = _inverse_sigmoid(random_draw_burst, ufburst, scatter_params.fburst_scatter, 0.0, 1.0)
|
|
92
|
+
noisy_fburst = _get_bounded_fburstpop_param(noisy_ufburst, FBURST_BOUNDS)
|
|
93
|
+
lgfburst = jnp.log10(noisy_fburst)
|
|
94
|
+
|
|
95
|
+
tburst_params = get_tburst_params_from_tburstpop_params(
|
|
96
|
+
diffburstpop_params.tburstpop_params, logsm, logssfr
|
|
97
|
+
)
|
|
98
|
+
lgyr_peak, lgyr_max = tburst_params
|
|
99
|
+
burst_params = BurstParams(lgfburst, lgyr_peak, lgyr_max)
|
|
100
|
+
|
|
101
|
+
age_weights = calc_bursty_age_weights(
|
|
102
|
+
burst_params, smooth_age_weights, ssp_lg_age_gyr
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return age_weights, burst_params
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def calc_bursty_age_weights_from_diffburstpop_u_params(
|
|
109
|
+
diffburstpop_u_params,
|
|
110
|
+
logsm,
|
|
111
|
+
logssfr,
|
|
112
|
+
ssp_lg_age_gyr,
|
|
113
|
+
smooth_age_weights,
|
|
114
|
+
random_draw_burst,
|
|
115
|
+
scatter_params,
|
|
116
|
+
|
|
117
|
+
):
|
|
118
|
+
diffburstpop_params = get_bounded_diffburstpop_params(diffburstpop_u_params)
|
|
119
|
+
args = (
|
|
120
|
+
diffburstpop_params,
|
|
121
|
+
logsm,
|
|
122
|
+
logssfr,
|
|
123
|
+
ssp_lg_age_gyr,
|
|
124
|
+
smooth_age_weights,
|
|
125
|
+
random_draw_burst,
|
|
126
|
+
scatter_params)
|
|
127
|
+
age_weights, burst_params = calc_bursty_age_weights_from_diffburstpop_params(*args)
|
|
128
|
+
return age_weights, burst_params
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
DEFAULT_DIFFBURSTPOP_U_PARAMS = DiffburstPopUParams(
|
|
132
|
+
*get_unbounded_diffburstpop_params(DEFAULT_DIFFBURSTPOP_PARAMS)
|
|
133
|
+
)
|
|
134
|
+
ZERO_DIFFBURSTPOP_U_PARAMS = get_unbounded_diffburstpop_params(
|
|
135
|
+
DEFAULT_DIFFBURSTPOP_PARAMS
|
|
136
|
+
)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
"""
|
|
1
|
+
""" """
|
|
3
2
|
|
|
4
3
|
from collections import OrderedDict, namedtuple
|
|
5
4
|
from copy import deepcopy
|
|
@@ -23,9 +22,9 @@ DEFAULT_FBURSTPOP_PDICT = OrderedDict(
|
|
|
23
22
|
sufb_logsm_yhi_ms=-10.0,
|
|
24
23
|
)
|
|
25
24
|
|
|
26
|
-
LGSM_X0_BOUNDS = (8.0,
|
|
25
|
+
LGSM_X0_BOUNDS = (8.0, 12.0)
|
|
27
26
|
LGSSFR_X0_BOUNDS = (-12.0, -8.0)
|
|
28
|
-
SUFB_BOUNDS = (-15.0, -
|
|
27
|
+
SUFB_BOUNDS = (-15.0, -2.0)
|
|
29
28
|
|
|
30
29
|
FBURSTPOP_PBOUNDS_PDICT = OrderedDict(
|
|
31
30
|
sufb_logsm_x0=LGSM_X0_BOUNDS,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
"""
|
|
1
|
+
""" """
|
|
3
2
|
|
|
4
3
|
from collections import OrderedDict, namedtuple
|
|
5
4
|
from copy import deepcopy
|
|
@@ -17,15 +16,15 @@ LGSSFR_K = 5.0
|
|
|
17
16
|
DEFAULT_FREQBURST_PDICT = OrderedDict(
|
|
18
17
|
sufqb_logsm_x0=10.0,
|
|
19
18
|
sufqb_logssfr_x0=-10.25,
|
|
20
|
-
sufqb_logsm_ylo_q=-
|
|
21
|
-
sufqb_logsm_ylo_ms=-
|
|
22
|
-
sufqb_logsm_yhi_q=-
|
|
23
|
-
sufqb_logsm_yhi_ms=-
|
|
19
|
+
sufqb_logsm_ylo_q=-5.0,
|
|
20
|
+
sufqb_logsm_ylo_ms=-0.2,
|
|
21
|
+
sufqb_logsm_yhi_q=-5.0,
|
|
22
|
+
sufqb_logsm_yhi_ms=-0.5,
|
|
24
23
|
)
|
|
25
24
|
|
|
26
25
|
LGSM_X0_BOUNDS = (9.0, 11.0)
|
|
27
26
|
LGSSFR_X0_BOUNDS = (-12.0, -8.0)
|
|
28
|
-
SUFQB_BOUNDS = (-
|
|
27
|
+
SUFQB_BOUNDS = (-10.0, 0.5)
|
|
29
28
|
|
|
30
29
|
FREQBURST_PBOUNDS_PDICT = OrderedDict(
|
|
31
30
|
sufqb_logsm_x0=LGSM_X0_BOUNDS,
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
""" """
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
from dsps.sfh import diffburst
|
|
5
|
+
from jax import random as jran
|
|
6
|
+
|
|
7
|
+
from .. import diffqburstpop_mono_noise as dbp
|
|
8
|
+
from ..fburstpop_mono import FburstPopUParams
|
|
9
|
+
from ..freqburst_mono import FreqburstUParams
|
|
10
|
+
from ..tburstpop import TburstPopUParams
|
|
11
|
+
from ...experimental.scatter import DEFAULT_SCATTER_PARAMS
|
|
12
|
+
|
|
13
|
+
TOL = 1e-2
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_calc_bursty_age_weights_from_diffburstpop_params_evaluates_on_defaults():
|
|
17
|
+
n_age = 107
|
|
18
|
+
ssp_lg_age_gyr = np.linspace(5.5, 10.5, n_age)
|
|
19
|
+
ran_key = jran.PRNGKey(0)
|
|
20
|
+
|
|
21
|
+
random_draw_burst = 0.5
|
|
22
|
+
|
|
23
|
+
n_tests = 1_000
|
|
24
|
+
for __ in range(n_tests):
|
|
25
|
+
ran_key, logsm_key, logssfr_key, smooth_key = jran.split(ran_key, 4)
|
|
26
|
+
logsm = jran.uniform(logsm_key, minval=0, maxval=10, shape=())
|
|
27
|
+
logssfr = jran.uniform(logssfr_key, minval=-12, maxval=-8, shape=())
|
|
28
|
+
smooth_age_weights = jran.uniform(
|
|
29
|
+
smooth_key, minval=0, maxval=1, shape=(n_age,)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
smooth_age_weights = smooth_age_weights / smooth_age_weights.sum()
|
|
33
|
+
args = (
|
|
34
|
+
dbp.DEFAULT_DIFFBURSTPOP_PARAMS,
|
|
35
|
+
logsm,
|
|
36
|
+
logssfr,
|
|
37
|
+
ssp_lg_age_gyr,
|
|
38
|
+
smooth_age_weights,
|
|
39
|
+
random_draw_burst,
|
|
40
|
+
DEFAULT_SCATTER_PARAMS,
|
|
41
|
+
)
|
|
42
|
+
(
|
|
43
|
+
age_weights,
|
|
44
|
+
burst_params,
|
|
45
|
+
) = dbp.calc_bursty_age_weights_from_diffburstpop_params(*args)
|
|
46
|
+
assert age_weights.shape == (n_age,)
|
|
47
|
+
assert np.all(np.isfinite(age_weights))
|
|
48
|
+
|
|
49
|
+
unity = np.sum(age_weights)
|
|
50
|
+
assert np.allclose(unity, 1.0, atol=1e-2)
|
|
51
|
+
|
|
52
|
+
assert diffburst.LGFBURST_MIN < burst_params.lgfburst < diffburst.LGFBURST_MAX
|
|
53
|
+
assert (
|
|
54
|
+
diffburst.LGYR_PEAK_MIN < burst_params.lgyr_peak < diffburst.LGYR_PEAK_MAX
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
assert burst_params.lgyr_peak < burst_params.lgyr_max < diffburst.LGAGE_MAX
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def test_calc_bursty_age_weights_from_diffburstpop_u_params_evaluates_on_u_randoms():
|
|
61
|
+
n_age = 107
|
|
62
|
+
ssp_lg_age_gyr = np.linspace(5.5, 10.5, n_age) - 9.0
|
|
63
|
+
|
|
64
|
+
n_freqburst_params = len(dbp.DEFAULT_DIFFBURSTPOP_PARAMS.freqburst_params)
|
|
65
|
+
n_fburstpop_params = len(dbp.DEFAULT_DIFFBURSTPOP_PARAMS.fburstpop_params)
|
|
66
|
+
n_tburstpop_params = len(dbp.DEFAULT_DIFFBURSTPOP_PARAMS.tburstpop_params)
|
|
67
|
+
ran_key = jran.PRNGKey(0)
|
|
68
|
+
|
|
69
|
+
random_draw_burst = 0.5
|
|
70
|
+
|
|
71
|
+
n_tests = 1_000
|
|
72
|
+
for __ in range(n_tests):
|
|
73
|
+
ran_key, logsm_key, logssfr_key, smooth_key = jran.split(ran_key, 4)
|
|
74
|
+
logsm = jran.uniform(logsm_key, minval=0, maxval=10, shape=())
|
|
75
|
+
logssfr = jran.uniform(logssfr_key, minval=-12, maxval=-8, shape=())
|
|
76
|
+
smooth_age_weights = jran.uniform(
|
|
77
|
+
smooth_key, minval=0, maxval=1, shape=(n_age,)
|
|
78
|
+
)
|
|
79
|
+
ran_key, fqb_key, fb_key, tb_key = jran.split(ran_key, 4)
|
|
80
|
+
u_freqb = jran.uniform(
|
|
81
|
+
fqb_key, minval=-10, maxval=10, shape=(n_freqburst_params,)
|
|
82
|
+
)
|
|
83
|
+
u_fb = jran.uniform(fb_key, minval=-10, maxval=10, shape=(n_fburstpop_params,))
|
|
84
|
+
u_tb = jran.uniform(tb_key, minval=-10, maxval=10, shape=(n_tburstpop_params,))
|
|
85
|
+
freqburst_u_params = FreqburstUParams(*u_freqb)
|
|
86
|
+
fburstpop_u_params = FburstPopUParams(*u_fb)
|
|
87
|
+
tburstpop_u_params = TburstPopUParams(*u_tb)
|
|
88
|
+
|
|
89
|
+
diffburstpop_u_params = dbp.DiffburstPopUParams(
|
|
90
|
+
freqburst_u_params, fburstpop_u_params, tburstpop_u_params
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
smooth_age_weights = smooth_age_weights / smooth_age_weights.sum()
|
|
94
|
+
args = (
|
|
95
|
+
diffburstpop_u_params,
|
|
96
|
+
logsm,
|
|
97
|
+
logssfr,
|
|
98
|
+
ssp_lg_age_gyr,
|
|
99
|
+
smooth_age_weights,
|
|
100
|
+
random_draw_burst,
|
|
101
|
+
DEFAULT_SCATTER_PARAMS,
|
|
102
|
+
)
|
|
103
|
+
(
|
|
104
|
+
age_weights,
|
|
105
|
+
burst_params,
|
|
106
|
+
) = dbp.calc_bursty_age_weights_from_diffburstpop_u_params(*args)
|
|
107
|
+
assert age_weights.shape == (n_age,)
|
|
108
|
+
assert np.all(np.isfinite(age_weights))
|
|
109
|
+
|
|
110
|
+
unity = np.sum(age_weights)
|
|
111
|
+
assert np.allclose(unity, 1.0, atol=1e-2)
|
|
112
|
+
|
|
113
|
+
assert diffburst.LGFBURST_MIN <= burst_params.lgfburst <= diffburst.LGFBURST_MAX
|
|
114
|
+
assert (
|
|
115
|
+
diffburst.LGYR_PEAK_MIN <= burst_params.lgyr_peak <= diffburst.LGYR_PEAK_MAX
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
assert burst_params.lgyr_peak <= burst_params.lgyr_max <= diffburst.LGAGE_MAX
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_diffburstpop_u_param_inversion():
|
|
122
|
+
u_params = dbp.get_unbounded_diffburstpop_params(dbp.DEFAULT_DIFFBURSTPOP_PARAMS)
|
|
123
|
+
u_params_freqburst, u_params_fburst, u_params_tburst = u_params
|
|
124
|
+
|
|
125
|
+
assert np.allclose(
|
|
126
|
+
dbp.DEFAULT_DIFFBURSTPOP_U_PARAMS.freqburst_u_params,
|
|
127
|
+
u_params_freqburst,
|
|
128
|
+
rtol=TOL,
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
assert np.allclose(
|
|
132
|
+
dbp.DEFAULT_DIFFBURSTPOP_U_PARAMS.fburstpop_u_params, u_params_fburst, rtol=TOL
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
assert np.allclose(
|
|
136
|
+
dbp.DEFAULT_DIFFBURSTPOP_U_PARAMS.tburstpop_u_params, u_params_tburst, rtol=TOL
|
|
137
|
+
)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
"""
|
|
1
|
+
""" """
|
|
3
2
|
|
|
4
3
|
import numpy as np
|
|
5
4
|
from jax import nn
|
|
@@ -201,7 +200,7 @@ def test_zeroburst_params_produce_zero_burstiness():
|
|
|
201
200
|
assert fqb.shape == (n_gals,)
|
|
202
201
|
assert np.all(np.isfinite(fqb))
|
|
203
202
|
assert np.all(fqb >= 0.0)
|
|
204
|
-
assert np.all(fqb < 0.
|
|
203
|
+
assert np.all(fqb < 0.1), fqb.max()
|
|
205
204
|
|
|
206
205
|
sufq_max = SUFQB_BOUNDS[1]
|
|
207
206
|
fqb_max = nn.softplus(sufq_max)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
""""""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
from glob import glob
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
from .. import validate_lc_cores as vlcc
|
|
9
|
+
|
|
10
|
+
DRN_LC_CORES_POBOY = "/Users/aphearin/work/DATA/LastJourney/lc_cores"
|
|
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_CORES_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_zrange_passes_for_all_last_journey_data_on_poboy():
|
|
31
|
+
""""""
|
|
32
|
+
bnpat = vlcc.BNPAT_LC_CORES.format("*", "*")
|
|
33
|
+
fn_list = glob(os.path.join(DRN_LC_CORES_POBOY, bnpat))
|
|
34
|
+
for fn_lc_cores in fn_list:
|
|
35
|
+
msg = vlcc.check_zrange(fn_lc_cores, "LastJourney")
|
|
36
|
+
assert len(msg) == 0
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@pytest.mark.skipif(not CAN_RUN_LJ_DATA_TESTS, reason=POBOY_MSG)
|
|
40
|
+
def test_check_core_tag_uniqueness():
|
|
41
|
+
"""Every core_tag should be unique. A very small number of repeats is allowed."""
|
|
42
|
+
bnpat = vlcc.BNPAT_LC_CORES.format("*", "*")
|
|
43
|
+
fn_list = glob(os.path.join(DRN_LC_CORES_POBOY, bnpat))
|
|
44
|
+
for fn_lc_cores in fn_list:
|
|
45
|
+
msg = vlcc.check_core_tag_uniqueness(fn_lc_cores)
|
|
46
|
+
|
|
47
|
+
if len(msg) > 0:
|
|
48
|
+
# No more than 10 core tags that have a repetition
|
|
49
|
+
s = msg[1]
|
|
50
|
+
n_distinct_repeats = int(s.split("=")[-1])
|
|
51
|
+
assert n_distinct_repeats < 10
|
|
52
|
+
|
|
53
|
+
# Only a single repetition is allowed
|
|
54
|
+
s = msg[2]
|
|
55
|
+
max_repetitions = int(s.split("=")[-1])
|
|
56
|
+
assert max_repetitions == 2
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
@pytest.mark.skipif(not CAN_RUN_LJ_DATA_TESTS, reason=POBOY_MSG)
|
|
60
|
+
def test_check_top_host_tag_has_match():
|
|
61
|
+
"""top_host_tag should always agree with the result recalculated by diffsky
|
|
62
|
+
|
|
63
|
+
In the current implementation, this test is skipped for lc_cores in which
|
|
64
|
+
there is a repeated entry of core_tag
|
|
65
|
+
|
|
66
|
+
"""
|
|
67
|
+
bnpat = vlcc.BNPAT_LC_CORES.format("*", "*")
|
|
68
|
+
fn_list = glob(os.path.join(DRN_LC_CORES_POBOY, bnpat))
|
|
69
|
+
for fn_lc_cores in fn_list:
|
|
70
|
+
msg = vlcc.check_top_host_tag_has_match(fn_lc_cores)
|
|
71
|
+
if len(msg) > 0:
|
|
72
|
+
s = msg[0]
|
|
73
|
+
if "Could not run test" in s:
|
|
74
|
+
pass
|
|
75
|
+
else:
|
|
76
|
+
bn = os.path.basename(fn_lc_cores)
|
|
77
|
+
raise ValueError(f"{bn} has mismatching top_host_idx")
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
@pytest.mark.skipif(not CAN_RUN_LJ_DATA_TESTS, reason=POBOY_MSG)
|
|
81
|
+
def test_check_top_host_idx_tag_agreement():
|
|
82
|
+
"""top_host_tag should always be consistent with top_host_idx"""
|
|
83
|
+
bnpat = vlcc.BNPAT_LC_CORES.format("*", "*")
|
|
84
|
+
fn_list = glob(os.path.join(DRN_LC_CORES_POBOY, bnpat))
|
|
85
|
+
for fn_lc_cores in fn_list:
|
|
86
|
+
msg = vlcc.check_top_host_idx_tag_agreement(fn_lc_cores)
|
|
87
|
+
if len(msg) > 0:
|
|
88
|
+
bn = os.path.basename(fn_lc_cores)
|
|
89
|
+
raise ValueError(f"{bn} has mismatching top_host_idx")
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
""" """
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
|
|
7
|
+
from ....utils import crossmatch
|
|
8
|
+
from .. import lightcone_utils as lcu
|
|
9
|
+
from .. import load_flat_hdf5
|
|
10
|
+
|
|
11
|
+
BNPAT_LC_CORES = "lc_cores-{0}.{1}.hdf5"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def check_zrange(fn_lc_cores, sim_name, tol=0.0002, lc_cores=None):
|
|
15
|
+
"""Redshift range of the data should be bounded by the expected range"""
|
|
16
|
+
|
|
17
|
+
bn_lc_cores = os.path.basename(fn_lc_cores)
|
|
18
|
+
a_min_expected, a_max_expected = lcu.get_a_range_of_lc_cores_file(
|
|
19
|
+
bn_lc_cores, sim_name
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
if lc_cores is None:
|
|
23
|
+
lc_cores = load_flat_hdf5(fn_lc_cores)
|
|
24
|
+
|
|
25
|
+
a_min_data = lc_cores["scale_factor"].min()
|
|
26
|
+
a_max_data = lc_cores["scale_factor"].max()
|
|
27
|
+
|
|
28
|
+
msg = []
|
|
29
|
+
if a_min_data < a_min_expected - tol:
|
|
30
|
+
msg.append(f"a_min_data={a_min_data} < a_min_expected={a_min_expected}\n")
|
|
31
|
+
if a_max_data > a_max_expected + tol:
|
|
32
|
+
msg.append(f"a_max_data={a_max_data} > a_max_expected={a_max_expected}\n")
|
|
33
|
+
|
|
34
|
+
return msg
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def check_core_tag_uniqueness(fn_lc_cores, lc_cores=None):
|
|
38
|
+
if lc_cores is None:
|
|
39
|
+
lc_cores = load_flat_hdf5(fn_lc_cores)
|
|
40
|
+
|
|
41
|
+
msg = []
|
|
42
|
+
u_core_tags, counts = np.unique(lc_cores["core_tag"], return_counts=True)
|
|
43
|
+
if u_core_tags.size < lc_cores["core_tag"].size:
|
|
44
|
+
example_repeated_core_tag = u_core_tags[counts > 1][0]
|
|
45
|
+
s = f"repeated core_tag = {example_repeated_core_tag}"
|
|
46
|
+
msg.append(s)
|
|
47
|
+
n_distinct_repeats = np.sum(counts > 1)
|
|
48
|
+
max_repetitions = counts.max()
|
|
49
|
+
s = f"Number of distinct repeats = {n_distinct_repeats}"
|
|
50
|
+
msg.append(s)
|
|
51
|
+
s = f"Max num repetitions = {max_repetitions}"
|
|
52
|
+
msg.append(s)
|
|
53
|
+
return msg
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def check_top_host_tag_has_match(fn_lc_cores, lc_cores=None):
|
|
57
|
+
|
|
58
|
+
if lc_cores is None:
|
|
59
|
+
lc_cores = load_flat_hdf5(fn_lc_cores)
|
|
60
|
+
|
|
61
|
+
u_core_tag, u_indx, counts = np.unique(
|
|
62
|
+
lc_cores["core_tag"], return_counts=True, return_index=True
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
msg = []
|
|
66
|
+
if u_core_tag.size < lc_cores["core_tag"].size:
|
|
67
|
+
s = "Could not run test of top_host_tag due to repeated values of core_tag"
|
|
68
|
+
msg.append(s)
|
|
69
|
+
else:
|
|
70
|
+
idxA, idxB = crossmatch(lc_cores["top_host_tag"], lc_cores["core_tag"])
|
|
71
|
+
indarr = np.arange(len(u_core_tag)).astype(int)
|
|
72
|
+
indarr[idxA] = indarr[idxB]
|
|
73
|
+
|
|
74
|
+
if not np.allclose(indarr, lc_cores["top_host_idx"]):
|
|
75
|
+
msk = indarr != lc_cores["top_host_idx"]
|
|
76
|
+
example_core_tag = lc_cores["core_tag"][msk][0]
|
|
77
|
+
example_top_host_tag = lc_cores["top_host_tag"][msk][0]
|
|
78
|
+
s = f"core_tag = {example_core_tag} has top_host_tag={example_top_host_tag} "
|
|
79
|
+
s += "which disagrees with diffsky.utils.crossmatch"
|
|
80
|
+
msg.append(s)
|
|
81
|
+
|
|
82
|
+
n_mismatches = msk.sum()
|
|
83
|
+
s = f"Number of discrepancies between top_host_tag and diffsky = {n_mismatches}"
|
|
84
|
+
msg.append(s)
|
|
85
|
+
|
|
86
|
+
return msg
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def check_top_host_idx_tag_agreement(fn_lc_cores, lc_cores=None):
|
|
90
|
+
"""top_host_tag should always be consistent with top_host_idx"""
|
|
91
|
+
if lc_cores is None:
|
|
92
|
+
lc_cores = load_flat_hdf5(fn_lc_cores)
|
|
93
|
+
|
|
94
|
+
msg = []
|
|
95
|
+
top_host_tag2 = lc_cores["core_tag"][lc_cores["top_host_idx"]]
|
|
96
|
+
if not np.allclose(lc_cores["top_host_tag"], top_host_tag2):
|
|
97
|
+
msk = top_host_tag2 != lc_cores["top_host_idx"]
|
|
98
|
+
example_core_tag = lc_cores["core_tag"][msk][0]
|
|
99
|
+
example_top_host_tag = lc_cores["top_host_tag"][msk][0]
|
|
100
|
+
s = f"core_tag = {example_core_tag} has top_host_tag={example_top_host_tag} "
|
|
101
|
+
s += "which disagrees with the value inferred from the `top_host_idx` column"
|
|
102
|
+
msg.append(s)
|
|
103
|
+
|
|
104
|
+
return msg
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
""""""
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
|
|
5
|
+
__all__ = ("N_MIN_MAH_PTS", "DIFFMAH_MASS_COLNAME", "N_PTCL_COREFOREST")
|
|
6
|
+
|
|
7
|
+
# Simulated MAHs with fewer points than N_MIN_MAH_PTS will get a synthetic MAH
|
|
8
|
+
N_MIN_MAH_PTS = 4
|
|
9
|
+
|
|
10
|
+
# DIFFMAH_MASS_COLNAME is the column used in the diffmah fits of the coreforest files
|
|
11
|
+
DIFFMAH_MASS_COLNAME = "infall_tree_node_mass"
|
|
12
|
+
|
|
13
|
+
# Minimum number of particles to use in coreforest analyses for each simulation
|
|
14
|
+
N_PTCL_COREFOREST = 100
|