nmma 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/continous_integration.yml +3 -2
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/dependency-installation.yml +7 -7
- {nmma-0.2.1/nmma.egg-info → nmma-0.2.2}/PKG-INFO +14 -2
- {nmma-0.2.1 → nmma-0.2.2}/README.md +12 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/index.rst +1 -0
- nmma-0.2.2/doc/systematics.rst +87 -0
- nmma-0.2.2/example_files/multi_config_analysis/config.yaml +75 -0
- nmma-0.2.2/example_files/multi_config_analysis/injection.json +31 -0
- nmma-0.2.2/nmma/__init__.py +1 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/analysis.py +27 -20
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/analysis_lbol.py +7 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/likelihood.py +93 -12
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/model.py +5 -0
- nmma-0.2.2/nmma/em/multi_config_analysis.py +107 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/prior.py +26 -0
- nmma-0.2.2/nmma/em/systematics.py +190 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/utils.py +2 -2
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/conversion.py +19 -16
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/analysis.py +26 -3
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/analysis_lbol.py +2 -1
- nmma-0.2.2/nmma/tests/data/multi_config_analysis/config.yaml +35 -0
- nmma-0.2.2/nmma/tests/data/multi_config_analysis/injection.json +31 -0
- nmma-0.2.2/nmma/tests/data/systematics_with_time.yaml +14 -0
- nmma-0.2.2/nmma/tests/data/systematics_without_time.yaml +14 -0
- nmma-0.2.2/nmma/tests/multi_config_analysis.py +30 -0
- nmma-0.2.2/nmma/tests/systematics.py +203 -0
- {nmma-0.2.1 → nmma-0.2.2/nmma.egg-info}/PKG-INFO +14 -2
- {nmma-0.2.1 → nmma-0.2.2}/nmma.egg-info/SOURCES.txt +13 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma.egg-info/entry_points.txt +1 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma.egg-info/requires.txt +1 -1
- nmma-0.2.2/priors/Me2017.prior +6 -0
- nmma-0.2.2/priors/systematics.yaml +19 -0
- {nmma-0.2.1 → nmma-0.2.2}/pyproject.toml +2 -1
- {nmma-0.2.1 → nmma-0.2.2}/requirements.txt +2 -2
- nmma-0.2.1/nmma/__init__.py +0 -1
- {nmma-0.2.1 → nmma-0.2.2}/.flake8 +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.gitattributes +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/build-deploy-container.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/delete-branch-cache.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/deploy-github-pages.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/publish-to-anaconda.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/publish-to-pypi.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.github/workflows/rst-linter.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.gitignore +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.pep8speaks.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/.pre-commit-config.yaml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/CITATION.cff +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/Dockerfile +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/LICENSE +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/MANIFEST.in +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/api/Dockerfile +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/api/app.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/api/environment.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/api/log.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/assets/a3d3.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/assets/erc.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/assets/nsf.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/.doctor-rst.yaml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/Cluster_Resources.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/GW-EM-resampling.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/Makefile +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/_static/.nmma-docs.css.un~ +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/_static/favicon-light.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/_static/light-logo.svg +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/_static/nmma-docs.css +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/_static/nmma-docs.css~ +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/changelog.rst +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/combined_analysis.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/conf.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/contributing.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/data_inj_obs.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/fitting.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/gw_inference.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/gwemopt_light_curves_detection.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/Corner_narrow_Bulla.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/ZTF21abjvfbc_corner.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/ZTF21abjvfbc_lightcurves.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/ZTF_corner.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/ZTF_lightcurves.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/corner_samples.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/dark-logo.svg +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/injection_corner.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/injection_lightcurves.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/light-logo.svg +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/images/training_lightcurves.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/joint_inference.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/lfi_analysis.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/models.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/observing-scenarios-light-curves.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/quick-start-guide.rst +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc/training.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/doc_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/docker-compose.yml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/NICER/J0030_3spot_RM.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/NICER/NICER+XMM_J0740_RM.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/NICER/NICER_x_XMM_J0740_XPSI_STU_NSX_FIH_radius_mass.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF20abwysqy.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abdequz.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abdhqle.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abdpqpq.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abinaiu.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abisoui.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abitmou.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abivhns.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abjpkvy.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abjrhzz.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abjrmes.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abjtdua.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF21abjvfbc.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/candidate_data/ZTF23aaxeacr.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/eos/ALF2.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lbol/ztf23bqun/23bqun_bbdata.csv +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lbol/ztf23bqun/Arnett_modified.priors +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lbol/ztf23bqun/lbol_test_corner.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lbol/ztf23bqun/lbol_test_lightcurves.png +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lbol/ztf23bqun/run.sh +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lightcurves/AT2017gfo.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lightcurves/AT2017gfo_GRB170817A_reduced.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lightcurves/AT2017gfo_reduced.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/lightcurves/GRB211211A.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/prior/GW170817_AT2017gfo.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/prior/GW170817_AT2017gfo_GRB170817A.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/prior/ZTF_Bu2019lm.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/sim_events/bns_O4_injections.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/sim_events/injections.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/tools/gwem_resampling/GRB211211A_NSBH_posterior_samples.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/tools/gwem_resampling/GRB211211A_posterior_samples.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/tools/gwem_resampling/GWsamples.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/tools/gwem_resampling/GWsamples_NSBH.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/tools/gwem_resampling/gwsamples_generation.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/tools/gwem_resampling/posterior_probability.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/yaml/doc_example.yaml +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/example_files/zenodo/gw_posteriors.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/grb_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/ml_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/__pycache__/__init__.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/__pycache__/__init__.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/__pycache__/likelihood.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/__pycache__/model.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/__pycache__/utils.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/analysis_condor.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/combine_EOS.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/create_injection_condor.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/create_injection_slurm.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/create_lightcurves.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/create_lightcurves_condor.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/create_lightcurves_slurm.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/create_svdmodel.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/ZTF_revisit_kde_i.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/ZTF_revisit_kde_public.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/ZTF_sampling_public.pkl +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/ZTF_uncer_params.pkl +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/__pycache__/__init__.cpython-38.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_ToO_180_g.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_ToO_180_r.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_ToO_300_g.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_ToO_300_r.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_i.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_public_g.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/lims_public_r.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/sampling_ToO_180.pkl +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/data/sampling_ToO_300.pkl +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/detect_lightcurves.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/gwem_Hubble_estimate.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/gwem_resampling.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/gwem_resampling_condor.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/gwem_resampling_utils.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/gwsamples_creation.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/injection.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/injection_summary.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/io.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/lightcurve_marginalization.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/manual.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/model_lbol.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/model_parameters.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/svdmodel_benchmark.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/training.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/utils_lbol.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/em/validate_lightcurve.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/__pycache__/__init__.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/__pycache__/eos.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/__pycache__/tov.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/__pycache__/utils.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/create_injection.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/eos.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/tov.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/eos/utils.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/gw/likelihood.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/__pycache__/__init__.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/__pycache__/constraints.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/__pycache__/conversion.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/__pycache__/likelihood.cpython-37.pyc +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/constraints.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/likelihood.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/maximum_mass_constraint.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/joint/maximum_mass_constraint_utils.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/dataprocessing.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/embedding.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/frozen-flow-weights.pth +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/inference.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/normalizingflows.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/resnet.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/mlmodel/similarity_embedding_weights.pth +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/analysis/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/analysis/analysis_run.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/analysis/likelihood.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/analysis/main.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/generation.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/parser/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/parser/analysis.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/parser/generation.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/pbilby/parser/shared.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/Bu2019lm_injection.json +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/Bu2019nsbh/ztfr.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/Bu2019nsbh.joblib +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/Bu2019nsbh_tf/ztfr.h5 +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/GW+KN+GRB_posterior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/Ka2017_injection.json +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/Me2017_injection.json +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/TrPi2018_pinned_parameters.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/ZTF23aaxeacr_partial.csv +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.010_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.030_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.050_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.070_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.090_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.110_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.001_mejwind0.130_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.010_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.030_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.050_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.070_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.090_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.110_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.005_mejwind0.130_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.010_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.030_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.050_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.070_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.090_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.110_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.010_mejwind0.130_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.010_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.030_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.050_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.070_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.090_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.110_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/bulla/nsns_nph1.0e+06_mejdyn0.020_mejwind0.130_phi45_45.6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/1.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/10.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/2.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/3.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/4.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/5.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/7.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/8.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_macro/9.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/1.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/10.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/2.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/3.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/4.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/5.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/6.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/7.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/8.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/eos_micro/9.dat +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/data/lowmass_collapsar_updated.h5 +0 -0
- {nmma-0.2.1/priors → nmma-0.2.2/nmma/tests/data/multi_config_analysis}/Me2017.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/injections.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/maximum_mass.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/models.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/tools.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/tests/training.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/utils/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/utils/gitlab.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/utils/models.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma/utils/models_tools.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma.egg-info/dependency_links.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/nmma.egg-info/top_level.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/AnBa2022.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/AnBa2022_sparse.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Bu2019lm.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Bu2019lm_TrPi2018GRB211211A.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Bu2019nsbh.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Bu2019nsbh_TrPi2018_GRB211211A.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Bu2022Ye.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Bu2023Ye.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/GWBNS.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/GWNSBH.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Ka2017.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/LANL2022.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Piro2021.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/Sr2023.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/TrPi2018.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/TrPi2018_onaxis.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/ZTF_lgrb.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/ZTF_sgrb.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/injec_alspin.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/maximum_mass_resampling.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/salt2.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/sncosmo-generic.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/priors/sncosmo-generic_TrPi2018.prior +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/production_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/sampler_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/setup.cfg +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/sklearn_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/slurm.sub +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tf_requirements.txt +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/__init__.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/analysis_slurm.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/convert_skyportal_lcs.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/corner_plot.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/make_lcs.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/make_lcs_LANL.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/make_lcs_hdf5.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/make_lcs_kasen.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/plot_svdmodel_benchmarks.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/resample_grid.py +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tools/tf_training_calls.sh +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tutorials/README.md +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tutorials/tutorial-KN-models-training.ipynb +0 -0
- {nmma-0.2.1 → nmma-0.2.2}/tutorials/tutorial-lightcurve_simulation.ipynb +0 -0
|
@@ -111,7 +111,7 @@ jobs:
|
|
|
111
111
|
if: matrix.os == 'macos-latest'
|
|
112
112
|
run: |
|
|
113
113
|
conda install -c conda-forge pyfftw c-compiler ligo-segments python-ligo-lw
|
|
114
|
-
echo "FC=$(which gfortran-
|
|
114
|
+
echo "FC=$(which gfortran-14)" >> $GITHUB_ENV
|
|
115
115
|
echo "CC=$(which gcc)" >> $GITHUB_ENV
|
|
116
116
|
echo "CXX=$(which g++)" >> $GITHUB_ENV
|
|
117
117
|
|
|
@@ -119,7 +119,8 @@ jobs:
|
|
|
119
119
|
if: matrix.os == 'ubuntu-latest'
|
|
120
120
|
run: |
|
|
121
121
|
sudo apt-get update
|
|
122
|
-
sudo apt-get install -y texlive texlive-latex-extra texlive-fonts-recommended dvipng cm-super
|
|
122
|
+
sudo apt-get install -y texlive texlive-latex-extra texlive-fonts-recommended dvipng cm-super python3-mpi4py
|
|
123
|
+
|
|
123
124
|
- name: Install Python dependencies
|
|
124
125
|
run: |
|
|
125
126
|
python -m pip install --upgrade git+https://github.com/bitranox/wrapt_timeout_decorator.git
|
|
@@ -48,7 +48,7 @@ jobs:
|
|
|
48
48
|
|
|
49
49
|
- name: Install NMMA (base)
|
|
50
50
|
run: |
|
|
51
|
-
python -m pip install
|
|
51
|
+
python -m pip install nmma
|
|
52
52
|
|
|
53
53
|
- name: Verify base NMMA installation
|
|
54
54
|
run: |
|
|
@@ -56,30 +56,30 @@ jobs:
|
|
|
56
56
|
|
|
57
57
|
- name: Install and verify NMMA [grb]
|
|
58
58
|
run: |
|
|
59
|
-
python -m pip install 'nmma[grb]
|
|
59
|
+
python -m pip install 'nmma[grb]'
|
|
60
60
|
python -c "import nmma, afterglowpy; print(f'Successfully imported {nmma.__name__}, {afterglowpy.__name__}')"
|
|
61
61
|
|
|
62
62
|
- name: Install and verify NMMA [production]
|
|
63
63
|
run: |
|
|
64
|
-
python -m pip install 'nmma[production]
|
|
64
|
+
python -m pip install 'nmma[production]'
|
|
65
65
|
python -c "import nmma, parallel_bilby, nestcheck, mpi4py; print(f'Successfully imported {nmma.__name__}, {parallel_bilby.__name__}, {nestcheck.__name__}, {mpi4py.__name__}')"
|
|
66
66
|
|
|
67
67
|
- name: Install and verify NMMA [neuralnet]
|
|
68
68
|
run: |
|
|
69
|
-
python -m pip install 'nmma[neuralnet]
|
|
69
|
+
python -m pip install 'nmma[neuralnet]'
|
|
70
70
|
python -c "import nmma, torch, nflows, torchvision; print(f'Successfully imported {nmma.__name__}, {torch.__name__}, {nflows.__name__}, {torchvision.__name__}')"
|
|
71
71
|
|
|
72
72
|
- name: Install and verify NMMA [tf]
|
|
73
73
|
run: |
|
|
74
|
-
python -m pip install 'nmma[tf]
|
|
74
|
+
python -m pip install 'nmma[tf]'
|
|
75
75
|
python -c "import nmma, tensorflow; print(f'Successfully imported {nmma.__name__}, {tensorflow.__name__}')"
|
|
76
76
|
|
|
77
77
|
- name: Install and verify NMMA [sklearn]
|
|
78
78
|
run: |
|
|
79
|
-
python -m pip install 'nmma[sklearn]
|
|
79
|
+
python -m pip install 'nmma[sklearn]'
|
|
80
80
|
python -c "import nmma, sklearn; print(f'Successfully imported {nmma.__name__}, {sklearn.__name__}')"
|
|
81
81
|
|
|
82
82
|
- name: Install and verify NMMA [sampler]
|
|
83
83
|
run: |
|
|
84
|
-
python -m pip install 'nmma[sampler]
|
|
84
|
+
python -m pip install 'nmma[sampler]'
|
|
85
85
|
python -c "import nmma, ultranest; print(f'Successfully imported {nmma.__name__}, {ultranest.__name__}')"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nmma
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: A nuclear physics multi-messenger Bayesian inference library
|
|
5
5
|
Author-email: "Peter Tsun Ho Pang, Michael Coughlin, Tim Dietrich, Ingo Tews" <nuclear_multimessenger_astronomy@googlegroups.com>
|
|
6
6
|
License: GPLv3
|
|
@@ -35,7 +35,7 @@ Requires-Dist: numpy>=1.9
|
|
|
35
35
|
Requires-Dist: matplotlib<3.8,>=2.0
|
|
36
36
|
Requires-Dist: scipy>=1.10
|
|
37
37
|
Requires-Dist: pandas<2.0,>=1.3.4
|
|
38
|
-
Requires-Dist: astropy>=
|
|
38
|
+
Requires-Dist: astropy>=5.3.4
|
|
39
39
|
Requires-Dist: pymultinest
|
|
40
40
|
Requires-Dist: sncosmo
|
|
41
41
|
Requires-Dist: dust_extinction
|
|
@@ -133,6 +133,18 @@ When utilizing this code for a publication, kindly make a reference to the packa
|
|
|
133
133
|
url={https://doi.org/10.1038/s41467-023-43932-6}
|
|
134
134
|
}
|
|
135
135
|
```
|
|
136
|
+
If you are using the systematics error, please also cite the paper [A data-driven approach for modeling the temporal and spectral evolution of kilonova systematic uncertainties](https://arxiv.org/abs/2410.21978). The BibTeX entry for the paper is:
|
|
137
|
+
```bibtex
|
|
138
|
+
@article{Jhawar:2024ezm,
|
|
139
|
+
author = "Jhawar, Sahil and Wouters, Thibeau and Pang, Peter T. H. and Bulla, Mattia and Coughlin, Michael W. and Dietrich, Tim",
|
|
140
|
+
title = "{A data-driven approach for modeling the temporal and spectral evolution of kilonova systematic uncertainties}",
|
|
141
|
+
eprint = "2410.21978",
|
|
142
|
+
archivePrefix = "arXiv",
|
|
143
|
+
primaryClass = "astro-ph.HE",
|
|
144
|
+
month = "10",
|
|
145
|
+
year = "2024"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
136
148
|
|
|
137
149
|
### Acknowledgments
|
|
138
150
|
If you benefited from participating in our community, we ask that you please acknowledge the Nuclear Multi-Messenger Astronomy collaboration, and particular individuals who helped you, in any publications.
|
|
@@ -54,6 +54,18 @@ When utilizing this code for a publication, kindly make a reference to the packa
|
|
|
54
54
|
url={https://doi.org/10.1038/s41467-023-43932-6}
|
|
55
55
|
}
|
|
56
56
|
```
|
|
57
|
+
If you are using the systematics error, please also cite the paper [A data-driven approach for modeling the temporal and spectral evolution of kilonova systematic uncertainties](https://arxiv.org/abs/2410.21978). The BibTeX entry for the paper is:
|
|
58
|
+
```bibtex
|
|
59
|
+
@article{Jhawar:2024ezm,
|
|
60
|
+
author = "Jhawar, Sahil and Wouters, Thibeau and Pang, Peter T. H. and Bulla, Mattia and Coughlin, Michael W. and Dietrich, Tim",
|
|
61
|
+
title = "{A data-driven approach for modeling the temporal and spectral evolution of kilonova systematic uncertainties}",
|
|
62
|
+
eprint = "2410.21978",
|
|
63
|
+
archivePrefix = "arXiv",
|
|
64
|
+
primaryClass = "astro-ph.HE",
|
|
65
|
+
month = "10",
|
|
66
|
+
year = "2024"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
57
69
|
|
|
58
70
|
### Acknowledgments
|
|
59
71
|
If you benefited from participating in our community, we ask that you please acknowledge the Nuclear Multi-Messenger Astronomy collaboration, and particular individuals who helped you, in any publications.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
|
|
2
|
+
Systematics Uncertainties
|
|
3
|
+
=========================
|
|
4
|
+
|
|
5
|
+
NMMA currently uses ``--error-budget`` to specify the constant systematic uncertainties to be added to the likelihood quadrature.
|
|
6
|
+
|
|
7
|
+
However, it is now possible to use systematic error (:math:`\sigma_{sys}`) prior in form of a freely sampled parameter, time dependent and/or filter dependent systematic error. This can done by specifying the file path using the ``--systematics-file`` in ``lightcurve-analysis`` command.
|
|
8
|
+
|
|
9
|
+
For more information on systematics error, please refer to the `paper <https://arxiv.org/abs/2410.21978>`__.
|
|
10
|
+
|
|
11
|
+
The following are the examples of the systematics file:
|
|
12
|
+
|
|
13
|
+
Example 1: Freely sampled (time independent) systematic error
|
|
14
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
15
|
+
|
|
16
|
+
In this case the systematic error is freely sampled and is not dependent on time or filter.
|
|
17
|
+
|
|
18
|
+
.. code:: yaml
|
|
19
|
+
|
|
20
|
+
config:
|
|
21
|
+
withTime:
|
|
22
|
+
value: false
|
|
23
|
+
filters:
|
|
24
|
+
- null
|
|
25
|
+
time_nodes: 4
|
|
26
|
+
type: Uniform
|
|
27
|
+
minimum: 0
|
|
28
|
+
maximum: 2
|
|
29
|
+
withoutTime:
|
|
30
|
+
value: true
|
|
31
|
+
type: Uniform
|
|
32
|
+
minimum: 0
|
|
33
|
+
maximum: 2
|
|
34
|
+
|
|
35
|
+
Example 2: Time dependent systematic error
|
|
36
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
37
|
+
|
|
38
|
+
In this configuration, a single systematic error is applied across all filters.
|
|
39
|
+
|
|
40
|
+
.. code:: yaml
|
|
41
|
+
|
|
42
|
+
config:
|
|
43
|
+
withTime:
|
|
44
|
+
value: true
|
|
45
|
+
filters:
|
|
46
|
+
- null
|
|
47
|
+
time_nodes: 4
|
|
48
|
+
type: Uniform
|
|
49
|
+
minimum: 0
|
|
50
|
+
maximum: 2
|
|
51
|
+
withoutTime:
|
|
52
|
+
value: false
|
|
53
|
+
type: Uniform
|
|
54
|
+
minimum: 0
|
|
55
|
+
maximum: 2
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Example 3: Time and filter dependent systematic error
|
|
59
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
60
|
+
|
|
61
|
+
In this configuration, the ``sdssu`` and ``ztfr`` filters are sampled together for systematic errors, while the ``2massks`` filter is sampled independently. All other filters are grouped and sampled together
|
|
62
|
+
|
|
63
|
+
.. code:: yaml
|
|
64
|
+
|
|
65
|
+
config:
|
|
66
|
+
withTime:
|
|
67
|
+
value: true
|
|
68
|
+
filters:
|
|
69
|
+
- [sdssu, ztfr]
|
|
70
|
+
- [2massks]
|
|
71
|
+
- null
|
|
72
|
+
time_nodes: 4
|
|
73
|
+
type: Uniform
|
|
74
|
+
minimum: 0
|
|
75
|
+
maximum: 2
|
|
76
|
+
withoutTime:
|
|
77
|
+
value: false
|
|
78
|
+
type: Uniform
|
|
79
|
+
minimum: 0
|
|
80
|
+
maximum: 2
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
Distribution types
|
|
84
|
+
==================
|
|
85
|
+
|
|
86
|
+
Distribution can be of any of the ``analytical`` prior from `bilby <https://git.ligo.org/lscsoft/bilby>`__.
|
|
87
|
+
Please refer to bilby documentation for more information on the available distribution type and their usage. Only positional arguments are required for any of the distrbutions.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Me2017_1:
|
|
2
|
+
model: Me2017
|
|
3
|
+
outdir: outdir_1
|
|
4
|
+
label: injection
|
|
5
|
+
prior: ../../priors/Me2017.prior
|
|
6
|
+
tmin: 0.1
|
|
7
|
+
tmax: 20
|
|
8
|
+
dt: 0.5
|
|
9
|
+
error-budget: 1
|
|
10
|
+
nlive: 40
|
|
11
|
+
Ebv-max: 0
|
|
12
|
+
injection: ./injection.json
|
|
13
|
+
injection-num: 0
|
|
14
|
+
injection-outfile: outdir_1/lc.csv
|
|
15
|
+
generation-seed: 42
|
|
16
|
+
filters: ztfg,ztfr,ztfi
|
|
17
|
+
remove-nondetections: True
|
|
18
|
+
#process-per-config: 4
|
|
19
|
+
|
|
20
|
+
Me2017_2:
|
|
21
|
+
model: Me2017
|
|
22
|
+
outdir: outdir_2
|
|
23
|
+
label: injection
|
|
24
|
+
prior: ../../priors/Me2017.prior
|
|
25
|
+
tmin: 0.1
|
|
26
|
+
tmax: 20
|
|
27
|
+
dt: 0.5
|
|
28
|
+
error-budget: 1
|
|
29
|
+
nlive: 40
|
|
30
|
+
Ebv-max: 0
|
|
31
|
+
injection: ./injection.json
|
|
32
|
+
injection-num: 0
|
|
33
|
+
injection-outfile: outdir_2/lc.csv
|
|
34
|
+
generation-seed: 42
|
|
35
|
+
filters: ztfg,ztfr,ztfi
|
|
36
|
+
remove-nondetections: True
|
|
37
|
+
#process-per-config: 5
|
|
38
|
+
|
|
39
|
+
Me2017_3:
|
|
40
|
+
model: Me2017
|
|
41
|
+
outdir: outdir_3
|
|
42
|
+
label: injection
|
|
43
|
+
prior: ../../priors/Me2017.prior
|
|
44
|
+
tmin: 0.1
|
|
45
|
+
tmax: 20
|
|
46
|
+
dt: 0.5
|
|
47
|
+
error-budget: 1
|
|
48
|
+
nlive: 40
|
|
49
|
+
Ebv-max: 0
|
|
50
|
+
injection: ./injection.json
|
|
51
|
+
injection-num: 0
|
|
52
|
+
injection-outfile: outdir_3/lc.csv
|
|
53
|
+
generation-seed: 42
|
|
54
|
+
filters: ztfg,ztfr,ztfi
|
|
55
|
+
remove-nondetections: True
|
|
56
|
+
#process-per-config: 6
|
|
57
|
+
|
|
58
|
+
Me2017_4:
|
|
59
|
+
model: Me2017
|
|
60
|
+
outdir: outdir_4
|
|
61
|
+
label: injection
|
|
62
|
+
prior: ../../priors/Me2017.prior
|
|
63
|
+
tmin: 0.1
|
|
64
|
+
tmax: 20
|
|
65
|
+
dt: 0.5
|
|
66
|
+
error-budget: 1
|
|
67
|
+
nlive: 40
|
|
68
|
+
Ebv-max: 0
|
|
69
|
+
injection: ./injection.json
|
|
70
|
+
injection-num: 0
|
|
71
|
+
injection-outfile: outdir_4/lc.csv
|
|
72
|
+
generation-seed: 42
|
|
73
|
+
filters: ztfg,ztfr,ztfi
|
|
74
|
+
remove-nondetections: True
|
|
75
|
+
#process-per-config: 7
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"injections": {
|
|
3
|
+
"__dataframe__": true,
|
|
4
|
+
"content": {
|
|
5
|
+
"simulation_id": [
|
|
6
|
+
0
|
|
7
|
+
],
|
|
8
|
+
"luminosity_distance": [
|
|
9
|
+
152.52372678074587
|
|
10
|
+
],
|
|
11
|
+
"beta": [
|
|
12
|
+
3.1674793717549354
|
|
13
|
+
],
|
|
14
|
+
"log10_kappa_r": [
|
|
15
|
+
1.9033736926068743
|
|
16
|
+
],
|
|
17
|
+
"timeshift": [
|
|
18
|
+
-1.640734750742769
|
|
19
|
+
],
|
|
20
|
+
"log10_vej": [
|
|
21
|
+
-1.0471069387482033
|
|
22
|
+
],
|
|
23
|
+
"log10_mej": [
|
|
24
|
+
-2.9158814967880233
|
|
25
|
+
],
|
|
26
|
+
"geocent_time": [
|
|
27
|
+
0.09662692256248354
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.2"
|
|
@@ -24,26 +24,6 @@ from .prior import create_prior_from_args
|
|
|
24
24
|
from .utils import getFilteredMag, dataProcess
|
|
25
25
|
from .io import loadEvent
|
|
26
26
|
|
|
27
|
-
# import functions
|
|
28
|
-
from ..mlmodel.dataprocessing import gen_prepend_filler, gen_append_filler, pad_the_data
|
|
29
|
-
from ..mlmodel.resnet import ResNet
|
|
30
|
-
from ..mlmodel.embedding import SimilarityEmbedding
|
|
31
|
-
from ..mlmodel.normalizingflows import normflow_params
|
|
32
|
-
from ..mlmodel.inference import cast_as_bilby_result
|
|
33
|
-
|
|
34
|
-
# need to add these packages:
|
|
35
|
-
import torch
|
|
36
|
-
import torch.nn as nn
|
|
37
|
-
from torch.utils.data import Dataset, DataLoader, TensorDataset, random_split
|
|
38
|
-
import torch.nn.functional as F
|
|
39
|
-
from nflows.nn.nets.resnet import ResidualNet
|
|
40
|
-
from nflows import transforms, distributions, flows
|
|
41
|
-
from nflows.distributions import StandardNormal
|
|
42
|
-
from nflows.flows import Flow
|
|
43
|
-
from nflows.transforms.autoregressive import MaskedAffineAutoregressiveTransform
|
|
44
|
-
from nflows.transforms import CompositeTransform, RandomPermutation
|
|
45
|
-
import nflows.utils as torchutils
|
|
46
|
-
|
|
47
27
|
matplotlib.use("agg")
|
|
48
28
|
|
|
49
29
|
|
|
@@ -440,6 +420,12 @@ def get_parser(**kwargs):
|
|
|
440
420
|
action="store_true",
|
|
441
421
|
default=False,
|
|
442
422
|
)
|
|
423
|
+
parser.add_argument(
|
|
424
|
+
"--systematics-file",
|
|
425
|
+
metavar="PATH",
|
|
426
|
+
help="Path to systematics configuration file",
|
|
427
|
+
default=None,
|
|
428
|
+
)
|
|
443
429
|
|
|
444
430
|
return parser
|
|
445
431
|
|
|
@@ -791,6 +777,7 @@ def analysis(args):
|
|
|
791
777
|
error_budget=error_budget,
|
|
792
778
|
verbose=args.verbose,
|
|
793
779
|
detection_limit=args.detection_limit,
|
|
780
|
+
systematics_file=args.systematics_file
|
|
794
781
|
)
|
|
795
782
|
|
|
796
783
|
likelihood = OpticalLightCurve(**likelihood_kwargs)
|
|
@@ -1175,6 +1162,26 @@ def analysis(args):
|
|
|
1175
1162
|
|
|
1176
1163
|
def nnanalysis(args):
|
|
1177
1164
|
|
|
1165
|
+
# import functions
|
|
1166
|
+
from ..mlmodel.dataprocessing import gen_prepend_filler, gen_append_filler, pad_the_data
|
|
1167
|
+
from ..mlmodel.resnet import ResNet
|
|
1168
|
+
from ..mlmodel.embedding import SimilarityEmbedding
|
|
1169
|
+
from ..mlmodel.normalizingflows import normflow_params
|
|
1170
|
+
from ..mlmodel.inference import cast_as_bilby_result
|
|
1171
|
+
|
|
1172
|
+
# need to add these packages:
|
|
1173
|
+
import torch
|
|
1174
|
+
import torch.nn as nn
|
|
1175
|
+
from torch.utils.data import Dataset, DataLoader, TensorDataset, random_split
|
|
1176
|
+
import torch.nn.functional as F
|
|
1177
|
+
from nflows.nn.nets.resnet import ResidualNet
|
|
1178
|
+
from nflows import transforms, distributions, flows
|
|
1179
|
+
from nflows.distributions import StandardNormal
|
|
1180
|
+
from nflows.flows import Flow
|
|
1181
|
+
from nflows.transforms.autoregressive import MaskedAffineAutoregressiveTransform
|
|
1182
|
+
from nflows.transforms import CompositeTransform, RandomPermutation
|
|
1183
|
+
import nflows.utils as torchutils
|
|
1184
|
+
|
|
1178
1185
|
# only continue if the Kasen model is selected
|
|
1179
1186
|
if args.model != "Ka2017":
|
|
1180
1187
|
print(
|
|
@@ -222,6 +222,13 @@ def get_parser(**kwargs):
|
|
|
222
222
|
action="store_true",
|
|
223
223
|
default=False,
|
|
224
224
|
)
|
|
225
|
+
parser.add_argument( #no use in this script
|
|
226
|
+
"--systematics-file",
|
|
227
|
+
metavar="PATH",
|
|
228
|
+
help="Path to systematics configuration file",
|
|
229
|
+
default=None,
|
|
230
|
+
)
|
|
231
|
+
|
|
225
232
|
return parser
|
|
226
233
|
|
|
227
234
|
|
|
@@ -4,10 +4,12 @@ import numpy as np
|
|
|
4
4
|
import scipy.stats
|
|
5
5
|
from scipy.interpolate import interp1d
|
|
6
6
|
from scipy.stats import truncnorm
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
import yaml
|
|
7
9
|
|
|
8
|
-
from bilby.core.likelihood import Likelihood
|
|
9
|
-
from . import utils
|
|
10
10
|
|
|
11
|
+
from bilby.core.likelihood import Likelihood
|
|
12
|
+
from . import utils, systematics
|
|
11
13
|
|
|
12
14
|
def truncated_gaussian(m_det, m_err, m_est, lim):
|
|
13
15
|
|
|
@@ -55,6 +57,7 @@ class OpticalLightCurve(Likelihood):
|
|
|
55
57
|
filters,
|
|
56
58
|
light_curve_data,
|
|
57
59
|
trigger_time,
|
|
60
|
+
systematics_file,
|
|
58
61
|
detection_limit=None,
|
|
59
62
|
error_budget=1.0,
|
|
60
63
|
tmin=0.0,
|
|
@@ -81,6 +84,7 @@ class OpticalLightCurve(Likelihood):
|
|
|
81
84
|
light_curve_data, self.filters, self.trigger_time, self.tmin, self.tmax
|
|
82
85
|
)
|
|
83
86
|
self.light_curve_data = processedData
|
|
87
|
+
self.systematics_file = systematics_file
|
|
84
88
|
|
|
85
89
|
self.detection_limit = {}
|
|
86
90
|
if detection_limit:
|
|
@@ -144,6 +148,40 @@ class OpticalLightCurve(Likelihood):
|
|
|
144
148
|
bounds_error=False,
|
|
145
149
|
)
|
|
146
150
|
|
|
151
|
+
if self.systematics_file is not None:
|
|
152
|
+
yaml_dict = yaml.safe_load(Path(self.systematics_file).read_text())
|
|
153
|
+
systematics.validate_only_one_true(yaml_dict)
|
|
154
|
+
|
|
155
|
+
if yaml_dict["config"]["withTime"]["value"]:
|
|
156
|
+
n = yaml_dict["config"]["withTime"]["time_nodes"]
|
|
157
|
+
time_array = np.round(np.linspace(self.tmin, self.tmax, n), 2)
|
|
158
|
+
yaml_filters = yaml_dict["config"]["withTime"]["filters"]
|
|
159
|
+
systematics.validate_filters(yaml_filters)
|
|
160
|
+
|
|
161
|
+
for filter_group in yaml_filters:
|
|
162
|
+
if isinstance(filter_group, list):
|
|
163
|
+
filt = "___".join(filter_group)
|
|
164
|
+
elif filter_group is None:
|
|
165
|
+
filt = "all"
|
|
166
|
+
else:
|
|
167
|
+
filt = filter_group
|
|
168
|
+
|
|
169
|
+
globals()[f"sys_err_{filt}_array"] = np.array([])
|
|
170
|
+
|
|
171
|
+
for i in range(1, n + 1):
|
|
172
|
+
value = self.parameters.get(f"sys_err_{filt}{i}")
|
|
173
|
+
globals()[f"sys_err_{filt}_array"] = np.append(globals()[f"sys_err_{filt}_array"], value)
|
|
174
|
+
|
|
175
|
+
for filter_group in yaml_dict["config"]["withTime"]["filters"]:
|
|
176
|
+
if isinstance(filter_group, list):
|
|
177
|
+
filt = "___".join(filter_group)
|
|
178
|
+
elif filter_group is None:
|
|
179
|
+
filt = "all"
|
|
180
|
+
else:
|
|
181
|
+
filt = filter_group
|
|
182
|
+
globals()[f"sys_err_{filt}_interped"] = interp1d(time_array, globals()[f"sys_err_{filt}_array"], fill_value="extrapolate", bounds_error=False)
|
|
183
|
+
|
|
184
|
+
|
|
147
185
|
# compare the estimated light curve and the measured data
|
|
148
186
|
minus_chisquare_total = 0.0
|
|
149
187
|
gaussprob_total = 0.0
|
|
@@ -153,9 +191,31 @@ class OpticalLightCurve(Likelihood):
|
|
|
153
191
|
data_mag = self.light_curve_data[filt][:, 1]
|
|
154
192
|
data_sigma = self.light_curve_data[filt][:, 2]
|
|
155
193
|
|
|
194
|
+
if self.systematics_file is not None:
|
|
195
|
+
if yaml_dict["config"]["withTime"]["value"]:
|
|
196
|
+
yaml_filters = yaml_dict["config"]["withTime"]["filters"]
|
|
197
|
+
|
|
198
|
+
filter_group_finite_idx_match = False
|
|
199
|
+
|
|
200
|
+
if yaml_filters is not None and yaml_filters != []:
|
|
201
|
+
for yaml_filt in yaml_filters:
|
|
202
|
+
if yaml_filt is not None and filt in yaml_filt:
|
|
203
|
+
if len(yaml_filt) == 1:
|
|
204
|
+
filters_to_use = yaml_filt[0]
|
|
205
|
+
else:
|
|
206
|
+
filters_to_use = "___".join(yaml_filt)
|
|
207
|
+
filter_group_finite_idx_match = True
|
|
208
|
+
break
|
|
209
|
+
if not filter_group_finite_idx_match:
|
|
210
|
+
filters_to_use = "all"
|
|
211
|
+
data_sigma = np.sqrt(data_sigma**2 + (globals()[f"sys_err_{filters_to_use}_interped"](data_time)) ** 2)
|
|
212
|
+
|
|
213
|
+
elif yaml_dict["config"]["withoutTime"]["value"]:
|
|
214
|
+
data_sigma = np.sqrt(data_sigma**2 + self.parameters["sys_err"] ** 2)
|
|
215
|
+
|
|
156
216
|
# include the error budget into calculation
|
|
157
|
-
|
|
158
|
-
data_sigma = np.sqrt(data_sigma**2 + self.parameters['
|
|
217
|
+
elif 'sys_err' in self.parameters:
|
|
218
|
+
data_sigma = np.sqrt(data_sigma**2 + self.parameters['sys_err']**2)
|
|
159
219
|
else:
|
|
160
220
|
data_sigma = np.sqrt(data_sigma**2 + self.error_budget[filt]**2)
|
|
161
221
|
|
|
@@ -186,15 +246,36 @@ class OpticalLightCurve(Likelihood):
|
|
|
186
246
|
|
|
187
247
|
# evaluate the data with infinite error
|
|
188
248
|
if len(infIdx) > 0:
|
|
189
|
-
if
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
249
|
+
if self.systematics_file is not None:
|
|
250
|
+
if yaml_dict["config"]["withTime"]["value"]:
|
|
251
|
+
yaml_filters = yaml_dict["config"]["withTime"]["filters"]
|
|
252
|
+
|
|
253
|
+
filter_group_infinite_idx_match = False
|
|
254
|
+
|
|
255
|
+
if yaml_filters is not None and yaml_filters != []:
|
|
256
|
+
for yaml_filt in yaml_filters:
|
|
257
|
+
if yaml_filt is not None and filt in yaml_filt:
|
|
258
|
+
if len(yaml_filt) == 1:
|
|
259
|
+
upperlim_sigma = globals()[f"sys_err_{yaml_filt}_interped"](data_time)[infIdx]
|
|
260
|
+
else:
|
|
261
|
+
filters_to_use = "___".join(yaml_filt)
|
|
262
|
+
upperlim_sigma = globals()[f"sys_err_{filters_to_use}_interped"](data_time)[infIdx]
|
|
263
|
+
filter_group_infinite_idx_match = True
|
|
264
|
+
break
|
|
265
|
+
if not filter_group_infinite_idx_match:
|
|
266
|
+
filters_to_use = "all"
|
|
267
|
+
upperlim_sigma = globals()[f"sys_err_{filters_to_use}_interped"](data_time)[infIdx]
|
|
268
|
+
|
|
269
|
+
gausslogsf = scipy.stats.norm.logsf(data_mag[infIdx], mag_est[infIdx], upperlim_sigma)
|
|
270
|
+
|
|
271
|
+
elif yaml_dict["config"]["withoutTime"]["value"]:
|
|
272
|
+
upperlim_sigma = self.parameters["sys_err"]
|
|
273
|
+
gausslogsf = scipy.stats.norm.logsf(data_mag[infIdx], mag_est[infIdx], upperlim_sigma)
|
|
274
|
+
elif 'sys_err' in self.parameters:
|
|
275
|
+
upperlim_sigma = self.parameters['sys_err']
|
|
276
|
+
gausslogsf = scipy.stats.norm.logsf(data_mag[infIdx], mag_est[infIdx], upperlim_sigma)
|
|
194
277
|
else:
|
|
195
|
-
gausslogsf = scipy.stats.norm.logsf(
|
|
196
|
-
data_mag[infIdx], mag_est[infIdx], self.error_budget[filt]
|
|
197
|
-
)
|
|
278
|
+
gausslogsf = scipy.stats.norm.logsf(data_mag[infIdx], mag_est[infIdx], self.error_budget[filt])
|
|
198
279
|
gaussprob_total += np.sum(gausslogsf)
|
|
199
280
|
|
|
200
281
|
log_prob = minus_chisquare_total + gaussprob_total
|
|
@@ -509,6 +509,11 @@ class GRBLightCurveModel(LightCurveMixin):
|
|
|
509
509
|
grb_param_dict["epsilon_B"] = 10 ** new_parameters["log10_epsilon_B"]
|
|
510
510
|
grb_param_dict["z"] = z
|
|
511
511
|
|
|
512
|
+
# make sure L0, q and ts are also passed
|
|
513
|
+
for param in ['L0', 'q', 'ts']:
|
|
514
|
+
if param in new_parameters:
|
|
515
|
+
grb_param_dict[param] = new_parameters[param]
|
|
516
|
+
|
|
512
517
|
if "thetaWing" in new_parameters:
|
|
513
518
|
grb_param_dict["thetaWing"] = new_parameters["thetaWing"]
|
|
514
519
|
if new_parameters["thetaWing"] / new_parameters["thetaCore"] > self.resolution:
|