PycWB 0.27.0__tar.gz → 0.28.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.27.0 → pycwb-0.28.0}/PKG-INFO +6 -2
- {pycwb-0.27.0 → pycwb-0.28.0}/PycWB.egg-info/PKG-INFO +6 -2
- {pycwb-0.27.0 → pycwb-0.28.0}/PycWB.egg-info/SOURCES.txt +3 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/likelihood/generate_data_for_likelihood.py +15 -7
- pycwb-0.28.0/benchmark/likelihood/perf_cuda.py +168 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/_version.py +9 -4
- pycwb-0.28.0/pycwb/constants/detectors.py +119 -0
- pycwb-0.28.0/pycwb/constants/physics_constants.py +2 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/constants/user_parameters_schema.py +6 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/cwb_conversions/series.py +8 -2
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/job_segment.py +1 -1
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/reconstruction/getMRAwaveform.py +3 -3
- pycwb-0.28.0/pycwb/types/detector.py +112 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/module.py +10 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/batch.py +10 -5
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/run.py +9 -2
- pycwb-0.27.0/pycwb/types/detector.py +0 -14
- {pycwb-0.27.0 → pycwb-0.28.0}/.gitignore +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/.gitlab-ci.yml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/.readthedocs.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/LICENSE +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/MANIFEST.in +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/Makefile +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/PycWB.egg-info/dependency_links.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/PycWB.egg-info/requires.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/PycWB.egg-info/top_level.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/README.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/README.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/likelihood/README.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/likelihood/performance_test_dpf.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/likelihood/performance_test_opt_sky.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/likelihood/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/supercluster/README.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/supercluster/generate_data.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/supercluster/generate_data_2.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/supercluster/performance_supercluster.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/benchmark/supercluster/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/bin/pycwb +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/bin/pycwb_search +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/bin/pycwb_show +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Biorthogonal.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Biorthogonal.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/CMakeLists.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Daubechies.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Daubechies.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/FourierCoefficients.icc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Haar.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Haar.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/LineFilter.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/LineFilter.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Makefile +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Meyer.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Meyer.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Symlet.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Symlet.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/SymmArray.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/SymmArray.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/SymmArraySSE.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/SymmArraySSE.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/SymmObjArray.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/SymmObjArray.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/WDM.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/WDM.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/WDMOverlap.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/WDMOverlap.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/WaveDWT.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/WaveDWT.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Wavelet.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/Wavelet.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/alm.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/build.sh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/cluster.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/cluster.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/cmake/FindHealpix.cmake +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/cmake/FindeBBH.cmake +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/cmake/install_function.cmake +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/constants.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/detector.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/detector.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/injection.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/injection.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/lossy.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/lossy.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/monster.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/monster.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/netcluster.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/netcluster.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/netevent.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/netevent.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/netpixel.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/netpixel.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/network.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/network.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/pycwb.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/rdfr.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/rdfr.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/readframe.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/readframe.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/readfrfile.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/readfrfile.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/regression.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/regression.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/skycoord.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/skymap.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/skymap.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/sseries.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/sseries.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/time.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/time.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wat.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watasm.S +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watasm_elf64.o +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watavx.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watbranch.in +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watfun.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wathash.in +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watplot.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watplot.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watsse.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wattag.in +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/waturl.in +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/watversion.hh.in +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavearray.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavearray.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavecomplex.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavecomplex.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavecor.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavecor.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavefft.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavefft.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavelet_LinkDef.h +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavelinefilter.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wavelinefilter.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/waverdc.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/waverdc.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wseries.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wseries.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/cwb-core/wslice.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/0.installation_guide.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/1.initialisation_guide.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/3.run_pycwb_with_yaml_config.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/4.py_cwb_inet_2G.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/5.cwb2G_analyse.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/6.wat_codes_notes.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/Makefile +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/diagram.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/make.bat +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/_static/.keep +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/_templates/.keep +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/conf.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/credit.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/index.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/install.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/mod_cwb.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/package.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/schema.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/tutorial_batch_inj.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/tutorial_customized_wf_gen.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/tutorial_injection.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/tutorial_multi_injection.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/tutorial_search.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/tutorials.rst +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/docs/source/workflow.png +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/envs/Dockerfile +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/envs/environment.yml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/envs/mamba/Dockerfile +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/autoencoder/pycwb_injection.ipynb +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/autoencoder/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/batch_injection/generate_parameters.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/batch_injection/pycwb_injection.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/batch_injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/H1_cat0.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/H1_cat1.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/H1_cat2.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/H1_cat4.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/L1_cat0.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/L1_cat1.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/L1_cat2.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/DQ/L1_cat4.txt +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/input/OPBM.period +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/input/OPBM_H1.frames +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/input/OPBM_L1.frames +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/pycwb_mdc.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/benchmark/user_parameters_mdc.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/colab/pycWB_GW150914.ipynb +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/gwosc/user_parameters.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/injection/pycwb_injection.ipynb +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/injection/wdmXTalk/OverlapCatalog16-1024.bin +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/lvk_sep_2023/demo.ipynb +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/multiple_injection/pycwb_injection.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/pyseobnr_injection/generate_parameters.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/cwb_core/coherence.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/cwb_core/coherence.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/cwb_core/likelihood.cc +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/cwb_core/likelihood.hh +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/dag/dag.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/dag/dask-prefect.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/dag/prefect_test.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger/server.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger/visualizition.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/.gitignore +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/README.md +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/index.html +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/package-lock.json +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/package.json +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/App.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/main.js +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/router/index.js +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/messenger-web-interface/vite.config.js +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/performance/numba_test.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/performance/taichi_test.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/pp_workflow/simple.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/pp_workflow/simple_module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/pp_workflow/workflow.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/prototypes/search.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/batch_runner.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/batch_setup.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/flow.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/gwosc.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/merge_catalog.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/post_process.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/run.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/server.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/cli/xtalk.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/config/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/config/config.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/constants/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/constants/project_constants.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/autoencoder/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/autoencoder/autoencoder.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/autoencoder/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/catalog/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/catalog/catalog.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/catalog/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/coherence/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/coherence/coherence.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/coherence/coherence_lite.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/coherence/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/condor/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/condor/condor.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/condor/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/cwb_conversions/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/cwb_conversions/cluster.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/cwb_conversions/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/cwb_conversions/pixel.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/data_conditioning/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/data_conditioning/data_conditioning.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/data_conditioning/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/data_conditioning/regression.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/data_conditioning/whitening.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/energy_threshold/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/energy_threshold/threshold.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/gracedb/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/gracedb/gracedb.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/gracedb/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/gracedb/test_gracedb.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/gwosc/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/gwosc/gwosc.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/dq_segment.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/frame.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/plots.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/super_lag.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/job_segment/test_job_segment.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihood/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihood/likelihood.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihood/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihoodWP/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihoodWP/dpf.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihoodWP/dpf_cython.pyx +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihoodWP/likelihood.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihoodWP/sky_stat.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/likelihoodWP/utils.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/logger/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/logger/logger.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/logger/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot/cluster_statistics.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot/event.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot/spectrogram.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot/waveform.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot_data_quality/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot_data_quality/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot_data_quality/plot.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot_map/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot_map/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/plot_map/world_map.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/read_data/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/read_data/data_check.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/read_data/data_find.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/read_data/mdc.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/read_data/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/read_data/read_data.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/reconstruction/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/reconstruction/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/report/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/report/continues_poisson.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/report/far_rho.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/report/read_results.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/report/report.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/sparse_series/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/sparse_series/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/sparse_series/sparse_table.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/statistics/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/statistics/eff.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/statistics/eff_plot.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/statistics/merge.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/statistics/sigmoid_fit.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/super_cluster/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/super_cluster/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/super_cluster/sub_net_cut.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/super_cluster/super_cluster.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/super_cluster/supercluster.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/super_cluster/utils.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/supercluster_naive/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/supercluster_naive/supercluster2.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/superlag/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/superlag/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/superlag/superlag.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/web_viewer/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/web_viewer/create.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/web_viewer/module.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/workflow_utils/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/workflow_utils/job_setup.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/xtalk/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/xtalk/monster.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/xtalk/monster_old.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/modules/xtalk/xtalk_data.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/post_production/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/post_production/workflow.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/prefect_flow/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/prefect_flow/pycwb_flow.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/prefect_flow/tasks/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/prefect_flow/tasks/builtin.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/data_quality_file.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/job.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/network.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/network_cluster.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/network_event.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/network_pixel.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/sparse_series.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/time_frequency_series.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/wdm.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/types/wdm_xtalk.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/async_write.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/check_ROOT.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/conversions/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/conversions/timeseries.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/dataclass_object_io.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/dep_check.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/generate_params_table.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/image.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/network.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/parser.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/skymap_coord.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/utils/yaml_helper.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/autoencoder/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/example.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/lib/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/template/gwosc/user_parameters.yaml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/web_viewer/event_dump.html +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/web_viewer/styles.css +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/vendor/web_viewer/viewer.html +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/merge.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/subflow/__init__.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/subflow/postprocess_and_plots.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/subflow/prepare_job_runs.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pycwb/workflow/subflow/process_job_segment.py +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/pyproject.toml +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/setup.cfg +0 -0
- {pycwb-0.27.0 → pycwb-0.28.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: PycWB
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.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>
|
|
@@ -32,6 +32,10 @@ Requires-Dist: dask
|
|
|
32
32
|
Requires-Dist: dask_jobqueue
|
|
33
33
|
Requires-Dist: htcondor
|
|
34
34
|
Requires-Dist: psutil
|
|
35
|
+
Dynamic: description
|
|
36
|
+
Dynamic: description-content-type
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: requires-dist
|
|
35
39
|
|
|
36
40
|
# PycWB
|
|
37
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: PycWB
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.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>
|
|
@@ -32,6 +32,10 @@ Requires-Dist: dask
|
|
|
32
32
|
Requires-Dist: dask_jobqueue
|
|
33
33
|
Requires-Dist: htcondor
|
|
34
34
|
Requires-Dist: psutil
|
|
35
|
+
Dynamic: description
|
|
36
|
+
Dynamic: description-content-type
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: requires-dist
|
|
35
39
|
|
|
36
40
|
# PycWB
|
|
37
41
|
|
|
@@ -15,6 +15,7 @@ PycWB.egg-info/top_level.txt
|
|
|
15
15
|
benchmark/README.md
|
|
16
16
|
benchmark/likelihood/README.md
|
|
17
17
|
benchmark/likelihood/generate_data_for_likelihood.py
|
|
18
|
+
benchmark/likelihood/perf_cuda.py
|
|
18
19
|
benchmark/likelihood/performance_test_dpf.py
|
|
19
20
|
benchmark/likelihood/performance_test_opt_sky.py
|
|
20
21
|
benchmark/likelihood/user_parameters_injection.yaml
|
|
@@ -250,6 +251,8 @@ pycwb/cli/xtalk.py
|
|
|
250
251
|
pycwb/config/__init__.py
|
|
251
252
|
pycwb/config/config.py
|
|
252
253
|
pycwb/constants/__init__.py
|
|
254
|
+
pycwb/constants/detectors.py
|
|
255
|
+
pycwb/constants/physics_constants.py
|
|
253
256
|
pycwb/constants/project_constants.py
|
|
254
257
|
pycwb/constants/user_parameters_schema.py
|
|
255
258
|
pycwb/modules/__init__.py
|
|
@@ -3,9 +3,9 @@ import os
|
|
|
3
3
|
from pycwb.config import Config
|
|
4
4
|
from pycwb.modules.logger import logger_init
|
|
5
5
|
|
|
6
|
-
if not os.environ.get('HOME_WAT_FILTERS'):
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
# if not os.environ.get('HOME_WAT_FILTERS'):
|
|
7
|
+
# print('Please set HOME_WAT_FILTERS to the directory of WAT filters')
|
|
8
|
+
# exit(1)
|
|
9
9
|
|
|
10
10
|
logger_init()
|
|
11
11
|
|
|
@@ -14,13 +14,21 @@ config = Config('./user_parameters_injection.yaml')
|
|
|
14
14
|
#%% md
|
|
15
15
|
## generate injected data for each detector with given parameters in config
|
|
16
16
|
#%%
|
|
17
|
-
from pycwb.modules.read_data import generate_injection
|
|
18
|
-
from pycwb.modules.job_segment import create_job_segment_from_injection
|
|
17
|
+
from pycwb.modules.read_data import generate_injection, read_from_job_segment, generate_noise_for_job_seg
|
|
18
|
+
from pycwb.modules.job_segment import create_job_segment_from_injection, create_job_segment_from_config
|
|
19
19
|
|
|
20
|
-
job_segments = create_job_segment_from_injection(config.ifo, config.simulation, config.injection)
|
|
20
|
+
job_segments = create_job_segment_from_config(config) #create_job_segment_from_injection(config.ifo, config.simulation, config.injection)
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
job_seg = job_segments[0]
|
|
23
23
|
|
|
24
|
+
data = None
|
|
25
|
+
# data = generate_injection(config, job_segments[0])
|
|
26
|
+
if job_seg.frames:
|
|
27
|
+
data = read_from_job_segment(config, job_seg)
|
|
28
|
+
if job_seg.noise:
|
|
29
|
+
data = generate_noise_for_job_seg(job_seg, config.inRate, data=data)
|
|
30
|
+
if job_seg.injections:
|
|
31
|
+
data = generate_injection(config, job_seg, data)
|
|
24
32
|
#%% md
|
|
25
33
|
## apply data conditioning to the data
|
|
26
34
|
#%%
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import cupy as cp
|
|
2
|
+
|
|
3
|
+
def dpf_cupy(FP, FX, rms):
|
|
4
|
+
"""
|
|
5
|
+
Vectorized version of dpf_np using CuPy for GPU acceleration.
|
|
6
|
+
|
|
7
|
+
:param FP: (n_sky, NIFO, 1) array
|
|
8
|
+
:param FX: (n_sky, NIFO, 1) array
|
|
9
|
+
:param rms: (NIFO, NPIX) array
|
|
10
|
+
:return: aa, fp, fx, si, co, ni (all as cupy arrays)
|
|
11
|
+
"""
|
|
12
|
+
# Broadcast multiply
|
|
13
|
+
f = FP * rms[cp.newaxis, :, :] # Shape: (n_sky, NIFO, NPIX)
|
|
14
|
+
F = FX * rms[cp.newaxis, :, :]
|
|
15
|
+
|
|
16
|
+
# Sum over NIFO (axis=1)
|
|
17
|
+
_ff = (f ** 2).sum(axis=1)
|
|
18
|
+
_FF = (F ** 2).sum(axis=1)
|
|
19
|
+
_fF = (f * F).sum(axis=1)
|
|
20
|
+
|
|
21
|
+
# Intermediate terms
|
|
22
|
+
_si = 2.0 * _fF
|
|
23
|
+
_co = _ff - _FF
|
|
24
|
+
_AP = _ff + _FF
|
|
25
|
+
_nn = cp.sqrt(_co**2 + _si**2)
|
|
26
|
+
_cc = _co / (_nn + 0.0001)
|
|
27
|
+
fp = (_AP + _nn) / 2.0
|
|
28
|
+
|
|
29
|
+
# Compute co and si with sign correction
|
|
30
|
+
si = cp.sqrt((1.0 - _cc) / 2.0)
|
|
31
|
+
co = cp.where(_si > 0.0,
|
|
32
|
+
cp.sqrt((1.0 + _cc) / 2.0),
|
|
33
|
+
-cp.sqrt((1.0 + _cc) / 2.0))
|
|
34
|
+
|
|
35
|
+
# Expand dimensions for broadcasting
|
|
36
|
+
co_exp = co[:, cp.newaxis, :]
|
|
37
|
+
si_exp = si[:, cp.newaxis, :]
|
|
38
|
+
|
|
39
|
+
# Update basis vectors
|
|
40
|
+
f_new = f * co_exp + F * si_exp
|
|
41
|
+
F_new = F * co_exp - f * si_exp
|
|
42
|
+
|
|
43
|
+
# Compute new correlation
|
|
44
|
+
fF_new = (f_new * F_new).sum(axis=1) / (fp + 0.0001)
|
|
45
|
+
|
|
46
|
+
# Adjust F
|
|
47
|
+
F_adj = F_new - f_new * fF_new[:, cp.newaxis, :]
|
|
48
|
+
|
|
49
|
+
# Final energy terms
|
|
50
|
+
fx = (F_adj ** 2).sum(axis=1)
|
|
51
|
+
ni = (f_new ** 4).sum(axis=1) / (fp**2 + 0.0001)
|
|
52
|
+
|
|
53
|
+
# Network statistics
|
|
54
|
+
NI = (fx / (ni + 0.0001)).sum(axis=1)
|
|
55
|
+
NN = (fp > 0.0).sum(axis=1)
|
|
56
|
+
aa = cp.sqrt(NI / (NN + 0.01))
|
|
57
|
+
|
|
58
|
+
return aa, fp, fx, si, co, ni
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def dpf_cupy(Fp0, Fx0, rms):
|
|
62
|
+
"""
|
|
63
|
+
:param Fp0: Fp0 is a NIFO x 1 array (CuPy array)
|
|
64
|
+
:param Fx0: Fx0 is a NIFO x 1 array (CuPy array)
|
|
65
|
+
:param rms: rms is a NIFO x NPIX array (CuPy array)
|
|
66
|
+
:return: Tuple of results as CuPy arrays
|
|
67
|
+
"""
|
|
68
|
+
f = rms * Fp0
|
|
69
|
+
F = rms * Fx0
|
|
70
|
+
|
|
71
|
+
_ff = cp.sum(f * f, axis=1)
|
|
72
|
+
_FF = cp.sum(F * F, axis=1)
|
|
73
|
+
_fF = cp.sum(f * F, axis=1)
|
|
74
|
+
|
|
75
|
+
_si = 2.0 * _fF
|
|
76
|
+
_co = _ff - _FF
|
|
77
|
+
_AP = _ff + _FF
|
|
78
|
+
_nn = cp.sqrt(_co**2 + _si**2)
|
|
79
|
+
_cc = _co / (_nn + 0.0001)
|
|
80
|
+
fp = (_AP + _nn) / 2.0
|
|
81
|
+
|
|
82
|
+
si = cp.sqrt((1.0 - _cc) / 2.0)
|
|
83
|
+
co = cp.where(_si > 0.0,
|
|
84
|
+
cp.sqrt((1.0 + _cc) / 2.0),
|
|
85
|
+
-cp.sqrt((1.0 + _cc) / 2.0))
|
|
86
|
+
|
|
87
|
+
# Update f and F with broadcasting
|
|
88
|
+
f = f * co[:, cp.newaxis] + F * si[:, cp.newaxis]
|
|
89
|
+
F = F * co[:, cp.newaxis] - f * si[:, cp.newaxis]
|
|
90
|
+
|
|
91
|
+
fF_new = cp.sum(f * F, axis=1) / (fp + 0.0001)
|
|
92
|
+
F -= f * fF_new[:, cp.newaxis]
|
|
93
|
+
|
|
94
|
+
fx = cp.sum(F * F, axis=1)
|
|
95
|
+
ni = cp.sum(f**4, axis=1) / (fp**2 + 0.0001)
|
|
96
|
+
|
|
97
|
+
NI = cp.sum(fx / (ni + 0.0001))
|
|
98
|
+
NN = cp.sum(fp > 0.0)
|
|
99
|
+
|
|
100
|
+
return cp.sqrt(NI / (NN + 0.01)), fp, fx, si, co, ni
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def calculate_dpf_gpu(FP, FX, rms, n_sky: int, gamma_regulator: float,
|
|
104
|
+
network_energy_threshold: float):
|
|
105
|
+
"""
|
|
106
|
+
GPU-accelerated version of calculate_dpf using CuPy.
|
|
107
|
+
|
|
108
|
+
:param FP: (n_sky, NIFO, 1) array
|
|
109
|
+
:param FX: (n_sky, NIFO, 1) array
|
|
110
|
+
:param rms: (NIFO, NPIX) array
|
|
111
|
+
:return: network energy statistic
|
|
112
|
+
"""
|
|
113
|
+
# Convert to float32 and ensure on GPU
|
|
114
|
+
FP = cp.asarray(FP, dtype=cp.float32)
|
|
115
|
+
FX = cp.asarray(FX, dtype=cp.float32)
|
|
116
|
+
rms = cp.asarray(rms, dtype=cp.float32)
|
|
117
|
+
|
|
118
|
+
# Compute all aa values in parallel
|
|
119
|
+
aa, _, _, _, _, _ = dpf_cupy(FP, FX, rms)
|
|
120
|
+
|
|
121
|
+
# Compute selection mask
|
|
122
|
+
mm = (aa > gamma_regulator).astype(cp.uint8)
|
|
123
|
+
ff = mm.sum()
|
|
124
|
+
FF = n_sky # Original code sets all MM[i] = 1
|
|
125
|
+
|
|
126
|
+
# Final calculation
|
|
127
|
+
return (FF**2 / (ff**2 + 1e-9) - 1) * network_energy_threshold
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
import pickle
|
|
132
|
+
import numpy as np
|
|
133
|
+
|
|
134
|
+
from pycwb.modules.likelihoodWP.likelihood import load_data_from_pixels
|
|
135
|
+
|
|
136
|
+
# load FP, FX, rms, n_sky, gamma_regulator, network_energy_threshold from pickle
|
|
137
|
+
with open('test_data.pkl', 'rb') as f:
|
|
138
|
+
test_data = pickle.load(f)
|
|
139
|
+
|
|
140
|
+
FP = test_data['FP']
|
|
141
|
+
FX = test_data['FX']
|
|
142
|
+
pixels = test_data['pixels']
|
|
143
|
+
n_ifo = test_data['n_ifo']
|
|
144
|
+
n_sky = test_data['n_sky']
|
|
145
|
+
gamma_regulator = test_data['gamma_regulator']
|
|
146
|
+
network_energy_threshold = test_data['network_energy_threshold']
|
|
147
|
+
rms, td00, td90, td_energy = load_data_from_pixels(pixels, n_ifo)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
calculate_dpf_gpu(FP.T, FX.T, rms.T,
|
|
151
|
+
int(n_sky),
|
|
152
|
+
gamma_regulator, network_energy_threshold)
|
|
153
|
+
|
|
154
|
+
print(dpf_cupy(FP.T[1000].astype(np.float32), FX.T[1000].astype(np.float32), rms.T.astype(np.float32))[0])
|
|
155
|
+
|
|
156
|
+
import time
|
|
157
|
+
|
|
158
|
+
total_time = 0
|
|
159
|
+
# # convert FP, FX, rms to float32
|
|
160
|
+
for i in range(10):
|
|
161
|
+
start = time.time()
|
|
162
|
+
calculate_dpf_gpu(FP.T, FX.T, rms.T,
|
|
163
|
+
int(n_sky),
|
|
164
|
+
gamma_regulator, network_energy_threshold)
|
|
165
|
+
end = time.time()
|
|
166
|
+
total_time += end - start
|
|
167
|
+
print(end - start)
|
|
168
|
+
print(f"Average time: {total_time / 10:.4f} s")
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
# file generated by
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
3
6
|
TYPE_CHECKING = False
|
|
4
7
|
if TYPE_CHECKING:
|
|
5
|
-
from typing import Tuple
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
6
11
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
12
|
else:
|
|
8
13
|
VERSION_TUPLE = object
|
|
@@ -12,5 +17,5 @@ __version__: str
|
|
|
12
17
|
__version_tuple__: VERSION_TUPLE
|
|
13
18
|
version_tuple: VERSION_TUPLE
|
|
14
19
|
|
|
15
|
-
__version__ = version = '0.
|
|
16
|
-
__version_tuple__ = version_tuple = (0,
|
|
20
|
+
__version__ = version = '0.28.0'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 28, 0)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
DETECTORS = {
|
|
2
|
+
"H1": {
|
|
3
|
+
"name": "LHO_4k",
|
|
4
|
+
"lat": 0.81079526383,
|
|
5
|
+
"lon": -2.08405676917,
|
|
6
|
+
"x": {
|
|
7
|
+
"alt": -0.00061950000,
|
|
8
|
+
"az": 5.65487724844
|
|
9
|
+
},
|
|
10
|
+
"y": {
|
|
11
|
+
"alt": 0.00001250000,
|
|
12
|
+
"az": 4.08408092164
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"L1": {
|
|
16
|
+
"name": "LLO_4k",
|
|
17
|
+
"lat": 0.53342313506,
|
|
18
|
+
"lon": -1.58430937078,
|
|
19
|
+
"x": {
|
|
20
|
+
"alt": -0.00031210000,
|
|
21
|
+
"az": 4.40317772346
|
|
22
|
+
},
|
|
23
|
+
"y": {
|
|
24
|
+
"alt": -0.00061070000,
|
|
25
|
+
"az": 2.83238139666
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"V1": {
|
|
29
|
+
"name": "VIRGO",
|
|
30
|
+
"lat": 0.76151183984,
|
|
31
|
+
"lon": 0.18333805213,
|
|
32
|
+
"x": {
|
|
33
|
+
"alt": 0.00000000000,
|
|
34
|
+
"az": 0.33916285222
|
|
35
|
+
},
|
|
36
|
+
"y": {
|
|
37
|
+
"alt": 0.00000000000,
|
|
38
|
+
"az": 5.05155183261
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"G1": {
|
|
42
|
+
"name": "GEO_600",
|
|
43
|
+
"lat": 0.91184982752,
|
|
44
|
+
"lon": 0.17116780435,
|
|
45
|
+
"x": {
|
|
46
|
+
"alt": 0.00000000000,
|
|
47
|
+
"az": 1.19360100484
|
|
48
|
+
},
|
|
49
|
+
"y": {
|
|
50
|
+
"alt": 0.00000000000,
|
|
51
|
+
"az": 5.83039279401
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"E1": {
|
|
55
|
+
"name": "ET1_T1400308",
|
|
56
|
+
"lat": 0.76151183984,
|
|
57
|
+
"lon": 0.18333805213,
|
|
58
|
+
"x": {
|
|
59
|
+
"alt": 0.00000000000,
|
|
60
|
+
"az": 0.33916285222
|
|
61
|
+
},
|
|
62
|
+
"y": {
|
|
63
|
+
"alt": 0.00000000000,
|
|
64
|
+
"az": 5.57515060820
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"E2": {
|
|
68
|
+
"name": "ET2_T1400308",
|
|
69
|
+
"lat": 0.76299307990,
|
|
70
|
+
"lon": 0.18405858870,
|
|
71
|
+
"x": {
|
|
72
|
+
"alt": 0.00000000000,
|
|
73
|
+
"az": 4.52795305701
|
|
74
|
+
},
|
|
75
|
+
"y": {
|
|
76
|
+
"alt": 0.00000000000,
|
|
77
|
+
"az": 3.48075550581
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"E3": {
|
|
81
|
+
"name": "ET3_T1400308",
|
|
82
|
+
"lat": 0.76270463257,
|
|
83
|
+
"lon": 0.18192996730,
|
|
84
|
+
"x": {
|
|
85
|
+
"alt": 0.00000000000,
|
|
86
|
+
"az": 2.43355795462
|
|
87
|
+
},
|
|
88
|
+
"y": {
|
|
89
|
+
"alt": 0.00000000000,
|
|
90
|
+
"az": 1.38636040342
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"E0": {
|
|
94
|
+
"name": "ET0_T1400308",
|
|
95
|
+
"lat": 0.76270463257,
|
|
96
|
+
"lon": 0.18192996730,
|
|
97
|
+
"x": {
|
|
98
|
+
"alt": 0.00000000000,
|
|
99
|
+
"az": 0.00000000000
|
|
100
|
+
},
|
|
101
|
+
"y": {
|
|
102
|
+
"alt": 0.00000000000,
|
|
103
|
+
"az": 0.00000000000
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"K1": {
|
|
107
|
+
"name": "KAGRA",
|
|
108
|
+
"lat": 0.6355068497,
|
|
109
|
+
"lon": 2.396441015,
|
|
110
|
+
"x": {
|
|
111
|
+
"alt": 0.0031414,
|
|
112
|
+
"az": 1.054113
|
|
113
|
+
},
|
|
114
|
+
"y": {
|
|
115
|
+
"alt": -0.0036270,
|
|
116
|
+
"az": -0.5166798
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -81,6 +81,12 @@ schema = {
|
|
|
81
81
|
"default": False,
|
|
82
82
|
"cwb": False
|
|
83
83
|
},
|
|
84
|
+
"segment_processer": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"description": "main segment processer function for the analysis, the arguments for the function are: func(working_dir, config, job_seg, **kwargs)",
|
|
87
|
+
"default": "pycwb.workflow.subflow.process_job_segment.process_job_segment",
|
|
88
|
+
"cwb": False
|
|
89
|
+
},
|
|
84
90
|
"use_root_supercluster": {
|
|
85
91
|
"type": "boolean",
|
|
86
92
|
"description": "use cwb supercluster, if false use python version",
|
|
@@ -98,7 +98,10 @@ def convert_timeseries_to_wavearray(data: TimeSeries):
|
|
|
98
98
|
# if not hasattr(ROOT, "_copy_to_wavearray"):
|
|
99
99
|
# declare_function()
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
# convert it to contiguous array to prevent segmentation fault
|
|
102
|
+
new_data = np.ascontiguousarray(data.value, dtype=np.float64)
|
|
103
|
+
|
|
104
|
+
ROOT.pycwb_copy_to_wavearray(new_data.ctypes.data_as(c_double_p), h, len(data.value))
|
|
102
105
|
|
|
103
106
|
h.start(np.asarray(data.t0, dtype=np.double))
|
|
104
107
|
h.rate(int(1. / np.asarray(data.dt, dtype=np.double)))
|
|
@@ -122,7 +125,10 @@ def convert_pycbc_timeseries_to_wavearray(data: pycbcTimeSeries):
|
|
|
122
125
|
# if not hasattr(ROOT, "_copy_to_wavearray"):
|
|
123
126
|
# declare_function()
|
|
124
127
|
|
|
125
|
-
|
|
128
|
+
# convert it to contiguous array to prevent segmentation fault
|
|
129
|
+
new_data = np.ascontiguousarray(data.data, dtype=np.float64)
|
|
130
|
+
|
|
131
|
+
ROOT.pycwb_copy_to_wavearray(new_data.ctypes.data_as(c_double_p), h, len(data.data))
|
|
126
132
|
|
|
127
133
|
h.start(np.asarray(data.start_time, dtype=np.double))
|
|
128
134
|
h.rate(int(1. / np.asarray(data.delta_t, dtype=np.double)))
|
|
@@ -148,7 +148,7 @@ def job_segment_from_dq(dq_file_list, ifos, seg_len, seg_mls, seg_edge, seg_over
|
|
|
148
148
|
seg_lists = []
|
|
149
149
|
for ifo in ifos:
|
|
150
150
|
dq_files = [dq_file for dq_file in dq_file_list if dq_file.ifo == ifo]
|
|
151
|
-
cat1_list = read_seg_list(dq_files, 'CWB_CAT1')
|
|
151
|
+
cat1_list = read_seg_list(dq_files, 'CWB_CAT1', periods)
|
|
152
152
|
seg_lists.append(cat1_list)
|
|
153
153
|
|
|
154
154
|
# for zero super lag, merge the segments, and get the standard job segments
|
|
@@ -8,7 +8,7 @@ from numba import njit
|
|
|
8
8
|
logger = logging.getLogger(__name__)
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
def get_MRA_wave(cluster, wdmList, rate, ifo, a_type, mode, nproc, whiten=False):
|
|
11
|
+
def get_MRA_wave(cluster, wdmList, rate, ifo, a_type, mode, nproc, whiten=False) -> TimeSeries:
|
|
12
12
|
"""
|
|
13
13
|
get MRA waveforms of type atype in time domain given lag nomber and cluster ID
|
|
14
14
|
|
|
@@ -122,9 +122,9 @@ def get_network_MRA_wave(config, cluster, rate, nIFO, rTDF, a_type, mode, tof, w
|
|
|
122
122
|
# apply time delay
|
|
123
123
|
if tof:
|
|
124
124
|
R = rTDF # effective time-delay rate
|
|
125
|
-
t_shift = v[i] / R
|
|
125
|
+
t_shift = -v[i] / R
|
|
126
126
|
xf = x.to_frequencyseries()
|
|
127
|
-
xf
|
|
127
|
+
xf.data *= np.exp(-2j * np.pi * xf.sample_frequencies * t_shift)
|
|
128
128
|
x = xf.to_timeseries()
|
|
129
129
|
|
|
130
130
|
waveforms.append(x)
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import math
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from copy import deepcopy
|
|
4
|
+
from pycwb.constants.physics_constants import LAL_EARTHFLAT, LAL_REARTH_SI
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class Detector:
|
|
9
|
+
"""
|
|
10
|
+
Class for storing detector information.
|
|
11
|
+
|
|
12
|
+
Parameters
|
|
13
|
+
----------
|
|
14
|
+
name : str
|
|
15
|
+
detector name
|
|
16
|
+
"""
|
|
17
|
+
name: str
|
|
18
|
+
full_name: str
|
|
19
|
+
latitude: float
|
|
20
|
+
longitude: float
|
|
21
|
+
altitude: float
|
|
22
|
+
x_azimuth: float
|
|
23
|
+
x_altitude: float
|
|
24
|
+
y_azimuth: float
|
|
25
|
+
y_altitude: float
|
|
26
|
+
|
|
27
|
+
def __init__(self, name):
|
|
28
|
+
super().__init__(name)
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def get_cartesian_components(alt, az, lat, lon):
|
|
32
|
+
"""
|
|
33
|
+
Calculate the Cartesian components of a vector based on Altitude, Azimuth, Latitude, and Longitude.
|
|
34
|
+
|
|
35
|
+
Parameters:
|
|
36
|
+
alt (float): Altitude angle in radians.
|
|
37
|
+
az (float): Azimuth angle in radians.
|
|
38
|
+
lat (float): Latitude in radians.
|
|
39
|
+
lon (float): Longitude in radians.
|
|
40
|
+
"""
|
|
41
|
+
cosAlt = math.cos(alt)
|
|
42
|
+
sinAlt = math.sin(alt)
|
|
43
|
+
cosAz = math.cos(az)
|
|
44
|
+
sinAz = math.sin(az)
|
|
45
|
+
cosLat = math.cos(lat)
|
|
46
|
+
sinLat = math.sin(lat)
|
|
47
|
+
cosLon = math.cos(lon)
|
|
48
|
+
sinLon = math.sin(lon)
|
|
49
|
+
|
|
50
|
+
uNorth = cosAlt * cosAz
|
|
51
|
+
uEast = cosAlt * sinAz
|
|
52
|
+
# uUp == sinAlt
|
|
53
|
+
uRho = -sinLat * uNorth + cosLat * sinAlt
|
|
54
|
+
# uLambda == uEast
|
|
55
|
+
|
|
56
|
+
u = [cosLon * uRho - sinLon * uEast,
|
|
57
|
+
sinLon * uRho + cosLon * uEast,
|
|
58
|
+
cosLat * uNorth + sinLat * sinAlt]
|
|
59
|
+
|
|
60
|
+
return u
|
|
61
|
+
|
|
62
|
+
@staticmethod
|
|
63
|
+
def geodetic_to_geocentric(latitude, longitude, elevation):
|
|
64
|
+
"""
|
|
65
|
+
Convert geodetic coordinates (latitude, longitude, elevation) to geocentric Cartesian coordinates (X, Y, Z).
|
|
66
|
+
|
|
67
|
+
Parameters:
|
|
68
|
+
latitude (float): Latitude in radians.
|
|
69
|
+
longitude (float): Longitude in radians.
|
|
70
|
+
elevation (float): Elevation above the Earth's surface in meters.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
tuple: A tuple containing the Cartesian coordinates (X, Y, Z) in meters.
|
|
74
|
+
"""
|
|
75
|
+
# Intermediate calculations
|
|
76
|
+
fFac = 1.0 - LAL_EARTHFLAT
|
|
77
|
+
fFac *= fFac
|
|
78
|
+
|
|
79
|
+
cosP = math.cos(latitude)
|
|
80
|
+
sinP = math.sin(latitude)
|
|
81
|
+
|
|
82
|
+
c = math.sqrt(1.0 / (cosP * cosP + fFac * sinP * sinP))
|
|
83
|
+
print(c)
|
|
84
|
+
s = fFac * c
|
|
85
|
+
c = (LAL_REARTH_SI * c + elevation) * cosP
|
|
86
|
+
s = (LAL_REARTH_SI * s + elevation) * sinP
|
|
87
|
+
print(c)
|
|
88
|
+
# Cartesian coordinates
|
|
89
|
+
x = c * math.cos(longitude)
|
|
90
|
+
y = c * math.sin(longitude)
|
|
91
|
+
z = s
|
|
92
|
+
|
|
93
|
+
return x, y, z
|
|
94
|
+
|
|
95
|
+
def time_rotated(self, time):
|
|
96
|
+
"""
|
|
97
|
+
Equivalent detector position for a delayed time.
|
|
98
|
+
|
|
99
|
+
Parameters:
|
|
100
|
+
time (float): Time in seconds.
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
Detector: A new detector object with the equivalent position for the delayed time.
|
|
104
|
+
"""
|
|
105
|
+
# Rotate the detector
|
|
106
|
+
new_lon = self.longitude + 2 * math.pi * time / 86400
|
|
107
|
+
|
|
108
|
+
# copy the detector
|
|
109
|
+
new_detector = deepcopy(self)
|
|
110
|
+
new_detector.longitude = new_lon
|
|
111
|
+
|
|
112
|
+
return new_detector
|
|
@@ -13,3 +13,13 @@ def import_helper(module_str, module_name):
|
|
|
13
13
|
module = importlib.import_module(module_str)
|
|
14
14
|
|
|
15
15
|
return module
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def import_function(func_str):
|
|
19
|
+
func_name = func_str.split('.')[-1]
|
|
20
|
+
module_name = '.'.join(func_str.split('.')[:-1])
|
|
21
|
+
if not module_name.startswith('pycwb'):
|
|
22
|
+
module_name = f"pycwb.modules.{module_name}"
|
|
23
|
+
module = import_helper(module_name, module_name)
|
|
24
|
+
func = getattr(module, func_name)
|
|
25
|
+
return func
|
|
@@ -2,13 +2,13 @@ import multiprocessing
|
|
|
2
2
|
import os
|
|
3
3
|
import getpass
|
|
4
4
|
import shutil
|
|
5
|
+
import logging
|
|
5
6
|
from pathlib import Path
|
|
6
|
-
|
|
7
|
-
from htcondor import dags
|
|
8
|
-
|
|
9
7
|
from pycwb.modules.logger import logger_init, log_prints
|
|
10
8
|
from pycwb.workflow.subflow import prepare_job_runs, load_batch_run
|
|
11
|
-
from pycwb.
|
|
9
|
+
from pycwb.utils.module import import_function
|
|
10
|
+
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def batch_setup(file_name, working_dir='.',
|
|
@@ -17,6 +17,7 @@ def batch_setup(file_name, working_dir='.',
|
|
|
17
17
|
accounting_group=None, job_per_worker=10, n_proc=1, memory="6GB", disk="4GB",
|
|
18
18
|
dry_run=False, submit=False):
|
|
19
19
|
import htcondor
|
|
20
|
+
from htcondor import dags
|
|
20
21
|
|
|
21
22
|
logger_init(log_file, log_level)
|
|
22
23
|
job_segments, config, working_dir = prepare_job_runs(working_dir, file_name, n_proc, dry_run, overwrite,
|
|
@@ -139,6 +140,10 @@ def batch_run(config_file, working_dir='.', log_file=None, log_level="INFO",
|
|
|
139
140
|
n_proc=n_proc, compress_json=compress_json)
|
|
140
141
|
logger_init(log_file, log_level)
|
|
141
142
|
|
|
143
|
+
logger.info(f"Loading segment processer: {config.segment_processer}")
|
|
144
|
+
main_func = import_function(config.segment_processer)
|
|
145
|
+
logger.info(f"Segment processer loaded: {main_func}")
|
|
146
|
+
|
|
142
147
|
exceptions = []
|
|
143
148
|
for job_seg in job_segments:
|
|
144
149
|
# check if the job is done
|
|
@@ -152,7 +157,7 @@ def batch_run(config_file, working_dir='.', log_file=None, log_level="INFO",
|
|
|
152
157
|
# args=(working_dir, config, job_seg, compress_json, catalog_file))
|
|
153
158
|
# process.start()
|
|
154
159
|
# process.join()
|
|
155
|
-
|
|
160
|
+
main_func(working_dir, config, job_seg,
|
|
156
161
|
compress_json=compress_json, catalog_file=catalog_file)
|
|
157
162
|
|
|
158
163
|
# create a flag file to indicate the job is done
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from pycwb.modules.logger import logger_init
|
|
2
2
|
from pycwb.workflow.subflow import prepare_job_runs
|
|
3
|
-
from pycwb.
|
|
3
|
+
from pycwb.utils.module import import_function
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
logger = logging.getLogger(__name__)
|
|
4
7
|
|
|
5
8
|
|
|
6
9
|
def search(file_name, working_dir='.', overwrite=False, log_file=None, log_level="INFO",
|
|
@@ -17,7 +20,11 @@ def search(file_name, working_dir='.', overwrite=False, log_file=None, log_level
|
|
|
17
20
|
# cluster.scale(n_proc)
|
|
18
21
|
# client = Client(cluster)
|
|
19
22
|
|
|
23
|
+
logger.info(f"Loading segment processer: {config.segment_processer}")
|
|
24
|
+
main_func = import_function(config.segment_processer)
|
|
25
|
+
logger.info(f"Segment processer loaded: {main_func}")
|
|
26
|
+
|
|
20
27
|
for job_seg in job_segments:
|
|
21
|
-
|
|
28
|
+
main_func(working_dir, config, job_seg, compress_json=compress_json)
|
|
22
29
|
|
|
23
30
|
# client.close()
|