PyCBC 2.9.0__tar.gz → 2.10.0__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.
- {PyCBC-2.9.0 → pycbc-2.10.0}/PKG-INFO +43 -7
- {PyCBC-2.9.0 → pycbc-2.10.0}/PyCBC.egg-info/PKG-INFO +43 -7
- {PyCBC-2.9.0 → pycbc-2.10.0}/PyCBC.egg-info/SOURCES.txt +4 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/PyCBC.egg-info/requires.txt +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/hwinj/pycbc_generate_hwinj +2 -2
- pycbc-2.10.0/bin/inference/pycbc_inference_create_calibration_config +253 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_extract_samples +109 -9
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_posterior +16 -1
- pycbc-2.10.0/bin/inference/pycbc_inference_savage_dickey +254 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_singles_timefreq +4 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_singles_vs_params +4 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_banksim +6 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_banksim_combine_banks +3 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_banksim_match_combine +3 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_banksim_skymax +6 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_hdf5_splitbank +30 -29
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_make_sky_grid +5 -9
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_multi_inspiral +55 -17
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_single_template +1 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_make_offline_grb_workflow +13 -15
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_page_tables +32 -17
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_plot_injs_results +162 -87
- pycbc-2.10.0/bin/pygrb/pycbc_pygrb_plot_skygrid +172 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_results_workflow +19 -6
- pycbc-2.10.0/examples/inference/calibration_configuration_files/download_calibration_uncertainty_files_o1_o2_o3.sh +23 -0
- pycbc-2.10.0/examples/inference/calibration_configuration_files/generate_calibration_config.sh +9 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testNonspin2.sh +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/catalog/catalog.py +1 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/coordinates/space.py +3 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/cosmology.py +1 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/detector/ground.py +38 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/angular.py +4 -4
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/arbitrary.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/bounded.py +2 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/joint.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/uniform.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/uniform_log.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/coinc.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/eventmgr.py +201 -68
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/resample.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/__init__.py +2 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/base_hdf.py +6 -6
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/base_mcmc.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/dynesty.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/__init__.py +6 -5
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/base.py +3 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/gated_gaussian_noise.py +10 -6
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/marginalized_gaussian_noise.py +24 -23
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/relbin.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/base_mcmc.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inject/inject.py +147 -38
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inject/injfilterrejector.py +152 -58
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/io/gracedb.py +7 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/io/ligolw.py +2 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/str_utils.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/strain/recalibrate.py +107 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/strain/strain.py +81 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/bank_output_utils.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/coord_utils.py +3 -3
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/timeseries.py +85 -0
- pycbc-2.10.0/pycbc/version.py +27 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/chisq.py +5 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/sgchisq.py +10 -5
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/bank.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/generator.py +55 -38
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/parameters.py +7 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/plugin.py +16 -16
- pycbc-2.10.0/pycbc/waveform/sinegauss.py +97 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/utils.py +1 -60
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/waveform.py +18 -11
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/waveform_modes.py +3 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/grb_utils.py +9 -2
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/pegasus_workflow.py +15 -8
- {PyCBC-2.9.0 → pycbc-2.10.0}/setup.py +4 -8
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_detector.py +36 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_fftw_openmp.py +16 -6
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_io_gracedb.py +1 -1
- {PyCBC-2.9.0 → pycbc-2.10.0}/tox.ini +1 -7
- PyCBC-2.9.0/bin/pygrb/pycbc_pygrb_plot_skygrid +0 -102
- PyCBC-2.9.0/pycbc/version.py +0 -27
- PyCBC-2.9.0/pycbc/waveform/sinegauss.py +0 -40
- {PyCBC-2.9.0 → pycbc-2.10.0}/LICENSE +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/MANIFEST.in +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/PyCBC.egg-info/dependency_links.txt +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/PyCBC.egg-info/top_level.txt +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/README.md +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_add_statmap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_apply_rerank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_average_psd +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_bin_templates +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_bin_trigger_rates_dq +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_calculate_psd +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_coinc_findtrigs +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_coinc_hdfinjfind +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_coinc_mergetrigs +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_coinc_statmap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_coinc_statmap_inj +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_combine_coincident_events +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_combine_statmap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_cut_merge_triggers_to_tmpltbank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_distribute_background_bins +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_dtphase +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_exclude_zerolag +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_fit_sngls_binned +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_fit_sngls_by_template +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_fit_sngls_over_multiparam +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_fit_sngls_over_param +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_fit_sngls_split_binned +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_followup_file +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_foreground_censor +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_get_loudest_params +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_make_bayestar_skymap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_merge_psds +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_plot_kde_vals +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_prepare_xml_for_gracedb +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_reduce_template_bank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_rerank_passthrough +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_sngls_findtrigs +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_sngls_pastro +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_sngls_statmap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_sngls_statmap_inj +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_strip_injections +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_template_kde_calc +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_template_kde_max +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_template_recovery_hist +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/all_sky_search/pycbc_upload_single_event_to_gracedb +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_aligned_bank_cat +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_aligned_stoch_bank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_bank_verification +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_brute_bank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_coinc_bank2hdf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_geom_aligned_2dstack +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_geom_aligned_bank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_geom_nonspinbank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/bank/pycbc_tmpltbank_to_chi_params +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/hwinj/pycbc_generate_hwinj_from_xml +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/hwinj/pycbc_insert_frame_hwinj +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/hwinj/pycbc_plot_hwinj +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_create_fits +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_model_stats +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_monitor +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_acceptance_rate +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_acf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_acl +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_dynesty_run +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_dynesty_traceplot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_gelman_rubin +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_geweke +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_inj_recovery +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_mcmc_history +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_movie +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_pp +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_prior +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_samples +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_skymap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_plot_thermodynamic_integrand +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_pp_table_summary +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_start_from_samples +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_inference_table_summary +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/pycbc_validate_test_posterior +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/inference/run_pycbc_inference +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_collate_triggers +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_collated_dq_trigger_rates +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_combine_dq_trigger_rates +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_combine_single_significance_fits +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_plot_combined_single_significance_fits +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_plot_single_significance_fits +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_single_significance_fits +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/live/pycbc_live_supervise_collated_trigger_fits +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_foreground_minifollowup +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_injection_minifollowup +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_page_coincinfo +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_page_injinfo +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_page_snglinfo +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_plot_chigram +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_plot_trigger_timeseries +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_single_template_plot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_sngl_minifollowup +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/minifollowups/pycbc_upload_prep_minifollowup +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_banksim_plot_eff_fitting_factor +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_banksim_plot_fitting_factors +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_banksim_table_point_injs +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_create_html_snippet +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_faithsim_plots +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_ifar_catalog +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_mass_area_plot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_mchirp_plots +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_banktriggerrate +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_coinc_snrchi +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_dq_table +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_fars_vs_stat +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_foreground +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_foundmissed +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_ifar +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_injtable +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_recovery +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_segments +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_segplot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_segtable +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_sensitivity +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_snrchi +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_snrifar +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_snrratehist +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_template_bin_table +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_versioning +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_page_vetotable +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_background_coincs +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_bank_bins +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_bank_compression +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_bank_corner +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_dq_flag_likelihood +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_dq_likelihood_vs_time +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_dq_percentiles +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_gate_triggers +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_gating +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_hist +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_multiifo_dtphase +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_psd_file +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_psd_timefreq +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_qscan +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_range +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_range_vs_mtot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_throughput +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_trigrate +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_vt_ratio +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/plotting/pycbc_plot_waveform +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/population/pycbc_multiifo_pastro +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/population/pycbc_population_plots +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/population/pycbc_population_rates +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_compress_bank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_condition_strain +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_convertinjfiletohdf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_copy_output_map +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_create_injections +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_data_store +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_faithsim +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_faithsim_collect_results +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_fit_sngl_trigs +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_get_ffinal +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_gwosc_segment_query +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_hdf_splitinj +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_inj_cut +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_inspiral +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_inspiral_skymax +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_live +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_live_nagios_monitor +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_make_banksim +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_make_faithsim +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_make_html_page +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_make_skymap +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_merge_inj_hdf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_optimal_snr +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_optimize_snr +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_process_sngls +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_randomize_inj_dist_by_optsnr +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_source_probability_offline +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_split_inspinj +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_splitbank +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_stageout_failed_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_submit_dax +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pycbc_upload_xml_to_gracedb +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_grb_inj_finder +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_grb_trig_cluster +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_grb_trig_combiner +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_efficiency +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_exclusion_dist_table +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_grb_info_table +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_minifollowups +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_plot_chisq_veto +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_plot_coh_ifosnr +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_plot_null_stats +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_plot_snr_timeseries +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/pygrb/pycbc_pygrb_plot_stats_distribution +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflow_comparisons/offline_search/pycbc_combine_injection_comparisons +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflow_comparisons/offline_search/pycbc_injection_set_comparison +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_found_both_workflows +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_missed_one_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflow_comparisons/offline_search/pycbc_plot_vt_ratio_vs_ifar +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_bank_compression_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_bank_verifier_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_faithsim_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_inference_inj_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_inference_plots_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_inference_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_offline_search_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_psd_estimation_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_sbank_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/bin/workflows/pycbc_make_uberbank_workflow +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/banksim/injection0.xml +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/banksim/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/cal/foton_filter_esd_saturation/pycbc_check_esd_saturation.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/cal/foton_filter_esd_saturation/pycbc_check_pcal_saturation.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/cal/foton_filter_esd_saturation/run_pcal_saturation_example.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/catalog/data.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/catalog/stat.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/catalog/what.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/dataquality/hwinj.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/dataquality/on.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/detector/ant.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/detector/custom.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/detector/delay.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/detector/loc.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/detector/travel.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/distributions/list_distributions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/distributions/mass_examples.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/distributions/mchirp_q_from_uniform_m1m2_example.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/distributions/sampling_from_config_example.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/distributions/spin_examples.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/distributions/spin_spatial_distr_example.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/faith/injection0.xml +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/faith/pegasus_workflow_create.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/faith/pegasus_workflow_submit.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/faith/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/filter/chisq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/filter/fir.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/filter/pass.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/filter/snr.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/gw150914/audio.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/gw150914/gw150914_h1_snr.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/gw150914/gw150914_shape.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/analytic-normal2d/make_movie.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/analytic-normal2d/plot.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/analytic-normal2d/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/bbh-injection/make_injection.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/bbh-injection/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/bbh-injection/run_test.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/gw150914/plot.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/gw150914/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/gw150914/run_test.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/hierarchical/make_injections.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/hierarchical/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/hierarchical/run_test.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_inj/injection_smbhb.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_inj/plot.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_inj/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_ldc/advanced_plot.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_ldc/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_ldc/plot.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/lisa_smbhb_ldc/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/list_parameters.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/margtime/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/margtime/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/margtime/run_inj.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/multisignal/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/multisignal/make_injections.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/multisignal/rel.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/multisignal/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/multisignal/single.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/relative/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/relative/plot.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/relative/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/relmarg/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/relmarg/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/samplers/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/single/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/single/plot.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/single/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/single/run_instant.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inference/single/run_marg.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inspiral/check_GW150914_detection.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inspiral/clean.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/inspiral/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/live/check_results.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/live/generate_injections.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/live/make_fit_coeffs.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/live/make_singles_significance_fits.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/live/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/make_skymap/GW150914.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/make_skymap/GW170817.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/make_skymap/simulated_data.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/check_faceon_faceaway_trigs.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/check_gw170817_trigs.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/clean.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/faceon_faceaway.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/gw170817_h.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/gw170817_hl.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/multi_inspiral/gw170817_hlv.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/noise/frequency.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/noise/timeseries.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/overlap.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/psd/analytic.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/psd/estimate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/psd/read.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/bank.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/check_job.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/gen.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/get.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/master.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/stats.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/search/submit.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/bank_workflow_test/gen.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/cleanOutput.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/compress_workflow/gen.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/make_cache.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testAligned.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testAligned2.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testAligned3.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testNonspin.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testNonspin3.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testStoch.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testStoch2.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testStoch3.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/tmpltbank/testStoch4.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/add_waveform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/higher_modes.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/match_waveform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/plot_detwaveform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/plot_fd_td.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/plot_freq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/plot_phase.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/plot_waveform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/waveform/what_waveform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/data_checker/daily_test.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/data_checker/get_data_example.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/data_checker/run_daily_test.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/data_checker/run_get_data_example.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/dayhopecheck/dayhopecheck.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/dayhopecheck/run_dayhopecheck.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/generic/multilevel_subworkflow_data/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/generic/multilevel_subworkflow_data/simple.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/generic/simple_subworkflow_data/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/generic/simple_subworkflow_data/simple.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/inference/bbh_inj-dynesty/create_inj_workflow.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/inference/gw150914_gw170814-dynesty/create_workflow.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/inference/gw150914_gw170814-emcee_pt/create_workflow.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/inference/small_test/gen.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/pygrb/ER7/run_er7_pygrb_offline.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/pygrb/ER8/run_er8_pygrb_offline.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/pygrb/ER8/run_er8_pygrb_online.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/pygrb/S6/run_s6_pygrb.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/quickstart/run.sh +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/examples/workflow/quickstart/simple.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/_version.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/_version_helper.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/bin_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/boundaries.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/catalog/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/conversions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/coordinates/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/coordinates/base.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/detector/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/detector/space.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/constraints.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/external.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/fixedsamples.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/gaussian.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/mass.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/power_law.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/qnm.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/sky_location.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/spins.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/distributions/utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/dq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/coherent.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/coinc_rate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/cuts.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/eventmgr_cython.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/ranking.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/significance.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/simd_threshold_ccode.cpp +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/simd_threshold_cython.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/single.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/stat.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/threshold_cpu.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/threshold_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/threshold_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/trigger_fits.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/triggers.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/events/veto.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/backend_cpu.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/backend_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/backend_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/backend_mkl.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/backend_support.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/class_api.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/core.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/cuda_pyfft.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/cufft.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/cupyfft.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/fft_callback.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/fftw.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/fftw_pruned.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/fftw_pruned_cython.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/func_api.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/mkl.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/npfft.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/fft/parser_support.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/autocorrelation.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/fotonfilter.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/matchedfilter.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/matchedfilter_cpu.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/matchedfilter_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/matchedfilter_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/matchedfilter_numpy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/qtransform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/simd_correlate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/simd_correlate_ccode.cpp +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/simd_correlate_cython.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/filter/zpk.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/frame/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/frame/frame.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/frame/gwosc.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/frame/store.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/burn_in.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/entropy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/evidence.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/gelman_rubin.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/geweke.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/base_multitemper.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/base_nested_sampler.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/base_sampler.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/cpnest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/emcee.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/emcee_pt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/epsie.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/multinest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/nessai.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/posterior.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/ptemcee.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/snowline.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/txt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/io/ultranest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/jump/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/jump/angular.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/jump/bounded_normal.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/jump/discrete.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/jump/normal.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/analytic.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/base_data.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/brute_marg.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/data_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/gaussian_noise.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/hierarchical.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/relbin_cpu.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/single_template.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/models/tools.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/option_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/base.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/base_cube.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/base_multitemper.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/cpnest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/dummy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/dynesty.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/emcee.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/emcee_pt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/epsie.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/games.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/multinest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/nessai.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/ptemcee.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/refine.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/snowline.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inference/sampler/ultranest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/inject/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/io/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/io/hdf.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/io/live.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/io/record.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/libutils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/live/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/live/significance_fits.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/live/snr_optimizer.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/live/supervision.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/mchirp_area.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/neutron_stars/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/neutron_stars/eos_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/neutron_stars/ns_data/equil_2H.dat +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/neutron_stars/pg_isso_solver.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/noise/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/noise/gaussian.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/noise/reproduceable.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/opt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/pnutils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/pool.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/fgmc_functions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/fgmc_laguerre.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/fgmc_plots.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/live_pastro.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/live_pastro_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/population_models.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/rates_functions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/population/scale_injections.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/psd/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/psd/analytical.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/psd/analytical_space.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/psd/estimate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/psd/read.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/psd/variation.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/rate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/color.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/dq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/followup.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/layout.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/metadata.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/mpld3_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/plot.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/psd.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/pygrb_plotting_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/pygrb_postprocessing_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/render.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/scatter_histograms.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/snr.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/css/bootstrap/3.3.2/bootstrap.min.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/css/bootstrap.min.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/css/fancybox/2.1.5/jquery.fancybox.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/css/pycbc/orange.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/css/pycbc/red.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Light.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Light.eot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Light.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Light.ttf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Light.woff +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Semibold.css +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Semibold.eot +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Semibold.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Semibold.ttf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/fonts/Lato-Semibold.woff +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/bootstrap/3.3.2/bootstrap.min.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/bootstrap.min.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/fancybox/2.1.5/fancybox-orange.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.pack.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/jquery/1.10.2/jquery-1.10.2.min.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/jquery/1.10.2/jquery.mousewheel-3.0.6.pack.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/static/js/jquery.min.js +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/table_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/files/file_default.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/files/file_glitchgram.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/files/file_img.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/files/file_pre.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/files/file_tmplt.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/orange.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/red.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/wells/sitemap.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/templates/wells/two_column.html +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/results/versioning.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/scheme.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/sensitivity.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/strain/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/strain/calibration.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/strain/gate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/strain/lines.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/bank_conversions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/brute_force_methods.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/calc_moments.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/lambda_mapping.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/lattice_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/option_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/partitioned_bank.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/tmpltbank/sky_grid.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/transforms.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/aligned.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/array.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/array_cpu.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/array_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/array_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/config.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/frequencyseries.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/types/optparse.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/autochisq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/bank_chisq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/chisq_cpu.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/chisq_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/vetoes/chisq_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/SpinTaylorF2.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/compress.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/decompress_cpu.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/decompress_cpu_ccode.cpp +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/decompress_cpu_cython.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/decompress_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/decompress_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/multiband.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/nltides.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/premerger.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/pycbc_phenomC_tmplt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/ringdown.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/spa_tmplt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/spa_tmplt_cpu.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/spa_tmplt_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/spa_tmplt_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/supernovae.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/utils_cpu.pyx +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/utils_cuda.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/waveform/utils_cupy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/__init__.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/coincidence.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/configparser_test.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/configuration.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/core.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/datafind.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/dq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/inference_followups.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/injection.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/jobsetup.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/matched_filter.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/minifollowups.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/pegasus_files/pegasus-properties.conf +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/pegasus_sites.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/plotting.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/psd.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/psdfiles.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/segment.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/splittable.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/tmpltbank.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pycbc/workflow/versioning.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pyproject.toml +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/pytest.ini +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/setup.cfg +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/bankvetotest.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/fft_base.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/lalsim.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_array.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_array_lal.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_autochisq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_bhspec.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_calibration.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_chisq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_coinc_stat.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_conversions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_coordinates_space.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_correlate.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_cuts.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_distributions.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_dq.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_fft_mkl_threaded.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_fft_unthreaded.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_fftw_pthreads.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_frame.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_frequencyseries.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_infmodel.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_injection.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_live_coinc_compare.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_matchedfilter.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_noise.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_pnutils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_psd.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_resample.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_schemes.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_significance_module.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_skymax.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_spatmplt.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_strain.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_threshold.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_timeseries.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_tmpltbank.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_transforms.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_waveform.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/test_waveform_utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/test/utils.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/benchmarking/absolute_times.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/static/hooks/hook-pycbc.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/static/runtime-scipy.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/static/runtime-tkinter.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/timing/arr_perf.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/timing/banksim/banksim.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/timing/correlate_perf.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/timing/fft_perf.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/timing/match_perf.py +0 -0
- {PyCBC-2.9.0 → pycbc-2.10.0}/tools/timing/wav_perf.py +0 -0
|
@@ -1,28 +1,64 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: PyCBC
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.10.0
|
|
4
4
|
Summary: Core library to analyze gravitational-wave data, find signals, and study their parameters.
|
|
5
5
|
Home-page: http://pycbc.org/
|
|
6
|
-
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.
|
|
6
|
+
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.10.0
|
|
7
7
|
Author: The PyCBC team
|
|
8
8
|
Author-email: alex.nitz@gmail.org
|
|
9
9
|
Keywords: ligo,physics,gravity,signal processing,gravitational waves
|
|
10
10
|
Classifier: Programming Language :: Python
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
14
|
Classifier: Intended Audience :: Science/Research
|
|
16
15
|
Classifier: Natural Language :: English
|
|
17
16
|
Classifier: Topic :: Scientific/Engineering
|
|
18
17
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
19
18
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
20
19
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
21
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.11
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: numpy>=1.16.0
|
|
24
|
+
Requires-Dist: cython>=0.29
|
|
25
|
+
Requires-Dist: numpy!=1.19.0,!=2.2.2,>=1.16.0
|
|
26
|
+
Requires-Dist: scipy>=0.16.0
|
|
27
|
+
Requires-Dist: astropy!=4.0.5,!=4.2.1,>=2.0.3
|
|
28
|
+
Requires-Dist: matplotlib>=1.5.1
|
|
29
|
+
Requires-Dist: mpld3>=0.3
|
|
30
|
+
Requires-Dist: pillow
|
|
31
|
+
Requires-Dist: h5py!=3.7.0,>=3.0.0
|
|
32
|
+
Requires-Dist: jinja2
|
|
33
|
+
Requires-Dist: Mako>=1.0.1
|
|
34
|
+
Requires-Dist: beautifulsoup4>=4.6.0
|
|
35
|
+
Requires-Dist: tqdm
|
|
36
|
+
Requires-Dist: setuptools
|
|
37
|
+
Requires-Dist: gwdatafind
|
|
38
|
+
Requires-Dist: pegasus-wms.api>=5.1.1
|
|
39
|
+
Requires-Dist: igwn-ligolw
|
|
40
|
+
Requires-Dist: igwn-segments
|
|
41
|
+
Requires-Dist: lalsuite!=7.2
|
|
42
|
+
Requires-Dist: lscsoft-glue>=1.59.3
|
|
43
|
+
Requires-Dist: pykerr
|
|
23
44
|
Provides-Extra: cuda
|
|
45
|
+
Requires-Dist: pycuda>=2015.1; extra == "cuda"
|
|
46
|
+
Requires-Dist: scikit-cuda; extra == "cuda"
|
|
24
47
|
Provides-Extra: igwn
|
|
25
|
-
|
|
48
|
+
Requires-Dist: ciecplib>=0.7.0; extra == "igwn"
|
|
49
|
+
Dynamic: author
|
|
50
|
+
Dynamic: author-email
|
|
51
|
+
Dynamic: classifier
|
|
52
|
+
Dynamic: description
|
|
53
|
+
Dynamic: description-content-type
|
|
54
|
+
Dynamic: download-url
|
|
55
|
+
Dynamic: home-page
|
|
56
|
+
Dynamic: keywords
|
|
57
|
+
Dynamic: license-file
|
|
58
|
+
Dynamic: provides-extra
|
|
59
|
+
Dynamic: requires-dist
|
|
60
|
+
Dynamic: requires-python
|
|
61
|
+
Dynamic: summary
|
|
26
62
|
|
|
27
63
|

|
|
28
64
|
|
|
@@ -1,28 +1,64 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: PyCBC
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.10.0
|
|
4
4
|
Summary: Core library to analyze gravitational-wave data, find signals, and study their parameters.
|
|
5
5
|
Home-page: http://pycbc.org/
|
|
6
|
-
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.
|
|
6
|
+
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.10.0
|
|
7
7
|
Author: The PyCBC team
|
|
8
8
|
Author-email: alex.nitz@gmail.org
|
|
9
9
|
Keywords: ligo,physics,gravity,signal processing,gravitational waves
|
|
10
10
|
Classifier: Programming Language :: Python
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
14
|
Classifier: Intended Audience :: Science/Research
|
|
16
15
|
Classifier: Natural Language :: English
|
|
17
16
|
Classifier: Topic :: Scientific/Engineering
|
|
18
17
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
19
18
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
20
19
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
21
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.11
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: numpy>=1.16.0
|
|
24
|
+
Requires-Dist: cython>=0.29
|
|
25
|
+
Requires-Dist: numpy!=1.19.0,!=2.2.2,>=1.16.0
|
|
26
|
+
Requires-Dist: scipy>=0.16.0
|
|
27
|
+
Requires-Dist: astropy!=4.0.5,!=4.2.1,>=2.0.3
|
|
28
|
+
Requires-Dist: matplotlib>=1.5.1
|
|
29
|
+
Requires-Dist: mpld3>=0.3
|
|
30
|
+
Requires-Dist: pillow
|
|
31
|
+
Requires-Dist: h5py!=3.7.0,>=3.0.0
|
|
32
|
+
Requires-Dist: jinja2
|
|
33
|
+
Requires-Dist: Mako>=1.0.1
|
|
34
|
+
Requires-Dist: beautifulsoup4>=4.6.0
|
|
35
|
+
Requires-Dist: tqdm
|
|
36
|
+
Requires-Dist: setuptools
|
|
37
|
+
Requires-Dist: gwdatafind
|
|
38
|
+
Requires-Dist: pegasus-wms.api>=5.1.1
|
|
39
|
+
Requires-Dist: igwn-ligolw
|
|
40
|
+
Requires-Dist: igwn-segments
|
|
41
|
+
Requires-Dist: lalsuite!=7.2
|
|
42
|
+
Requires-Dist: lscsoft-glue>=1.59.3
|
|
43
|
+
Requires-Dist: pykerr
|
|
23
44
|
Provides-Extra: cuda
|
|
45
|
+
Requires-Dist: pycuda>=2015.1; extra == "cuda"
|
|
46
|
+
Requires-Dist: scikit-cuda; extra == "cuda"
|
|
24
47
|
Provides-Extra: igwn
|
|
25
|
-
|
|
48
|
+
Requires-Dist: ciecplib>=0.7.0; extra == "igwn"
|
|
49
|
+
Dynamic: author
|
|
50
|
+
Dynamic: author-email
|
|
51
|
+
Dynamic: classifier
|
|
52
|
+
Dynamic: description
|
|
53
|
+
Dynamic: description-content-type
|
|
54
|
+
Dynamic: download-url
|
|
55
|
+
Dynamic: home-page
|
|
56
|
+
Dynamic: keywords
|
|
57
|
+
Dynamic: license-file
|
|
58
|
+
Dynamic: provides-extra
|
|
59
|
+
Dynamic: requires-dist
|
|
60
|
+
Dynamic: requires-python
|
|
61
|
+
Dynamic: summary
|
|
26
62
|
|
|
27
63
|

|
|
28
64
|
|
|
@@ -104,6 +104,7 @@ bin/hwinj/pycbc_generate_hwinj_from_xml
|
|
|
104
104
|
bin/hwinj/pycbc_insert_frame_hwinj
|
|
105
105
|
bin/hwinj/pycbc_plot_hwinj
|
|
106
106
|
bin/inference/pycbc_inference
|
|
107
|
+
bin/inference/pycbc_inference_create_calibration_config
|
|
107
108
|
bin/inference/pycbc_inference_create_fits
|
|
108
109
|
bin/inference/pycbc_inference_extract_samples
|
|
109
110
|
bin/inference/pycbc_inference_model_stats
|
|
@@ -125,6 +126,7 @@ bin/inference/pycbc_inference_plot_samples
|
|
|
125
126
|
bin/inference/pycbc_inference_plot_skymap
|
|
126
127
|
bin/inference/pycbc_inference_plot_thermodynamic_integrand
|
|
127
128
|
bin/inference/pycbc_inference_pp_table_summary
|
|
129
|
+
bin/inference/pycbc_inference_savage_dickey
|
|
128
130
|
bin/inference/pycbc_inference_start_from_samples
|
|
129
131
|
bin/inference/pycbc_inference_table_summary
|
|
130
132
|
bin/inference/pycbc_validate_test_posterior
|
|
@@ -271,6 +273,8 @@ examples/inference/analytic-normal2d/run.sh
|
|
|
271
273
|
examples/inference/bbh-injection/make_injection.sh
|
|
272
274
|
examples/inference/bbh-injection/run.sh
|
|
273
275
|
examples/inference/bbh-injection/run_test.sh
|
|
276
|
+
examples/inference/calibration_configuration_files/download_calibration_uncertainty_files_o1_o2_o3.sh
|
|
277
|
+
examples/inference/calibration_configuration_files/generate_calibration_config.sh
|
|
274
278
|
examples/inference/gw150914/plot.sh
|
|
275
279
|
examples/inference/gw150914/run.sh
|
|
276
280
|
examples/inference/gw150914/run_test.sh
|
|
@@ -40,7 +40,7 @@ from pycbc.filter import sigmasq
|
|
|
40
40
|
from pycbc.types import TimeSeries
|
|
41
41
|
from pycbc.types.optparse import convert_to_process_params_dict
|
|
42
42
|
from pycbc.io.ligolw import create_process_table
|
|
43
|
-
from pycbc.waveform import get_td_waveform, td_approximants
|
|
43
|
+
from pycbc.waveform import get_td_waveform, td_approximants
|
|
44
44
|
|
|
45
45
|
def _empty_row(obj):
|
|
46
46
|
"""Create an empty sim_inspiral or sngl_inspiral row where the columns have
|
|
@@ -427,7 +427,7 @@ for ifo in opts.instruments:
|
|
|
427
427
|
|
|
428
428
|
# taper waveform
|
|
429
429
|
logging.info('Tapering strain for %s', ifo)
|
|
430
|
-
strain = taper_timeseries(
|
|
430
|
+
strain = strain.taper_timeseries(location=sim.taper)
|
|
431
431
|
|
|
432
432
|
# FFT strain
|
|
433
433
|
logging.info('FFT strain for %s', ifo)
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
|
|
3
|
+
# Copyright (C) 2023 Sumit K.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify it
|
|
6
|
+
# under the terms of the GNU General Public License as published by the
|
|
7
|
+
# Free Software Foundation; either version 3 of the License, or (at your
|
|
8
|
+
# option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but
|
|
11
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
13
|
+
# Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License along
|
|
16
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
18
|
+
|
|
19
|
+
"""Generate the calibration configuration file for a given event/GPS time.
|
|
20
|
+
Also plots the calibration envelop for each detector for sanity checks.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
import os, argparse
|
|
24
|
+
import pycbc
|
|
25
|
+
import numpy
|
|
26
|
+
import matplotlib.pyplot as plt
|
|
27
|
+
|
|
28
|
+
from pycbc.types import MultiDetOptionAction
|
|
29
|
+
from pycbc.strain.recalibrate import get_calibration_files_O1_O2_O3, read_calibration_envelop_file
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
parser = argparse.ArgumentParser()
|
|
33
|
+
|
|
34
|
+
# command line usage
|
|
35
|
+
#parser = argparse.ArgumentParser(
|
|
36
|
+
# usage="pycbc_inference_create_calibration_config [--options]",
|
|
37
|
+
# description="Generate the calibration configuration files "
|
|
38
|
+
# "to be used woth pycbc_inference.")
|
|
39
|
+
|
|
40
|
+
pycbc.add_common_pycbc_options(parser)
|
|
41
|
+
|
|
42
|
+
parser.add_argument('--calibration-files-path',
|
|
43
|
+
help='Calibration envelope file path. It can be pre-'
|
|
44
|
+
'downloaded or downloaded on the fly',
|
|
45
|
+
type=str)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
parser.add_argument('--calibration-files', nargs='+', action=MultiDetOptionAction,
|
|
49
|
+
metavar = 'DETECTOR:COLUMN', type=str,
|
|
50
|
+
help='Calibration file for each detector',)
|
|
51
|
+
|
|
52
|
+
parser.add_argument('--ifos', nargs='+',
|
|
53
|
+
help='Specify ifos for the analysis')
|
|
54
|
+
|
|
55
|
+
parser.add_argument('--minimum-frequency', nargs='+', action=MultiDetOptionAction,
|
|
56
|
+
metavar='DETECTOR:COLUMN', type=float,
|
|
57
|
+
help='For each detector, provide minimum frequency for'
|
|
58
|
+
'the analysis. The minimum frequency should be higher than'
|
|
59
|
+
'the minimum frequency in calibration envelop file so that'
|
|
60
|
+
'we do not extrapolate.')
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
parser.add_argument('--maximum-frequency', nargs='+', action=MultiDetOptionAction,
|
|
64
|
+
metavar='DETECTOR:COLUMN', type=float,
|
|
65
|
+
help='For each detector, provide maximum frequency for'
|
|
66
|
+
'the analysis. The minimum frequency should be lower than'
|
|
67
|
+
'the maximum frequency in calibration envelop file so that'
|
|
68
|
+
'we do not extrapolate.')
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
parser.add_argument('--gps-time',
|
|
72
|
+
help='GPS time at which calibration configuration files'
|
|
73
|
+
'are needed',
|
|
74
|
+
required=True, type=float)
|
|
75
|
+
|
|
76
|
+
parser.add_argument('--output-dir',
|
|
77
|
+
help="Path for the output calibration config files",
|
|
78
|
+
default='.', type=str)
|
|
79
|
+
|
|
80
|
+
parser.add_argument('--plots-dir',
|
|
81
|
+
help="Path for the 'sanity check' plots",
|
|
82
|
+
default='.', type=str)
|
|
83
|
+
|
|
84
|
+
parser.add_argument('--n-nodes',
|
|
85
|
+
help='Number of frequency nodes to be used',
|
|
86
|
+
default=10, type=int)
|
|
87
|
+
|
|
88
|
+
parser.add_argument('--correction-type', nargs='+', action=MultiDetOptionAction,
|
|
89
|
+
metavar='DETECTOR:COLUMN',
|
|
90
|
+
help="Provide the correction type for each detector",
|
|
91
|
+
required=True)
|
|
92
|
+
|
|
93
|
+
parser.add_argument('--plot-sanity-checks', help='Make some plots for sanity checks',
|
|
94
|
+
default=True, type=bool)
|
|
95
|
+
|
|
96
|
+
parser.add_argument('--tag', help='Provide your tag for naming calibration file',
|
|
97
|
+
default=None)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
# parse the command line
|
|
101
|
+
opts = parser.parse_args()
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
if opts.calibration_files_path and opts.calibration_files:
|
|
105
|
+
raise ValueError("Only one of the arguments should be provided among:"
|
|
106
|
+
"--calibration-files-path and --calibration-files")
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
calibration_files_path = opts.calibration_files_path
|
|
110
|
+
min_freq_list = opts.minimum_frequency
|
|
111
|
+
max_freq_list = opts.maximum_frequency
|
|
112
|
+
correction_type_list = opts.correction_type
|
|
113
|
+
gps_time = opts.gps_time
|
|
114
|
+
output_dir = opts.output_dir
|
|
115
|
+
n_nodes = opts.n_nodes
|
|
116
|
+
if opts.tag is None:
|
|
117
|
+
tag = int(opts.gps_time)
|
|
118
|
+
else:
|
|
119
|
+
tag = opts.tag
|
|
120
|
+
|
|
121
|
+
for ifo in opts.ifos:
|
|
122
|
+
logging.info("Minimum %s frequency: %.3f", ifs, min_freq_list[ifo])
|
|
123
|
+
|
|
124
|
+
# Read calibration files
|
|
125
|
+
if opts.calibration_files:
|
|
126
|
+
calibration_files_dict = {}
|
|
127
|
+
for ifo in opts.ifos:
|
|
128
|
+
calibration_files_dict[ifo] = opts.calibration_files[ifo]
|
|
129
|
+
else:
|
|
130
|
+
calibration_files_dict = get_calibration_files_O1_O2_O3(opts.ifos, gps_time, calibration_files_path)
|
|
131
|
+
|
|
132
|
+
logging.debug("Calibration files dictionary: %s", calibration_files_dict)
|
|
133
|
+
|
|
134
|
+
input_dict = {}
|
|
135
|
+
for ii in range(len(opts.ifos)):
|
|
136
|
+
ifo = str(opts.ifos[ii])
|
|
137
|
+
input_dict['min_freq_%s'%ifo]=min_freq_list[ifo]
|
|
138
|
+
input_dict['max_freq_%s'%ifo]=max_freq_list[ifo]
|
|
139
|
+
input_dict['correction_type_%s'%ifo]=correction_type_list[ifo]
|
|
140
|
+
input_dict['calibration_envelop_file_%s'%ifo] = calibration_files_dict[ifo.upper()]
|
|
141
|
+
logging.debug("Input dictionary: %s", input_dict)
|
|
142
|
+
# Upper and Lower indices of detectors seems unnecessary
|
|
143
|
+
# but they are there to make sure the correct convention
|
|
144
|
+
# is followed for recalibration module in inference config
|
|
145
|
+
# file as well as in detector notation.
|
|
146
|
+
prior_dict = {}
|
|
147
|
+
for ifo in opts.ifos:
|
|
148
|
+
#ifo = ifo.lower()
|
|
149
|
+
min_freq = input_dict['min_freq_%s'%ifo]
|
|
150
|
+
max_freq = input_dict['max_freq_%s'%ifo]
|
|
151
|
+
correction_type = input_dict['correction_type_%s'%ifo]
|
|
152
|
+
calib_env_file = input_dict['calibration_envelop_file_%s'%ifo]
|
|
153
|
+
log_nodes, amplitude_median_nodes, amplitude_sigma_nodes, phase_median_nodes, phase_sigma_nodes = \
|
|
154
|
+
read_calibration_envelop_file(calib_env_file, correction_type,
|
|
155
|
+
min_freq, max_freq, n_nodes)
|
|
156
|
+
prior_dict['log_nodes_%s'%ifo] = log_nodes
|
|
157
|
+
prior_dict['amplitude_median_nodes_%s'%ifo] = amplitude_median_nodes
|
|
158
|
+
prior_dict['amplitude_sigma_nodes_%s'%ifo] = amplitude_sigma_nodes
|
|
159
|
+
prior_dict['phase_median_nodes_%s'%ifo] = phase_median_nodes
|
|
160
|
+
prior_dict['phase_sigma_nodes_%s'%ifo] =phase_sigma_nodes
|
|
161
|
+
logging.info('Done for detector %s', ifo)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
calibration_filename = '%s/calibration-%s.ini'%(output_dir, tag)
|
|
165
|
+
if os.path.isfile(calibration_filename) != True:
|
|
166
|
+
text_file = open(calibration_filename, "w")
|
|
167
|
+
text_file.write("[calibration] \n")
|
|
168
|
+
for ifo in opts.ifos:
|
|
169
|
+
min_freq = input_dict['min_freq_%s'%ifo]
|
|
170
|
+
max_freq = input_dict['max_freq_%s'%ifo]
|
|
171
|
+
text_file.write("%s_model = cubic_spline \n"%ifo.lower())
|
|
172
|
+
text_file.write("%s_minimum_frequency = %d \n"%(ifo.lower(),min_freq))
|
|
173
|
+
text_file.write("%s_maximum_frequency = %d \n"%(ifo.lower(),max_freq))
|
|
174
|
+
text_file.write("%s_n_points = %d \n"%(ifo.lower(),n_nodes))
|
|
175
|
+
text_file.write(" \n")
|
|
176
|
+
text_file.write("[variable_params] \n")
|
|
177
|
+
for ifo in opts.ifos:
|
|
178
|
+
for ii in range(n_nodes):
|
|
179
|
+
text_file.write("recalib_amplitude_%s_%d = \n"%(ifo.lower(),ii))
|
|
180
|
+
text_file.write("recalib_phase_%s_%d = \n"%(ifo.lower(),ii))
|
|
181
|
+
text_file.write(" \n")
|
|
182
|
+
for ifo in opts.ifos:
|
|
183
|
+
for ii in range(n_nodes):
|
|
184
|
+
amplitude_median_nodes = prior_dict['amplitude_median_nodes_%s'%ifo][ii]
|
|
185
|
+
amplitude_sigma_nodes = prior_dict['amplitude_sigma_nodes_%s'%ifo][ii]
|
|
186
|
+
text_file.write("[prior-recalib_amplitude_%s_%d] \n"%(ifo.lower(),ii))
|
|
187
|
+
text_file.write("name = gaussian \n")
|
|
188
|
+
text_file.write("recalib_amplitude_%s_%d_mean = %.3g \n"%(ifo.lower(),ii,amplitude_median_nodes))
|
|
189
|
+
text_file.write("recalib_amplitude_%s_%d_var = %.3g \n"%(ifo.lower(),ii,amplitude_sigma_nodes**2))
|
|
190
|
+
text_file.write(" \n")
|
|
191
|
+
for ifo in opts.ifos:
|
|
192
|
+
for ii in range(n_nodes):
|
|
193
|
+
phase_median_nodes = prior_dict['phase_median_nodes_%s'%ifo][ii]
|
|
194
|
+
phase_sigma_nodes = prior_dict['phase_sigma_nodes_%s'%ifo][ii]
|
|
195
|
+
text_file.write("[prior-recalib_phase_%s_%d] \n"%(ifo.lower(),ii))
|
|
196
|
+
text_file.write("name = gaussian \n")
|
|
197
|
+
text_file.write("recalib_phase_%s_%d_mean = %.3g \n"%(ifo.lower(),ii,phase_median_nodes))
|
|
198
|
+
text_file.write("recalib_phase_%s_%d_var = %.3g \n"%(ifo.lower(),ii,phase_sigma_nodes**2))
|
|
199
|
+
text_file.write(" \n")
|
|
200
|
+
text_file.write(" \n")
|
|
201
|
+
text_file.write(" \n")
|
|
202
|
+
text_file.close()
|
|
203
|
+
else:
|
|
204
|
+
raise ValueError(
|
|
205
|
+
'Calibration file already present. '
|
|
206
|
+
'Either delete it or rename it. Overwriting '
|
|
207
|
+
'this file is not allowed!!!'
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
# Sanity check plots
|
|
211
|
+
plots_dir = '%s/plots'%output_dir
|
|
212
|
+
os.system('mkdir -p %s'%plots_dir)
|
|
213
|
+
if opts.plot_sanity_checks:
|
|
214
|
+
for ifo in opts.ifos:
|
|
215
|
+
calib_env_path = input_dict['calibration_envelop_file_%s'%ifo]
|
|
216
|
+
min_freq = input_dict['min_freq_%s'%ifo]
|
|
217
|
+
max_freq = input_dict['max_freq_%s'%ifo]
|
|
218
|
+
log_nodes = prior_dict['log_nodes_%s'%ifo]
|
|
219
|
+
amp_median_nodes = prior_dict['amplitude_median_nodes_%s'%ifo]
|
|
220
|
+
amp_sigma_nodes = prior_dict['amplitude_sigma_nodes_%s'%ifo]
|
|
221
|
+
d1 = numpy.loadtxt(calib_env_path)
|
|
222
|
+
plt.figure(figsize=(8,5))
|
|
223
|
+
plt.plot(d1[:,0],d1[:,1],label=r'$\mu$')
|
|
224
|
+
plt.plot(d1[:,0],d1[:,3],label=r'$\mu-\sigma$')
|
|
225
|
+
plt.plot(d1[:,0],d1[:,5],label=r'$\mu+\sigma$')
|
|
226
|
+
plt.plot(numpy.exp(log_nodes),amp_median_nodes+1,'.',label=r'$\mu$(Prior)')
|
|
227
|
+
plt.plot(numpy.exp(log_nodes),amp_median_nodes+1-amp_sigma_nodes,'.',label=r'$\mu-\sigma$ (Prior)')
|
|
228
|
+
plt.plot(numpy.exp(log_nodes),amp_median_nodes+1+amp_sigma_nodes,'.',label=r'$\mu+\sigma$ (Prior)')
|
|
229
|
+
plt.xscale('log')
|
|
230
|
+
plt.xlabel('Frequency (Hz)')
|
|
231
|
+
plt.ylabel('Amplitude')
|
|
232
|
+
plt.title('Calibration envelop (Amplitude) for %s'%ifo)
|
|
233
|
+
plt.legend()
|
|
234
|
+
plt.savefig('%s/calibration_envelop_amplitude_%s_%s.png'%(plots_dir,tag,ifo))
|
|
235
|
+
plt.clf()
|
|
236
|
+
|
|
237
|
+
phase_median_nodes = prior_dict['phase_median_nodes_%s'%ifo]
|
|
238
|
+
phase_sigma_nodes = prior_dict['phase_sigma_nodes_%s'%ifo]
|
|
239
|
+
plt.figure(figsize=(8,5))
|
|
240
|
+
plt.plot(d1[:,0],d1[:,2],label=r'$\mu$')
|
|
241
|
+
plt.plot(d1[:,0],d1[:,4],label=r'$\mu-\sigma$')
|
|
242
|
+
plt.plot(d1[:,0],d1[:,6],label=r'$\mu+\sigma$')
|
|
243
|
+
plt.plot(numpy.exp(log_nodes),phase_median_nodes,'.',label=r'$\mu$ (Prior)')
|
|
244
|
+
plt.plot(numpy.exp(log_nodes),phase_median_nodes-phase_sigma_nodes,'.',label=r'$\mu-\sigma$ (Prior)')
|
|
245
|
+
plt.plot(numpy.exp(log_nodes),phase_median_nodes+phase_sigma_nodes,'.',label=r'$\mu+\sigma$')
|
|
246
|
+
plt.xscale('log')
|
|
247
|
+
plt.xlabel('Frequency (Hz)')
|
|
248
|
+
plt.ylabel('Phase')
|
|
249
|
+
plt.title('Calibration envelop (Phase) for %s'%ifo)
|
|
250
|
+
plt.legend()
|
|
251
|
+
plt.savefig('%s/calibration_envelop_phase_%s_%s.png'%(plots_dir,tag,ifo))
|
|
252
|
+
plt.clf()
|
|
253
|
+
|
|
@@ -43,6 +43,8 @@ import pycbc
|
|
|
43
43
|
from pycbc.inference.io import (ResultsArgumentParser, results_from_cli,
|
|
44
44
|
PosteriorFile, loadfile)
|
|
45
45
|
from pycbc.inference.io.base_hdf import format_attr
|
|
46
|
+
from scipy.special import logsumexp
|
|
47
|
+
import warnings
|
|
46
48
|
|
|
47
49
|
|
|
48
50
|
def isthesame(current_val, val):
|
|
@@ -83,6 +85,35 @@ parser.add_argument("--skip-groups", default=None, nargs="+",
|
|
|
83
85
|
"to write all groups if only one file is provided, "
|
|
84
86
|
"and all groups from the first file except "
|
|
85
87
|
"sampler_info if multiple files are provided.")
|
|
88
|
+
parser.add_argument("--combine-via-sampling", action='store_true',
|
|
89
|
+
default=False,
|
|
90
|
+
help="Specify whether to combine the posteriors by "
|
|
91
|
+
"sampling. By default, extract_samples will dump all "
|
|
92
|
+
"samples from multiple inputs into one output file. "
|
|
93
|
+
"If this option is specified, the samples will "
|
|
94
|
+
"be randomly sampled with weighting based on the "
|
|
95
|
+
"evidence in each input. For example, if the "
|
|
96
|
+
"evidence of input 1 is twice that of input 2, "
|
|
97
|
+
"the resulting posterior file with this option "
|
|
98
|
+
"specified will have twice as many points from input "
|
|
99
|
+
"1 than input 2. The output will have the same "
|
|
100
|
+
"number of samples as the smallest input file. "
|
|
101
|
+
"An error is thrown if this option is specified and "
|
|
102
|
+
"any of the input files does not have a log_evidence "
|
|
103
|
+
"attribute (e.g., the file used a sampler like emcee "
|
|
104
|
+
"that does not report evidence). This option "
|
|
105
|
+
"assumes that the priors of all files do not "
|
|
106
|
+
"overlap; we cannot properly combine posteriors if "
|
|
107
|
+
"the priors do overlap.")
|
|
108
|
+
parser.add_argument("--mutually-exclusive-priors", action='store_true',
|
|
109
|
+
default=False,
|
|
110
|
+
help="If specifying --combine-via-sampling, specify "
|
|
111
|
+
"whether to treat priors as mutually exclusive. By "
|
|
112
|
+
"default, the provided input files are assumed to "
|
|
113
|
+
"have identical priors, and their evidences will be "
|
|
114
|
+
"averaged. If this option is specified, the priors "
|
|
115
|
+
"are assumed to be non-overlapping across files, and "
|
|
116
|
+
"their evidences will be summed together.")
|
|
86
117
|
|
|
87
118
|
opts = parser.parse_args()
|
|
88
119
|
|
|
@@ -101,10 +132,52 @@ if len(opts.input_file) == 1:
|
|
|
101
132
|
# convert samples to a dict in which the keys are the labels
|
|
102
133
|
# also stack results if multiple files were provided
|
|
103
134
|
if len(opts.input_file) > 1:
|
|
104
|
-
|
|
105
|
-
|
|
135
|
+
if opts.combine_via_sampling:
|
|
136
|
+
raw_samples = {labels[p]: numpy.concatenate([s[p] for s in samples])
|
|
137
|
+
for p in params}
|
|
138
|
+
logz_list = []
|
|
139
|
+
dlogz_list = []
|
|
140
|
+
len_list = []
|
|
141
|
+
raw_samps_list = []
|
|
142
|
+
weights_list = []
|
|
143
|
+
for file in opts.input_file:
|
|
144
|
+
fp = loadfile(file, 'r')
|
|
145
|
+
# get evidence from each file if possible
|
|
146
|
+
try:
|
|
147
|
+
logz, dlogz = fp.log_evidence
|
|
148
|
+
except KeyError:
|
|
149
|
+
raise ValueError(f"Cannot combine evidences; file {file} "
|
|
150
|
+
"does not have a log_evidence attr")
|
|
151
|
+
logz_list.append(logz)
|
|
152
|
+
dlogz_list.append(dlogz)
|
|
153
|
+
# get samples from each file
|
|
154
|
+
file_samps = fp.read_samples(list(fp['samples'].keys()))
|
|
155
|
+
raw_samps_list.append(file_samps)
|
|
156
|
+
# get the number of samples from each file
|
|
157
|
+
len_list.append(len(file_samps))
|
|
158
|
+
# compute sampling weights from evidences
|
|
159
|
+
logz_net = logsumexp(logz_list)
|
|
160
|
+
len_net = sum(len_list)
|
|
161
|
+
out_size = min(len_list)
|
|
162
|
+
for i in range(len(opts.input_file)):
|
|
163
|
+
# weight each file's samples according to logz
|
|
164
|
+
logwt = logz_list[i] - logz_net
|
|
165
|
+
weights_list.append([numpy.exp(logwt)/len_list[i] for j in
|
|
166
|
+
range(len_list[i])])
|
|
167
|
+
# randomly sample indices from all samples
|
|
168
|
+
weights = numpy.concatenate(weights_list)
|
|
169
|
+
idx = numpy.random.choice(int(len_net), size=out_size, replace=True,
|
|
170
|
+
p=weights)
|
|
171
|
+
samples = {param: raw_samples[param][idx] for param in
|
|
172
|
+
raw_samples.keys()}
|
|
173
|
+
else:
|
|
174
|
+
samples = {labels[p]: numpy.concatenate([s[p] for s in samples])
|
|
175
|
+
for p in params}
|
|
106
176
|
else:
|
|
107
177
|
samples = {labels[p]: samples[p] for p in params}
|
|
178
|
+
if opts.combine_via_sampling:
|
|
179
|
+
warnings.warn("Specified combine_via_sampling with only one input "
|
|
180
|
+
"file. This option will have no effect.")
|
|
108
181
|
|
|
109
182
|
# create the file
|
|
110
183
|
outtype = PosteriorFile.name
|
|
@@ -137,10 +210,13 @@ for fp in fps:
|
|
|
137
210
|
skip_attrs = ['filetype', 'thin_start', 'thin_interval', 'thin_end',
|
|
138
211
|
'thinned_by', 'cmd', 'resume_points', 'effective_nsamples',
|
|
139
212
|
'run_start_time', 'run_end_time']
|
|
140
|
-
# also skip evidence if multiple files are being combined
|
|
141
|
-
#
|
|
213
|
+
# also skip evidence if multiple files are being combined; this will be handled
|
|
214
|
+
# via sampling if specified
|
|
142
215
|
if len(opts.input_file) > 1:
|
|
143
216
|
skip_attrs += ['log_evidence', 'dlog_evidence']
|
|
217
|
+
|
|
218
|
+
# make sure attrs are the same between files...
|
|
219
|
+
cat_params = False
|
|
144
220
|
for fp in fps:
|
|
145
221
|
for key in map(format_attr, fp.attrs):
|
|
146
222
|
if key not in skip_attrs:
|
|
@@ -151,12 +227,36 @@ for fp in fps:
|
|
|
151
227
|
out.attrs[key] = val
|
|
152
228
|
current_val = format_attr(out.attrs[key])
|
|
153
229
|
if not isthesame(current_val, val):
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
230
|
+
if key == 'remapped_params':
|
|
231
|
+
# ...unless it's remapped_params; just save first file's
|
|
232
|
+
# entries if they don't match between files
|
|
233
|
+
warnings.warn("WARNING: remapped_params metadata does not "
|
|
234
|
+
"match between files; saving metadata from "
|
|
235
|
+
"first file")
|
|
236
|
+
else:
|
|
237
|
+
raise ValueError("cannot combine all files; file attr {} is "
|
|
238
|
+
"not the same across all files ({} vs {})"
|
|
239
|
+
.format(key, current_val, val))
|
|
157
240
|
|
|
158
|
-
# store what parameters were renamed
|
|
159
|
-
|
|
241
|
+
# store what parameters were renamed (if not already saved above)
|
|
242
|
+
if not cat_params:
|
|
243
|
+
out.attrs['remapped_params'] = list(labels.items())
|
|
244
|
+
|
|
245
|
+
# write combined evidence and dlog evidence if combining via sampling
|
|
246
|
+
if opts.combine_via_sampling:
|
|
247
|
+
if len(opts.input_file) == 1:
|
|
248
|
+
# there's only one file; just return what's in the input
|
|
249
|
+
out.attrs['log_evidence'] = fps[0].log_evidence[0]
|
|
250
|
+
out.attrs['dlog_evidence'] = fps[0].log_evidence[1]
|
|
251
|
+
elif opts.mutually_exclusive_priors:
|
|
252
|
+
# add together the evidences; quadrature sum the residuals
|
|
253
|
+
out.attrs['log_evidence'] = logsumexp(logz_list)
|
|
254
|
+
out.attrs['dlog_evidence'] = numpy.sqrt(sum([i**2 for i in dlogz_list]))
|
|
255
|
+
else:
|
|
256
|
+
# average the evidences; quadrature sum and scale the residuals
|
|
257
|
+
n = len(opts.input_file)
|
|
258
|
+
out.attrs['log_evidence'] = logsumexp(logz_list) - numpy.log(n)
|
|
259
|
+
out.attrs['dlog_evidence'] = numpy.sqrt(sum([i**2 for i in dlogz_list])) / n
|
|
160
260
|
|
|
161
261
|
# write the other groups using the first file
|
|
162
262
|
fp = fps[0]
|
|
@@ -79,6 +79,11 @@ parser.add_argument("--plot-maxl", action="store_true", default=False,
|
|
|
79
79
|
parser.add_argument('--legend-location', default='upper right',
|
|
80
80
|
help='Where to put the legend (if multiple files are '
|
|
81
81
|
'provided). Default is "upper right".')
|
|
82
|
+
parser.add_argument('--legend-bbox-to-anchor', default='(1.0, 1.0)',
|
|
83
|
+
help='Box that is used to position the legend in conjunction with loc.')
|
|
84
|
+
parser.add_argument('--legend-fontsize', default='medium',
|
|
85
|
+
help="The font size of legend. Default is 'medium'."
|
|
86
|
+
"Choose from int or {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}.")
|
|
82
87
|
parser.add_argument('--dpi', type=int, default=200,
|
|
83
88
|
help="Set the DPI of the plot. Default is 200.")
|
|
84
89
|
# style option
|
|
@@ -113,6 +118,15 @@ if opts.plot_maxl:
|
|
|
113
118
|
else:
|
|
114
119
|
add_logl = False
|
|
115
120
|
|
|
121
|
+
# parse legend bbox
|
|
122
|
+
def parse_tuple(value):
|
|
123
|
+
try:
|
|
124
|
+
return tuple(map(float, value.strip("()").split(",")))
|
|
125
|
+
except Exception as e:
|
|
126
|
+
raise argparse.ArgumentTypeError(f"Invalid tuple format: {value}") from e
|
|
127
|
+
|
|
128
|
+
opts.legend_bbox_to_anchor = parse_tuple(opts.legend_bbox_to_anchor)
|
|
129
|
+
|
|
116
130
|
# set logging
|
|
117
131
|
pycbc.init_logging(opts.verbose)
|
|
118
132
|
|
|
@@ -358,7 +372,8 @@ if len(opts.input_file) > 1:
|
|
|
358
372
|
else:
|
|
359
373
|
addto = fig
|
|
360
374
|
addto.legend(loc=opts.legend_location, handles=handles,
|
|
361
|
-
labels=labels
|
|
375
|
+
labels=labels, fontsize=opts.legend_fontsize,
|
|
376
|
+
bbox_to_anchor=opts.legend_bbox_to_anchor)
|
|
362
377
|
|
|
363
378
|
# set DPI
|
|
364
379
|
fig.set_dpi(opts.dpi)
|