PycWB 0.26.0__tar.gz → 0.27.1__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.
Files changed (419) hide show
  1. {pycwb-0.26.0 → pycwb-0.27.1}/PKG-INFO +6 -2
  2. {pycwb-0.26.0 → pycwb-0.27.1}/PycWB.egg-info/PKG-INFO +6 -2
  3. {pycwb-0.26.0 → pycwb-0.27.1}/PycWB.egg-info/SOURCES.txt +8 -0
  4. {pycwb-0.26.0 → pycwb-0.27.1}/bin/pycwb +6 -0
  5. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/index.rst +4 -0
  6. pycwb-0.27.1/examples/gwosc/user_parameters.yaml +89 -0
  7. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/pp_workflow/simple_module.yaml +10 -6
  8. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/_version.py +2 -2
  9. pycwb-0.27.1/pycwb/cli/gwosc.py +84 -0
  10. pycwb-0.27.1/pycwb/constants/detectors.py +119 -0
  11. pycwb-0.27.1/pycwb/constants/physics_constants.py +2 -0
  12. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/cwb_conversions/series.py +8 -2
  13. pycwb-0.27.1/pycwb/modules/gwosc/gwosc.py +142 -0
  14. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/job_segment.py +1 -1
  15. pycwb-0.27.1/pycwb/modules/report/continues_poisson.py +129 -0
  16. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/report/read_results.py +3 -1
  17. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/report/report.py +14 -4
  18. pycwb-0.27.1/pycwb/types/detector.py +112 -0
  19. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/network_event.py +1 -1
  20. pycwb-0.27.1/pycwb/vendor/template/gwosc/user_parameters.yaml +89 -0
  21. pycwb-0.27.1/pycwb/workflow/__init__.py +0 -0
  22. pycwb-0.26.0/pycwb/types/detector.py +0 -14
  23. {pycwb-0.26.0 → pycwb-0.27.1}/.gitignore +0 -0
  24. {pycwb-0.26.0 → pycwb-0.27.1}/.gitlab-ci.yml +0 -0
  25. {pycwb-0.26.0 → pycwb-0.27.1}/.readthedocs.yaml +0 -0
  26. {pycwb-0.26.0 → pycwb-0.27.1}/LICENSE +0 -0
  27. {pycwb-0.26.0 → pycwb-0.27.1}/MANIFEST.in +0 -0
  28. {pycwb-0.26.0 → pycwb-0.27.1}/Makefile +0 -0
  29. {pycwb-0.26.0 → pycwb-0.27.1}/PycWB.egg-info/dependency_links.txt +0 -0
  30. {pycwb-0.26.0 → pycwb-0.27.1}/PycWB.egg-info/requires.txt +0 -0
  31. {pycwb-0.26.0 → pycwb-0.27.1}/PycWB.egg-info/top_level.txt +0 -0
  32. {pycwb-0.26.0 → pycwb-0.27.1}/README.md +0 -0
  33. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/README.md +0 -0
  34. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/likelihood/README.md +0 -0
  35. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/likelihood/generate_data_for_likelihood.py +0 -0
  36. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/likelihood/performance_test_dpf.py +0 -0
  37. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/likelihood/performance_test_opt_sky.py +0 -0
  38. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/likelihood/user_parameters_injection.yaml +0 -0
  39. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/supercluster/README.md +0 -0
  40. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/supercluster/generate_data.py +0 -0
  41. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/supercluster/generate_data_2.py +0 -0
  42. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/supercluster/performance_supercluster.py +0 -0
  43. {pycwb-0.26.0 → pycwb-0.27.1}/benchmark/supercluster/user_parameters_injection.yaml +0 -0
  44. {pycwb-0.26.0 → pycwb-0.27.1}/bin/pycwb_search +0 -0
  45. {pycwb-0.26.0 → pycwb-0.27.1}/bin/pycwb_show +0 -0
  46. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Biorthogonal.cc +0 -0
  47. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Biorthogonal.hh +0 -0
  48. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/CMakeLists.txt +0 -0
  49. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Daubechies.cc +0 -0
  50. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Daubechies.hh +0 -0
  51. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/FourierCoefficients.icc +0 -0
  52. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Haar.cc +0 -0
  53. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Haar.hh +0 -0
  54. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/LineFilter.cc +0 -0
  55. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/LineFilter.hh +0 -0
  56. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Makefile +0 -0
  57. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Meyer.cc +0 -0
  58. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Meyer.hh +0 -0
  59. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Symlet.cc +0 -0
  60. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Symlet.hh +0 -0
  61. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/SymmArray.cc +0 -0
  62. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/SymmArray.hh +0 -0
  63. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/SymmArraySSE.cc +0 -0
  64. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/SymmArraySSE.hh +0 -0
  65. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/SymmObjArray.cc +0 -0
  66. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/SymmObjArray.hh +0 -0
  67. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/WDM.cc +0 -0
  68. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/WDM.hh +0 -0
  69. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/WDMOverlap.cc +0 -0
  70. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/WDMOverlap.hh +0 -0
  71. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/WaveDWT.cc +0 -0
  72. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/WaveDWT.hh +0 -0
  73. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Wavelet.cc +0 -0
  74. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/Wavelet.hh +0 -0
  75. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/alm.hh +0 -0
  76. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/build.sh +0 -0
  77. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/cluster.cc +0 -0
  78. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/cluster.hh +0 -0
  79. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/cmake/FindHealpix.cmake +0 -0
  80. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/cmake/FindeBBH.cmake +0 -0
  81. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/cmake/install_function.cmake +0 -0
  82. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/constants.hh +0 -0
  83. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/detector.cc +0 -0
  84. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/detector.hh +0 -0
  85. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/injection.cc +0 -0
  86. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/injection.hh +0 -0
  87. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/lossy.cc +0 -0
  88. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/lossy.hh +0 -0
  89. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/monster.cc +0 -0
  90. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/monster.hh +0 -0
  91. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/netcluster.cc +0 -0
  92. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/netcluster.hh +0 -0
  93. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/netevent.cc +0 -0
  94. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/netevent.hh +0 -0
  95. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/netpixel.cc +0 -0
  96. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/netpixel.hh +0 -0
  97. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/network.cc +0 -0
  98. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/network.hh +0 -0
  99. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/pycwb.hh +0 -0
  100. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/rdfr.cc +0 -0
  101. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/rdfr.hh +0 -0
  102. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/readframe.cc +0 -0
  103. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/readframe.hh +0 -0
  104. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/readfrfile.cc +0 -0
  105. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/readfrfile.hh +0 -0
  106. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/regression.cc +0 -0
  107. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/regression.hh +0 -0
  108. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/skycoord.hh +0 -0
  109. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/skymap.cc +0 -0
  110. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/skymap.hh +0 -0
  111. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/sseries.cc +0 -0
  112. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/sseries.hh +0 -0
  113. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/time.cc +0 -0
  114. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/time.hh +0 -0
  115. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wat.hh +0 -0
  116. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watasm.S +0 -0
  117. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watasm_elf64.o +0 -0
  118. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watavx.hh +0 -0
  119. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watbranch.in +0 -0
  120. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watfun.hh +0 -0
  121. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wathash.in +0 -0
  122. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watplot.cc +0 -0
  123. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watplot.hh +0 -0
  124. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watsse.hh +0 -0
  125. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wattag.in +0 -0
  126. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/waturl.in +0 -0
  127. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/watversion.hh.in +0 -0
  128. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavearray.cc +0 -0
  129. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavearray.hh +0 -0
  130. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavecomplex.cc +0 -0
  131. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavecomplex.hh +0 -0
  132. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavecor.cc +0 -0
  133. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavecor.hh +0 -0
  134. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavefft.cc +0 -0
  135. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavefft.hh +0 -0
  136. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavelet_LinkDef.h +0 -0
  137. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavelinefilter.cc +0 -0
  138. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wavelinefilter.hh +0 -0
  139. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/waverdc.cc +0 -0
  140. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/waverdc.hh +0 -0
  141. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wseries.cc +0 -0
  142. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wseries.hh +0 -0
  143. {pycwb-0.26.0 → pycwb-0.27.1}/cwb-core/wslice.hh +0 -0
  144. {pycwb-0.26.0 → pycwb-0.27.1}/docs/0.installation_guide.md +0 -0
  145. {pycwb-0.26.0 → pycwb-0.27.1}/docs/1.initialisation_guide.md +0 -0
  146. {pycwb-0.26.0 → pycwb-0.27.1}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
  147. {pycwb-0.26.0 → pycwb-0.27.1}/docs/3.run_pycwb_with_yaml_config.md +0 -0
  148. {pycwb-0.26.0 → pycwb-0.27.1}/docs/4.py_cwb_inet_2G.md +0 -0
  149. {pycwb-0.26.0 → pycwb-0.27.1}/docs/5.cwb2G_analyse.md +0 -0
  150. {pycwb-0.26.0 → pycwb-0.27.1}/docs/6.wat_codes_notes.md +0 -0
  151. {pycwb-0.26.0 → pycwb-0.27.1}/docs/Makefile +0 -0
  152. {pycwb-0.26.0 → pycwb-0.27.1}/docs/diagram.py +0 -0
  153. {pycwb-0.26.0 → pycwb-0.27.1}/docs/make.bat +0 -0
  154. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/_static/.keep +0 -0
  155. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/_templates/.keep +0 -0
  156. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/conf.py +0 -0
  157. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/credit.rst +0 -0
  158. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/install.rst +0 -0
  159. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/mod_cwb.rst +0 -0
  160. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/package.rst +0 -0
  161. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/schema.rst +0 -0
  162. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/tutorial_batch_inj.rst +0 -0
  163. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/tutorial_customized_wf_gen.rst +0 -0
  164. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/tutorial_injection.rst +0 -0
  165. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/tutorial_multi_injection.rst +0 -0
  166. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/tutorial_search.rst +0 -0
  167. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/tutorials.rst +0 -0
  168. {pycwb-0.26.0 → pycwb-0.27.1}/docs/source/workflow.png +0 -0
  169. {pycwb-0.26.0 → pycwb-0.27.1}/envs/Dockerfile +0 -0
  170. {pycwb-0.26.0 → pycwb-0.27.1}/envs/environment.yml +0 -0
  171. {pycwb-0.26.0 → pycwb-0.27.1}/envs/mamba/Dockerfile +0 -0
  172. {pycwb-0.26.0 → pycwb-0.27.1}/examples/autoencoder/pycwb_injection.ipynb +0 -0
  173. {pycwb-0.26.0 → pycwb-0.27.1}/examples/autoencoder/user_parameters_injection.yaml +0 -0
  174. {pycwb-0.26.0 → pycwb-0.27.1}/examples/batch_injection/generate_parameters.py +0 -0
  175. {pycwb-0.26.0 → pycwb-0.27.1}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
  176. {pycwb-0.26.0 → pycwb-0.27.1}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
  177. {pycwb-0.26.0 → pycwb-0.27.1}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
  178. {pycwb-0.26.0 → pycwb-0.27.1}/examples/batch_injection/pycwb_injection.py +0 -0
  179. {pycwb-0.26.0 → pycwb-0.27.1}/examples/batch_injection/user_parameters_injection.yaml +0 -0
  180. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/H1_cat0.txt +0 -0
  181. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/H1_cat1.txt +0 -0
  182. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/H1_cat2.txt +0 -0
  183. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/H1_cat4.txt +0 -0
  184. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/L1_cat0.txt +0 -0
  185. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/L1_cat1.txt +0 -0
  186. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/L1_cat2.txt +0 -0
  187. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/DQ/L1_cat4.txt +0 -0
  188. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/input/OPBM.period +0 -0
  189. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/input/OPBM_H1.frames +0 -0
  190. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/input/OPBM_L1.frames +0 -0
  191. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/pycwb_mdc.py +0 -0
  192. {pycwb-0.26.0 → pycwb-0.27.1}/examples/benchmark/user_parameters_mdc.yaml +0 -0
  193. {pycwb-0.26.0 → pycwb-0.27.1}/examples/colab/pycWB_GW150914.ipynb +0 -0
  194. {pycwb-0.26.0 → pycwb-0.27.1}/examples/injection/pycwb_injection.ipynb +0 -0
  195. {pycwb-0.26.0 → pycwb-0.27.1}/examples/injection/user_parameters_injection.yaml +0 -0
  196. {pycwb-0.26.0 → pycwb-0.27.1}/examples/injection/wdmXTalk/OverlapCatalog16-1024.bin +0 -0
  197. {pycwb-0.26.0 → pycwb-0.27.1}/examples/lvk_sep_2023/demo.ipynb +0 -0
  198. {pycwb-0.26.0 → pycwb-0.27.1}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
  199. {pycwb-0.26.0 → pycwb-0.27.1}/examples/multiple_injection/pycwb_injection.py +0 -0
  200. {pycwb-0.26.0 → pycwb-0.27.1}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
  201. {pycwb-0.26.0 → pycwb-0.27.1}/examples/pyseobnr_injection/generate_parameters.py +0 -0
  202. {pycwb-0.26.0 → pycwb-0.27.1}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
  203. {pycwb-0.26.0 → pycwb-0.27.1}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
  204. {pycwb-0.26.0 → pycwb-0.27.1}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
  205. {pycwb-0.26.0 → pycwb-0.27.1}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
  206. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/cwb_core/coherence.cc +0 -0
  207. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/cwb_core/coherence.hh +0 -0
  208. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/cwb_core/likelihood.cc +0 -0
  209. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/cwb_core/likelihood.hh +0 -0
  210. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/dag/dag.py +0 -0
  211. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/dag/dask-prefect.py +0 -0
  212. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/dag/prefect_test.py +0 -0
  213. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger/__init__.py +0 -0
  214. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger/server.py +0 -0
  215. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger/visualizition.py +0 -0
  216. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
  217. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/.gitignore +0 -0
  218. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
  219. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/README.md +0 -0
  220. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/index.html +0 -0
  221. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/package-lock.json +0 -0
  222. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/package.json +0 -0
  223. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
  224. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/App.vue +0 -0
  225. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
  226. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
  227. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
  228. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
  229. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
  230. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
  231. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
  232. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
  233. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
  234. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
  235. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
  236. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
  237. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
  238. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/main.js +0 -0
  239. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/router/index.js +0 -0
  240. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
  241. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
  242. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
  243. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
  244. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
  245. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
  246. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/messenger-web-interface/vite.config.js +0 -0
  247. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/performance/numba_test.py +0 -0
  248. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/performance/taichi_test.py +0 -0
  249. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/pp_workflow/simple.yaml +0 -0
  250. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/pp_workflow/workflow.yaml +0 -0
  251. {pycwb-0.26.0 → pycwb-0.27.1}/prototypes/search.yaml +0 -0
  252. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/__init__.py +0 -0
  253. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/__init__.py +0 -0
  254. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/batch_runner.py +0 -0
  255. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/batch_setup.py +0 -0
  256. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/flow.py +0 -0
  257. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/merge_catalog.py +0 -0
  258. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/post_process.py +0 -0
  259. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/run.py +0 -0
  260. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/server.py +0 -0
  261. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/cli/xtalk.py +0 -0
  262. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/config/__init__.py +0 -0
  263. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/config/config.py +0 -0
  264. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/constants/__init__.py +0 -0
  265. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/constants/project_constants.py +0 -0
  266. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/constants/user_parameters_schema.py +0 -0
  267. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/__init__.py +0 -0
  268. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/autoencoder/__init__.py +0 -0
  269. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/autoencoder/autoencoder.py +0 -0
  270. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
  271. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/autoencoder/module.yaml +0 -0
  272. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/catalog/__init__.py +0 -0
  273. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/catalog/catalog.py +0 -0
  274. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/catalog/module.yaml +0 -0
  275. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/coherence/__init__.py +0 -0
  276. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/coherence/coherence.py +0 -0
  277. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/coherence/coherence_lite.py +0 -0
  278. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/coherence/module.yaml +0 -0
  279. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/condor/__init__.py +0 -0
  280. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/condor/condor.py +0 -0
  281. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/condor/module.yaml +0 -0
  282. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/cwb_conversions/__init__.py +0 -0
  283. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/cwb_conversions/cluster.py +0 -0
  284. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/cwb_conversions/module.yaml +0 -0
  285. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/cwb_conversions/pixel.py +0 -0
  286. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
  287. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/data_conditioning/__init__.py +0 -0
  288. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/data_conditioning/data_conditioning.py +0 -0
  289. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/data_conditioning/module.yaml +0 -0
  290. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/data_conditioning/regression.py +0 -0
  291. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/data_conditioning/whitening.py +0 -0
  292. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/energy_threshold/__init__.py +0 -0
  293. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/energy_threshold/threshold.py +0 -0
  294. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/gracedb/__init__.py +0 -0
  295. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/gracedb/gracedb.py +0 -0
  296. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/gracedb/module.yaml +0 -0
  297. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/gracedb/test_gracedb.py +0 -0
  298. {pycwb-0.26.0/pycwb/modules/likelihoodWP → pycwb-0.27.1/pycwb/modules/gwosc}/__init__.py +0 -0
  299. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/__init__.py +0 -0
  300. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/dq_segment.py +0 -0
  301. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/frame.py +0 -0
  302. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/module.yaml +0 -0
  303. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/plots.py +0 -0
  304. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/super_lag.py +0 -0
  305. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/job_segment/test_job_segment.py +0 -0
  306. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihood/__init__.py +0 -0
  307. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihood/likelihood.py +0 -0
  308. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihood/module.yaml +0 -0
  309. {pycwb-0.26.0/pycwb/modules/plot_map → pycwb-0.27.1/pycwb/modules/likelihoodWP}/__init__.py +0 -0
  310. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihoodWP/dpf.py +0 -0
  311. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihoodWP/dpf_cython.pyx +0 -0
  312. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihoodWP/likelihood.py +0 -0
  313. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihoodWP/sky_stat.py +0 -0
  314. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/likelihoodWP/utils.py +0 -0
  315. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/logger/__init__.py +0 -0
  316. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/logger/logger.py +0 -0
  317. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/logger/module.yaml +0 -0
  318. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
  319. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
  320. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
  321. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot/__init__.py +0 -0
  322. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot/cluster_statistics.py +0 -0
  323. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot/event.py +0 -0
  324. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot/module.yaml +0 -0
  325. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot/spectrogram.py +0 -0
  326. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot/waveform.py +0 -0
  327. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot_data_quality/__init__.py +0 -0
  328. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot_data_quality/module.yaml +0 -0
  329. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot_data_quality/plot.py +0 -0
  330. {pycwb-0.26.0/pycwb/modules/report → pycwb-0.27.1/pycwb/modules/plot_map}/__init__.py +0 -0
  331. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot_map/module.yaml +0 -0
  332. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/plot_map/world_map.py +0 -0
  333. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/read_data/__init__.py +0 -0
  334. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/read_data/data_check.py +0 -0
  335. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/read_data/data_find.py +0 -0
  336. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/read_data/mdc.py +0 -0
  337. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/read_data/module.yaml +0 -0
  338. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/read_data/read_data.py +0 -0
  339. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/reconstruction/__init__.py +0 -0
  340. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/reconstruction/getMRAwaveform.py +0 -0
  341. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/reconstruction/module.yaml +0 -0
  342. {pycwb-0.26.0/pycwb/modules/statistics → pycwb-0.27.1/pycwb/modules/report}/__init__.py +0 -0
  343. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/report/far_rho.py +0 -0
  344. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/sparse_series/__init__.py +0 -0
  345. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/sparse_series/module.yaml +0 -0
  346. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/sparse_series/sparse_table.py +0 -0
  347. {pycwb-0.26.0/pycwb/modules/supercluster_naive → pycwb-0.27.1/pycwb/modules/statistics}/__init__.py +0 -0
  348. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/statistics/eff.py +0 -0
  349. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/statistics/eff_plot.py +0 -0
  350. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/statistics/merge.py +0 -0
  351. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/statistics/sigmoid_fit.py +0 -0
  352. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/super_cluster/__init__.py +0 -0
  353. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/super_cluster/module.yaml +0 -0
  354. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/super_cluster/sub_net_cut.py +0 -0
  355. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/super_cluster/super_cluster.py +0 -0
  356. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/super_cluster/supercluster.py +0 -0
  357. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/super_cluster/utils.py +0 -0
  358. {pycwb-0.26.0/pycwb/modules/web_viewer → pycwb-0.27.1/pycwb/modules/supercluster_naive}/__init__.py +0 -0
  359. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/supercluster_naive/supercluster2.py +0 -0
  360. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/superlag/__init__.py +0 -0
  361. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/superlag/module.yaml +0 -0
  362. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/superlag/superlag.py +0 -0
  363. {pycwb-0.26.0/pycwb/modules/workflow_utils → pycwb-0.27.1/pycwb/modules/web_viewer}/__init__.py +0 -0
  364. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/web_viewer/create.py +0 -0
  365. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/web_viewer/module.yaml +0 -0
  366. {pycwb-0.26.0/pycwb/modules/xtalk → pycwb-0.27.1/pycwb/modules/workflow_utils}/__init__.py +0 -0
  367. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/workflow_utils/job_setup.py +0 -0
  368. {pycwb-0.26.0/pycwb/post_production → pycwb-0.27.1/pycwb/modules/xtalk}/__init__.py +0 -0
  369. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/xtalk/monster.py +0 -0
  370. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/xtalk/monster_old.py +0 -0
  371. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/modules/xtalk/xtalk_data.py +0 -0
  372. {pycwb-0.26.0/pycwb/prefect_flow → pycwb-0.27.1/pycwb/post_production}/__init__.py +0 -0
  373. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/post_production/workflow.py +0 -0
  374. {pycwb-0.26.0/pycwb/prefect_flow/tasks → pycwb-0.27.1/pycwb/prefect_flow}/__init__.py +0 -0
  375. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/prefect_flow/pycwb_flow.py +0 -0
  376. {pycwb-0.26.0/pycwb/types → pycwb-0.27.1/pycwb/prefect_flow/tasks}/__init__.py +0 -0
  377. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/prefect_flow/tasks/builtin.py +0 -0
  378. {pycwb-0.26.0/pycwb/utils → pycwb-0.27.1/pycwb/types}/__init__.py +0 -0
  379. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/data_quality_file.py +0 -0
  380. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/job.py +0 -0
  381. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/network.py +0 -0
  382. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/network_cluster.py +0 -0
  383. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/network_pixel.py +0 -0
  384. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/sparse_series.py +0 -0
  385. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/time_frequency_series.py +0 -0
  386. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/wdm.py +0 -0
  387. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/types/wdm_xtalk.py +0 -0
  388. {pycwb-0.26.0/pycwb/utils/conversions → pycwb-0.27.1/pycwb/utils}/__init__.py +0 -0
  389. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/async_write.py +0 -0
  390. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/check_ROOT.py +0 -0
  391. {pycwb-0.26.0/pycwb/vendor → pycwb-0.27.1/pycwb/utils/conversions}/__init__.py +0 -0
  392. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/conversions/timeseries.py +0 -0
  393. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/dataclass_object_io.py +0 -0
  394. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/dep_check.py +0 -0
  395. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/generate_params_table.py +0 -0
  396. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/image.py +0 -0
  397. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/module.py +0 -0
  398. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/network.py +0 -0
  399. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/parser.py +0 -0
  400. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/skymap_coord.py +0 -0
  401. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/utils/yaml_helper.py +0 -0
  402. {pycwb-0.26.0/pycwb/vendor/autoencoder → pycwb-0.27.1/pycwb/vendor}/__init__.py +0 -0
  403. {pycwb-0.26.0/pycwb/vendor/lib → pycwb-0.27.1/pycwb/vendor/autoencoder}/__init__.py +0 -0
  404. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
  405. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/vendor/example.yaml +0 -0
  406. {pycwb-0.26.0/pycwb/workflow → pycwb-0.27.1/pycwb/vendor/lib}/__init__.py +0 -0
  407. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/vendor/web_viewer/event_dump.html +0 -0
  408. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/vendor/web_viewer/styles.css +0 -0
  409. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/vendor/web_viewer/viewer.html +0 -0
  410. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/batch.py +0 -0
  411. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/merge.py +0 -0
  412. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/run.py +0 -0
  413. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/subflow/__init__.py +0 -0
  414. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/subflow/postprocess_and_plots.py +0 -0
  415. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/subflow/prepare_job_runs.py +0 -0
  416. {pycwb-0.26.0 → pycwb-0.27.1}/pycwb/workflow/subflow/process_job_segment.py +0 -0
  417. {pycwb-0.26.0 → pycwb-0.27.1}/pyproject.toml +0 -0
  418. {pycwb-0.26.0 → pycwb-0.27.1}/setup.cfg +0 -0
  419. {pycwb-0.26.0 → pycwb-0.27.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: PycWB
3
- Version: 0.26.0
3
+ Version: 0.27.1
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
1
+ Metadata-Version: 2.2
2
2
  Name: PycWB
3
- Version: 0.26.0
3
+ Version: 0.27.1
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
 
@@ -175,6 +175,7 @@ examples/benchmark/input/OPBM.period
175
175
  examples/benchmark/input/OPBM_H1.frames
176
176
  examples/benchmark/input/OPBM_L1.frames
177
177
  examples/colab/pycWB_GW150914.ipynb
178
+ examples/gwosc/user_parameters.yaml
178
179
  examples/injection/pycwb_injection.ipynb
179
180
  examples/injection/user_parameters_injection.yaml
180
181
  examples/injection/wdmXTalk/OverlapCatalog16-1024.bin
@@ -240,6 +241,7 @@ pycwb/cli/__init__.py
240
241
  pycwb/cli/batch_runner.py
241
242
  pycwb/cli/batch_setup.py
242
243
  pycwb/cli/flow.py
244
+ pycwb/cli/gwosc.py
243
245
  pycwb/cli/merge_catalog.py
244
246
  pycwb/cli/post_process.py
245
247
  pycwb/cli/run.py
@@ -248,6 +250,8 @@ pycwb/cli/xtalk.py
248
250
  pycwb/config/__init__.py
249
251
  pycwb/config/config.py
250
252
  pycwb/constants/__init__.py
253
+ pycwb/constants/detectors.py
254
+ pycwb/constants/physics_constants.py
251
255
  pycwb/constants/project_constants.py
252
256
  pycwb/constants/user_parameters_schema.py
253
257
  pycwb/modules/__init__.py
@@ -282,6 +286,8 @@ pycwb/modules/gracedb/__init__.py
282
286
  pycwb/modules/gracedb/gracedb.py
283
287
  pycwb/modules/gracedb/module.yaml
284
288
  pycwb/modules/gracedb/test_gracedb.py
289
+ pycwb/modules/gwosc/__init__.py
290
+ pycwb/modules/gwosc/gwosc.py
285
291
  pycwb/modules/job_segment/__init__.py
286
292
  pycwb/modules/job_segment/dq_segment.py
287
293
  pycwb/modules/job_segment/frame.py
@@ -327,6 +333,7 @@ pycwb/modules/reconstruction/__init__.py
327
333
  pycwb/modules/reconstruction/getMRAwaveform.py
328
334
  pycwb/modules/reconstruction/module.yaml
329
335
  pycwb/modules/report/__init__.py
336
+ pycwb/modules/report/continues_poisson.py
330
337
  pycwb/modules/report/far_rho.py
331
338
  pycwb/modules/report/read_results.py
332
339
  pycwb/modules/report/report.py
@@ -395,6 +402,7 @@ pycwb/vendor/example.yaml
395
402
  pycwb/vendor/autoencoder/__init__.py
396
403
  pycwb/vendor/autoencoder/cwb_autoencoder.h5
397
404
  pycwb/vendor/lib/__init__.py
405
+ pycwb/vendor/template/gwosc/user_parameters.yaml
398
406
  pycwb/vendor/web_viewer/event_dump.html
399
407
  pycwb/vendor/web_viewer/styles.css
400
408
  pycwb/vendor/web_viewer/viewer.html
@@ -12,6 +12,7 @@ import pycwb.cli.batch_runner as batch_runner
12
12
  import pycwb.cli.xtalk as xtalk
13
13
  import pycwb.cli.merge_catalog as merge_catalog
14
14
  import pycwb.cli.post_process as post_process
15
+ import pycwb.cli.gwosc as gwosc
15
16
 
16
17
  def main():
17
18
  parser = argparse.ArgumentParser(prog='pycwb')
@@ -51,6 +52,11 @@ def main():
51
52
  post_process.init_parser(post_process_parser)
52
53
  post_process_parser.set_defaults(func=post_process.command)
53
54
 
55
+ #gwosc subcommand
56
+ gwosc_parser = subparsers.add_parser('gwosc', help='Download files to run a pycwb analysis of a GW event of your choice')
57
+ gwosc.init_parser(gwosc_parser)
58
+ gwosc_parser.set_defaults(func=gwosc.command)
59
+
54
60
  args = parser.parse_args()
55
61
  if hasattr(args, 'func'):
56
62
  args.func(args)
@@ -124,6 +124,10 @@ You can get help by running the command with the ``-h`` option. Here are the cur
124
124
  - Setup batch run
125
125
  * - ``pycwb batch-runner``
126
126
  - Runner for batch run, used for the job submission
127
+ * - ``pycwb post-process``
128
+ - Run the post process workflow
129
+ * - ``pycwb gwosc``
130
+ - Download data from GWOSC and setup the search
127
131
  * - ``pycwb flow``
128
132
  - Run search with prefect flow
129
133
  * - ``pycwb xtalk``
@@ -0,0 +1,89 @@
1
+
2
+ outputDir: "output"
3
+ nproc: 6
4
+ plot_trigger: True
5
+ plot_waveform: True
6
+ plot_injection: True
7
+ plot_sky_map: True
8
+ save_sky_map: True
9
+ save_injection: True
10
+ save_waveform: True
11
+
12
+ analysis: "2G"
13
+ cfg_search: "r"
14
+
15
+ optim: False
16
+
17
+ ###### network configuration ######
18
+ ifo: ["L1","H1"]
19
+ refIFO: "L1"
20
+
21
+ inRate: 16384
22
+ # lags
23
+ lagSize: 1
24
+ lagStep: 1.
25
+ lagOff: 0
26
+ lagMax: 0
27
+
28
+ # superlags
29
+ slagSize: 0 # number of super lags (simulation=1) - if slagSize=0 -> Standard Segments
30
+ slagMin: 0
31
+ slagMax: 0
32
+ slagOff: 0
33
+
34
+ # job
35
+ segLen: 1200
36
+ segMLS: 600
37
+ segTHR: 200
38
+ segEdge: 10
39
+
40
+ # frequency
41
+ fLow: 16.
42
+ fHigh: 1024.
43
+
44
+
45
+ levelR: 3
46
+ l_low: 4 # low frequency resolution level // std (sthr = 2)
47
+ l_high: 10 # high frequency resolution level // std (sthr = 8)
48
+
49
+ wdmXTalk: "wdmXTalk/OverlapCatalog16-1024.bin"
50
+
51
+ healpix: 7
52
+
53
+ ###### cWB production thresholds & regulators ######
54
+
55
+ bpp: 0.001
56
+ subnet: 0.5
57
+ subcut: 0.0
58
+ netRHO: 5.5
59
+ netCC: 0.5
60
+ Acore: 1.7
61
+ Tgap: 0.2
62
+ Fgap: 128.0
63
+ delta: 0.5
64
+ cfg_gamma: -1.0
65
+ LOUD: 300
66
+
67
+ pattern: 5
68
+
69
+ iwindow: 30
70
+
71
+ nSky: 196608
72
+
73
+ # simulation
74
+ simulation: None #PREVIOUSLY COMMENTED
75
+ nfactor: 1
76
+
77
+ channelNamesRaw: ["L1:GWOSC-4KHZ_R1_STRAIN","H1:GWOSC-4KHZ_R1_STRAIN"]
78
+ frFiles: ["./GW170104/input/L1_frames.in", "./GW170104/input/H1_frames.in"]
79
+
80
+ DQF: [
81
+ [ "L1" ,"./GW170104/input/L1_cat0.txt", CWB_CAT0, 0., False, False ],
82
+ [ "H1" ,"./GW170104/input/H1_cat0.txt", CWB_CAT0, 0., False, False ],
83
+ [ "L1" ,"./GW170104/input/L1_cat1.txt", CWB_CAT1, 0., False, False ],
84
+ [ "H1" ,"./GW170104/input/H1_cat1.txt", CWB_CAT1, 0., False, False ],
85
+ [ "L1" ,"./GW170104/input/L1_cat2.txt", CWB_CAT2, 0., False, False ],
86
+ [ "H1" ,"./GW170104/input/H1_cat2.txt", CWB_CAT2, 0., False, False ],
87
+ [ "L1" ,"./GW170104/input/cwb_period.txt", CWB_CAT0, 0., False, False ],
88
+ [ "H1" ,"./GW170104/input/cwb_period.txt", CWB_CAT0, 0., False, False ],
89
+ ]
@@ -4,14 +4,14 @@ steps:
4
4
  - action: report.read_results.read_triggers
5
5
  args:
6
6
  run_dir: background
7
- filters:
8
- - "lag[0]>0"
7
+ prefilters:
8
+ - "shift[0] != 0 or shift[1] != 0 or lag != 0"
9
9
  output_alias: 'background'
10
10
  - action: report.read_results.read_live_time
11
11
  args:
12
12
  run_dir: background
13
13
  filters:
14
- - "lag[0]>0"
14
+ - "shift[0] != 0 or shift[1] != 0 or lag != 0"
15
15
  output_alias: 'livetime'
16
16
  - action: report.far_rho.far_rho # this module will calculate the far_rho and pass the output to the downstream modules
17
17
  args:
@@ -24,14 +24,18 @@ steps:
24
24
  - action: report.read_results.read_triggers
25
25
  args:
26
26
  run_dir: background
27
- filters:
28
- - "lag[0]==0"
27
+ prefilters:
28
+ - "lag==0"
29
+ - "slag[0]==0"
30
+ - "slag[1]==0"
29
31
  output_alias: 'zero_lag'
30
32
  - action: report.read_results.read_live_time
31
33
  args:
32
34
  run_dir: background
33
35
  filters:
34
- - "lag[0]==0"
36
+ - "lag==0"
37
+ - "shift[0]==0"
38
+ - "shift[1]==0"
35
39
  output_alias: 'livetime_zerolag'
36
40
  - action: report.report.report_zero_lag
37
41
  args:
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.26.0'
16
- __version_tuple__ = version_tuple = (0, 26, 0)
15
+ __version__ = version = '0.27.1'
16
+ __version_tuple__ = version_tuple = (0, 27, 1)
@@ -0,0 +1,84 @@
1
+ import os
2
+ import shutil
3
+ import pycwb
4
+ from pycwb.modules.gwosc.gwosc import download_frames_files
5
+ from pycwb.modules.gwosc.gwosc import get_cat_files
6
+ from pycwb.modules.gwosc.gwosc import analysis_period
7
+
8
+ def init_parser(parser):
9
+
10
+ # Select the GW event
11
+ parser.add_argument('event_name',
12
+ metavar='event_name', # Corrected metavar
13
+ type=str,
14
+ help='The name of the GW event you want (e.g., "GW150914").')
15
+
16
+ # Time left for cWB analysis
17
+ parser.add_argument('--time_left',
18
+ metavar='time_left',
19
+ type=float,
20
+ default=610,
21
+ help='The pycWB analysis interval is '
22
+ '[event_gps_time - time_left; event_gps_time + time_right]. Default: 610 seconds.')
23
+
24
+ # Time right for cWB analysis
25
+ parser.add_argument('--time_right',
26
+ metavar='time_right',
27
+ type=float,
28
+ default=610,
29
+ help='The pycWB analysis interval is: '
30
+ '[event_gps_time - time_left; event_gps_time + time_right]. Default: 610 seconds.')
31
+
32
+ # List of detectors
33
+ parser.add_argument('--ifos',
34
+ metavar='ifos',
35
+ type=str,
36
+ nargs='+',
37
+ default=['H1', 'L1'],
38
+ help='List of the detectors you want data from. For example: --ifos H1 L1. The default is H1 L1.')
39
+
40
+ parser.add_argument('--user_parameters_path',
41
+ metavar='user_parameters_path',
42
+ type=str,
43
+ default=None,
44
+ help='Path of the user_parameters file, default pycwb/vendor/template/gwosc/')
45
+
46
+
47
+ def copy_user_parameters(user_parameters_path):
48
+
49
+
50
+ file_to_copy = os.path.join(user_parameters_path, 'user_parameters.yaml')
51
+
52
+ # Check if the file exists
53
+ if not os.path.exists(file_to_copy):
54
+ raise FileNotFoundError(f"The file {file_to_copy} does not exist. The default file is {file_to_copy}")
55
+
56
+ # Define the destination directory for the event
57
+ destination_dir = os.path.join(".")
58
+ os.makedirs(destination_dir, exist_ok=True) # Ensure the directory exists
59
+
60
+ # Define the destination file path
61
+ destination_file = os.path.join(destination_dir, os.path.basename(file_to_copy))
62
+
63
+ # Copy the file
64
+ shutil.copy(file_to_copy, destination_file)
65
+ print(f"Copied {file_to_copy} to {destination_file}")
66
+
67
+
68
+ def command(args):
69
+
70
+ if not all(ifo in ["H1", "L1"] for ifo in args.ifos) and not args.user_parameters_path:
71
+ raise ValueError("Only H1 and L1 are supported in ifos with the default user_parameters file, "
72
+ "please provide a custom user_parameters file")
73
+
74
+ output = './input'
75
+
76
+ if args.user_parameters_path is None:
77
+ package_abs_path = os.path.dirname(os.path.abspath(pycwb.__file__))
78
+ args.user_parameters_path = os.path.join(package_abs_path, 'vendor/template/gwosc')
79
+ print(f'{args.user_parameters_path}')
80
+
81
+ download_frames_files(args.event_name, output, args.ifos)
82
+ get_cat_files(args.event_name, output, args.ifos)
83
+ analysis_period(args.event_name, output, args.time_left, args.time_right, args.ifos)
84
+ copy_user_parameters(args.user_parameters_path)
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ LAL_EARTHFLAT = 0.00335281 # Earth flattening factor (WGS84)
2
+ LAL_REARTH_SI = 6378136.6 # Earth's radius in meters (WGS84)
@@ -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
- ROOT.pycwb_copy_to_wavearray(data.value.ctypes.data_as(c_double_p), h, len(data.value))
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
- ROOT.pycwb_copy_to_wavearray(data.data.ctypes.data_as(c_double_p), h, len(data.data))
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)))
@@ -0,0 +1,142 @@
1
+ from gwosc.datasets import event_gps, event_detectors, event_segment
2
+ from gwosc.locate import get_urls
3
+ from gwosc.timeline import get_segments
4
+ import os
5
+ import requests
6
+
7
+ def event_info(event_name, ifos):
8
+ """
9
+ Retrieve key information about the specified gravitational wave event.
10
+
11
+ Parameters:
12
+ -----------
13
+ event_name : str
14
+ The name of the gravitational wave event (e.g., "GW150914").
15
+
16
+ Returns:
17
+ --------
18
+ tuple :
19
+ - A list of detectors that observed the event, filtered to include only allowed detectors.
20
+ - The GPS time of the event.
21
+ - The start and end GPS time of the event segment.
22
+ """
23
+ allowed_cWB_detectors = ifos
24
+ detectors = event_detectors(event_name)
25
+ detectors = [detector for detector in detectors if detector in allowed_cWB_detectors]
26
+ event_gps_time = event_gps(event_name)
27
+ start_time, end_time = event_segment(event_name)
28
+
29
+ return detectors, event_gps_time, start_time, end_time
30
+
31
+ def download_frames_files(event_name, output_dir, ifos):
32
+ """
33
+ Download frame files for the given gravitational wave event and save a list of their paths.
34
+
35
+ Parameters:
36
+ -----------
37
+ event_name : str
38
+ The name of the gravitational wave event (e.g., "GW150914").
39
+ output_dir : str
40
+ The directory where frame files and associated lists will be saved.
41
+
42
+ Returns:
43
+ --------
44
+ None
45
+ """
46
+ os.makedirs(output_dir, exist_ok=True)
47
+
48
+ detectors, event_gps_time, start_time, end_time = event_info(event_name, ifos)
49
+
50
+ for detector in detectors:
51
+ urls = get_urls(detector=detector, start=start_time, end=end_time, dataset=event_name, format='gwf', sample_rate=4096)
52
+
53
+ # Exclude files with '-32.gwf'
54
+ urls = [url for url in urls if "-32.gwf" not in url]
55
+
56
+ frame_dir = os.path.join(f"{output_dir}/frames/", f"{detector}_frames")
57
+ os.makedirs(frame_dir, exist_ok=True)
58
+
59
+ local_paths = []
60
+
61
+ # Download files
62
+ for url in urls:
63
+ frame_file_path = os.path.join(frame_dir, os.path.basename(url))
64
+ print(f"Downloading {frame_file_path} from {url}...")
65
+ response = requests.get(url)
66
+ with open(frame_file_path, 'wb') as frame_file:
67
+ frame_file.write(response.content)
68
+ local_paths.append(frame_file_path)
69
+
70
+ # Save *_frames.in file
71
+ frame_list_file = os.path.join(output_dir, f"{detector}_frames.in")
72
+ with open(frame_list_file, 'w') as f:
73
+ for path in local_paths:
74
+ f.write(path + "\n")
75
+
76
+ print(f"Frame list saved to {frame_list_file}")
77
+
78
+ def get_cat_files(event_name, output_dir, ifos):
79
+ """
80
+ Generate files containing Data Quality (DQ) segments for the given gravitational wave event.
81
+
82
+ Parameters:
83
+ -----------
84
+ event_name : str
85
+ The name of the gravitational wave event (e.g., "GW150914").
86
+ output_dir : str
87
+ The directory where DQ segment files will be saved.
88
+
89
+ Returns:
90
+ --------
91
+ None
92
+ """
93
+ os.makedirs(output_dir, exist_ok=True)
94
+
95
+ detectors, event_gps_time, start_time, end_time = event_info(event_name, ifos)
96
+
97
+ for detector in detectors:
98
+ for category, cat_name in [
99
+ (f'{detector}_DATA', f'{detector}_cat0.txt'),
100
+ (f'{detector}_BURST_CAT1', f'{detector}_cat1.txt'),
101
+ (f'{detector}_BURST_CAT2', f'{detector}_cat2.txt'),
102
+ ]:
103
+ segments = get_segments(category, start_time, end_time)
104
+ cat_file_path = os.path.join(output_dir, cat_name)
105
+
106
+ with open(cat_file_path, 'w') as cat_file:
107
+ for segment in segments:
108
+ cat_file.write(f"{segment[0]} {segment[1]}\n")
109
+
110
+ print(f"Segments saved in {cat_file_path}")
111
+
112
+ def analysis_period(event_name, output_dir, time_left, time_right, ifos):
113
+ """
114
+ Calculate the analysis period for cWB based on the event GPS time and save it to a file.
115
+
116
+ This function calculates the start and end times for the cWB analysis period by subtracting
117
+ and adding the specified offsets (`time_left` and `time_right`) to the GPS time of the
118
+ gravitational wave event. The resulting period is saved in a file named `cwb_period.txt`.
119
+
120
+ Parameters:
121
+ -----------
122
+ event_name : str
123
+ The name of the gravitational wave event (e.g., "GW150914").
124
+ time_left : int, optional
125
+ Time in seconds to subtract from the event GPS time to determine the start of the analysis period
126
+ (default is 610 seconds).
127
+ time_right : int, optional
128
+ Time in seconds to add to the event GPS time to determine the end of the analysis period
129
+ (default is 610 seconds).
130
+
131
+ Returns:
132
+ --------
133
+ None
134
+ """
135
+ _, event_gps_time, _, _ = event_info(event_name, ifos)
136
+ print(f"Event gps time: {event_gps_time}")
137
+ analysis_period = [event_gps_time - time_left, event_gps_time + time_right]
138
+
139
+ cwb_period_file_path = os.path.join(output_dir, "cwb_period.txt")
140
+ with open(cwb_period_file_path, 'w') as cwb_period_file:
141
+ cwb_period_file.write(f"{analysis_period[0]} {analysis_period[1]}\n")
142
+ print(f"cWB analysis period saved in {cwb_period_file_path}")
@@ -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