lalsuite 7.26.2.dev20251206__cp312-cp312-manylinux_2_28_x86_64.whl
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.
- lal/__init__.py +145 -0
- lal/_lal.cpython-312-x86_64-linux-gnu.so +0 -0
- lal/_lal_swig.py +12 -0
- lal/antenna.py +1200 -0
- lal/git_version.py +64 -0
- lal/gpstime.py +233 -0
- lal/iterutils.py +408 -0
- lal/pipeline.py +3139 -0
- lal/rate.py +2455 -0
- lal/series.py +244 -0
- lal/utils/__init__.py +29 -0
- lal/utils/cache.py +379 -0
- lal/utils/series.py +277 -0
- lalapps/__init__.py +26 -0
- lalapps/bin/lal_cache +0 -0
- lalapps/bin/lal_fftw_wisdom +0 -0
- lalapps/bin/lal_fftwf_wisdom +0 -0
- lalapps/bin/lal_simd_detect +0 -0
- lalapps/bin/lal_tconvert +0 -0
- lalapps/bin/lal_version +0 -0
- lalapps/bin/lalapps_ComputeAntennaPattern +16 -0
- lalapps/bin/lalapps_ComputeFstatBenchmark +16 -0
- lalapps/bin/lalapps_ComputeFstatLatticeCount +16 -0
- lalapps/bin/lalapps_ComputeFstatMCUpperLimit +16 -0
- lalapps/bin/lalapps_ComputeFstatistic_v2 +16 -0
- lalapps/bin/lalapps_ComputePSD +16 -0
- lalapps/bin/lalapps_CopySFTs +16 -0
- lalapps/bin/lalapps_DistanceVsMass +0 -0
- lalapps/bin/lalapps_DriveHoughMulti +16 -0
- lalapps/bin/lalapps_FstatMetric_v2 +16 -0
- lalapps/bin/lalapps_HierarchSearchGCT +16 -0
- lalapps/bin/lalapps_HierarchicalSearch +16 -0
- lalapps/bin/lalapps_MakeSFTDAG +16 -0
- lalapps/bin/lalapps_MakeSFTs +16 -0
- lalapps/bin/lalapps_Makefakedata_v4 +16 -0
- lalapps/bin/lalapps_Makefakedata_v5 +16 -0
- lalapps/bin/lalapps_PredictFstat +16 -0
- lalapps/bin/lalapps_PrintDetectorState +16 -0
- lalapps/bin/lalapps_SFTclean +16 -0
- lalapps/bin/lalapps_SFTvalidate +16 -0
- lalapps/bin/lalapps_StringAddFrame +0 -0
- lalapps/bin/lalapps_StringSearch +0 -0
- lalapps/bin/lalapps_Weave +16 -0
- lalapps/bin/lalapps_WeaveCompare +16 -0
- lalapps/bin/lalapps_WeaveConcat +16 -0
- lalapps/bin/lalapps_WeaveSetup +16 -0
- lalapps/bin/lalapps_WriteSFTsfromSFDBs +16 -0
- lalapps/bin/lalapps_animate +0 -0
- lalapps/bin/lalapps_binj +0 -0
- lalapps/bin/lalapps_blindinj +0 -0
- lalapps/bin/lalapps_cache +16 -0
- lalapps/bin/lalapps_calfacs +0 -0
- lalapps/bin/lalapps_cbc_stochasticbank +0 -0
- lalapps/bin/lalapps_chirplen +0 -0
- lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
- lalapps/bin/lalapps_coinj +0 -0
- lalapps/bin/lalapps_combine_crosscorr_toplists +16 -0
- lalapps/bin/lalapps_compareFstats +16 -0
- lalapps/bin/lalapps_compareSFTs +16 -0
- lalapps/bin/lalapps_create_time_correction_ephemeris +16 -0
- lalapps/bin/lalapps_dumpSFT +16 -0
- lalapps/bin/lalapps_effdist +0 -0
- lalapps/bin/lalapps_exc_resp +0 -0
- lalapps/bin/lalapps_fftw_wisdom +16 -0
- lalapps/bin/lalapps_fftwf_wisdom +16 -0
- lalapps/bin/lalapps_fits_header_getval +16 -0
- lalapps/bin/lalapps_fits_header_list +16 -0
- lalapps/bin/lalapps_fits_overview +16 -0
- lalapps/bin/lalapps_fits_table_list +16 -0
- lalapps/bin/lalapps_fr_ninja +0 -0
- lalapps/bin/lalapps_frextr +0 -0
- lalapps/bin/lalapps_frinfo +0 -0
- lalapps/bin/lalapps_frjoin +0 -0
- lalapps/bin/lalapps_frread +0 -0
- lalapps/bin/lalapps_frview +0 -0
- lalapps/bin/lalapps_gwf2xml +0 -0
- lalapps/bin/lalapps_heterodyne_pulsar +16 -0
- lalapps/bin/lalapps_inspawgfile +0 -0
- lalapps/bin/lalapps_inspfrinj +0 -0
- lalapps/bin/lalapps_inspinj +0 -0
- lalapps/bin/lalapps_inspiralDistance +0 -0
- lalapps/bin/lalapps_knope +16 -0
- lalapps/bin/lalapps_knope_automation_script +16 -0
- lalapps/bin/lalapps_knope_collate_results +16 -0
- lalapps/bin/lalapps_knope_result_page +16 -0
- lalapps/bin/lalapps_makeblindinj +85 -0
- lalapps/bin/lalapps_makeblindinj_himass +67 -0
- lalapps/bin/lalapps_ninja +0 -0
- lalapps/bin/lalapps_path2cache +16 -0
- lalapps/bin/lalapps_power +0 -0
- lalapps/bin/lalapps_pulsar_crosscorr_v2 +16 -0
- lalapps/bin/lalapps_pulsar_frequency_evolution +16 -0
- lalapps/bin/lalapps_pulsar_parameter_estimation_nested +16 -0
- lalapps/bin/lalapps_random_bank +0 -0
- lalapps/bin/lalapps_randombank +0 -0
- lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +16 -0
- lalapps/bin/lalapps_searchsum2cache +16 -0
- lalapps/bin/lalapps_spec_avg +16 -0
- lalapps/bin/lalapps_spec_avg_long +16 -0
- lalapps/bin/lalapps_spec_coherence +16 -0
- lalapps/bin/lalapps_spininj +0 -0
- lalapps/bin/lalapps_splitSFTs +16 -0
- lalapps/bin/lalapps_splitbank +0 -0
- lalapps/bin/lalapps_ssbtodetector +16 -0
- lalapps/bin/lalapps_synthesizeBstatMC +16 -0
- lalapps/bin/lalapps_synthesizeLVStats +16 -0
- lalapps/bin/lalapps_synthesizeTransientStats +16 -0
- lalapps/bin/lalapps_tconvert +16 -0
- lalapps/bin/lalapps_tmpltbank +0 -0
- lalapps/bin/lalapps_version +0 -0
- lalapps/bin/lalapps_xtefitstoframe +0 -0
- lalapps/bin/lalburst_version +0 -0
- lalapps/bin/lalfr-cat +0 -0
- lalapps/bin/lalfr-cksum +0 -0
- lalapps/bin/lalfr-cut +0 -0
- lalapps/bin/lalfr-dump +0 -0
- lalapps/bin/lalfr-fmt +0 -0
- lalapps/bin/lalfr-paste +0 -0
- lalapps/bin/lalfr-print +0 -0
- lalapps/bin/lalfr-split +0 -0
- lalapps/bin/lalfr-stat +0 -0
- lalapps/bin/lalfr-stream +0 -0
- lalapps/bin/lalfr-vis +0 -0
- lalapps/bin/lalframe_version +0 -0
- lalapps/bin/lalinference_bench +0 -0
- lalapps/bin/lalinference_burst +0 -0
- lalapps/bin/lalinference_datadump +0 -0
- lalapps/bin/lalinference_injectedlike +0 -0
- lalapps/bin/lalinference_mpi_wrapper +59 -0
- lalapps/bin/lalinference_nest +0 -0
- lalapps/bin/lalinference_version +0 -0
- lalapps/bin/lalinspiral_version +0 -0
- lalapps/bin/lalmetaio_version +0 -0
- lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
- lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
- lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
- lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
- lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
- lalapps/bin/lalpulsar_ComputePSD +0 -0
- lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
- lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
- lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
- lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
- lalapps/bin/lalpulsar_MakeSFTs +0 -0
- lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
- lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
- lalapps/bin/lalpulsar_PredictFstat +0 -0
- lalapps/bin/lalpulsar_PrintDetectorState +0 -0
- lalapps/bin/lalpulsar_SFTclean +0 -0
- lalapps/bin/lalpulsar_SFTvalidate +0 -0
- lalapps/bin/lalpulsar_Weave +0 -0
- lalapps/bin/lalpulsar_WeaveCompare +0 -0
- lalapps/bin/lalpulsar_WeaveConcat +0 -0
- lalapps/bin/lalpulsar_WeaveSetup +0 -0
- lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
- lalapps/bin/lalpulsar_compareFstats +0 -0
- lalapps/bin/lalpulsar_compareSFTs +0 -0
- lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
- lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
- lalapps/bin/lalpulsar_dumpSFT +0 -0
- lalapps/bin/lalpulsar_fits_header_getval +0 -0
- lalapps/bin/lalpulsar_fits_header_list +0 -0
- lalapps/bin/lalpulsar_fits_overview +0 -0
- lalapps/bin/lalpulsar_fits_table_list +0 -0
- lalapps/bin/lalpulsar_frequency_evolution +0 -0
- lalapps/bin/lalpulsar_heterodyne +0 -0
- lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
- lalapps/bin/lalpulsar_spec_avg +0 -0
- lalapps/bin/lalpulsar_spec_avg_long +0 -0
- lalapps/bin/lalpulsar_spec_coherence +0 -0
- lalapps/bin/lalpulsar_splitSFTs +0 -0
- lalapps/bin/lalpulsar_ssbtodetector +0 -0
- lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
- lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
- lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
- lalapps/bin/lalpulsar_version +0 -0
- lalapps/bin/lalsim-bh-qnmode +0 -0
- lalapps/bin/lalsim-bh-ringdown +0 -0
- lalapps/bin/lalsim-bh-sphwf +0 -0
- lalapps/bin/lalsim-burst +0 -0
- lalapps/bin/lalsim-detector-noise +0 -0
- lalapps/bin/lalsim-detector-strain +0 -0
- lalapps/bin/lalsim-inject +0 -0
- lalapps/bin/lalsim-inspiral +0 -0
- lalapps/bin/lalsim-ns-eos-table +0 -0
- lalapps/bin/lalsim-ns-mass-radius +0 -0
- lalapps/bin/lalsim-ns-params +0 -0
- lalapps/bin/lalsim-sgwb +0 -0
- lalapps/bin/lalsim-unicorn +0 -0
- lalapps/bin/lalsimulation_version +0 -0
- lalapps/cosmicstring.py +691 -0
- lalapps/data/BNSMasses.dat +65022 -0
- lalapps/data/CorrelationMatrix.csv +15 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1882 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1939 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1784 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2074 -0
- lalapps/data/LALSimNeutronStarEOS_ALF1.dat +435 -0
- lalapps/data/LALSimNeutronStarEOS_ALF2.dat +453 -0
- lalapps/data/LALSimNeutronStarEOS_ALF3.dat +441 -0
- lalapps/data/LALSimNeutronStarEOS_ALF4.dat +441 -0
- lalapps/data/LALSimNeutronStarEOS_AP1.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP2.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP3.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP4.dat +210 -0
- lalapps/data/LALSimNeutronStarEOS_APR.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_APR4_EPP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_BBB2.dat +84 -0
- lalapps/data/LALSimNeutronStarEOS_BGN1H1.dat +123 -0
- lalapps/data/LALSimNeutronStarEOS_BHF_BBB2.dat +499 -0
- lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1534 -0
- lalapps/data/LALSimNeutronStarEOS_BPAL12.dat +61 -0
- lalapps/data/LALSimNeutronStarEOS_BSK19.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_BSK20.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_BSK21.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_ENG.dat +108 -0
- lalapps/data/LALSimNeutronStarEOS_FPS.dat +129 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GNH3.dat +71 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GS1.dat +136 -0
- lalapps/data/LALSimNeutronStarEOS_GS2.dat +100 -0
- lalapps/data/LALSimNeutronStarEOS_H1.dat +114 -0
- lalapps/data/LALSimNeutronStarEOS_H2.dat +114 -0
- lalapps/data/LALSimNeutronStarEOS_H3.dat +98 -0
- lalapps/data/LALSimNeutronStarEOS_H4.dat +664 -0
- lalapps/data/LALSimNeutronStarEOS_H5.dat +703 -0
- lalapps/data/LALSimNeutronStarEOS_H6.dat +509 -0
- lalapps/data/LALSimNeutronStarEOS_H7.dat +703 -0
- lalapps/data/LALSimNeutronStarEOS_HQC18.dat +388 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V1.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1388 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1398 -0
- lalapps/data/LALSimNeutronStarEOS_MPA1.dat +102 -0
- lalapps/data/LALSimNeutronStarEOS_MS1.dat +122 -0
- lalapps/data/LALSimNeutronStarEOS_MS1B.dat +126 -0
- lalapps/data/LALSimNeutronStarEOS_MS1B_PP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_MS1_PP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_MS2.dat +48 -0
- lalapps/data/LALSimNeutronStarEOS_PAL6.dat +148 -0
- lalapps/data/LALSimNeutronStarEOS_PCL2.dat +134 -0
- lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_PS.dat +165 -0
- lalapps/data/LALSimNeutronStarEOS_QMC700.dat +117 -0
- lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_RS.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1356 -0
- lalapps/data/LALSimNeutronStarEOS_SK255.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +1066 -0
- lalapps/data/LALSimNeutronStarEOS_SK272.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKA.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1433 -0
- lalapps/data/LALSimNeutronStarEOS_SKB.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1373 -0
- lalapps/data/LALSimNeutronStarEOS_SKI2.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1348 -0
- lalapps/data/LALSimNeutronStarEOS_SKI3.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1355 -0
- lalapps/data/LALSimNeutronStarEOS_SKI4.dat +497 -0
- lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1348 -0
- lalapps/data/LALSimNeutronStarEOS_SKI5.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI6.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1358 -0
- lalapps/data/LALSimNeutronStarEOS_SKMP.dat +498 -0
- lalapps/data/LALSimNeutronStarEOS_SKOP.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1373 -0
- lalapps/data/LALSimNeutronStarEOS_SLY.dat +99 -0
- lalapps/data/LALSimNeutronStarEOS_SLY2.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SLY230A.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1116 -0
- lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1106 -0
- lalapps/data/LALSimNeutronStarEOS_SLY4.dat +100 -0
- lalapps/data/LALSimNeutronStarEOS_SLY9.dat +498 -0
- lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1083 -0
- lalapps/data/LALSimNeutronStarEOS_SQM1.dat +176 -0
- lalapps/data/LALSimNeutronStarEOS_SQM2.dat +180 -0
- lalapps/data/LALSimNeutronStarEOS_SQM3.dat +176 -0
- lalapps/data/LALSimNeutronStarEOS_WFF1.dat +109 -0
- lalapps/data/LALSimNeutronStarEOS_WFF2.dat +109 -0
- lalapps/data/LALSimNeutronStarEOS_WFF3.dat +107 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +1227 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1272 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1280 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1230 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1288 -0
- lalapps/data/LIGO-P1200087-v18-AdV_BNS_OPTIMIZED.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_DESIGN.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_EARLY_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_EARLY_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_LATE_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_LATE_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_MID_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_MID_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_BNS_OPTIMIZED.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_DESIGN.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_MID_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_MID_LOW.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE_Pessimistic.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE_Wideband.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-ET_D.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-BHBH_20deg.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-High_Freq.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-NO_SRM.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-NSNS_Opt.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-ZERO_DET_high_P.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-ZERO_DET_low_P.txt +3000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Design.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Early.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Late.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Mid.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Opening.txt +4000 -0
- lalapps/data/LIGO-T1800042-v5-aLIGO_APLUS.txt +3000 -0
- lalapps/data/LIGO-T1800044-v5-aLIGO_DESIGN.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O3low.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O4.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O4intermediate.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_128Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_25Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_80Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_175Mpc.txt +2792 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_O3low.txt +2792 -0
- lalapps/data/bimodalMeans.csv +3 -0
- lalapps/data/config_tiger_example.ini +150 -0
- lalapps/data/fiducialBBH.xml +67 -0
- lalapps/data/fiducialBNS.xml +67 -0
- lalapps/data/inspsrcs100Mpc.errors +38735 -0
- lalapps/data/lalinference_pipe_example.ini +573 -0
- lalapps/data/lib_pipe_example.ini +303 -0
- lalapps/data/power_pipe.ini +129 -0
- lalapps/data/unimodalMeans.csv +2 -0
- lalapps/git_version.py +64 -0
- lalburst/SimBurstUtils.py +324 -0
- lalburst/SnglBurstUtils.py +367 -0
- lalburst/__init__.py +7 -0
- lalburst/_lalburst.cpython-312-x86_64-linux-gnu.so +0 -0
- lalburst/_lalburst_swig.py +16 -0
- lalburst/binjfind.py +824 -0
- lalburst/bucluster.py +409 -0
- lalburst/burca.py +315 -0
- lalburst/burca_tailor.py +349 -0
- lalburst/cafe.py +579 -0
- lalburst/calc_likelihood.py +145 -0
- lalburst/cs_gamma.cpython-312-x86_64-linux-gnu.so +0 -0
- lalburst/date.py +118 -0
- lalburst/git_version.py +64 -0
- lalburst/offsetvector.py +278 -0
- lalburst/packing.py +170 -0
- lalburst/power.py +1457 -0
- lalburst/snglcluster.py +136 -0
- lalburst/snglcoinc.py +2637 -0
- lalburst/stringutils.py +607 -0
- lalburst/timeslides.py +236 -0
- lalframe/__init__.py +7 -0
- lalframe/_lalframe.cpython-312-x86_64-linux-gnu.so +0 -0
- lalframe/_lalframe_swig.py +14 -0
- lalframe/frread.py +324 -0
- lalframe/git_version.py +64 -0
- lalframe/utils/__init__.py +25 -0
- lalframe/utils/frtools.py +61 -0
- lalinference/__init__.py +7 -0
- lalinference/_bayespputils.cpython-312-x86_64-linux-gnu.so +0 -0
- lalinference/_lalinference.cpython-312-x86_64-linux-gnu.so +0 -0
- lalinference/_lalinference_swig.py +19 -0
- lalinference/bayespputils.py +7479 -0
- lalinference/bayestar/__init__.py +2 -0
- lalinference/bayestar/deprecation.py +72 -0
- lalinference/git_version.py +64 -0
- lalinference/imrtgr/__init__.py +0 -0
- lalinference/imrtgr/imrtgrutils.py +168 -0
- lalinference/imrtgr/nrutils.py +1366 -0
- lalinference/imrtgr/pneqns.py +250 -0
- lalinference/io/__init__.py +31 -0
- lalinference/io/hdf5.py +365 -0
- lalinference/lalinference_pipe_utils.py +3617 -0
- lalinference/nest2pos.py +151 -0
- lalinference/plot/__init__.py +34 -0
- lalinference/plot/spindisk.py +104 -0
- lalinference/tiger/__init__.py +0 -0
- lalinference/tiger/make_injtimes.py +634 -0
- lalinference/tiger/omegascans_dag.py +691 -0
- lalinference/tiger/postproc.py +1338 -0
- lalinference/wrapper.py +231 -0
- lalinspiral/__init__.py +7 -0
- lalinspiral/_lalinspiral.cpython-312-x86_64-linux-gnu.so +0 -0
- lalinspiral/_lalinspiral_swig.py +18 -0
- lalinspiral/_thinca.cpython-312-x86_64-linux-gnu.so +0 -0
- lalinspiral/git_version.py +64 -0
- lalinspiral/inspinjfind.py +485 -0
- lalinspiral/thinca.py +509 -0
- lalmetaio/__init__.py +7 -0
- lalmetaio/_lalmetaio.cpython-312-x86_64-linux-gnu.so +0 -0
- lalmetaio/_lalmetaio_swig.py +14 -0
- lalmetaio/git_version.py +64 -0
- lalpulsar/NstarTools.py +259 -0
- lalpulsar/PulsarParametersWrapper.py +938 -0
- lalpulsar/__init__.py +7 -0
- lalpulsar/_lalpulsar.cpython-312-x86_64-linux-gnu.so +0 -0
- lalpulsar/_lalpulsar_swig.py +17 -0
- lalpulsar/git_version.py +64 -0
- lalpulsar/knope_utils.py +6497 -0
- lalpulsar/lineFileParser.py +264 -0
- lalpulsar/metric_utils.py +78 -0
- lalpulsar/piecewise_model/__init__.py +7 -0
- lalpulsar/piecewise_model/basis_functions.py +156 -0
- lalpulsar/piecewise_model/class_definitions.py +323 -0
- lalpulsar/piecewise_model/errors.py +37 -0
- lalpulsar/piecewise_model/estimating_knots.py +833 -0
- lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
- lalpulsar/piecewise_model/mols_for_gte.py +269 -0
- lalpulsar/piecewise_model/pw_fstat.py +813 -0
- lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
- lalpulsar/piecewise_model/sampling_methods.py +186 -0
- lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
- lalpulsar/piecewise_model/tbank_estimates.py +293 -0
- lalpulsar/public_sft_directory.py +82 -0
- lalpulsar/pulsarhtmlutils.py +1395 -0
- lalpulsar/pulsarpputils.py +3638 -0
- lalpulsar/simulateCW.py +602 -0
- lalpulsar/simulateHeterodynedCW.py +591 -0
- lalsimulation/__init__.py +7 -0
- lalsimulation/_lalsimulation.cpython-312-x86_64-linux-gnu.so +0 -0
- lalsimulation/_lalsimulation_swig.py +14 -0
- lalsimulation/git_version.py +64 -0
- lalsimulation/gwsignal/__init__.py +9 -0
- lalsimulation/gwsignal/core/__init__.py +2 -0
- lalsimulation/gwsignal/core/conditioning_subroutines.py +196 -0
- lalsimulation/gwsignal/core/errors.py +136 -0
- lalsimulation/gwsignal/core/gw.py +206 -0
- lalsimulation/gwsignal/core/parameter_conventions.py +122 -0
- lalsimulation/gwsignal/core/utils.py +329 -0
- lalsimulation/gwsignal/core/waveform.py +725 -0
- lalsimulation/gwsignal/core/waveform_conditioning.py +455 -0
- lalsimulation/gwsignal/models/__init__.py +29 -0
- lalsimulation/gwsignal/models/pyseobnr_model.py +452 -0
- lalsimulation/nrfits/NRSur3dq8Remnant.py +92 -0
- lalsimulation/nrfits/NRSur7dq4Remnant.py +469 -0
- lalsimulation/nrfits/__init__.py +1 -0
- lalsimulation/nrfits/eval_fits.py +364 -0
- lalsimulation/nrfits/nrfits.py +78 -0
- lalsimulation/nrfits/pn_spin_evolution_wrapper.py +92 -0
- lalsimulation/nrfits/quaternion_utils.py +74 -0
- lalsimulation/tilts_at_infinity/__init__.py +2 -0
- lalsimulation/tilts_at_infinity/calc_tilts_prec_avg_regularized.py +1424 -0
- lalsimulation/tilts_at_infinity/hybrid_spin_evolution.py +461 -0
- lalsimulation/tilts_at_infinity/tilts_at_infinity_utils.py +167 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesBurstPPAnalysis +305 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesBurstPostProc +1364 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCombinePTMCMCh5s +100 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCombinePosteriors +235 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCompPos +1121 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesDIEvidence +68 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesGraceDBinfo +182 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesMCMC2pos +314 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPPAnalysis +322 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPlotSpinDisk +42 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPosToSimBurst +227 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPosToSimInspiral +307 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPostProc +1345 -0
- lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesThermoInt +107 -0
- lalsuite-7.26.2.dev20251206.data/scripts/imrtgr_imr_consistency_test +796 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_cache +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_fftw_wisdom +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_fftwf_wisdom +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_path2cache +148 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_searchsum2cache +172 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_simd_detect +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_tconvert +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lal_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeAntennaPattern +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputePSD +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_CopySFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_DistanceVsMass +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_DriveHoughMulti +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_FstatMetric_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_HierarchSearchGCT +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_HierarchicalSearch +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_MakeSFTDAG +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_MakeSFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Makefakedata_v4 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Makefakedata_v5 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_PredictFstat +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_PrintDetectorState +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_SFTclean +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_SFTvalidate +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_StringAddFrame +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_StringSearch +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Weave +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveCompare +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveConcat +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveSetup +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_animate +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_binj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_blindinj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cache +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cafe +99 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_calfacs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cbc_stochasticbank +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_chirplen +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_coh_PTF_inspiral +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_coinj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_compareFstats +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_compareSFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cosmicstring_pipe +525 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_create_time_correction_ephemeris +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_dumpSFT +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_effdist +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_exc_resp +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fftw_wisdom +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fftwf_wisdom +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_header_getval +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_header_list +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_overview +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_table_list +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fr_ninja +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frextr +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frinfo +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frjoin +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frread +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frview +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_gwf2xml +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_heterodyne_pulsar +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspawgfile +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspfrinj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspinj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspiralDistance +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_automation_script +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_collate_results +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_result_page +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_makeblindinj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_makeblindinj_himass +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ninja +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_path2cache +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power_likelihood_pipe +219 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power_pipe +417 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_parameter_estimation_nested +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_random_bank +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_randombank +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_searchsum2cache +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_avg +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_avg_long +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_coherence +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spininj +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_splitSFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_splitbank +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ssbtodetector +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_apply_vetoes +171 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_calc_likelihood +172 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_contour_plotter +141 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_contour_plotter_largeloops +133 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_cs_gamma +110 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_cs_gamma_largeloops +119 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_final +1064 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_meas_likelihood +264 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_plot_binj +543 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_plot_likelihood +380 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeBstatMC +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeLVStats +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeTransientStats +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_tconvert +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_tmpltbank +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalapps_xtefitstoframe +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_cluster +156 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_coinc +224 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_cut +425 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_gen_timeslides +254 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_inj_pic +254 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_injfind +170 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_plot_tisi +165 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_calc_likelihood +182 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_final +1369 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_meas_likelihood +206 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_plot_binj +934 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_plot_binjtf +302 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalburst_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cat +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cksum +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cut +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-dump +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-fmt +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-paste +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-print +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-split +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-stat +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-stream +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalfr-vis +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalframe_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_bench +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_burst +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_burst_pp_pipe +220 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_coherence_test +139 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_compute_roq_weights +404 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_cpnest +58 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_datadump +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_evolve_spins_and_append_samples +202 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_injectedlike +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_merge_posteriors +57 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_mpi_wrapper +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_multi_pipe +144 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_nest +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_nest2pos +286 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_pipe +512 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_pp_pipe +229 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_review_test +362 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinference_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_injfind +206 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_thinca +240 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalmetaio_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputePSD +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_CopyPublicSFTs +216 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_DriveHoughMulti +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_HierarchicalSearch +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MakeSFTDAG +1142 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MakeSFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MoveSFTs +208 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PiecewiseSearch +963 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PredictFstat +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PrintDetectorState +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_SFTclean +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_SFTvalidate +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Weave +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveCompare +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveConcat +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveSetup +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_compareFstats +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_compareSFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_create_time_correction_ephemeris +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_dumpSFT +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_header_getval +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_header_list +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_overview +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_table_list +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_frequency_evolution +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_heterodyne +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope +145 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_automation_script +731 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_collate_results +675 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_result_page +2977 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_avg +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_avg_long +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_coherence +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_splitSFTs +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ssbtodetector +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeLVStats +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_version +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-qnmode +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-ringdown +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-sphwf +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-burst +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-detector-noise +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-detector-strain +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-inject +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-inspiral +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-eos-table +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-mass-radius +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-params +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-sgwb +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsim-unicorn +6 -0
- lalsuite-7.26.2.dev20251206.data/scripts/lalsimulation_version +6 -0
- lalsuite-7.26.2.dev20251206.dist-info/METADATA +90 -0
- lalsuite-7.26.2.dev20251206.dist-info/RECORD +733 -0
- lalsuite-7.26.2.dev20251206.dist-info/WHEEL +5 -0
- lalsuite-7.26.2.dev20251206.dist-info/licenses/COPYING +339 -0
- lalsuite-7.26.2.dev20251206.dist-info/top_level.txt +9 -0
- lalsuite.libs/libcfitsio-729ee1b7.so.10.0.0 +0 -0
- lalsuite.libs/libfftw3-6b983104.so.3.5.5 +0 -0
- lalsuite.libs/libfftw3f-b4465a35.so.3.5.5 +0 -0
- lalsuite.libs/libframel-8cf74372.so.8.48.4 +0 -0
- lalsuite.libs/libgsl-e30be130.so.28.0.0 +0 -0
- lalsuite.libs/libgslcblas-460f042a.so.0.0.0 +0 -0
- lalsuite.libs/libhdf5-d02936e2.so.310.5.1 +0 -0
- lalsuite.libs/libhdf5_hl-0e40b553.so.310.0.6 +0 -0
- lalsuite.libs/liblal-d17109e0.so.20.5.0 +0 -0
- lalsuite.libs/liblalburst-d9edfb9d.so.8.0.0 +0 -0
- lalsuite.libs/liblalframe-d677044f.so.14.0.3 +0 -0
- lalsuite.libs/liblalinference-a50f0a8e.so.23.1.7 +0 -0
- lalsuite.libs/liblalinspiral-22638799.so.18.0.2 +0 -0
- lalsuite.libs/liblalmetaio-42c5bc5c.so.11.0.1 +0 -0
- lalsuite.libs/liblalpulsar-95c25f8c.so.30.1.1 +0 -0
- lalsuite.libs/liblalsimulation-bf7c4c31.so.37.2.0 +0 -0
- lalsuite.libs/liblalsupport-282d4115.so.14.4.0 +0 -0
- lalsuite.libs/libmetaio-abda72ec.so.1.1.0 +0 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Code to use post-Newtonian equations [from Ajith, PRD 84, 084037 (2011), arXiv:1107.1267] to evolve spins in a binary black hole
|
|
3
|
+
|
|
4
|
+
P. Ajith, A. Gupta, and N. K. Johnson-McDaniel, 04.2016, based on earlier code
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from scipy.integrate import ode
|
|
8
|
+
import numpy as np
|
|
9
|
+
import lalsimulation as lalsim
|
|
10
|
+
from lal import PI, MTSUN_SI, MSUN_SI, GAMMA
|
|
11
|
+
from numpy import log
|
|
12
|
+
from numpy.linalg import norm
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
"""Preccesion frequency spins """
|
|
16
|
+
def Omega(v, m1, m2, S1, S2, Ln): #S1, S2 are full spin vector while Ln is a unit vector
|
|
17
|
+
|
|
18
|
+
''' Eqs.(3.8) of Ajith (2011) (http://arxiv.org/pdf/1107.1267v2.pdf)'''
|
|
19
|
+
|
|
20
|
+
m = m1+m2
|
|
21
|
+
deltam = m1-m2
|
|
22
|
+
eta = (m1*m2)/(m1+m2)**2.
|
|
23
|
+
return (v**5./m)*((3./4+eta/2.-3.*deltam/m/4.)*Ln+0.5*v/m**2.*(-3.0*np.dot((S2 +(m2/m1)*S1), Ln)*Ln+S2)+v**2.*(9./16.+5.*eta/4.-eta**2./24.-9.*deltam/m/16.+5.*deltam*eta/8./m)*Ln)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
""" compute the re-expanded dEnergy/flux """
|
|
27
|
+
def denergy_by_flux(v, eta, delta, chiadL, chisdL, chiasqr, chissqr, chisdchia, order):
|
|
28
|
+
|
|
29
|
+
''' Eqs.(3.2) of Ajith (2011) http://arxiv.org/pdf/1107.1267v2.pdf '''
|
|
30
|
+
|
|
31
|
+
# different powers of v
|
|
32
|
+
v2 = v*v; v3 = v2*v; v4 = v3*v; v5 = v4*v; v6 = v5*v; v7 = v6*v; v9 = v7*v2
|
|
33
|
+
|
|
34
|
+
# initialize the cofficients
|
|
35
|
+
dEbF0 = dEbF2 = dEbF3 = dEbF4 = dEbF5 = dEbF6 = dEbF6L = dEbF7 = 0.
|
|
36
|
+
|
|
37
|
+
if order >= 0:
|
|
38
|
+
dEbF0 = -5./(32.*eta)
|
|
39
|
+
if order >= 2:
|
|
40
|
+
dEbF2 = 2.2113095238095237 + (11*eta)/4.
|
|
41
|
+
if order >= 3:
|
|
42
|
+
dEbF3 = (113*chiadL*delta)/12. + chisdL*(9.416666666666666 - (19.*eta)/3.) - 4.*PI
|
|
43
|
+
if order >= 4:
|
|
44
|
+
dEbF4 = 3.010315295099521 + (233*chisdchia*delta)/48. - (719.*chiadL*chisdL*delta)/48. + \
|
|
45
|
+
chiasqr*(2.4270833333333335 - 10.*eta) + chisdL*chisdL*(-7.489583333333333 - eta/24.) + \
|
|
46
|
+
chissqr*(2.4270833333333335 + (7.*eta)/24.) + (5429.*eta)/1008. + (617*eta*eta)/144. + \
|
|
47
|
+
chiadL*chiadL*(-7.489583333333333 + 30.*eta)
|
|
48
|
+
if order >= 5:
|
|
49
|
+
dEbF5 = chiadL*delta*(72.71676587301587 + (7*eta)/2.) + chisdL*(72.71676587301587 - \
|
|
50
|
+
(1213*eta)/18. - 17*eta*eta/2.) - (7729*PI)/672. + (13*eta*PI)/8.
|
|
51
|
+
if order >= 6:
|
|
52
|
+
dEbF6 = -115.2253249962622 - 15211*eta*eta/6912. + 25565*eta*eta*eta/5184. + \
|
|
53
|
+
32*PI*PI/3. + eta*(258.1491854023631 - 451*PI*PI/48.) + (1712*GAMMA)/105.
|
|
54
|
+
dEbF6L = 1712./105.
|
|
55
|
+
if order >= 7:
|
|
56
|
+
dEbF7 = (-15419335.*PI)/1.016064e6 - (75703.*eta*PI)/6048. + (14809.*eta*eta*PI)/3024.
|
|
57
|
+
|
|
58
|
+
return (dEbF0/v9)*(1. + dEbF2*v2 + dEbF3*v3 + dEbF4*v4 + dEbF5*v5 + (dEbF6+dEbF6L*log(4.*v))*v6 + dEbF7*v7)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def precession_eqns(t, y_vec, m1, m2):
|
|
62
|
+
""" The coupled set of ODEs containing the PN precession eqns as well as the evolution of dv/dt
|
|
63
|
+
All these equations are listed in Ajith (2011) (http://arxiv.org/pdf/1107.1267v2.pdf).
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
# unpack the vector of variables
|
|
67
|
+
v, S1x, S1y, S1z, S2x, S2y, S2z, Lx, Ly, Lz = y_vec
|
|
68
|
+
|
|
69
|
+
m1_sqr = m1*m1
|
|
70
|
+
m2_sqr = m2*m2
|
|
71
|
+
m = m1+m2
|
|
72
|
+
eta = m1*m2/(m1+m2)**2
|
|
73
|
+
delta = (m1-m2)/(m1+m2)
|
|
74
|
+
|
|
75
|
+
# spin and angular momentum vectors
|
|
76
|
+
Ln = np.array([Lx, Ly, Lz])
|
|
77
|
+
S1 = np.array([S1x, S1y, S1z])
|
|
78
|
+
S2 = np.array([S2x, S2y, S2z])
|
|
79
|
+
chi1 = S1/m1_sqr
|
|
80
|
+
chi2 = S2/m2_sqr
|
|
81
|
+
chi_s = (chi1+chi2)/2.
|
|
82
|
+
chi_a = (chi1-chi2)/2.
|
|
83
|
+
|
|
84
|
+
#print 'v = ', v , ' chi1 = ', chi1, ' chi2 = ', chi2
|
|
85
|
+
|
|
86
|
+
# dot products
|
|
87
|
+
chiadL = np.dot(chi_a, Ln)
|
|
88
|
+
chisdL = np.dot(chi_s, Ln)
|
|
89
|
+
chissqr = np.dot(chi_s, chi_s)
|
|
90
|
+
chiasqr = np.dot(chi_a, chi_a)
|
|
91
|
+
chisdchia = np.dot(chi_s, chi_a)
|
|
92
|
+
|
|
93
|
+
# magnitude of the orb ang momentum. The prefactor of dLN/dt in Eq.(3.6) of Ajith (2011)
|
|
94
|
+
Lmag = (eta*m**2./v)*(1.+(1.5+eta/6.)*v**2.)
|
|
95
|
+
|
|
96
|
+
# precession freqs. Eqs.(3.8) of Ajith (2011)
|
|
97
|
+
Omega1= Omega(v, m1, m2, S1, S2, Ln)
|
|
98
|
+
Omega2= Omega(v, m2, m1, S2, S1, Ln)
|
|
99
|
+
|
|
100
|
+
# spin precession eqns. Eqs.(3.7) of Ajith (2011)
|
|
101
|
+
dS1_dt = np.cross(Omega1, S1)
|
|
102
|
+
dS2_dt = np.cross(Omega2, S2)
|
|
103
|
+
|
|
104
|
+
# ang momentum precession eqn. Eqs.(3.6) of Ajith (2011)
|
|
105
|
+
dL_dt =-(dS1_dt+dS2_dt)/Lmag
|
|
106
|
+
|
|
107
|
+
# orb frequency evolution. Eqs.(3.5) of Ajith (2011)
|
|
108
|
+
dv_dt = -1./(m*denergy_by_flux(v, eta, delta, chiadL, chisdL, chiasqr, chissqr, chisdchia, 7))
|
|
109
|
+
|
|
110
|
+
return [dv_dt, dS1_dt[0], dS1_dt[1], dS1_dt[2], dS2_dt[0], dS2_dt[1], dS2_dt[2], dL_dt[0], dL_dt[1], dL_dt[2]]
|
|
111
|
+
|
|
112
|
+
def evolve_spins_dt(v0, m1, m2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, Lnx, Lny, Lnz, v_final, dt):
|
|
113
|
+
""" evolve the spins and orb ang momentum according to the PN precession eqns."""
|
|
114
|
+
|
|
115
|
+
# Set maximum dv/dt for stopping condition
|
|
116
|
+
|
|
117
|
+
dvdt_max = 1.e-4
|
|
118
|
+
|
|
119
|
+
# Set maximum deviation from v_final allowed (unless dv/dt is greater than dvdt_max or negative, in which case just print a warning)
|
|
120
|
+
|
|
121
|
+
delta_vf_max = 1.e-2
|
|
122
|
+
|
|
123
|
+
# Set largest deviation from normalization of orbital angular momentum allowed
|
|
124
|
+
|
|
125
|
+
delta_Lnorm_max = 1.e-8
|
|
126
|
+
|
|
127
|
+
# Give indices for various quantities in the solution vector
|
|
128
|
+
|
|
129
|
+
V_POS = 0 # Location of v (and thus dv/dt)
|
|
130
|
+
|
|
131
|
+
LNX_POS = 7 # Location of the x component of Ln
|
|
132
|
+
LNY_POS = 8 # Location of the y component of Ln
|
|
133
|
+
LNZ_POS = 9 # Location of the z component of Ln
|
|
134
|
+
|
|
135
|
+
# some sanity checks
|
|
136
|
+
if m1<0:
|
|
137
|
+
raise ValueError("ERROR: mass1 is negative")
|
|
138
|
+
if m2<0:
|
|
139
|
+
raise ValueError("ERROR: mass2 is negative")
|
|
140
|
+
if (chi1x**2+chi1y**2+chi1z**2)>1.:
|
|
141
|
+
raise ValueError("ERROR: magnitude of spin1 is greater than 1")
|
|
142
|
+
if (chi2x**2+chi2y**2+chi2z**2)>1.:
|
|
143
|
+
raise ValueError("ERROR: magnitude of spin2 is greater than 1")
|
|
144
|
+
if dt<0:
|
|
145
|
+
raise ValueError("ERROR: time step is negative")
|
|
146
|
+
|
|
147
|
+
m1_sqr = m1*m1
|
|
148
|
+
m2_sqr = m2*m2
|
|
149
|
+
|
|
150
|
+
# pack the inputs
|
|
151
|
+
y_vec0 = [v0, chi1x*m1_sqr, chi1y*m1_sqr, chi1z*m1_sqr, chi2x*m2_sqr, chi2y*m2_sqr, chi2z*m2_sqr, Lnx, Lny, Lnz]
|
|
152
|
+
t0 = 0.
|
|
153
|
+
|
|
154
|
+
# Defining chi_eff and Newtonian chirp time. T_MAX is set to twice of chirp time.
|
|
155
|
+
chi_eff = lalsim.SimInspiralTaylorF2ReducedSpinComputeChi(m1, m2, chi1z, chi2z)
|
|
156
|
+
T_MAX = 2.* lalsim.SimInspiralTaylorF2ReducedSpinChirpTime(v0**3./(PI*(m1+m2)*MTSUN_SI), m1*MSUN_SI, m2*MSUN_SI, chi_eff, 0)/MTSUN_SI
|
|
157
|
+
R_TOL = 1e-6
|
|
158
|
+
A_TOL = 1e-6
|
|
159
|
+
|
|
160
|
+
#print("T_MAX = %f"%(T_MAX))
|
|
161
|
+
|
|
162
|
+
# initialize the ODE solver
|
|
163
|
+
backend = "dopri5"
|
|
164
|
+
solver = ode(precession_eqns)
|
|
165
|
+
solver.set_integrator(backend, atol=R_TOL, rtol=R_TOL) # nsteps=1
|
|
166
|
+
solver.set_initial_value(y_vec0, t0)
|
|
167
|
+
solver.set_f_params(m1, m2)
|
|
168
|
+
|
|
169
|
+
y_result = []
|
|
170
|
+
t_output = []
|
|
171
|
+
y_result.append(y_vec0)
|
|
172
|
+
t_output.append(t0)
|
|
173
|
+
|
|
174
|
+
# Set diagnostic quantities to some initial values that won't trigger any stopping conditions
|
|
175
|
+
|
|
176
|
+
v_current = 0.
|
|
177
|
+
dvdt_current = 1.e-5
|
|
178
|
+
Lnorm_current = 1.
|
|
179
|
+
|
|
180
|
+
# evolve the eqns
|
|
181
|
+
while solver.successful() and solver.t < 2.*T_MAX and v_current <= v_final and dvdt_current > 0. and dvdt_current < dvdt_max and abs(Lnorm_current - 1.) < delta_Lnorm_max:
|
|
182
|
+
|
|
183
|
+
solver.integrate(solver.t + dt, step=1)
|
|
184
|
+
y_result.append(solver.y)
|
|
185
|
+
t_output.append(solver.t)
|
|
186
|
+
|
|
187
|
+
#print '... t = ', solver.t, ' y = ', solver.y
|
|
188
|
+
|
|
189
|
+
v_current = solver.y[V_POS]
|
|
190
|
+
dvdt_current = precession_eqns(solver.t,solver.y,m1,m2)[V_POS]
|
|
191
|
+
Lnorm_current = np.sqrt((solver.y[LNX_POS])**2+(solver.y[LNY_POS])**2+(solver.y[LNZ_POS])**2)
|
|
192
|
+
|
|
193
|
+
Y = np.array(y_result)
|
|
194
|
+
t = np.array(t_output)
|
|
195
|
+
|
|
196
|
+
# Check if the integration stopped more than delta_vf_max away from v_final. If so, check if this occurred because dv/dt became larger than dvdt_max or negative. In this case, print a warning and remove the offending data, else raise an error
|
|
197
|
+
|
|
198
|
+
v_last = Y.T[V_POS][-1]
|
|
199
|
+
|
|
200
|
+
if abs(v_last-v_final) > delta_vf_max:
|
|
201
|
+
if dvdt_current <= 0 or dvdt_current > dvdt_max:
|
|
202
|
+
Y = np.delete(Y, -1, axis = 0)
|
|
203
|
+
print("Warning: Integration stopped at v_max = {0}, more than {1} different from v_final = {2}, because dv/dt became negative or exceeded {3}, with a value of {4}. The final value used is {5}.".format(v_last, delta_vf_max, v_final, dvdt_max, dvdt_current, precession_eqns(t,Y[-1],m1,m2)[V_POS]))
|
|
204
|
+
else:
|
|
205
|
+
raise ValueError("v_max = {0} is more than {1} different from v_final = {2} and dv/dt is positive and less than {3}".format(v_v[-1], delta_vf, v_final, dvdt_max))
|
|
206
|
+
|
|
207
|
+
if abs(Lnorm_current - 1.) >= delta_Lnorm_max:
|
|
208
|
+
raise ValueError("norm of Ln is more than {0:e} different from 1, with distance {1:e}".format(delta_Lnorm_max, abs(Lnorm_current - 1.)))
|
|
209
|
+
|
|
210
|
+
v_v, S1x_v, S1y_v, S1z_v, S2x_v, S2y_v, S2z_v, Lx_v, Ly_v, Lz_v = Y.T
|
|
211
|
+
|
|
212
|
+
return v_v, S1x_v/m1_sqr, S1y_v/m1_sqr, S1z_v/m1_sqr, S2x_v/m2_sqr, S2y_v/m2_sqr, S2z_v/m2_sqr, Lx_v, Ly_v, Lz_v
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def find_tilts_and_phi12_at_freq(v0, m1, m2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, Lnx, Lny, Lnz, v_final, dt):
|
|
216
|
+
""" given the spins and ang momentum at a given frequency, find the tilt and in-plane spin angles at a later frequency """
|
|
217
|
+
|
|
218
|
+
print("v0 = %f, m1 = %f, m2 = %f, chi1x = %f, chi1y = %f, chi1z = %f, chi2x = %f, chi2y = %f, chi2z = %f"%(v0, m1, m2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z))
|
|
219
|
+
|
|
220
|
+
# evolve the spins
|
|
221
|
+
v_v, chi1x_v, chi1y_v, chi1z_v, chi2x_v, chi2y_v, chi2z_v, Lnx_v, Lny_v, Lnz_v = evolve_spins_dt(v0, m1, m2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, Lnx, Lny, Lnz, v_final, dt)
|
|
222
|
+
|
|
223
|
+
chi1_v = np.array([chi1x_v[-1], chi1y_v[-1], chi1z_v[-1]])
|
|
224
|
+
chi2_v = np.array([chi2x_v[-1], chi2y_v[-1], chi2z_v[-1]])
|
|
225
|
+
|
|
226
|
+
Ln_v = np.array([Lnx_v[-1], Lny_v[-1], Lnz_v[-1]])
|
|
227
|
+
|
|
228
|
+
# norms and normalizing
|
|
229
|
+
chi1_norm = norm(chi1_v)
|
|
230
|
+
chi2_norm = norm(chi2_v)
|
|
231
|
+
|
|
232
|
+
Ln_v /= norm(Ln_v)
|
|
233
|
+
|
|
234
|
+
# dot products
|
|
235
|
+
chi1dL_v = np.dot(chi1_v, Ln_v)
|
|
236
|
+
chi2dL_v = np.dot(chi2_v, Ln_v)
|
|
237
|
+
|
|
238
|
+
# in-plane spins
|
|
239
|
+
|
|
240
|
+
chi1inplane = chi1_v - chi1dL_v*Ln_v
|
|
241
|
+
chi2inplane = chi2_v - chi2dL_v*Ln_v
|
|
242
|
+
|
|
243
|
+
# Defining cosine of tilts and phi12
|
|
244
|
+
cos_tilt1 = chi1dL_v/chi1_norm
|
|
245
|
+
cos_tilt2 = chi2dL_v/chi2_norm
|
|
246
|
+
cos_phi12 = np.dot(chi1inplane,chi2inplane)/(norm(chi1inplane)*norm(chi2inplane))
|
|
247
|
+
|
|
248
|
+
print("cos tilt1 = %f, cos tilt2 = %f, cos phi12 = %f"%(cos_tilt1, cos_tilt2, cos_phi12))
|
|
249
|
+
|
|
250
|
+
return np.arccos(cos_tilt1), np.arccos(cos_tilt2), np.arccos(cos_phi12)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright (C) 2016-2018 Leo Singer
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify it
|
|
4
|
+
# under the terms of the GNU General Public License as published by the
|
|
5
|
+
# Free Software Foundation; either version 2 of the License, or (at your
|
|
6
|
+
# option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful, but
|
|
9
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
11
|
+
# Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
16
|
+
#
|
|
17
|
+
from __future__ import absolute_import
|
|
18
|
+
import os
|
|
19
|
+
import pkgutil
|
|
20
|
+
|
|
21
|
+
__all__ = ()
|
|
22
|
+
|
|
23
|
+
# Import all symbols from all submodules of this module.
|
|
24
|
+
for _, module, _ in pkgutil.iter_modules([os.path.dirname(__file__)]):
|
|
25
|
+
exec('from . import {0};'
|
|
26
|
+
'__all__ += getattr({0}, "__all__", ());'
|
|
27
|
+
'from .{0} import *'.format(module))
|
|
28
|
+
del module
|
|
29
|
+
|
|
30
|
+
# Clean up
|
|
31
|
+
del os, pkgutil
|
lalinference/io/hdf5.py
ADDED
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# Copyright (C) 2016 Leo Singer, John Veitch
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify it
|
|
4
|
+
# under the terms of the GNU General Public License as published by the
|
|
5
|
+
# Free Software Foundation; either version 2 of the License, or (at your
|
|
6
|
+
# option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful, but
|
|
9
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
11
|
+
# Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
16
|
+
#
|
|
17
|
+
"""
|
|
18
|
+
Reading HDF5 posterior sample chain HDF5 files.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
import numpy as np
|
|
22
|
+
import h5py
|
|
23
|
+
from astropy.table import Column, Table
|
|
24
|
+
from lalinference import LALInferenceHDF5PosteriorSamplesDatasetName \
|
|
25
|
+
as POSTERIOR_SAMPLES
|
|
26
|
+
from lalinference import LALINFERENCE_PARAM_FIXED as FIXED
|
|
27
|
+
from lalinference import LALINFERENCE_PARAM_OUTPUT as OUTPUT
|
|
28
|
+
|
|
29
|
+
__all__ = ('read_samples', 'write_samples', 'extract_metadata')
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _identity(x):
|
|
33
|
+
return x
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
_colname_map = (('rightascension', 'ra', _identity),
|
|
37
|
+
('declination', 'dec', _identity),
|
|
38
|
+
('logdistance', 'dist', np.exp),
|
|
39
|
+
('distance', 'dist', _identity),
|
|
40
|
+
('polarisation', 'psi', _identity),
|
|
41
|
+
('chirpmass', 'mc', _identity),
|
|
42
|
+
('a_spin1', 'a1', _identity),
|
|
43
|
+
('a_spin2', 'a2', _identity),
|
|
44
|
+
('tilt_spin1', 'tilt1', _identity),
|
|
45
|
+
('tilt_spin2', 'tilt2', _identity))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _remap_colnames(table):
|
|
49
|
+
for old_name, new_name, func in _colname_map:
|
|
50
|
+
if old_name in table.colnames:
|
|
51
|
+
table[new_name] = func(table.columns.pop(old_name))
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _find_table(group, tablename):
|
|
55
|
+
"""Recursively search an HDF5 group or file for a dataset by name.
|
|
56
|
+
|
|
57
|
+
Parameters
|
|
58
|
+
----------
|
|
59
|
+
group : `h5py.File` or `h5py.Group`
|
|
60
|
+
The file or group to search
|
|
61
|
+
tablename : str
|
|
62
|
+
The name of the table to search for
|
|
63
|
+
|
|
64
|
+
Returns
|
|
65
|
+
-------
|
|
66
|
+
table : `h5py.Dataset`
|
|
67
|
+
The dataset whose name is `tablename`
|
|
68
|
+
|
|
69
|
+
Raises
|
|
70
|
+
------
|
|
71
|
+
KeyError
|
|
72
|
+
If the table is not found or if multiple matching tables are found
|
|
73
|
+
|
|
74
|
+
Check that we can find a file by name:
|
|
75
|
+
>>> import os.path
|
|
76
|
+
>>> from tempfile import TemporaryDirectory
|
|
77
|
+
>>> table = Table(np.eye(3), names=['a', 'b', 'c'])
|
|
78
|
+
>>> with TemporaryDirectory() as dir:
|
|
79
|
+
... filename = os.path.join(dir, 'test.hdf5')
|
|
80
|
+
... table.write(filename, path='foo/bar', append=True)
|
|
81
|
+
... table.write(filename, path='foo/bat', append=True)
|
|
82
|
+
... table.write(filename, path='foo/xyzzy/bat', append=True)
|
|
83
|
+
... with h5py.File(filename, 'r') as f:
|
|
84
|
+
... _find_table(f, 'bar')
|
|
85
|
+
<HDF5 dataset "bar": shape (3,), type "|V24">
|
|
86
|
+
|
|
87
|
+
Check that an exception is raised if the table is not found:
|
|
88
|
+
>>> with TemporaryDirectory() as dir:
|
|
89
|
+
... filename = os.path.join(dir, 'test.hdf5')
|
|
90
|
+
... table.write(filename, path='foo/bar', append=True)
|
|
91
|
+
... table.write(filename, path='foo/bat', append=True)
|
|
92
|
+
... table.write(filename, path='foo/xyzzy/bat', append=True)
|
|
93
|
+
... with h5py.File(filename, 'r') as f:
|
|
94
|
+
... _find_table(f, 'plugh')
|
|
95
|
+
Traceback (most recent call last):
|
|
96
|
+
...
|
|
97
|
+
KeyError: 'Table not found: plugh'
|
|
98
|
+
|
|
99
|
+
Check that an exception is raised if multiple tables are found:
|
|
100
|
+
>>> with TemporaryDirectory() as dir:
|
|
101
|
+
... filename = os.path.join(dir, 'test.hdf5')
|
|
102
|
+
... table.write(filename, path='foo/bar', append=True)
|
|
103
|
+
... table.write(filename, path='foo/bat', append=True)
|
|
104
|
+
... table.write(filename, path='foo/xyzzy/bat', append=True)
|
|
105
|
+
... with h5py.File(filename, 'r') as f:
|
|
106
|
+
... _find_table(f, 'bat')
|
|
107
|
+
Traceback (most recent call last):
|
|
108
|
+
...
|
|
109
|
+
KeyError: 'Multiple tables called bat exist: foo/bat, foo/xyzzy/bat'
|
|
110
|
+
"""
|
|
111
|
+
results = {}
|
|
112
|
+
|
|
113
|
+
def visitor(key, value):
|
|
114
|
+
_, _, name = key.rpartition('/')
|
|
115
|
+
if name == tablename:
|
|
116
|
+
results[key] = value
|
|
117
|
+
|
|
118
|
+
group.visititems(visitor)
|
|
119
|
+
|
|
120
|
+
if len(results) == 0:
|
|
121
|
+
raise KeyError('Table not found: {0}'.format(tablename))
|
|
122
|
+
|
|
123
|
+
if len(results) > 1:
|
|
124
|
+
raise KeyError('Multiple tables called {0} exist: {1}'.format(
|
|
125
|
+
tablename, ', '.join(sorted(results.keys()))))
|
|
126
|
+
|
|
127
|
+
table, = results.values()
|
|
128
|
+
return table
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def read_samples(filename, path=None, tablename=POSTERIOR_SAMPLES):
|
|
132
|
+
"""Read an HDF5 sample chain file.
|
|
133
|
+
|
|
134
|
+
Parameters
|
|
135
|
+
----------
|
|
136
|
+
filename : str
|
|
137
|
+
The path of the HDF5 file on the filesystem.
|
|
138
|
+
path : str, optional
|
|
139
|
+
The path of the dataset within the HDF5 file.
|
|
140
|
+
tablename : str, optional
|
|
141
|
+
The name of table to search for recursively within the HDF5 file.
|
|
142
|
+
By default, search for 'posterior_samples'.
|
|
143
|
+
|
|
144
|
+
Returns
|
|
145
|
+
-------
|
|
146
|
+
table : `astropy.table.Table`
|
|
147
|
+
The sample chain as an Astropy table.
|
|
148
|
+
|
|
149
|
+
Test reading a file written using the Python API:
|
|
150
|
+
>>> import os.path
|
|
151
|
+
>>> from tempfile import TemporaryDirectory
|
|
152
|
+
>>> table = Table([
|
|
153
|
+
... Column(np.ones(10), name='foo', meta={'vary': FIXED}),
|
|
154
|
+
... Column(np.arange(10), name='bar', meta={'vary': LINEAR}),
|
|
155
|
+
... Column(np.arange(10) * np.pi, name='bat', meta={'vary': CIRCULAR}),
|
|
156
|
+
... Column(np.arange(10), name='baz', meta={'vary': OUTPUT})
|
|
157
|
+
... ])
|
|
158
|
+
>>> with TemporaryDirectory() as dir:
|
|
159
|
+
... filename = os.path.join(dir, 'test.hdf5')
|
|
160
|
+
... write_samples(table, filename, path='foo/bar/posterior_samples')
|
|
161
|
+
... len(read_samples(filename))
|
|
162
|
+
10
|
|
163
|
+
|
|
164
|
+
Test reading a file that was written using the LAL HDF5 C API:
|
|
165
|
+
>>> table = read_samples('test.hdf5')
|
|
166
|
+
>>> table.colnames
|
|
167
|
+
['uvw', 'opq', 'lmn', 'ijk', 'def', 'abc', 'rst', 'ghi']
|
|
168
|
+
"""
|
|
169
|
+
with h5py.File(filename, 'r') as f:
|
|
170
|
+
if path is not None: # Look for a given path
|
|
171
|
+
table = f[path]
|
|
172
|
+
else: # Look for a given table name
|
|
173
|
+
table = _find_table(f, tablename)
|
|
174
|
+
table = Table.read(table)
|
|
175
|
+
|
|
176
|
+
# Restore vary types.
|
|
177
|
+
for i, column in enumerate(table.columns.values()):
|
|
178
|
+
column.meta['vary'] = table.meta['FIELD_{0}_VARY'.format(i)]
|
|
179
|
+
|
|
180
|
+
# Restore fixed columns from table attributes.
|
|
181
|
+
for key, value in table.meta.items():
|
|
182
|
+
# Skip attributes from H5TB interface
|
|
183
|
+
# (https://www.hdfgroup.org/HDF5/doc/HL/H5TB_Spec.html).
|
|
184
|
+
if key == 'CLASS' or key == 'VERSION' or key == 'TITLE' or key.startswith('FIELD_'):
|
|
185
|
+
continue
|
|
186
|
+
if key in table.colnames:
|
|
187
|
+
# This is handled separately as rename_duplicate can trigger a bug in astropy < 2.0.16
|
|
188
|
+
table.add_column(Column([value] * len(table), name=key,
|
|
189
|
+
meta={'vary': FIXED}), rename_duplicate=True)
|
|
190
|
+
else:
|
|
191
|
+
table.add_column(Column([value] * len(table), name=key,
|
|
192
|
+
meta={'vary': FIXED}))
|
|
193
|
+
|
|
194
|
+
# Delete remaining table attributes.
|
|
195
|
+
table.meta.clear()
|
|
196
|
+
|
|
197
|
+
# Normalize column names.
|
|
198
|
+
_remap_colnames(table)
|
|
199
|
+
|
|
200
|
+
# Done!
|
|
201
|
+
return table
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def write_samples(table, filename, metadata=None, **kwargs):
|
|
205
|
+
"""Write an HDF5 sample chain file.
|
|
206
|
+
|
|
207
|
+
Parameters
|
|
208
|
+
----------
|
|
209
|
+
table : `astropy.table.Table`
|
|
210
|
+
The sample chain as an Astropy table.
|
|
211
|
+
filename : str
|
|
212
|
+
The path of the HDF5 file on the filesystem.
|
|
213
|
+
metadata: dict (optional)
|
|
214
|
+
Dictionary of (path, value) pairs of metadata attributes
|
|
215
|
+
to add to the output file
|
|
216
|
+
kwargs: dict
|
|
217
|
+
Any keyword arguments for `astropy.table.Table.write`.
|
|
218
|
+
|
|
219
|
+
Check that we catch columns that are supposed to be FIXED but are not:
|
|
220
|
+
>>> table = Table([
|
|
221
|
+
... Column(np.arange(10), name='foo', meta={'vary': FIXED})
|
|
222
|
+
... ])
|
|
223
|
+
>>> write_samples(table, 'bar.hdf5', 'bat/baz') # doctest: +ELLIPSIS
|
|
224
|
+
Traceback (most recent call last):
|
|
225
|
+
...
|
|
226
|
+
AssertionError:
|
|
227
|
+
Arrays are not equal
|
|
228
|
+
Column foo is a fixed column, but its values are not identical
|
|
229
|
+
...
|
|
230
|
+
|
|
231
|
+
And now try writing an arbitrary example to a temporary file.
|
|
232
|
+
>>> import os.path
|
|
233
|
+
>>> from tempfile import TemporaryDirectory
|
|
234
|
+
>>> table = Table([
|
|
235
|
+
... Column(np.ones(10), name='foo', meta={'vary': FIXED}),
|
|
236
|
+
... Column(np.arange(10), name='bar', meta={'vary': LINEAR}),
|
|
237
|
+
... Column(np.arange(10) * np.pi, name='bat', meta={'vary': CIRCULAR}),
|
|
238
|
+
... Column(np.arange(10), name='baz', meta={'vary': OUTPUT})
|
|
239
|
+
... ])
|
|
240
|
+
>>> with TemporaryDirectory() as dir:
|
|
241
|
+
... write_samples(
|
|
242
|
+
... table, os.path.join(dir, 'test.hdf5'), path='bat/baz')
|
|
243
|
+
"""
|
|
244
|
+
# Copy the table so that we do not modify the original.
|
|
245
|
+
table = table.copy()
|
|
246
|
+
|
|
247
|
+
# Make sure that all tables have a 'vary' type.
|
|
248
|
+
for column in table.columns.values():
|
|
249
|
+
if 'vary' not in column.meta:
|
|
250
|
+
if np.all(column[0] == column[1:]):
|
|
251
|
+
column.meta['vary'] = FIXED
|
|
252
|
+
else:
|
|
253
|
+
column.meta['vary'] = OUTPUT
|
|
254
|
+
# Reconstruct table attributes.
|
|
255
|
+
for colname, column in tuple(table.columns.items()):
|
|
256
|
+
if column.meta['vary'] == FIXED:
|
|
257
|
+
np.testing.assert_array_equal(column[1:], column[0],
|
|
258
|
+
'Column {0} is a fixed column, but '
|
|
259
|
+
'its values are not identical'
|
|
260
|
+
.format(column.name))
|
|
261
|
+
table.meta[colname] = column[0]
|
|
262
|
+
del table[colname]
|
|
263
|
+
for i, column in enumerate(table.columns.values()):
|
|
264
|
+
table.meta['FIELD_{0}_VARY'.format(i)] = column.meta['vary']
|
|
265
|
+
table.write(filename, format='hdf5', **kwargs)
|
|
266
|
+
if metadata:
|
|
267
|
+
with h5py.File(filename, 'a') as hdf:
|
|
268
|
+
for internal_path, attributes in metadata.items():
|
|
269
|
+
for key, value in attributes.items():
|
|
270
|
+
try:
|
|
271
|
+
hdf[internal_path].attrs[key] = value
|
|
272
|
+
except KeyError:
|
|
273
|
+
raise KeyError(
|
|
274
|
+
'Unable to set metadata {0}[{1}] = {2}'.format(
|
|
275
|
+
internal_path, key, value))
|
|
276
|
+
|
|
277
|
+
def update_metadata(metadata, level, attrs, strict_versions, collision='raise'):
|
|
278
|
+
"""Updates the sub-dictionary 'key' of 'metadata' with the values from
|
|
279
|
+
'attrs', while enforcing that existing values are equal to those with
|
|
280
|
+
which the dict is updated.
|
|
281
|
+
"""
|
|
282
|
+
if level not in metadata:
|
|
283
|
+
metadata[level] = {}
|
|
284
|
+
for key in attrs:
|
|
285
|
+
if key in metadata[level]:
|
|
286
|
+
if collision == 'raise':
|
|
287
|
+
if attrs[key]!=metadata[level][key]:
|
|
288
|
+
if key == 'version' and not strict_versions:
|
|
289
|
+
continue
|
|
290
|
+
else:
|
|
291
|
+
raise ValueError(
|
|
292
|
+
'Metadata mismatch on level %r for key %r:\n\t%r != %r'
|
|
293
|
+
% (level, key, attrs[key], metadata[level][key]))
|
|
294
|
+
elif collision == 'append':
|
|
295
|
+
if isinstance(metadata[level][key], list):
|
|
296
|
+
metadata[level][key].append(attrs[key])
|
|
297
|
+
else:
|
|
298
|
+
metadata[level][key] = [metadata[level][key], attrs[key]]
|
|
299
|
+
elif collision == 'ignore':
|
|
300
|
+
pass
|
|
301
|
+
else:
|
|
302
|
+
raise ValueError('Invalid value for collision: %r' % collision)
|
|
303
|
+
else:
|
|
304
|
+
metadata[level][key] = attrs[key]
|
|
305
|
+
return
|
|
306
|
+
|
|
307
|
+
def extract_metadata(filename, metadata, log_noise_evidences=[], log_max_likelihoods=[], nlive=[], dset_name=None, nest=False, strict_versions=True):
|
|
308
|
+
"""
|
|
309
|
+
Extract metadata from HDF5 sample chain file
|
|
310
|
+
|
|
311
|
+
Parameters
|
|
312
|
+
----------
|
|
313
|
+
filename : str
|
|
314
|
+
The path of the HDF5 file on the filesystem.
|
|
315
|
+
metadata : dict
|
|
316
|
+
Dict into which to place metadata
|
|
317
|
+
log_noise_evidences : array (optional)
|
|
318
|
+
Array into which to place log noise evidences (if nest = True)
|
|
319
|
+
log_max_likelihoods : array (optional)
|
|
320
|
+
Array into which to place log max likelihoods (if nest = True)
|
|
321
|
+
nlive : array (optional)
|
|
322
|
+
Array into which to place number of live points (if nest = True)
|
|
323
|
+
return_run_identifier : Boolean (optional : default False)
|
|
324
|
+
Whether to return the run identifier
|
|
325
|
+
nest : Boolean (optional : default False)
|
|
326
|
+
Whether to output quantities that only exist for nest runs
|
|
327
|
+
|
|
328
|
+
Returns
|
|
329
|
+
-------
|
|
330
|
+
run_identifier : str
|
|
331
|
+
The run identifier
|
|
332
|
+
"""
|
|
333
|
+
with h5py.File(filename, 'r') as hdf:
|
|
334
|
+
# walk down the groups until the actual data is reached, storing
|
|
335
|
+
# metadata for each step.
|
|
336
|
+
current_level = '/lalinference'
|
|
337
|
+
group = hdf[current_level]
|
|
338
|
+
update_metadata(metadata, current_level, group.attrs, strict_versions)
|
|
339
|
+
|
|
340
|
+
if len(hdf[current_level].keys()) != 1:
|
|
341
|
+
raise KeyError('Multiple run-identifiers found: %r'
|
|
342
|
+
% list(hdf[current_level].keys()))
|
|
343
|
+
# we ensured above that there is only one identifier in the group.
|
|
344
|
+
run_identifier = list(hdf[current_level].keys())[0]
|
|
345
|
+
|
|
346
|
+
current_level = '/lalinference/' + run_identifier
|
|
347
|
+
group = hdf[current_level]
|
|
348
|
+
update_metadata(metadata, current_level, group.attrs, strict_versions, collision='append')
|
|
349
|
+
|
|
350
|
+
if nest:
|
|
351
|
+
# store the noise evidence and max likelihood seperately for later use
|
|
352
|
+
log_noise_evidences.append(group.attrs['log_noise_evidence'])
|
|
353
|
+
log_max_likelihoods.append(group.attrs['log_max_likelihood'])
|
|
354
|
+
nlive.append(group.attrs['number_live_points'])
|
|
355
|
+
|
|
356
|
+
# storing the metadata under the posterior_group name simplifies
|
|
357
|
+
# writing it into the output hdf file.
|
|
358
|
+
if dset_name == None:
|
|
359
|
+
dset_name = POSTERIOR_SAMPLES
|
|
360
|
+
current_level = '/lalinference/' + run_identifier + '/' + dset_name
|
|
361
|
+
current_level_posterior = '/lalinference/' + run_identifier + '/' + POSTERIOR_SAMPLES
|
|
362
|
+
group = hdf[current_level]
|
|
363
|
+
update_metadata(metadata, current_level_posterior, group.attrs, strict_versions, collision='ignore')
|
|
364
|
+
|
|
365
|
+
return run_identifier
|