PycWB 0.23.2__tar.gz → 0.25.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.
- {pycwb-0.23.2 → pycwb-0.25.0}/PKG-INFO +2 -1
- {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/PKG-INFO +2 -1
- {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/SOURCES.txt +8 -2
- {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/requires.txt +1 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/conf.py +1 -1
- pycwb-0.25.0/docs/source/schema.rst +15 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/envs/environment.yml +2 -1
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/_version.py +2 -2
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/batch_setup.py +19 -1
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/constants/user_parameters_schema.py +40 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/catalog/catalog.py +7 -7
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/whitening.py +1 -0
- pycwb-0.25.0/pycwb/modules/gracedb/__init__.py +1 -0
- pycwb-0.25.0/pycwb/modules/gracedb/gracedb.py +40 -0
- pycwb-0.25.0/pycwb/modules/gracedb/module.yaml +4 -0
- pycwb-0.25.0/pycwb/modules/gracedb/test_gracedb.py +27 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/dq_segment.py +41 -16
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/frame.py +47 -2
- pycwb-0.25.0/pycwb/modules/job_segment/job_segment.py +347 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/module.yaml +1 -1
- pycwb-0.25.0/pycwb/modules/job_segment/test_job_segment.py +30 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihood/likelihood.py +67 -56
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/read_data.py +45 -9
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/sparse_series/sparse_table.py +7 -3
- pycwb-0.25.0/pycwb/modules/superlag/module.yaml +4 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/workflow_utils/job_setup.py +1 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/xtalk_data.py +8 -8
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/data_quality_file.py +10 -21
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/job.py +37 -1
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network_cluster.py +3 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/sparse_series.py +9 -3
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/wdm_xtalk.py +6 -1
- pycwb-0.25.0/pycwb/utils/generate_params_table.py +53 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/yaml_helper.py +1 -1
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/batch.py +13 -9
- pycwb-0.25.0/pycwb/workflow/subflow/__init__.py +3 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/subflow/prepare_job_runs.py +42 -2
- pycwb-0.25.0/pycwb/workflow/subflow/process_job_segment.py +170 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/setup.py +1 -0
- pycwb-0.23.2/docs/source/schema.rst +0 -12
- pycwb-0.23.2/pycwb/modules/job_segment/job_segment.py +0 -199
- pycwb-0.23.2/pycwb/workflow/subflow/__init__.py +0 -2
- pycwb-0.23.2/pycwb/workflow/subflow/process_job_segment.py +0 -115
- pycwb-0.23.2/pycwb/workflow/subflow/supercluster_and_likelihood.py +0 -86
- {pycwb-0.23.2 → pycwb-0.25.0}/.gitignore +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/.gitlab-ci.yml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/.readthedocs.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/LICENSE +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/MANIFEST.in +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/Makefile +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/dependency_links.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/top_level.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/README.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/README.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/README.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/generate_data_for_likelihood.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/performance_test_dpf.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/performance_test_opt_sky.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/README.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/generate_data.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/generate_data_2.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/performance_supercluster.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/bin/pycwb +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/bin/pycwb_search +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/bin/pycwb_show +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Biorthogonal.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Biorthogonal.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/CMakeLists.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Daubechies.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Daubechies.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/FourierCoefficients.icc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Haar.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Haar.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/LineFilter.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/LineFilter.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Makefile +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Meyer.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Meyer.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Symlet.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Symlet.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArray.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArray.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArraySSE.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArraySSE.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmObjArray.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmObjArray.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDM.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDM.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDMOverlap.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDMOverlap.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WaveDWT.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WaveDWT.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Wavelet.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Wavelet.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/alm.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/build.sh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cluster.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cluster.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cmake/FindHealpix.cmake +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cmake/FindeBBH.cmake +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cmake/install_function.cmake +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/constants.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/detector.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/detector.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/injection.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/injection.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/lossy.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/lossy.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/monster.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/monster.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netcluster.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netcluster.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netevent.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netevent.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netpixel.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netpixel.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/network.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/network.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/pycwb.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/rdfr.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/rdfr.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readframe.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readframe.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readfrfile.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readfrfile.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/regression.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/regression.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/skycoord.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/skymap.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/skymap.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/sseries.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/sseries.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/time.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/time.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wat.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watasm.S +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watasm_elf64.o +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watavx.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watbranch.in +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watfun.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wathash.in +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watplot.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watplot.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watsse.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wattag.in +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/waturl.in +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watversion.hh.in +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavearray.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavearray.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecomplex.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecomplex.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecor.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecor.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavefft.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavefft.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavelet_LinkDef.h +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavelinefilter.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavelinefilter.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/waverdc.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/waverdc.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wseries.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wseries.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wslice.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/0.installation_guide.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/1.initialisation_guide.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/3.run_pycwb_with_yaml_config.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/4.py_cwb_inet_2G.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/5.cwb2G_analyse.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/6.wat_codes_notes.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/Makefile +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/diagram.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/make.bat +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/_static/.keep +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/_templates/.keep +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/credit.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/index.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/install.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/mod_cwb.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/package.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_batch_inj.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_customized_wf_gen.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_injection.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_multi_injection.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_search.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorials.rst +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/workflow.png +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/envs/Dockerfile +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/envs/mamba/Dockerfile +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/autoencoder/pycwb_injection.ipynb +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/autoencoder/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/generate_parameters.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycwb_injection.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat0.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat1.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat2.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat4.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat0.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat1.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat2.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat4.txt +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/input/OPBM.period +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/input/OPBM_H1.frames +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/input/OPBM_L1.frames +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/pycwb_mdc.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/user_parameters_mdc.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/colab/pycWB_GW150914.ipynb +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/injection/pycwb_injection.ipynb +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/injection/wdmXTalk/OverlapCatalog16-1024.bin +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/lvk_sep_2023/demo.ipynb +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/multiple_injection/pycwb_injection.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/generate_parameters.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/coherence.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/coherence.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/likelihood.cc +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/likelihood.hh +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/dag/dag.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/dag/dask-prefect.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/dag/prefect_test.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger/server.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger/visualizition.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/.gitignore +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/README.md +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/index.html +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/package-lock.json +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/package.json +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/App.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/main.js +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/router/index.js +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/vite.config.js +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/performance/numba_test.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/performance/taichi_test.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/search.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/batch_runner.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/flow.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/merge_catalog.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/run.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/server.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/xtalk.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/config/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/config/config.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/constants/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/constants/project_constants.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/autoencoder.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/catalog/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/catalog/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/coherence.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/coherence_lite.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/condor/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/condor/condor.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/condor/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/cluster.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/pixel.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/series.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/data_conditioning.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/regression.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/energy_threshold/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/energy_threshold/threshold.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/plots.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/super_lag.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihood/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihood/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/dpf.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/dpf_cython.pyx +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/likelihood.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/sky_stat.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/utils.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/logger/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/logger/logger.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/logger/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/cluster_statistics.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/event.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/spectrogram.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/waveform.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_data_quality/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_data_quality/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_data_quality/plot.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_map/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_map/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_map/world_map.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/data_check.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/data_find.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/mdc.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/reconstruction/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/reconstruction/getMRAwaveform.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/reconstruction/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/sparse_series/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/sparse_series/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/eff.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/eff_plot.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/merge.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/sigmoid_fit.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/sub_net_cut.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/super_cluster.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/supercluster.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/utils.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/supercluster_naive/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/supercluster_naive/supercluster2.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/superlag/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/superlag/superlag.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/web_viewer/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/web_viewer/create.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/web_viewer/module.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/workflow_utils/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/monster.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/monster_old.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/pycwb_flow.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/tasks/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/tasks/builtin.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/detector.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network_event.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network_pixel.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/time_frequency_series.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/wdm.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/async_write.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/check_ROOT.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/conversions/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/conversions/timeseries.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/dataclass_object_io.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/dep_check.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/image.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/module.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/network.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/parser.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/skymap_coord.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/autoencoder/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/example.yaml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/lib/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/web_viewer/event_dump.html +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/web_viewer/styles.css +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/web_viewer/viewer.html +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/__init__.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/merge.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/run.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/subflow/postprocess_and_plots.py +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/pyproject.toml +0 -0
- {pycwb-0.23.2 → pycwb-0.25.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PycWB
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.25.0
|
|
4
4
|
Summary: A Python package for coherent gravitational wave burst analysis
|
|
5
5
|
Home-page: https://git.ligo.org/yumeng.xu/pycwb
|
|
6
6
|
Author-email: The PycWB team <yumeng.xu@ligo.org>
|
|
@@ -31,6 +31,7 @@ Requires-Dist: prefect-dask
|
|
|
31
31
|
Requires-Dist: dask
|
|
32
32
|
Requires-Dist: dask_jobqueue
|
|
33
33
|
Requires-Dist: htcondor
|
|
34
|
+
Requires-Dist: psutil
|
|
34
35
|
|
|
35
36
|
# PycWB
|
|
36
37
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PycWB
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.25.0
|
|
4
4
|
Summary: A Python package for coherent gravitational wave burst analysis
|
|
5
5
|
Home-page: https://git.ligo.org/yumeng.xu/pycwb
|
|
6
6
|
Author-email: The PycWB team <yumeng.xu@ligo.org>
|
|
@@ -31,6 +31,7 @@ Requires-Dist: prefect-dask
|
|
|
31
31
|
Requires-Dist: dask
|
|
32
32
|
Requires-Dist: dask_jobqueue
|
|
33
33
|
Requires-Dist: htcondor
|
|
34
|
+
Requires-Dist: psutil
|
|
34
35
|
|
|
35
36
|
# PycWB
|
|
36
37
|
|
|
@@ -274,6 +274,10 @@ pycwb/modules/data_conditioning/regression.py
|
|
|
274
274
|
pycwb/modules/data_conditioning/whitening.py
|
|
275
275
|
pycwb/modules/energy_threshold/__init__.py
|
|
276
276
|
pycwb/modules/energy_threshold/threshold.py
|
|
277
|
+
pycwb/modules/gracedb/__init__.py
|
|
278
|
+
pycwb/modules/gracedb/gracedb.py
|
|
279
|
+
pycwb/modules/gracedb/module.yaml
|
|
280
|
+
pycwb/modules/gracedb/test_gracedb.py
|
|
277
281
|
pycwb/modules/job_segment/__init__.py
|
|
278
282
|
pycwb/modules/job_segment/dq_segment.py
|
|
279
283
|
pycwb/modules/job_segment/frame.py
|
|
@@ -281,6 +285,7 @@ pycwb/modules/job_segment/job_segment.py
|
|
|
281
285
|
pycwb/modules/job_segment/module.yaml
|
|
282
286
|
pycwb/modules/job_segment/plots.py
|
|
283
287
|
pycwb/modules/job_segment/super_lag.py
|
|
288
|
+
pycwb/modules/job_segment/test_job_segment.py
|
|
284
289
|
pycwb/modules/likelihood/__init__.py
|
|
285
290
|
pycwb/modules/likelihood/likelihood.py
|
|
286
291
|
pycwb/modules/likelihood/module.yaml
|
|
@@ -334,6 +339,7 @@ pycwb/modules/super_cluster/utils.py
|
|
|
334
339
|
pycwb/modules/supercluster_naive/__init__.py
|
|
335
340
|
pycwb/modules/supercluster_naive/supercluster2.py
|
|
336
341
|
pycwb/modules/superlag/__init__.py
|
|
342
|
+
pycwb/modules/superlag/module.yaml
|
|
337
343
|
pycwb/modules/superlag/superlag.py
|
|
338
344
|
pycwb/modules/web_viewer/__init__.py
|
|
339
345
|
pycwb/modules/web_viewer/create.py
|
|
@@ -365,6 +371,7 @@ pycwb/utils/async_write.py
|
|
|
365
371
|
pycwb/utils/check_ROOT.py
|
|
366
372
|
pycwb/utils/dataclass_object_io.py
|
|
367
373
|
pycwb/utils/dep_check.py
|
|
374
|
+
pycwb/utils/generate_params_table.py
|
|
368
375
|
pycwb/utils/image.py
|
|
369
376
|
pycwb/utils/module.py
|
|
370
377
|
pycwb/utils/network.py
|
|
@@ -388,5 +395,4 @@ pycwb/workflow/run.py
|
|
|
388
395
|
pycwb/workflow/subflow/__init__.py
|
|
389
396
|
pycwb/workflow/subflow/postprocess_and_plots.py
|
|
390
397
|
pycwb/workflow/subflow/prepare_job_runs.py
|
|
391
|
-
pycwb/workflow/subflow/process_job_segment.py
|
|
392
|
-
pycwb/workflow/subflow/supercluster_and_likelihood.py
|
|
398
|
+
pycwb/workflow/subflow/process_job_segment.py
|
|
@@ -27,7 +27,7 @@ exclude_patterns = ["pycwb/vendor/*", ".DS_Store"]
|
|
|
27
27
|
# -- Options for HTML output -------------------------------------------------
|
|
28
28
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
29
29
|
|
|
30
|
-
html_theme =
|
|
30
|
+
html_theme = "furo"
|
|
31
31
|
html_static_path = ['_static']
|
|
32
32
|
|
|
33
33
|
# -- external links ----------------------------------------------------------
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
.. _schema:
|
|
2
|
+
|
|
3
|
+
User Parameters
|
|
4
|
+
----------------
|
|
5
|
+
|
|
6
|
+
The default schema for user parameters is:
|
|
7
|
+
|
|
8
|
+
.. exec::
|
|
9
|
+
import json
|
|
10
|
+
from pycwb.constants import user_parameters_schema
|
|
11
|
+
from pycwb.utils.generate_params_table import generate_rst_table, parse_description, parse_type_or_enum
|
|
12
|
+
|
|
13
|
+
print(generate_rst_table(user_parameters_schema["properties"]))
|
|
14
|
+
# json_obj = json.dumps(user_parameters_schema, sort_keys=True, indent=4)
|
|
15
|
+
# print('.. code-block:: JavaScript\n\n %s\n\n' % json_obj)
|
|
@@ -73,9 +73,25 @@ def init_parser(parser):
|
|
|
73
73
|
'-j',
|
|
74
74
|
metavar='job_per_worker',
|
|
75
75
|
type=int,
|
|
76
|
-
default=
|
|
76
|
+
default=1,
|
|
77
77
|
help='the number of jobs per worker')
|
|
78
78
|
|
|
79
|
+
# memory
|
|
80
|
+
parser.add_argument('--memory',
|
|
81
|
+
'-m',
|
|
82
|
+
metavar='memory',
|
|
83
|
+
type=str,
|
|
84
|
+
default='6GB',
|
|
85
|
+
help='the memory for each job')
|
|
86
|
+
|
|
87
|
+
# disk
|
|
88
|
+
parser.add_argument('--disk',
|
|
89
|
+
'-k',
|
|
90
|
+
metavar='disk',
|
|
91
|
+
type=str,
|
|
92
|
+
default='4GB',
|
|
93
|
+
help='the disk space for each job')
|
|
94
|
+
|
|
79
95
|
# compress json
|
|
80
96
|
parser.add_argument('--compress_json',
|
|
81
97
|
action='store_true',
|
|
@@ -124,6 +140,8 @@ def command(args):
|
|
|
124
140
|
conda_env=args.conda_env,
|
|
125
141
|
additional_init=args.additional_init,
|
|
126
142
|
n_proc=args.n_proc,
|
|
143
|
+
memory=args.memory,
|
|
144
|
+
disk=args.disk,
|
|
127
145
|
accounting_group=args.accounting_group,
|
|
128
146
|
job_per_worker=args.job_per_worker,
|
|
129
147
|
submit=args.submit,
|
|
@@ -99,6 +99,46 @@ schema = {
|
|
|
99
99
|
"default": {},
|
|
100
100
|
"cwb": False
|
|
101
101
|
},
|
|
102
|
+
"gps_start": {
|
|
103
|
+
"type": "number",
|
|
104
|
+
"description": "start gps time, used together with gps_end for generating job segments",
|
|
105
|
+
"cwb": False
|
|
106
|
+
},
|
|
107
|
+
"gps_end": {
|
|
108
|
+
"type": "number",
|
|
109
|
+
"description": "end gps time, used together with gps_start for generating job segments",
|
|
110
|
+
"cwb": False
|
|
111
|
+
},
|
|
112
|
+
"gps_center": {
|
|
113
|
+
"type": "number",
|
|
114
|
+
"description": "center gps time, used together with time_left and time_right for generating job segments",
|
|
115
|
+
"cwb": False
|
|
116
|
+
},
|
|
117
|
+
"time_left": {
|
|
118
|
+
"type": "number",
|
|
119
|
+
"description": "left time offset from gps_center, used together with gps_center and time_right for generating job segments",
|
|
120
|
+
"cwb": False
|
|
121
|
+
},
|
|
122
|
+
"time_right": {
|
|
123
|
+
"type": "number",
|
|
124
|
+
"description": "right time offset from gps_center, used together with gps_center and time_left for generating job segments",
|
|
125
|
+
"cwb": False
|
|
126
|
+
},
|
|
127
|
+
"superevent": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"description": "superevent name, used together with time_left and time_right for generating job segments",
|
|
130
|
+
"cwb": False
|
|
131
|
+
},
|
|
132
|
+
"gwdatafind": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"description": "If the gwdatafind is set, the framefiles can be pulled from the LIGO data server, "
|
|
135
|
+
"the support keys are: site, frametype, host. Example: ",
|
|
136
|
+
" site: ['L','H']"
|
|
137
|
+
" frametype: ['L1_HOFT_C00','H1_HOFT_C00']"
|
|
138
|
+
" host: 'datafind.ldas.cit:80'"
|
|
139
|
+
"default": {},
|
|
140
|
+
"cwb": False
|
|
141
|
+
},
|
|
102
142
|
"WDM_beta_order": {
|
|
103
143
|
"type": "integer",
|
|
104
144
|
"description": "WDM default parameters: beta function order for Meyer",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import logging
|
|
3
3
|
from filelock import SoftFileLock
|
|
4
|
-
import
|
|
4
|
+
import orjson
|
|
5
5
|
import pycwb
|
|
6
6
|
from pycwb.config import Config
|
|
7
7
|
from pycwb.types.job import WaveSegment
|
|
@@ -32,13 +32,13 @@ def create_catalog(filename: str, config: Config, jobs: list[WaveSegment]) -> No
|
|
|
32
32
|
output = {
|
|
33
33
|
"config": config.__dict__,
|
|
34
34
|
"version": pycwb.__version__,
|
|
35
|
-
"jobs":
|
|
35
|
+
"jobs": jobs,
|
|
36
36
|
"events": []
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
with SoftFileLock(filename + ".lock", timeout=10):
|
|
40
|
-
with open(filename, '
|
|
41
|
-
|
|
40
|
+
with open(filename, 'wb') as f:
|
|
41
|
+
f.write(orjson.dumps(output, option=orjson.OPT_SERIALIZE_NUMPY))
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def add_events_to_catalog(filename: str, events: list[Event]) -> None:
|
|
@@ -64,13 +64,13 @@ def add_events_to_catalog(filename: str, events: list[Event]) -> None:
|
|
|
64
64
|
if os.path.exists(filename):
|
|
65
65
|
with SoftFileLock(filename + ".lock", timeout=10):
|
|
66
66
|
# read the json file
|
|
67
|
-
with open(filename, '
|
|
68
|
-
catalog =
|
|
67
|
+
with open(filename, 'rb+') as f:
|
|
68
|
+
catalog = orjson.loads(f.read())
|
|
69
69
|
# append events
|
|
70
70
|
catalog["events"].extend(events)
|
|
71
71
|
# write the json file
|
|
72
72
|
f.seek(0)
|
|
73
|
-
|
|
73
|
+
f.write(orjson.dumps(catalog, option=orjson.OPT_SERIALIZE_NUMPY))
|
|
74
74
|
else:
|
|
75
75
|
logger.warning("Catalog file does not exist. Event will not be saved to catalog.")
|
|
76
76
|
|
|
@@ -24,6 +24,7 @@ def whitening(config, h):
|
|
|
24
24
|
layers_white = 2 ** config.l_white if config.l_white > 0 else 2 ** config.l_high
|
|
25
25
|
wdm_white = WDM(layers_white, layers_white, config.WDM_beta_order, config.WDM_precision)
|
|
26
26
|
|
|
27
|
+
# TODO: check the length of data and white parameters to prevent freezing
|
|
27
28
|
# check if whitening WDM filter lenght is less than cwb scratch
|
|
28
29
|
wdmFlen = wdm_white.m_H / config.rateANA
|
|
29
30
|
if wdmFlen > config.segEdge + 0.001:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .gracedb import *
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from ligo.gracedb.rest import GraceDb
|
|
2
|
+
from ligo.gracedb.exceptions import HTTPError
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def get_superevent(event_name):
|
|
6
|
+
"""
|
|
7
|
+
Get the super event for a given event name.
|
|
8
|
+
|
|
9
|
+
:param event_name: The name of the event.
|
|
10
|
+
:type event_name: str
|
|
11
|
+
:return: The super event.
|
|
12
|
+
:rtype: dict
|
|
13
|
+
"""
|
|
14
|
+
client = GraceDb()
|
|
15
|
+
try:
|
|
16
|
+
response = client.superevent(event_name).json()
|
|
17
|
+
except HTTPError as e:
|
|
18
|
+
if e.response.status_code == 404:
|
|
19
|
+
print('No super event found for event {}'.format(event_name))
|
|
20
|
+
return None
|
|
21
|
+
else:
|
|
22
|
+
raise
|
|
23
|
+
|
|
24
|
+
return response
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def get_superevent_t0(event_name):
|
|
28
|
+
"""
|
|
29
|
+
Get the GPS time of the super event for a given event name.
|
|
30
|
+
|
|
31
|
+
:param event_name: The name of the event.
|
|
32
|
+
:type event_name: str
|
|
33
|
+
:return: The GPS time of the super event.
|
|
34
|
+
:rtype: float
|
|
35
|
+
"""
|
|
36
|
+
super_event = get_superevent(event_name)
|
|
37
|
+
if super_event is None:
|
|
38
|
+
return None
|
|
39
|
+
|
|
40
|
+
return super_event['t_0']
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from .gracedb import get_superevent_t0, get_superevent
|
|
3
|
+
|
|
4
|
+
class TestGraceDB(unittest.TestCase):
|
|
5
|
+
|
|
6
|
+
def test_get_superevent_t0(self):
|
|
7
|
+
event_name = 'S241011k'
|
|
8
|
+
t0 = get_superevent_t0(event_name)
|
|
9
|
+
self.assertAlmostEqual(t0, 1412725132.96, places=1)
|
|
10
|
+
|
|
11
|
+
def test_get_superevent_t0_no_event(self):
|
|
12
|
+
event_name = 'S000000a'
|
|
13
|
+
t0 = get_superevent_t0(event_name)
|
|
14
|
+
self.assertIsNone(t0)
|
|
15
|
+
|
|
16
|
+
def test_get_superevent(self):
|
|
17
|
+
event_name = 'S241011k'
|
|
18
|
+
super_event = get_superevent(event_name)
|
|
19
|
+
self.assertEqual(super_event['superevent_id'], event_name)
|
|
20
|
+
|
|
21
|
+
def test_get_superevent_no_event(self):
|
|
22
|
+
event_name = 'S000000a'
|
|
23
|
+
super_event = get_superevent(event_name)
|
|
24
|
+
self.assertIsNone(super_event)
|
|
25
|
+
|
|
26
|
+
if __name__ == '__main__':
|
|
27
|
+
unittest.main()
|
|
@@ -6,7 +6,7 @@ from pycwb.types.job import WaveSegment
|
|
|
6
6
|
logger = logging.getLogger(__name__)
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
def read_seg_list(dq_file_list, dq_cat):
|
|
9
|
+
def read_seg_list(dq_file_list=None, dq_cat='CWB_CAT1', periods=None):
|
|
10
10
|
"""Load the files contains segment list from the data quality files below the data quality category (dq_file.load_file)).
|
|
11
11
|
Then merge the segment list (merge_seg_list) and return the merged segment list.
|
|
12
12
|
|
|
@@ -14,14 +14,22 @@ def read_seg_list(dq_file_list, dq_cat):
|
|
|
14
14
|
:type dq_file_list: list[DQFile]
|
|
15
15
|
:param dq_cat: The data quality category.
|
|
16
16
|
:type dq_cat: str
|
|
17
|
+
:param periods: Given start and stop periods.
|
|
18
|
+
:type periods: tuple[list[int], list[int]]
|
|
17
19
|
:return: A list of segments.
|
|
18
20
|
:rtype: list[WaveSegment]
|
|
19
21
|
"""
|
|
20
22
|
seg_list = []
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if dq_file_list is None or len(dq_file_list) == 0:
|
|
24
|
+
seg_list.append(([0], [np.inf]))
|
|
25
|
+
else:
|
|
26
|
+
for dq_file in dq_file_list:
|
|
27
|
+
if dq_file.dq_cat <= dq_cat:
|
|
28
|
+
logger.info(f"Loading data quality file {dq_file.file}")
|
|
29
|
+
seg_list.append(dq_file.get_periods())
|
|
30
|
+
|
|
31
|
+
if periods is not None:
|
|
32
|
+
seg_list.append(periods)
|
|
25
33
|
|
|
26
34
|
if len(seg_list) == 0:
|
|
27
35
|
logger.error("No CWB_CAT=%s files in the list", dq_cat)
|
|
@@ -93,7 +101,7 @@ def get_seg_list(ifo, dq_list, seg_len, seg_mls, seg_edge):
|
|
|
93
101
|
return []
|
|
94
102
|
|
|
95
103
|
|
|
96
|
-
def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
|
|
104
|
+
def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge, sample_rate, shift=None, index_start=0):
|
|
97
105
|
"""
|
|
98
106
|
Build the job segment list.
|
|
99
107
|
|
|
@@ -108,6 +116,8 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
|
|
|
108
116
|
output segA : xxx---------xxx \n
|
|
109
117
|
output segB : xxx----------xxx \n
|
|
110
118
|
|
|
119
|
+
:param ifos: list of interferometers
|
|
120
|
+
:type ifos: list[str]
|
|
111
121
|
:param dq_list: number of detectors
|
|
112
122
|
:type dq_list: list[DQFile]
|
|
113
123
|
:param seg_len: Segment length [sec]
|
|
@@ -116,6 +126,12 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
|
|
|
116
126
|
:type seg_mls: int
|
|
117
127
|
:param seg_edge: wavelet boundary offset [sec]
|
|
118
128
|
:type seg_edge: int
|
|
129
|
+
:param sample_rate: sample rate [Hz]
|
|
130
|
+
:type sample_rate: int
|
|
131
|
+
:param shift: list of shifts for each interferometer, used for superlags
|
|
132
|
+
:type shift: list[float]
|
|
133
|
+
:param index_start: index of the first segment
|
|
134
|
+
:type index_start: int
|
|
119
135
|
:return: Return the job segment list
|
|
120
136
|
:rtype: list[WaveSegment]
|
|
121
137
|
"""
|
|
@@ -126,7 +142,7 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
|
|
|
126
142
|
lostlivetime = 0
|
|
127
143
|
job_list = []
|
|
128
144
|
|
|
129
|
-
seg_index =
|
|
145
|
+
seg_index = index_start
|
|
130
146
|
|
|
131
147
|
for i in range(len(dq_list[0])):
|
|
132
148
|
start = math.ceil(dq_list[0][i]) + seg_edge
|
|
@@ -141,7 +157,8 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
|
|
|
141
157
|
lostlivetime += length
|
|
142
158
|
continue
|
|
143
159
|
seg_index += 1
|
|
144
|
-
job_list.append(WaveSegment(seg_index, ifos, start, stop
|
|
160
|
+
job_list.append(WaveSegment(seg_index, ifos, start, stop,
|
|
161
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
145
162
|
continue
|
|
146
163
|
if n == 1:
|
|
147
164
|
if length > seg_len:
|
|
@@ -149,32 +166,40 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
|
|
|
149
166
|
half = int(remainder / 2)
|
|
150
167
|
if half >= seg_mls:
|
|
151
168
|
seg_index += 1
|
|
152
|
-
job_list.append(WaveSegment(seg_index, ifos, start, start + half
|
|
169
|
+
job_list.append(WaveSegment(seg_index, ifos, start, start + half,
|
|
170
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
153
171
|
|
|
154
172
|
seg_index += 1
|
|
155
|
-
job_list.append(WaveSegment(seg_index, ifos, start + half, stop
|
|
173
|
+
job_list.append(WaveSegment(seg_index, ifos, start + half, stop,
|
|
174
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
156
175
|
else:
|
|
157
176
|
seg_index += 1
|
|
158
|
-
job_list.append(WaveSegment(seg_index, ifos, start, start + seg_len
|
|
177
|
+
job_list.append(WaveSegment(seg_index, ifos, start, start + seg_len,
|
|
178
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
159
179
|
else:
|
|
160
180
|
seg_index += 1
|
|
161
|
-
job_list.append(WaveSegment(i, ifos, start, stop
|
|
181
|
+
job_list.append(WaveSegment(i, ifos, start, stop,
|
|
182
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
162
183
|
continue
|
|
163
184
|
|
|
164
185
|
for j in range(n - 1):
|
|
165
186
|
seg_index += 1
|
|
166
|
-
job_list.append(WaveSegment(seg_index, ifos, seg_len * j + start, seg_len * j + start + seg_len
|
|
187
|
+
job_list.append(WaveSegment(seg_index, ifos, seg_len * j + start, seg_len * j + start + seg_len,
|
|
188
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
167
189
|
|
|
168
190
|
remainder = stop - job_list[-1].end_time
|
|
169
191
|
half = int(remainder / 2)
|
|
170
192
|
if half >= seg_mls:
|
|
171
193
|
seg_index += 1
|
|
172
|
-
job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + half
|
|
194
|
+
job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + half,
|
|
195
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
173
196
|
seg_index += 1
|
|
174
|
-
job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, stop
|
|
197
|
+
job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, stop,
|
|
198
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
175
199
|
else:
|
|
176
200
|
seg_index += 1
|
|
177
|
-
job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + seg_len
|
|
201
|
+
job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + seg_len,
|
|
202
|
+
seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
|
|
178
203
|
|
|
179
204
|
logger.info('lost livetime after building of the standard job list = %d sec' % lostlivetime)
|
|
180
205
|
|
|
@@ -65,9 +65,9 @@ def select_frame_list(frame_list, start, stop, seg_edge):
|
|
|
65
65
|
:param frame_list: list of frame metadata
|
|
66
66
|
:type frame_list: list[FrameFile]
|
|
67
67
|
:param start: start time of the segment
|
|
68
|
-
:type start: int
|
|
68
|
+
:type start: int or float
|
|
69
69
|
:param stop: stop time of the segment
|
|
70
|
-
:type stop: int
|
|
70
|
+
:type stop: int or float
|
|
71
71
|
:param seg_edge: buffer of the segment
|
|
72
72
|
:type seg_edge: int or float
|
|
73
73
|
:return: list of frame
|
|
@@ -81,3 +81,48 @@ def select_frame_list(frame_list, start, stop, seg_edge):
|
|
|
81
81
|
return frame_list
|
|
82
82
|
|
|
83
83
|
|
|
84
|
+
def get_frame_files_from_gwdatafind(ifo, site, frametype, start, stop, seg_edge, host=None):
|
|
85
|
+
"""
|
|
86
|
+
Use gwdatafind to get the frame files for the job segments
|
|
87
|
+
|
|
88
|
+
:param ifo: name of the interferometer
|
|
89
|
+
:type ifo: str
|
|
90
|
+
:param site: site name of the interferometer
|
|
91
|
+
:type site: str
|
|
92
|
+
:param frametype: frame type
|
|
93
|
+
:type frametype: str
|
|
94
|
+
:param start: start time of the segment
|
|
95
|
+
:type start: int or float
|
|
96
|
+
:param stop: stop time of the segment
|
|
97
|
+
:type stop: int or float
|
|
98
|
+
:param seg_edge: buffer of the segment
|
|
99
|
+
:type seg_edge: int or float
|
|
100
|
+
:param host: host name of the frame server
|
|
101
|
+
:type host: str
|
|
102
|
+
|
|
103
|
+
:return: list of frame files
|
|
104
|
+
:rtype: list[FrameFile]
|
|
105
|
+
"""
|
|
106
|
+
from gwdatafind import find_urls
|
|
107
|
+
|
|
108
|
+
seg_start = start - seg_edge
|
|
109
|
+
seg_stop = stop + seg_edge
|
|
110
|
+
|
|
111
|
+
frame_list = []
|
|
112
|
+
|
|
113
|
+
url = find_urls(site, frametype, seg_start, seg_stop, host=host)
|
|
114
|
+
frame_paths = [fp.replace("file://localhost", "") for fp in url]
|
|
115
|
+
|
|
116
|
+
for frame_path in frame_paths:
|
|
117
|
+
# get the file name without the extension with pathlib
|
|
118
|
+
frame_name = Path(frame_path).stem
|
|
119
|
+
# get the gps time and duration with int type
|
|
120
|
+
gps_start, duration = [int(i) for i in frame_name.split("-")[-2:]]
|
|
121
|
+
# append the frame file to the list
|
|
122
|
+
frame_list.append(FrameFile(ifo, frame_path, gps_start, duration))
|
|
123
|
+
|
|
124
|
+
# TODO: check if the framefiles match with the seg_start and seg_stop
|
|
125
|
+
|
|
126
|
+
return frame_list
|
|
127
|
+
|
|
128
|
+
|