From 0e4ef26fdbbb0333d7cef6793346938fe5e71502 Mon Sep 17 00:00:00 2001 From: Andrew Hearin Date: Thu, 2 Jul 2026 10:09:19 -0500 Subject: [PATCH 01/14] Fix broken import of diffsky.phot_utils --- diffhtwo/experimental/lightcone_generators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diffhtwo/experimental/lightcone_generators.py b/diffhtwo/experimental/lightcone_generators.py index 8bdc421b..1e459753 100644 --- a/diffhtwo/experimental/lightcone_generators.py +++ b/diffhtwo/experimental/lightcone_generators.py @@ -7,7 +7,7 @@ from diffmah.diffmah_kernels import _log_mah_kern from diffsky.experimental import lightcone_generators as lcg from diffsky.experimental import precompute_ssp_phot as psspp -from diffsky.phot_utils import get_wave_eff_table +from diffsky.utils.phot_utils import get_wave_eff_table from dsps.constants import T_TABLE_MIN from dsps.cosmology import flat_wcdm from dsps.cosmology.defaults import DEFAULT_COSMOLOGY From 45cfc925b6d34afdc1eb9d10cf641d73bd4106da Mon Sep 17 00:00:00 2001 From: Andrew Hearin Date: Thu, 2 Jul 2026 10:09:33 -0500 Subject: [PATCH 02/14] Add .DS_Store to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index a9982e74..006fdf03 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ __pycache__/ *.py[cod] *$py.class +.DS_Store +*/.DS_Store + */_version.py # C extensions From 64b0affc78b507e7504812be80d34040cecb5317 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 12:58:17 -0500 Subject: [PATCH 03/14] test with diffsky@main instead of diffsky@v0.3.6 --- .github/workflows/tests.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 9822cfa8..844676b1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -1,4 +1,4 @@ -name: Test Pull Request into main with diffsky@v0.3.6 +name: Test Pull Request into main with diffsky@main on: push: @@ -10,7 +10,6 @@ jobs: tests: name: tests runs-on: "ubuntu-latest" - timeout-minutes: 120 steps: - uses: actions/checkout@v5 @@ -42,7 +41,7 @@ jobs: scipy \ python-build pip uninstall diffsky --yes - pip install --no-deps git+https://github.com/ArgonneCPAC/diffsky.git@v0.3.6 + pip install --no-deps git+https://github.com/ArgonneCPAC/diffsky.git@main python -m pip install --no-build-isolation --no-deps -e . From c8dcd6c3b3516079c0dbce28823c28ca5988ebee Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:09:53 -0500 Subject: [PATCH 04/14] upgrade diffsky imports --- diffhtwo/experimental/emline_luminosity.py | 97 ------------------- diffhtwo/experimental/kernels/N_spec.py | 8 +- diffhtwo/experimental/kernels/lc_phot_kern.py | 4 +- diffhtwo/experimental/kernels/lc_spec_kern.py | 18 ++-- diffhtwo/experimental/kernels/phot_kern.py | 4 +- .../kernels/tests/test_spec_kern.py | 2 +- ...{Np_specphot_opt.py => Np_photline_opt.py} | 0 ...pecphot_opt.py => test_Np_photline_opt.py} | 4 +- scripts/fit_feniks.py | 4 +- scripts/fit_feniks_hizels.py | 4 +- scripts/fit_feniks_lh.py | 4 +- scripts/fit_sdss.py | 4 +- scripts/fit_sdss_feniks.py | 4 +- scripts/fit_sdss_feniks_hizels.py | 4 +- scripts/fit_sdss_hizels.py | 4 +- 15 files changed, 34 insertions(+), 131 deletions(-) rename diffhtwo/experimental/optimizers/{Np_specphot_opt.py => Np_photline_opt.py} (100%) rename diffhtwo/experimental/optimizers/tests/{test_Np_specphot_opt.py => test_Np_photline_opt.py} (98%) diff --git a/diffhtwo/experimental/emline_luminosity.py b/diffhtwo/experimental/emline_luminosity.py index dddadbc6..0b0f83e9 100644 --- a/diffhtwo/experimental/emline_luminosity.py +++ b/diffhtwo/experimental/emline_luminosity.py @@ -7,104 +7,7 @@ jax.config.update("jax_debug_infs", True) import jax.numpy as jnp from diffsky import diffndhist_lomem -from diffsky.dustpop import tw_dustpop_mono_noise -from diffsky.experimental import mc_diffstarpop_wrappers as mcdw -from diffsky.experimental.kernels import mc_phot_kernels as mcpk -from diffsky.experimental.kernels import ssp_weight_kernels as sspwk from jax import jit as jjit -from jax import vmap - -from .emline_utils import get_ssp_emline_luminosity - -LGMET_SCATTER = 0.2 - -# copied from astropy.constants.L_sun.cgs.value -L_SUN_CGS = jnp.array(3.828e33, dtype="float64") - -_D = (None, None, 0, 0, 0, None, 0, 0, 0, None) -_calc_dust_ftrans_vmap = jjit( - vmap( - tw_dustpop_mono_noise.calc_ftrans_singlegal_singlewave_from_dustpop_params, - in_axes=_D, - ) -) - - -@jjit -def compute_emline_luminosity( - ran_key, - z_obs, - t_obs, - mah_params, - diffstarpop_params, - spspop_params, - mzr_params, - scatter_params, - t_table, - ssp_data, - emline_wave_aa, - cosmo_params, - fb, - lgmet_scatter=LGMET_SCATTER, - n_t_table=mcdw.N_T_TABLE, -): - ssp_emline_luminosity = get_ssp_emline_luminosity(emline_wave_aa, ssp_data) - - phot_randoms, sfh_params = mcpk.get_mc_phot_randoms( - ran_key, diffstarpop_params, mah_params, cosmo_params - ) - - t_table, sfh_table, logsm_obs, logssfr_obs = mcdw.compute_diffstar_info( - mah_params, sfh_params, t_obs, cosmo_params, fb, n_t_table - ) - - age_weights_smooth, lgmet_weights = sspwk.get_smooth_ssp_weights( - t_table, sfh_table, logsm_obs, ssp_data, t_obs, mzr_params, LGMET_SCATTER - ) - - _res = sspwk.compute_burstiness( - phot_randoms.uran_pburst, - phot_randoms.mc_is_q, - logsm_obs, - logssfr_obs, - age_weights_smooth, - lgmet_weights, - ssp_data, - spspop_params.burstpop_params, - ) - - ssp_weights, burst_params, mc_sfh_type = _res - - ftrans_args = ( - spspop_params.dustpop_params, - emline_wave_aa, - logsm_obs, - logssfr_obs, - z_obs, - ssp_data.ssp_lg_age_gyr, - phot_randoms.uran_av, - phot_randoms.uran_delta, - phot_randoms.uran_funo, - scatter_params, - ) - - # _res_dust = ftrans, noisy_ftrans, dust_params, noisy_dust_params - _res_dust = _calc_dust_ftrans_vmap(*ftrans_args) - - # dust_params = _res_dust[3] # fields = ('av', 'delta', 'funo') - frac_trans = _res_dust[1] - n_gals, n_age = frac_trans.shape - frac_trans = frac_trans.reshape(n_gals, 1, n_age) - - _mstar = 10**logsm_obs - integrand = ssp_emline_luminosity * ssp_weights * frac_trans - L_emline_cgs = jnp.sum(integrand, axis=(1, 2)) * (L_SUN_CGS * _mstar) - - # no dust - integrand_nodust = ssp_emline_luminosity * ssp_weights - L_emline_cgs_nodust = jnp.sum(integrand_nodust, axis=(1, 2)) * (L_SUN_CGS * _mstar) - - return L_emline_cgs, L_emline_cgs_nodust @jjit diff --git a/diffhtwo/experimental/kernels/N_spec.py b/diffhtwo/experimental/kernels/N_spec.py index bc8cc639..969a486a 100644 --- a/diffhtwo/experimental/kernels/N_spec.py +++ b/diffhtwo/experimental/kernels/N_spec.py @@ -2,7 +2,7 @@ from diffsky import diffndhist_lomem from jax import jit as jjit -from .lc_spec_kern import mc_specphot_kern_merging_wrapper +from .lc_spec_kern import mc_photline_kern_merging_wrapper @jjit @@ -16,15 +16,15 @@ def N_linelum( ( phot_kern_results, phot_randoms, - spec_kern_results, - ) = mc_specphot_kern_merging_wrapper( + photline_kern_results, + ) = mc_photline_kern_merging_wrapper( ran_key, param_collection, lc_data, line_wave_table, ) - lg_linelum_weighted = jnp.log10(spec_kern_results.linelum_weighted) + lg_linelum_weighted = jnp.log10(photline_kern_results.linelum_weighted) gal_weight = lc_data.cen_weight * lc_data.sat_weight sig = jnp.diff(lg_Lbin_edges) / 2 diff --git a/diffhtwo/experimental/kernels/lc_phot_kern.py b/diffhtwo/experimental/kernels/lc_phot_kern.py index 3ddeb330..c60d2980 100644 --- a/diffhtwo/experimental/kernels/lc_phot_kern.py +++ b/diffhtwo/experimental/kernels/lc_phot_kern.py @@ -1,5 +1,5 @@ import jax.numpy as jnp -from diffsky.experimental.kernels import gd_phot_kernels_merging as gpkm +from diffsky.experimental.kernels import phot_kernels as pk from diffstar.defaults import FB from dsps.cosmology import DEFAULT_COSMOLOGY from jax import jit as jjit @@ -64,7 +64,7 @@ def mc_phot_kern_merging_wrapper( fb=FB, mc_merge=0, ): - phot_kern_results, phot_randoms, merging_randoms = gpkm._mc_phot_kern_merging( + phot_kern_results, phot_randoms, merging_randoms = pk._mc_phot_kern_merging( ran_key, lc_data.z_obs, lc_data.t_obs, diff --git a/diffhtwo/experimental/kernels/lc_spec_kern.py b/diffhtwo/experimental/kernels/lc_spec_kern.py index f28a492f..de3e891b 100644 --- a/diffhtwo/experimental/kernels/lc_spec_kern.py +++ b/diffhtwo/experimental/kernels/lc_spec_kern.py @@ -1,5 +1,5 @@ import jax.numpy as jnp -from diffsky.experimental.kernels import gd_specphot_kernels_merging as gspkm +from diffsky.experimental.kernels import photline_kernels as plk from diffstar.defaults import FB from dsps.cosmology import DEFAULT_COSMOLOGY from jax import jit as jjit @@ -7,7 +7,7 @@ from ..lightcone_generators import generate_lc_data -def lc_spec_kern( +def lc_photline_kern( ran_key, param_collection, z_min, @@ -41,19 +41,19 @@ def lc_spec_kern( line_wave_table = jnp.array([halpha_wave_aa]) - _res = mc_specphot_kern_merging_wrapper( + _res = mc_photline_kern_merging_wrapper( ran_key, param_collection, lc_data, line_wave_table, ) - (phot_kern_results, phot_randoms, spec_kern_results) = _res + (phot_kern_results, phot_randoms, photline_kern_results) = _res - return phot_kern_results, phot_randoms, spec_kern_results, lc_data + return phot_kern_results, phot_randoms, photline_kern_results, lc_data @jjit -def mc_specphot_kern_merging_wrapper( +def mc_photline_kern_merging_wrapper( ran_key, param_collection, lc_data, @@ -62,7 +62,7 @@ def mc_specphot_kern_merging_wrapper( fb=FB, mc_merge=0, ): - _res = gspkm._mc_specphot_kern_merging( + _res = plk._mc_photline_kern_merging( ran_key, lc_data.z_obs, lc_data.t_obs, @@ -84,6 +84,6 @@ def mc_specphot_kern_merging_wrapper( mc_merge, ) - (phot_kern_results, phot_randoms, spec_kern_results) = _res + (phot_kern_results, phot_randoms, photline_kern_results) = _res - return phot_kern_results, phot_randoms, spec_kern_results + return phot_kern_results, phot_randoms, photline_kern_results diff --git a/diffhtwo/experimental/kernels/phot_kern.py b/diffhtwo/experimental/kernels/phot_kern.py index 50a72fef..7ababd9f 100644 --- a/diffhtwo/experimental/kernels/phot_kern.py +++ b/diffhtwo/experimental/kernels/phot_kern.py @@ -2,7 +2,7 @@ import jax.numpy as jnp from diffsky import diffndhist_lomem -from diffsky.experimental.kernels import phot_kernels_merging as pkm +from diffsky.experimental.kernels import phot_kernels as pk from diffstar.defaults import FB from dsps.cosmology import DEFAULT_COSMOLOGY from jax import jit as jjit @@ -164,7 +164,7 @@ def monte_carlo_phot_kern( fb=FB, mc_merge=0, ): - phot_kern_results, phot_randoms = pkm._mc_phot_kern_merging( + phot_kern_results, phot_randoms = pk._mc_phot_kern_merging( ran_key, lc_data.z_obs, lc_data.t_obs, diff --git a/diffhtwo/experimental/kernels/tests/test_spec_kern.py b/diffhtwo/experimental/kernels/tests/test_spec_kern.py index 0207c69a..862f8eb9 100644 --- a/diffhtwo/experimental/kernels/tests/test_spec_kern.py +++ b/diffhtwo/experimental/kernels/tests/test_spec_kern.py @@ -5,7 +5,7 @@ from ..spec_kern import get_halpha_LF_q_ms_burst -def test_spec_kern(fake_subset_ssp_data, hizels_fitting_data, feniks): +def test_photline_kern(fake_subset_ssp_data, hizels_fitting_data, feniks): ssp_data, emline_wave_aa = fake_subset_ssp_data ran_key = jran.key(0) diff --git a/diffhtwo/experimental/optimizers/Np_specphot_opt.py b/diffhtwo/experimental/optimizers/Np_photline_opt.py similarity index 100% rename from diffhtwo/experimental/optimizers/Np_specphot_opt.py rename to diffhtwo/experimental/optimizers/Np_photline_opt.py diff --git a/diffhtwo/experimental/optimizers/tests/test_Np_specphot_opt.py b/diffhtwo/experimental/optimizers/tests/test_Np_photline_opt.py similarity index 98% rename from diffhtwo/experimental/optimizers/tests/test_Np_specphot_opt.py rename to diffhtwo/experimental/optimizers/tests/test_Np_photline_opt.py index bfe5b9c9..0f5360be 100644 --- a/diffhtwo/experimental/optimizers/tests/test_Np_specphot_opt.py +++ b/diffhtwo/experimental/optimizers/tests/test_Np_photline_opt.py @@ -7,7 +7,7 @@ from jax.example_libraries import optimizers as jax_opt from ... import param_utils as pu -from ..Np_specphot_opt import ( +from ..Np_photline_opt import ( _loss_and_grad_emline_kern_multi_line_multi_z, _loss_and_grad_phot_kern_2d_multiz, fit_feniks_hizels, @@ -122,7 +122,7 @@ def test_phot_opt(ran_key, feniks_fitting_data): @pytest.mark.skip(reason="temporarily disabled as it is taking too long to run") -def test_specphot_opt( +def test_photline_opt( ran_key, fake_subset_ssp_data, feniks_fitting_data, hizels_fitting_data ): ssp_data, emline_wave_aa = fake_subset_ssp_data diff --git a/scripts/fit_feniks.py b/scripts/fit_feniks.py index e05914a2..95aac7f2 100644 --- a/scripts/fit_feniks.py +++ b/scripts/fit_feniks.py @@ -21,7 +21,7 @@ from diffhtwo.experimental import param_utils as pu from diffhtwo.experimental.data_loaders import load_feniks -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -101,7 +101,7 @@ num_halos_fine_zbins=cfg["feniks"]["num_halos_fine_zbins"], ) - loss_hist, u_theta_fit = Np_specphot_opt.fit_N_phot_2d( + loss_hist, u_theta_fit = Np_photline_opt.fit_N_phot_2d( u_theta_fit, trainable_params, ran_key, diff --git a/scripts/fit_feniks_hizels.py b/scripts/fit_feniks_hizels.py index 1ed780c0..a4886237 100644 --- a/scripts/fit_feniks_hizels.py +++ b/scripts/fit_feniks_hizels.py @@ -22,7 +22,7 @@ from diffhtwo.experimental import param_utils as pu from diffhtwo.experimental.data_loaders import load_feniks, load_hizels -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -122,7 +122,7 @@ loss_phot_hist, loss_emline_hist, u_theta_fit, - ) = Np_specphot_opt.fit_feniks_hizels( + ) = Np_photline_opt.fit_feniks_hizels( u_theta_fit, trainable_params, ran_key, diff --git a/scripts/fit_feniks_lh.py b/scripts/fit_feniks_lh.py index 1de8e0ee..fb516df8 100644 --- a/scripts/fit_feniks_lh.py +++ b/scripts/fit_feniks_lh.py @@ -23,7 +23,7 @@ from diffhtwo.experimental.data_loaders import load_feniks from diffhtwo.experimental.defaults import FENIKS_Z_MIN from diffhtwo.experimental.latin_hypercube import lh_utils as lhu -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -116,7 +116,7 @@ num_halos=cfg["epoch"]["num_halos"], ) - loss_hist, u_theta_fit = Np_specphot_opt.fit_N_multi_z( + loss_hist, u_theta_fit = Np_photline_opt.fit_N_multi_z( u_theta_fit, trainable_params, ran_key, diff --git a/scripts/fit_sdss.py b/scripts/fit_sdss.py index 7dd28dc2..c2248f08 100644 --- a/scripts/fit_sdss.py +++ b/scripts/fit_sdss.py @@ -22,7 +22,7 @@ from diffhtwo.experimental import param_utils as pu from diffhtwo.experimental.data_loaders import load_sdss -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -107,7 +107,7 @@ **{s: getattr(sdss, s) for s in SdssFitting._fields} ) - loss_hist, u_theta_fit = Np_specphot_opt.fit_N_phot_2d( + loss_hist, u_theta_fit = Np_photline_opt.fit_N_phot_2d( u_theta_fit, trainable_params, ran_key, diff --git a/scripts/fit_sdss_feniks.py b/scripts/fit_sdss_feniks.py index 24265276..def26b57 100644 --- a/scripts/fit_sdss_feniks.py +++ b/scripts/fit_sdss_feniks.py @@ -23,7 +23,7 @@ from diffhtwo.experimental import param_utils as pu from diffhtwo.experimental.data_loaders import load_feniks, load_sdss from diffhtwo.experimental.defaults import FENIKS_AREA_DEG2, SDSS_AREA_DEG2 -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -126,7 +126,7 @@ loss_sdss_hist, loss_feniks_hist, u_theta_fit, - ) = Np_specphot_opt.fit_sdss_feniks( + ) = Np_photline_opt.fit_sdss_feniks( u_theta_fit, trainable_params, ran_key, diff --git a/scripts/fit_sdss_feniks_hizels.py b/scripts/fit_sdss_feniks_hizels.py index 7ad748a5..fa4dae4a 100644 --- a/scripts/fit_sdss_feniks_hizels.py +++ b/scripts/fit_sdss_feniks_hizels.py @@ -23,7 +23,7 @@ from diffhtwo.experimental import param_utils as pu from diffhtwo.experimental.data_loaders import load_feniks, load_hizels, load_sdss -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -138,7 +138,7 @@ loss_feniks_hist, loss_hizels_hist, u_theta_fit, - ) = Np_specphot_opt.fit_sdss_feniks_hizels( + ) = Np_photline_opt.fit_sdss_feniks_hizels( u_theta_fit, trainable_params, ran_key, diff --git a/scripts/fit_sdss_hizels.py b/scripts/fit_sdss_hizels.py index 25709a8a..5e0fe063 100644 --- a/scripts/fit_sdss_hizels.py +++ b/scripts/fit_sdss_hizels.py @@ -23,7 +23,7 @@ from diffhtwo.experimental import param_utils as pu from diffhtwo.experimental.data_loaders import load_hizels, load_sdss -from diffhtwo.experimental.optimizers import Np_specphot_opt +from diffhtwo.experimental.optimizers import Np_photline_opt DIFFSTARPOP_GALACTICUS_exsitu = DiffstarPop_Params_Diffstarpopfits_mgash[ "galacticus_in_plus_ex_situ" @@ -128,7 +128,7 @@ loss_phot_hist, loss_emline_hist, u_theta_fit, - ) = Np_specphot_opt.fit_feniks_hizels( + ) = Np_photline_opt.fit_feniks_hizels( u_theta_fit, trainable_params, ran_key, From 16c23c28760ee939f776c437f62ae07ad6f07f32 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:21:28 -0500 Subject: [PATCH 05/14] spec --> line --- diffhtwo/experimental/kernels/{N_spec.py => N_line.py} | 2 +- .../kernels/{lc_spec_kern.py => lc_photline_kern.py} | 0 diffhtwo/experimental/kernels/{spec_kern.py => line_kern.py} | 4 ++-- .../kernels/tests/{test_N_spec.py => test_N_line.py} | 2 +- .../kernels/tests/{test_spec_kern.py => test_line_kern.py} | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) rename diffhtwo/experimental/kernels/{N_spec.py => N_line.py} (93%) rename diffhtwo/experimental/kernels/{lc_spec_kern.py => lc_photline_kern.py} (100%) rename diffhtwo/experimental/kernels/{spec_kern.py => line_kern.py} (97%) rename diffhtwo/experimental/kernels/tests/{test_N_spec.py => test_N_line.py} (94%) rename diffhtwo/experimental/kernels/tests/{test_spec_kern.py => test_line_kern.py} (88%) diff --git a/diffhtwo/experimental/kernels/N_spec.py b/diffhtwo/experimental/kernels/N_line.py similarity index 93% rename from diffhtwo/experimental/kernels/N_spec.py rename to diffhtwo/experimental/kernels/N_line.py index 969a486a..79122954 100644 --- a/diffhtwo/experimental/kernels/N_spec.py +++ b/diffhtwo/experimental/kernels/N_line.py @@ -2,7 +2,7 @@ from diffsky import diffndhist_lomem from jax import jit as jjit -from .lc_spec_kern import mc_photline_kern_merging_wrapper +from .lc_photline_kern import mc_photline_kern_merging_wrapper @jjit diff --git a/diffhtwo/experimental/kernels/lc_spec_kern.py b/diffhtwo/experimental/kernels/lc_photline_kern.py similarity index 100% rename from diffhtwo/experimental/kernels/lc_spec_kern.py rename to diffhtwo/experimental/kernels/lc_photline_kern.py diff --git a/diffhtwo/experimental/kernels/spec_kern.py b/diffhtwo/experimental/kernels/line_kern.py similarity index 97% rename from diffhtwo/experimental/kernels/spec_kern.py rename to diffhtwo/experimental/kernels/line_kern.py index 13597628..1cc626b8 100644 --- a/diffhtwo/experimental/kernels/spec_kern.py +++ b/diffhtwo/experimental/kernels/line_kern.py @@ -5,7 +5,7 @@ from .. import emline_luminosity from .gehrels_err import N_0, N_FLOOR -from .lc_spec_kern import lc_spec_kern +from .lc_photline_kern import lc_photline_kern def get_halpha_LF_q_ms_burst( @@ -27,7 +27,7 @@ def get_halpha_LF_q_ms_burst( ): z_min = halpha_LF_z - (halpha_LF_delta_z / 2) z_max = halpha_LF_z + (halpha_LF_delta_z / 2) - _res = lc_spec_kern( + _res = lc_photline_kern( ran_key, param_collection, z_min, diff --git a/diffhtwo/experimental/kernels/tests/test_N_spec.py b/diffhtwo/experimental/kernels/tests/test_N_line.py similarity index 94% rename from diffhtwo/experimental/kernels/tests/test_N_spec.py rename to diffhtwo/experimental/kernels/tests/test_N_line.py index a1ee005d..d6da0b6a 100644 --- a/diffhtwo/experimental/kernels/tests/test_N_spec.py +++ b/diffhtwo/experimental/kernels/tests/test_N_line.py @@ -3,7 +3,7 @@ from diffsky.param_utils.diffsky_param_wrapper_merging import DEFAULT_PARAM_COLLECTION from jax import random as jran -from ..N_spec import N_linelum +from ..N_line import N_linelum def test_N_linelum(hizels_fitting_data): diff --git a/diffhtwo/experimental/kernels/tests/test_spec_kern.py b/diffhtwo/experimental/kernels/tests/test_line_kern.py similarity index 88% rename from diffhtwo/experimental/kernels/tests/test_spec_kern.py rename to diffhtwo/experimental/kernels/tests/test_line_kern.py index 862f8eb9..af554185 100644 --- a/diffhtwo/experimental/kernels/tests/test_spec_kern.py +++ b/diffhtwo/experimental/kernels/tests/test_line_kern.py @@ -2,10 +2,10 @@ from diffsky.param_utils.diffsky_param_wrapper_merging import DEFAULT_PARAM_COLLECTION from jax import random as jran -from ..spec_kern import get_halpha_LF_q_ms_burst +from ..line_kern import get_halpha_LF_q_ms_burst -def test_photline_kern(fake_subset_ssp_data, hizels_fitting_data, feniks): +def test_line_kern(fake_subset_ssp_data, hizels_fitting_data, feniks): ssp_data, emline_wave_aa = fake_subset_ssp_data ran_key = jran.key(0) From 1e46b716520f25639d1142aaf0c232c61ba6d4d2 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:27:17 -0500 Subject: [PATCH 06/14] remove emline_loss_mse --- .../experimental/diagnostics/plot_halpha.py | 2 +- .../experimental/loss_kernels/emline_loss.py | 2 +- .../loss_kernels/emline_loss_mse.py | 86 ------------------- .../tests/test_emline_loss_mse.py | 41 --------- 4 files changed, 2 insertions(+), 129 deletions(-) delete mode 100644 diffhtwo/experimental/loss_kernels/emline_loss_mse.py delete mode 100644 diffhtwo/experimental/loss_kernels/tests/test_emline_loss_mse.py diff --git a/diffhtwo/experimental/diagnostics/plot_halpha.py b/diffhtwo/experimental/diagnostics/plot_halpha.py index 1792ecf1..016f4102 100644 --- a/diffhtwo/experimental/diagnostics/plot_halpha.py +++ b/diffhtwo/experimental/diagnostics/plot_halpha.py @@ -3,8 +3,8 @@ import numpy as np from matplotlib.lines import Line2D +from ..kernels.line_kern import get_halpha_LF_q_ms_burst, get_lf_from_linelum from ..kernels.sfh_rapid_q import update_logsfr_obs_with_rapid_q -from ..kernels.spec_kern import get_halpha_LF_q_ms_burst, get_lf_from_linelum plt.rc("font", family="serif", serif=["Times New Roman"]) diff --git a/diffhtwo/experimental/loss_kernels/emline_loss.py b/diffhtwo/experimental/loss_kernels/emline_loss.py index f2435799..276987c4 100644 --- a/diffhtwo/experimental/loss_kernels/emline_loss.py +++ b/diffhtwo/experimental/loss_kernels/emline_loss.py @@ -3,7 +3,7 @@ from dsps.metallicity.umzr import DEFAULT_MZR_U_PARAMS from jax import jit as jjit -from ..kernels.N_spec import N_linelum +from ..kernels.N_line import N_linelum from ..param_utils import get_param_collection_from_u_theta from .loss_functions import poisson_loss diff --git a/diffhtwo/experimental/loss_kernels/emline_loss_mse.py b/diffhtwo/experimental/loss_kernels/emline_loss_mse.py deleted file mode 100644 index a97979ee..00000000 --- a/diffhtwo/experimental/loss_kernels/emline_loss_mse.py +++ /dev/null @@ -1,86 +0,0 @@ -import jax.numpy as jnp -from diffsky.experimental.scatter import DEFAULT_SCATTER_U_PARAMS -from dsps.metallicity.umzr import DEFAULT_MZR_U_PARAMS -from jax import jit as jjit - -from ..kernels.spec_kern import n_spec_kern -from ..param_utils import get_param_collection_from_u_theta -from .loss_functions import mse_w - - -@jjit -def get_emline_loss( - ran_key, - lg_emline_LF_target, - lg_emline_Lbin_edges, - param_collection, - lc_data, - line_wave_aa, -): - line_wave_table = jnp.array([line_wave_aa]) - lg_emline_LF_model = n_spec_kern( - ran_key, - param_collection, - lc_data, - line_wave_table, - lg_emline_Lbin_edges, - ) - - emline_loss = mse_w( - lg_emline_LF_model, - lg_emline_LF_target[0], - lg_emline_LF_target[1], - ) - - return emline_loss - - -def _loss_emline_kern( - u_theta, - ran_key, - lg_emline_LF_target, - lg_emline_Lbin_edges, - lc_data, - line_wave_aa, - u_mzr_params=DEFAULT_MZR_U_PARAMS, - u_scatter_params=DEFAULT_SCATTER_U_PARAMS, -): - param_collection = get_param_collection_from_u_theta(u_theta) - emline_loss_args = ( - ran_key, - lg_emline_LF_target, - lg_emline_Lbin_edges, - param_collection, - lc_data, - line_wave_aa, - ) - emline_loss = get_emline_loss(*emline_loss_args) - return emline_loss - - -@jjit -def _loss_emline_kern_multi_line_multi_z( - u_theta, - ran_key, - lg_emline_LF_target, - lg_emline_Lbin_edges, - emline_lc_data, - emline_wave_table, -): - emline_loss_multi_line_multi_z = 0.0 - - n_line = len(emline_wave_table) - for line in range(0, n_line): - n_z = len(lg_emline_LF_target[line]) - for z in range(0, n_z): - emline_loss_args_z = ( - u_theta, - ran_key, - lg_emline_LF_target[line][z], - lg_emline_Lbin_edges[line][z], - emline_lc_data[line][z], - emline_wave_table[line], - ) - emline_loss_multi_line_multi_z += _loss_emline_kern(*emline_loss_args_z) - - return emline_loss_multi_line_multi_z diff --git a/diffhtwo/experimental/loss_kernels/tests/test_emline_loss_mse.py b/diffhtwo/experimental/loss_kernels/tests/test_emline_loss_mse.py deleted file mode 100644 index e631d30a..00000000 --- a/diffhtwo/experimental/loss_kernels/tests/test_emline_loss_mse.py +++ /dev/null @@ -1,41 +0,0 @@ -import numpy as np -import pytest -from diffsky.param_utils.diffsky_param_wrapper_merging import DEFAULT_PARAM_COLLECTION -from jax import random as jran - -from ... import param_utils as pu -from ..emline_loss import _loss_emline_kern, get_emline_loss - - -@pytest.mark.skip(reason="Currently mse based emline loss code is outdated") -def test_emline_loss(fake_subset_ssp_data, hizels): - ssp_data, emline_wave_aa = fake_subset_ssp_data - - # pick first line, first zbin - lg_emline_LF_target = hizels.lg_LF[0][0] - lg_emline_Lbin_edges = hizels.lg_Lbin_edges[0][0] - lc_data = hizels.lc_data[0][0] - - ran_key = jran.key(0) - - emline_loss = get_emline_loss( - ran_key, - lg_emline_LF_target, - lg_emline_Lbin_edges, - DEFAULT_PARAM_COLLECTION, - lc_data, - emline_wave_aa, - ) - - assert np.isfinite(emline_loss) - - u_theta = pu.get_u_theta_from_param_collection(DEFAULT_PARAM_COLLECTION) - emline_loss_kern = _loss_emline_kern( - u_theta, - ran_key, - lg_emline_LF_target, - lg_emline_Lbin_edges, - lc_data, - emline_wave_aa, - ) - assert np.isfinite(emline_loss_kern) From 7ad231466d9c984c6516daeff37c90e5f41ca6e5 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:45:05 -0500 Subject: [PATCH 07/14] diffhalos>=0.2.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 37e715cd..d031db48 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ diffmah>=0.7.2 diffstar>=1.0.0 dsps>=0.4.5 diffsky>=0.3.0 -diffhalos>=0.1.0 +diffhalos>=0.2.0 From d1069399663303aa69ecb00b7d9dd323f911b3d7 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:45:56 -0500 Subject: [PATCH 08/14] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d031db48..138f5a5b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,5 +6,5 @@ h5py diffmah>=0.7.2 diffstar>=1.0.0 dsps>=0.4.5 -diffsky>=0.3.0 +diffsky>=0.3.6 diffhalos>=0.2.0 From c67e6532d0fc5ef1c426e3a515197ff6169ee699 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:50:25 -0500 Subject: [PATCH 09/14] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 138f5a5b..dff41e4a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ diffmah>=0.7.2 diffstar>=1.0.0 dsps>=0.4.5 diffsky>=0.3.6 -diffhalos>=0.2.0 +diffhalos>=0.2.0 \ No newline at end of file From 8657f80940b3d33fcddf6f92abb2bbf395850786 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 14:55:20 -0500 Subject: [PATCH 10/14] diffhalos>=0.1.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index dff41e4a..b16a12e1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ diffmah>=0.7.2 diffstar>=1.0.0 dsps>=0.4.5 diffsky>=0.3.6 -diffhalos>=0.2.0 \ No newline at end of file +diffhalos>=0.1.1 From d4c900ec3006b1f1bdc0cc983d1f29a931eb0b91 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 15:08:38 -0500 Subject: [PATCH 11/14] diffhalos==0.2.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b16a12e1..62d474bf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ diffmah>=0.7.2 diffstar>=1.0.0 dsps>=0.4.5 diffsky>=0.3.6 -diffhalos>=0.1.1 +diffhalos==0.2.0 From 1b0088d3582770a6afb2cb38c6414e1db4160569 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 15:12:33 -0500 Subject: [PATCH 12/14] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 62d474bf..83cacb67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ diffmah>=0.7.2 diffstar>=1.0.0 dsps>=0.4.5 diffsky>=0.3.6 -diffhalos==0.2.0 +diffhalos From bce9410b97e02d1e86a00bca6c81a34606052220 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 15:18:39 -0500 Subject: [PATCH 13/14] pip install diffhalos@main in testing workflow --- .github/workflows/tests.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 844676b1..b2888059 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -42,6 +42,8 @@ jobs: python-build pip uninstall diffsky --yes pip install --no-deps git+https://github.com/ArgonneCPAC/diffsky.git@main + pip uninstall diffhalos --yes + pip install --no-deps git+https://github.com/ArgonneCPAC/diffhalos.git@main python -m pip install --no-build-isolation --no-deps -e . From a61bfd95ee7d97352b62615d4304153dac6ec9f8 Mon Sep 17 00:00:00 2001 From: Kumail Zaidi Date: Mon, 13 Jul 2026 15:31:09 -0500 Subject: [PATCH 14/14] Update cron_tests.yaml --- .github/workflows/cron_tests.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cron_tests.yaml b/.github/workflows/cron_tests.yaml index ab36ceec..39cb89d6 100644 --- a/.github/workflows/cron_tests.yaml +++ b/.github/workflows/cron_tests.yaml @@ -47,6 +47,8 @@ jobs: python-build pip uninstall diffsky --yes pip install --no-deps git+https://github.com/ArgonneCPAC/diffsky.git + pip uninstall diffhalos --yes + pip install --no-deps git+https://github.com/ArgonneCPAC/diffhalos.git@main python -m pip install --no-build-isolation --no-deps -e .