PycWB 0.22.1__tar.gz → 0.23.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.
Files changed (395) hide show
  1. {pycwb-0.22.1 → pycwb-0.23.0}/PKG-INFO +1 -1
  2. {pycwb-0.22.1 → pycwb-0.23.0}/PycWB.egg-info/PKG-INFO +1 -1
  3. {pycwb-0.22.1 → pycwb-0.23.0}/PycWB.egg-info/SOURCES.txt +12 -2
  4. {pycwb-0.22.1 → pycwb-0.23.0}/bin/pycwb +14 -5
  5. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/_version.py +2 -2
  6. pycwb-0.23.0/pycwb/cli/batch_runner.py +48 -0
  7. pycwb-0.22.1/pycwb/cli/batch.py → pycwb-0.23.0/pycwb/cli/batch_setup.py +43 -23
  8. pycwb-0.23.0/pycwb/cli/merge_catalog.py +18 -0
  9. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/cli/run.py +3 -3
  10. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/cli/xtalk.py +1 -0
  11. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/config/config.py +38 -4
  12. pycwb-0.23.0/pycwb/constants/project_constants.py +3 -0
  13. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/constants/user_parameters_schema.py +19 -2
  14. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/coherence/coherence.py +3 -0
  15. pycwb-0.23.0/pycwb/modules/energy_threshold/threshold.py +48 -0
  16. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/job_segment.py +8 -8
  17. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihood/likelihood.py +4 -3
  18. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot/cluster_statistics.py +4 -2
  19. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/read_data/data_check.py +5 -1
  20. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/read_data/mdc.py +81 -52
  21. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/statistics/sigmoid_fit.py +16 -4
  22. pycwb-0.23.0/pycwb/modules/supercluster_naive/supercluster2.py +46 -0
  23. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/workflow_utils/job_setup.py +13 -2
  24. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/xtalk/monster.py +10 -8
  25. pycwb-0.23.0/pycwb/modules/xtalk/xtalk_data.py +49 -0
  26. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/prefect_flow/tasks/builtin.py +1 -1
  27. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/network_cluster.py +22 -0
  28. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/network_event.py +2 -0
  29. pycwb-0.23.0/pycwb/utils/parser.py +14 -0
  30. pycwb-0.23.0/pycwb/vendor/lib/__init__.py +0 -0
  31. pycwb-0.23.0/pycwb/workflow/__init__.py +0 -0
  32. pycwb-0.23.0/pycwb/workflow/batch.py +174 -0
  33. pycwb-0.23.0/pycwb/workflow/merge.py +39 -0
  34. pycwb-0.23.0/pycwb/workflow/run.py +23 -0
  35. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/workflow/subflow/postprocess_and_plots.py +47 -15
  36. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/workflow/subflow/prepare_job_runs.py +24 -17
  37. pycwb-0.23.0/pycwb/workflow/subflow/process_job_segment.py +115 -0
  38. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/workflow/subflow/supercluster_and_likelihood.py +18 -6
  39. pycwb-0.22.1/pycwb/constants/project_constants.py +0 -1
  40. pycwb-0.22.1/pycwb/search.py +0 -275
  41. pycwb-0.22.1/pycwb/workflow/batch.py +0 -168
  42. {pycwb-0.22.1 → pycwb-0.23.0}/.gitignore +0 -0
  43. {pycwb-0.22.1 → pycwb-0.23.0}/.gitlab-ci.yml +0 -0
  44. {pycwb-0.22.1 → pycwb-0.23.0}/LICENSE +0 -0
  45. {pycwb-0.22.1 → pycwb-0.23.0}/MANIFEST.in +0 -0
  46. {pycwb-0.22.1 → pycwb-0.23.0}/Makefile +0 -0
  47. {pycwb-0.22.1 → pycwb-0.23.0}/PycWB.egg-info/dependency_links.txt +0 -0
  48. {pycwb-0.22.1 → pycwb-0.23.0}/PycWB.egg-info/requires.txt +0 -0
  49. {pycwb-0.22.1 → pycwb-0.23.0}/PycWB.egg-info/top_level.txt +0 -0
  50. {pycwb-0.22.1 → pycwb-0.23.0}/README.md +0 -0
  51. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/README.md +0 -0
  52. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/likelihood/README.md +0 -0
  53. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/likelihood/generate_data_for_likelihood.py +0 -0
  54. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/likelihood/performance_test_dpf.py +0 -0
  55. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/likelihood/performance_test_opt_sky.py +0 -0
  56. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/likelihood/user_parameters_injection.yaml +0 -0
  57. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/supercluster/README.md +0 -0
  58. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/supercluster/generate_data.py +0 -0
  59. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/supercluster/generate_data_2.py +0 -0
  60. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/supercluster/performance_supercluster.py +0 -0
  61. {pycwb-0.22.1 → pycwb-0.23.0}/benchmark/supercluster/user_parameters_injection.yaml +0 -0
  62. {pycwb-0.22.1 → pycwb-0.23.0}/bin/pycwb_search +0 -0
  63. {pycwb-0.22.1 → pycwb-0.23.0}/bin/pycwb_show +0 -0
  64. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Biorthogonal.cc +0 -0
  65. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Biorthogonal.hh +0 -0
  66. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/CMakeLists.txt +0 -0
  67. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Daubechies.cc +0 -0
  68. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Daubechies.hh +0 -0
  69. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/FourierCoefficients.icc +0 -0
  70. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Haar.cc +0 -0
  71. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Haar.hh +0 -0
  72. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/LineFilter.cc +0 -0
  73. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/LineFilter.hh +0 -0
  74. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Makefile +0 -0
  75. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Meyer.cc +0 -0
  76. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Meyer.hh +0 -0
  77. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Symlet.cc +0 -0
  78. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Symlet.hh +0 -0
  79. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/SymmArray.cc +0 -0
  80. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/SymmArray.hh +0 -0
  81. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/SymmArraySSE.cc +0 -0
  82. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/SymmArraySSE.hh +0 -0
  83. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/SymmObjArray.cc +0 -0
  84. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/SymmObjArray.hh +0 -0
  85. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/WDM.cc +0 -0
  86. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/WDM.hh +0 -0
  87. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/WDMOverlap.cc +0 -0
  88. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/WDMOverlap.hh +0 -0
  89. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/WaveDWT.cc +0 -0
  90. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/WaveDWT.hh +0 -0
  91. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Wavelet.cc +0 -0
  92. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/Wavelet.hh +0 -0
  93. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/alm.hh +0 -0
  94. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/build.sh +0 -0
  95. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/cluster.cc +0 -0
  96. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/cluster.hh +0 -0
  97. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/cmake/FindHealpix.cmake +0 -0
  98. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/cmake/FindeBBH.cmake +0 -0
  99. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/cmake/install_function.cmake +0 -0
  100. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/constants.hh +0 -0
  101. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/detector.cc +0 -0
  102. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/detector.hh +0 -0
  103. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/injection.cc +0 -0
  104. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/injection.hh +0 -0
  105. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/lossy.cc +0 -0
  106. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/lossy.hh +0 -0
  107. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/monster.cc +0 -0
  108. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/monster.hh +0 -0
  109. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/netcluster.cc +0 -0
  110. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/netcluster.hh +0 -0
  111. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/netevent.cc +0 -0
  112. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/netevent.hh +0 -0
  113. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/netpixel.cc +0 -0
  114. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/netpixel.hh +0 -0
  115. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/network.cc +0 -0
  116. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/network.hh +0 -0
  117. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/pycwb.hh +0 -0
  118. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/rdfr.cc +0 -0
  119. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/rdfr.hh +0 -0
  120. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/readframe.cc +0 -0
  121. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/readframe.hh +0 -0
  122. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/readfrfile.cc +0 -0
  123. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/readfrfile.hh +0 -0
  124. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/regression.cc +0 -0
  125. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/regression.hh +0 -0
  126. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/skycoord.hh +0 -0
  127. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/skymap.cc +0 -0
  128. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/skymap.hh +0 -0
  129. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/sseries.cc +0 -0
  130. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/sseries.hh +0 -0
  131. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/time.cc +0 -0
  132. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/time.hh +0 -0
  133. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wat.hh +0 -0
  134. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watasm.S +0 -0
  135. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watasm_elf64.o +0 -0
  136. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watavx.hh +0 -0
  137. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watbranch.in +0 -0
  138. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watfun.hh +0 -0
  139. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wathash.in +0 -0
  140. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watplot.cc +0 -0
  141. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watplot.hh +0 -0
  142. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watsse.hh +0 -0
  143. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wattag.in +0 -0
  144. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/waturl.in +0 -0
  145. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/watversion.hh.in +0 -0
  146. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavearray.cc +0 -0
  147. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavearray.hh +0 -0
  148. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavecomplex.cc +0 -0
  149. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavecomplex.hh +0 -0
  150. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavecor.cc +0 -0
  151. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavecor.hh +0 -0
  152. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavefft.cc +0 -0
  153. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavefft.hh +0 -0
  154. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavelet_LinkDef.h +0 -0
  155. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavelinefilter.cc +0 -0
  156. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wavelinefilter.hh +0 -0
  157. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/waverdc.cc +0 -0
  158. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/waverdc.hh +0 -0
  159. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wseries.cc +0 -0
  160. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wseries.hh +0 -0
  161. {pycwb-0.22.1 → pycwb-0.23.0}/cwb-core/wslice.hh +0 -0
  162. {pycwb-0.22.1 → pycwb-0.23.0}/docs/0.installation_guide.md +0 -0
  163. {pycwb-0.22.1 → pycwb-0.23.0}/docs/1.initialisation_guide.md +0 -0
  164. {pycwb-0.22.1 → pycwb-0.23.0}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
  165. {pycwb-0.22.1 → pycwb-0.23.0}/docs/3.run_pycwb_with_yaml_config.md +0 -0
  166. {pycwb-0.22.1 → pycwb-0.23.0}/docs/4.py_cwb_inet_2G.md +0 -0
  167. {pycwb-0.22.1 → pycwb-0.23.0}/docs/5.cwb2G_analyse.md +0 -0
  168. {pycwb-0.22.1 → pycwb-0.23.0}/docs/6.wat_codes_notes.md +0 -0
  169. {pycwb-0.22.1 → pycwb-0.23.0}/docs/Makefile +0 -0
  170. {pycwb-0.22.1 → pycwb-0.23.0}/docs/diagram.py +0 -0
  171. {pycwb-0.22.1 → pycwb-0.23.0}/docs/make.bat +0 -0
  172. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/_static/.keep +0 -0
  173. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/_templates/.keep +0 -0
  174. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/conf.py +0 -0
  175. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/credit.rst +0 -0
  176. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/index.rst +0 -0
  177. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/install.rst +0 -0
  178. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/mod_cwb.rst +0 -0
  179. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/package.rst +0 -0
  180. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/schema.rst +0 -0
  181. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/tutorial_batch_inj.rst +0 -0
  182. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/tutorial_customized_wf_gen.rst +0 -0
  183. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/tutorial_injection.rst +0 -0
  184. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/tutorial_multi_injection.rst +0 -0
  185. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/tutorial_search.rst +0 -0
  186. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/tutorials.rst +0 -0
  187. {pycwb-0.22.1 → pycwb-0.23.0}/docs/source/workflow.png +0 -0
  188. {pycwb-0.22.1 → pycwb-0.23.0}/envs/Dockerfile +0 -0
  189. {pycwb-0.22.1 → pycwb-0.23.0}/envs/mamba/Dockerfile +0 -0
  190. {pycwb-0.22.1 → pycwb-0.23.0}/examples/autoencoder/pycwb_injection.ipynb +0 -0
  191. {pycwb-0.22.1 → pycwb-0.23.0}/examples/autoencoder/user_parameters_injection.yaml +0 -0
  192. {pycwb-0.22.1 → pycwb-0.23.0}/examples/batch_injection/generate_parameters.py +0 -0
  193. {pycwb-0.22.1 → pycwb-0.23.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
  194. {pycwb-0.22.1 → pycwb-0.23.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
  195. {pycwb-0.22.1 → pycwb-0.23.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
  196. {pycwb-0.22.1 → pycwb-0.23.0}/examples/batch_injection/pycwb_injection.py +0 -0
  197. {pycwb-0.22.1 → pycwb-0.23.0}/examples/batch_injection/user_parameters_injection.yaml +0 -0
  198. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/H1_cat0.txt +0 -0
  199. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/H1_cat1.txt +0 -0
  200. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/H1_cat2.txt +0 -0
  201. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/H1_cat4.txt +0 -0
  202. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/L1_cat0.txt +0 -0
  203. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/L1_cat1.txt +0 -0
  204. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/L1_cat2.txt +0 -0
  205. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/DQ/L1_cat4.txt +0 -0
  206. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/input/OPBM.period +0 -0
  207. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/input/OPBM_H1.frames +0 -0
  208. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/input/OPBM_L1.frames +0 -0
  209. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/pycwb_mdc.py +0 -0
  210. {pycwb-0.22.1 → pycwb-0.23.0}/examples/benchmark/user_parameters_mdc.yaml +0 -0
  211. {pycwb-0.22.1 → pycwb-0.23.0}/examples/colab/pycWB_GW150914.ipynb +0 -0
  212. {pycwb-0.22.1 → pycwb-0.23.0}/examples/injection/pycwb_injection.ipynb +0 -0
  213. {pycwb-0.22.1 → pycwb-0.23.0}/examples/injection/pycwb_injection.py +0 -0
  214. {pycwb-0.22.1 → pycwb-0.23.0}/examples/injection/user_parameters_injection.yaml +0 -0
  215. {pycwb-0.22.1 → pycwb-0.23.0}/examples/lvk_sep_2023/demo.ipynb +0 -0
  216. {pycwb-0.22.1 → pycwb-0.23.0}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
  217. {pycwb-0.22.1 → pycwb-0.23.0}/examples/multiple_injection/pycwb_injection.py +0 -0
  218. {pycwb-0.22.1 → pycwb-0.23.0}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
  219. {pycwb-0.22.1 → pycwb-0.23.0}/examples/pyseobnr_injection/generate_parameters.py +0 -0
  220. {pycwb-0.22.1 → pycwb-0.23.0}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
  221. {pycwb-0.22.1 → pycwb-0.23.0}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
  222. {pycwb-0.22.1 → pycwb-0.23.0}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
  223. {pycwb-0.22.1 → pycwb-0.23.0}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
  224. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/cwb_core/coherence.cc +0 -0
  225. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/cwb_core/coherence.hh +0 -0
  226. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/cwb_core/likelihood.cc +0 -0
  227. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/cwb_core/likelihood.hh +0 -0
  228. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/dag/dag.py +0 -0
  229. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/dag/dask-prefect.py +0 -0
  230. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/dag/prefect_test.py +0 -0
  231. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger/__init__.py +0 -0
  232. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger/server.py +0 -0
  233. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger/visualizition.py +0 -0
  234. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
  235. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/.gitignore +0 -0
  236. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
  237. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/README.md +0 -0
  238. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/index.html +0 -0
  239. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/package-lock.json +0 -0
  240. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/package.json +0 -0
  241. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
  242. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/App.vue +0 -0
  243. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
  244. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
  245. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
  246. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
  247. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
  248. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
  249. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
  250. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
  251. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
  252. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
  253. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
  254. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
  255. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
  256. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/main.js +0 -0
  257. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/router/index.js +0 -0
  258. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
  259. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
  260. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
  261. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
  262. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
  263. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
  264. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/messenger-web-interface/vite.config.js +0 -0
  265. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/performance/numba_test.py +0 -0
  266. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/performance/taichi_test.py +0 -0
  267. {pycwb-0.22.1 → pycwb-0.23.0}/prototypes/search.yaml +0 -0
  268. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/__init__.py +0 -0
  269. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/cli/__init__.py +0 -0
  270. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/cli/flow.py +0 -0
  271. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/cli/server.py +0 -0
  272. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/config/__init__.py +0 -0
  273. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/constants/__init__.py +0 -0
  274. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/__init__.py +0 -0
  275. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/autoencoder/__init__.py +0 -0
  276. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/autoencoder/autoencoder.py +0 -0
  277. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
  278. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/autoencoder/module.yaml +0 -0
  279. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/catalog/__init__.py +0 -0
  280. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/catalog/catalog.py +0 -0
  281. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/catalog/module.yaml +0 -0
  282. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/coherence/__init__.py +0 -0
  283. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/coherence/coherence_lite.py +0 -0
  284. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/coherence/module.yaml +0 -0
  285. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/condor/__init__.py +0 -0
  286. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/condor/condor.py +0 -0
  287. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/condor/module.yaml +0 -0
  288. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/cwb_conversions/__init__.py +0 -0
  289. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/cwb_conversions/cluster.py +0 -0
  290. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/cwb_conversions/module.yaml +0 -0
  291. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/cwb_conversions/pixel.py +0 -0
  292. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/cwb_conversions/series.py +0 -0
  293. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
  294. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/data_conditioning/__init__.py +0 -0
  295. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/data_conditioning/data_conditioning.py +0 -0
  296. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/data_conditioning/module.yaml +0 -0
  297. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/data_conditioning/regression.py +0 -0
  298. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/data_conditioning/whitening.py +0 -0
  299. {pycwb-0.22.1/pycwb/modules/likelihoodWP → pycwb-0.23.0/pycwb/modules/energy_threshold}/__init__.py +0 -0
  300. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/__init__.py +0 -0
  301. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/dq_segment.py +0 -0
  302. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/frame.py +0 -0
  303. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/module.yaml +0 -0
  304. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/plots.py +0 -0
  305. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/job_segment/super_lag.py +0 -0
  306. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihood/__init__.py +0 -0
  307. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihood/module.yaml +0 -0
  308. {pycwb-0.22.1/pycwb/modules/plot_map → pycwb-0.23.0/pycwb/modules/likelihoodWP}/__init__.py +0 -0
  309. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihoodWP/dpf.py +0 -0
  310. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihoodWP/dpf_cython.pyx +0 -0
  311. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihoodWP/likelihood.py +0 -0
  312. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihoodWP/sky_stat.py +0 -0
  313. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/likelihoodWP/utils.py +0 -0
  314. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/logger/__init__.py +0 -0
  315. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/logger/logger.py +0 -0
  316. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/logger/module.yaml +0 -0
  317. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
  318. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
  319. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
  320. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot/__init__.py +0 -0
  321. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot/event.py +0 -0
  322. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot/module.yaml +0 -0
  323. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot/spectrogram.py +0 -0
  324. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot/waveform.py +0 -0
  325. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot_data_quality/__init__.py +0 -0
  326. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot_data_quality/module.yaml +0 -0
  327. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot_data_quality/plot.py +0 -0
  328. {pycwb-0.22.1/pycwb/modules/statistics → pycwb-0.23.0/pycwb/modules/plot_map}/__init__.py +0 -0
  329. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot_map/module.yaml +0 -0
  330. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/plot_map/world_map.py +0 -0
  331. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/read_data/__init__.py +0 -0
  332. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/read_data/data_find.py +0 -0
  333. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/read_data/module.yaml +0 -0
  334. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/read_data/read_data.py +0 -0
  335. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/reconstruction/__init__.py +0 -0
  336. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/reconstruction/getMRAwaveform.py +0 -0
  337. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/reconstruction/module.yaml +0 -0
  338. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/sparse_series/__init__.py +0 -0
  339. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/sparse_series/module.yaml +0 -0
  340. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/sparse_series/sparse_table.py +0 -0
  341. {pycwb-0.22.1/pycwb/modules/web_viewer → pycwb-0.23.0/pycwb/modules/statistics}/__init__.py +0 -0
  342. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/statistics/eff.py +0 -0
  343. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/statistics/eff_plot.py +0 -0
  344. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/statistics/merge.py +0 -0
  345. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/super_cluster/__init__.py +0 -0
  346. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/super_cluster/module.yaml +0 -0
  347. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/super_cluster/sub_net_cut.py +0 -0
  348. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/super_cluster/super_cluster.py +0 -0
  349. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/super_cluster/supercluster.py +0 -0
  350. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/super_cluster/utils.py +0 -0
  351. {pycwb-0.22.1/pycwb/modules/workflow_utils → pycwb-0.23.0/pycwb/modules/supercluster_naive}/__init__.py +0 -0
  352. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/superlag/__init__.py +0 -0
  353. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/superlag/superlag.py +0 -0
  354. {pycwb-0.22.1/pycwb/modules/xtalk → pycwb-0.23.0/pycwb/modules/web_viewer}/__init__.py +0 -0
  355. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/web_viewer/create.py +0 -0
  356. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/web_viewer/module.yaml +0 -0
  357. {pycwb-0.22.1/pycwb/prefect_flow → pycwb-0.23.0/pycwb/modules/workflow_utils}/__init__.py +0 -0
  358. {pycwb-0.22.1/pycwb/prefect_flow/tasks → pycwb-0.23.0/pycwb/modules/xtalk}/__init__.py +0 -0
  359. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/modules/xtalk/monster_old.py +0 -0
  360. {pycwb-0.22.1/pycwb/types → pycwb-0.23.0/pycwb/prefect_flow}/__init__.py +0 -0
  361. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/prefect_flow/pycwb_flow.py +0 -0
  362. {pycwb-0.22.1/pycwb/utils → pycwb-0.23.0/pycwb/prefect_flow/tasks}/__init__.py +0 -0
  363. {pycwb-0.22.1/pycwb/utils/conversions → pycwb-0.23.0/pycwb/types}/__init__.py +0 -0
  364. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/data_quality_file.py +0 -0
  365. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/detector.py +0 -0
  366. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/job.py +0 -0
  367. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/network.py +0 -0
  368. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/network_pixel.py +0 -0
  369. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/sparse_series.py +0 -0
  370. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/time_frequency_series.py +0 -0
  371. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/wdm.py +0 -0
  372. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/types/wdm_xtalk.py +0 -0
  373. {pycwb-0.22.1/pycwb/vendor → pycwb-0.23.0/pycwb/utils}/__init__.py +0 -0
  374. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/async_write.py +0 -0
  375. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/check_ROOT.py +0 -0
  376. {pycwb-0.22.1/pycwb/vendor/autoencoder → pycwb-0.23.0/pycwb/utils/conversions}/__init__.py +0 -0
  377. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/conversions/timeseries.py +0 -0
  378. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/dataclass_object_io.py +0 -0
  379. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/dep_check.py +0 -0
  380. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/image.py +0 -0
  381. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/module.py +0 -0
  382. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/network.py +0 -0
  383. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/skymap_coord.py +0 -0
  384. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/utils/yaml_helper.py +0 -0
  385. {pycwb-0.22.1/pycwb/vendor/lib → pycwb-0.23.0/pycwb/vendor}/__init__.py +0 -0
  386. {pycwb-0.22.1/pycwb/workflow → pycwb-0.23.0/pycwb/vendor/autoencoder}/__init__.py +0 -0
  387. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
  388. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/vendor/example.yaml +0 -0
  389. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/vendor/web_viewer/event_dump.html +0 -0
  390. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/vendor/web_viewer/styles.css +0 -0
  391. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/vendor/web_viewer/viewer.html +0 -0
  392. {pycwb-0.22.1 → pycwb-0.23.0}/pycwb/workflow/subflow/__init__.py +0 -0
  393. {pycwb-0.22.1 → pycwb-0.23.0}/pyproject.toml +0 -0
  394. {pycwb-0.22.1 → pycwb-0.23.0}/setup.cfg +0 -0
  395. {pycwb-0.22.1 → pycwb-0.23.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.22.1
3
+ Version: 0.23.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>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.22.1
3
+ Version: 0.23.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>
@@ -231,10 +231,11 @@ prototypes/performance/numba_test.py
231
231
  prototypes/performance/taichi_test.py
232
232
  pycwb/__init__.py
233
233
  pycwb/_version.py
234
- pycwb/search.py
235
234
  pycwb/cli/__init__.py
236
- pycwb/cli/batch.py
235
+ pycwb/cli/batch_runner.py
236
+ pycwb/cli/batch_setup.py
237
237
  pycwb/cli/flow.py
238
+ pycwb/cli/merge_catalog.py
238
239
  pycwb/cli/run.py
239
240
  pycwb/cli/server.py
240
241
  pycwb/cli/xtalk.py
@@ -269,6 +270,8 @@ pycwb/modules/data_conditioning/data_conditioning.py
269
270
  pycwb/modules/data_conditioning/module.yaml
270
271
  pycwb/modules/data_conditioning/regression.py
271
272
  pycwb/modules/data_conditioning/whitening.py
273
+ pycwb/modules/energy_threshold/__init__.py
274
+ pycwb/modules/energy_threshold/threshold.py
272
275
  pycwb/modules/job_segment/__init__.py
273
276
  pycwb/modules/job_segment/dq_segment.py
274
277
  pycwb/modules/job_segment/frame.py
@@ -326,6 +329,8 @@ pycwb/modules/super_cluster/sub_net_cut.py
326
329
  pycwb/modules/super_cluster/super_cluster.py
327
330
  pycwb/modules/super_cluster/supercluster.py
328
331
  pycwb/modules/super_cluster/utils.py
332
+ pycwb/modules/supercluster_naive/__init__.py
333
+ pycwb/modules/supercluster_naive/supercluster2.py
329
334
  pycwb/modules/superlag/__init__.py
330
335
  pycwb/modules/superlag/superlag.py
331
336
  pycwb/modules/web_viewer/__init__.py
@@ -336,6 +341,7 @@ pycwb/modules/workflow_utils/job_setup.py
336
341
  pycwb/modules/xtalk/__init__.py
337
342
  pycwb/modules/xtalk/monster.py
338
343
  pycwb/modules/xtalk/monster_old.py
344
+ pycwb/modules/xtalk/xtalk_data.py
339
345
  pycwb/prefect_flow/__init__.py
340
346
  pycwb/prefect_flow/pycwb_flow.py
341
347
  pycwb/prefect_flow/tasks/__init__.py
@@ -360,6 +366,7 @@ pycwb/utils/dep_check.py
360
366
  pycwb/utils/image.py
361
367
  pycwb/utils/module.py
362
368
  pycwb/utils/network.py
369
+ pycwb/utils/parser.py
363
370
  pycwb/utils/skymap_coord.py
364
371
  pycwb/utils/yaml_helper.py
365
372
  pycwb/utils/conversions/__init__.py
@@ -374,7 +381,10 @@ pycwb/vendor/web_viewer/styles.css
374
381
  pycwb/vendor/web_viewer/viewer.html
375
382
  pycwb/workflow/__init__.py
376
383
  pycwb/workflow/batch.py
384
+ pycwb/workflow/merge.py
385
+ pycwb/workflow/run.py
377
386
  pycwb/workflow/subflow/__init__.py
378
387
  pycwb/workflow/subflow/postprocess_and_plots.py
379
388
  pycwb/workflow/subflow/prepare_job_runs.py
389
+ pycwb/workflow/subflow/process_job_segment.py
380
390
  pycwb/workflow/subflow/supercluster_and_likelihood.py
@@ -7,9 +7,10 @@ import argparse
7
7
  import pycwb.cli.server as server
8
8
  import pycwb.cli.run as run
9
9
  import pycwb.cli.flow as flow
10
- import pycwb.cli.batch as batch
10
+ import pycwb.cli.batch_setup as batch_setup
11
+ import pycwb.cli.batch_runner as batch_runner
11
12
  import pycwb.cli.xtalk as xtalk
12
-
13
+ import pycwb.cli.merge_catalog as merge_catalog
13
14
 
14
15
  def main():
15
16
  parser = argparse.ArgumentParser(prog='pycwb')
@@ -29,14 +30,22 @@ def main():
29
30
  flow.init_parser(flow_parser)
30
31
  flow_parser.set_defaults(func=flow.command)
31
32
 
32
- batch_parser = subparsers.add_parser('batch', help='Run search')
33
- batch.init_parser(batch_parser)
34
- batch_parser.set_defaults(func=batch.command)
33
+ batch_parser = subparsers.add_parser('batch-setup', help='Setup batch run')
34
+ batch_setup.init_parser(batch_parser)
35
+ batch_parser.set_defaults(func=batch_setup.command)
36
+
37
+ batch_runner_parser = subparsers.add_parser('batch-runner', help='Runner for batch run')
38
+ batch_runner.init_parser(batch_runner_parser)
39
+ batch_runner_parser.set_defaults(func=batch_runner.command)
35
40
 
36
41
  xtalk_parser = subparsers.add_parser('xtalk', help='Convert xtalk file')
37
42
  xtalk.init_parser(xtalk_parser)
38
43
  xtalk_parser.set_defaults(func=xtalk.command)
39
44
 
45
+ merge_catalog_parser = subparsers.add_parser('merge-catalog', help='Merge catalog files')
46
+ merge_catalog.init_parser(merge_catalog_parser)
47
+ merge_catalog_parser.set_defaults(func=merge_catalog.command)
48
+
40
49
  args = parser.parse_args()
41
50
  if hasattr(args, 'func'):
42
51
  args.func(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.22.1'
16
- __version_tuple__ = version_tuple = (0, 22, 1)
15
+ __version__ = version = '0.23.0'
16
+ __version_tuple__ = version_tuple = (0, 23, 0)
@@ -0,0 +1,48 @@
1
+ import os
2
+
3
+
4
+ def init_parser(parser):
5
+ # Add the arguments
6
+ parser.add_argument('user_parameter_file',
7
+ metavar='file_path',
8
+ type=str,
9
+ help='the path to the user parameter file')
10
+
11
+ # working dir
12
+ parser.add_argument('--work-dir',
13
+ '-d',
14
+ metavar='work_dir',
15
+ type=str,
16
+ default='.',
17
+ help='the working directory')
18
+
19
+ # threads
20
+ parser.add_argument('--n-proc',
21
+ '-n',
22
+ metavar='n_proc',
23
+ type=int,
24
+ default=1,
25
+ help='the number of cpu to use, default to 1. If it set to 0, '
26
+ 'it will use the value from the user parameter file.')
27
+
28
+ # jobs
29
+ parser.add_argument('--jobs',
30
+ '-j',
31
+ metavar='jobs',
32
+ type=str,
33
+ default=None,
34
+ help='the range of jobs to run, e.g., 0-9')
35
+
36
+ # compress json
37
+ parser.add_argument('--compress_json',
38
+ action='store_true',
39
+ default=True,
40
+ help='compress the json files, by default True')
41
+
42
+
43
+ def command(args):
44
+ from pycwb.workflow.batch import batch_run
45
+
46
+ # Run the search function with the specified user parameter file
47
+ batch_run(args.user_parameter_file, working_dir=args.work_dir,
48
+ jobs=args.jobs, compress_json=args.compress_json, n_proc=args.n_proc)
@@ -8,13 +8,20 @@ def init_parser(parser):
8
8
  type=str,
9
9
  help='the path to the user parameter file')
10
10
 
11
- parser.add_argument('--submit',
12
- '-s',
11
+ parser.add_argument('--cluster',
12
+ '-c',
13
13
  metavar='job_submission_system',
14
14
  type=str,
15
15
  choices=['condor', 'slurm'],
16
+ default='condor',
16
17
  help='the submit option, the available options are condor and slurm')
17
18
 
19
+ parser.add_argument('--submit',
20
+ '-s',
21
+ action='store_true',
22
+ default=False,
23
+ help='submit the jobs to the job submission system')
24
+
18
25
  # working dir
19
26
  parser.add_argument('--work-dir',
20
27
  '-d',
@@ -38,12 +45,18 @@ def init_parser(parser):
38
45
  default=os.environ.get('CONDA_DEFAULT_ENV'),
39
46
  help='the conda environment')
40
47
 
48
+ # additional init
49
+ parser.add_argument('--additional-init',
50
+ '-a',
51
+ metavar='additional_init',
52
+ type=str,
53
+ help='additional initialization commands')
54
+
41
55
  # accounting_group
42
56
  parser.add_argument('--accounting-group',
43
57
  '-g',
44
58
  metavar='accounting_group',
45
59
  type=str,
46
- default='ligo.sim.o4.burst.allsky.cwboffline',
47
60
  help='the condor accounting group')
48
61
 
49
62
  # threads
@@ -51,28 +64,23 @@ def init_parser(parser):
51
64
  '-n',
52
65
  metavar='n_proc',
53
66
  type=int,
54
- default=0,
55
- help='the number of cpu to use, if it set to 0, '
67
+ default=1,
68
+ help='the number of cpu to use, default to 1. If it set to 0, '
56
69
  'it will use the value from the user parameter file.')
57
70
 
58
- # generate plot
59
- parser.add_argument('--plot',
60
- action='store_true',
61
- default=False,
62
- help='generate the plot, by default False')
71
+ # job_per_worker
72
+ parser.add_argument('--job-per-worker',
73
+ '-j',
74
+ metavar='job_per_worker',
75
+ type=int,
76
+ default=5,
77
+ help='the number of jobs per worker')
63
78
 
64
79
  # compress json
65
80
  parser.add_argument('--compress_json',
66
81
  action='store_true',
67
- default=False,
68
- help='compress the json files, by default False')
69
-
70
- # serve name
71
- parser.add_argument('--name',
72
- metavar='name',
73
- type=str,
74
- default='pycwb',
75
- help='the name of the serve')
82
+ default=True,
83
+ help='compress the json files, by default True')
76
84
 
77
85
  # list number of jobs
78
86
  parser.add_argument('--list-n-jobs',
@@ -88,10 +96,10 @@ def init_parser(parser):
88
96
 
89
97
 
90
98
  def command(args):
91
- from pycwb.workflow.batch import search
99
+ from pycwb.workflow.batch import batch_setup
92
100
 
93
101
  if args.list_n_jobs or args.list_jobs:
94
- jobs = search(args.user_parameter_file, working_dir=args.work_dir, n_proc=1, dry_run=True)
102
+ jobs = batch_setup(args.user_parameter_file, working_dir=args.work_dir, n_proc=1, dry_run=True)
95
103
 
96
104
  print(f"Number of jobs: {len(jobs)}")
97
105
 
@@ -105,6 +113,18 @@ def command(args):
105
113
 
106
114
  return 0
107
115
 
116
+ if args.cluster is 'slurm':
117
+ print("Slurm is not supported yet.")
118
+ return 1
119
+
108
120
  # Run the search function with the specified user parameter file
109
- search(args.user_parameter_file, working_dir=args.work_dir, n_proc=args.n_proc, submit=args.submit,
110
- overwrite=args.force_overwrite, plot=args.plot, compress_json=args.compress_json)
121
+ batch_setup(args.user_parameter_file, working_dir=args.work_dir,
122
+ compress_json=args.compress_json,
123
+ cluster=args.cluster,
124
+ conda_env=args.conda_env,
125
+ additional_init=args.additional_init,
126
+ n_proc=args.n_proc,
127
+ accounting_group=args.accounting_group,
128
+ job_per_worker=args.job_per_worker,
129
+ submit=args.submit,
130
+ overwrite=args.force_overwrite, )
@@ -0,0 +1,18 @@
1
+ import os
2
+
3
+
4
+ def init_parser(parser):
5
+ # working dir
6
+ parser.add_argument('--work-dir',
7
+ '-d',
8
+ metavar='work_dir',
9
+ type=str,
10
+ default='.',
11
+ help='the working directory')
12
+
13
+
14
+ def command(args):
15
+ from pycwb.workflow.merge import merge_catalog
16
+
17
+ # Run the search function with the specified user parameter file
18
+ merge_catalog(working_dir=args.work_dir)
@@ -35,7 +35,7 @@ def init_parser(parser):
35
35
  # generate plot
36
36
  parser.add_argument('--plot',
37
37
  action='store_true',
38
- default=False,
38
+ default=None,
39
39
  help='generate the plot, by default False')
40
40
 
41
41
  # compress json
@@ -65,7 +65,7 @@ def init_parser(parser):
65
65
 
66
66
 
67
67
  def command(args):
68
- from pycwb.workflow.batch import search
68
+ from pycwb.workflow.run import search
69
69
 
70
70
  if args.list_n_jobs or args.list_jobs:
71
71
  jobs = search(args.user_parameter_file, working_dir=args.work_dir, n_proc=1, dry_run=True)
@@ -83,5 +83,5 @@ def command(args):
83
83
  return 0
84
84
 
85
85
  # Run the search function with the specified user parameter file
86
- search(args.user_parameter_file, working_dir=args.work_dir, n_proc=args.n_proc, submit=args.submit,
86
+ search(args.user_parameter_file, working_dir=args.work_dir, n_proc=args.n_proc,
87
87
  overwrite=args.force_overwrite, plot=args.plot, compress_json=args.compress_json)
@@ -14,6 +14,7 @@ def init_parser(parser):
14
14
  '-o',
15
15
  metavar='output_dir',
16
16
  type=str,
17
+ default='.',
17
18
  help='the output directory')
18
19
 
19
20
 
@@ -5,7 +5,9 @@ pycwb.constants.user_parameters_schema.
5
5
  """
6
6
  import os.path
7
7
  import logging
8
+ import pathlib
8
9
 
10
+ from ..modules.xtalk.xtalk_data import check_and_download_xtalk_data
9
11
  from ..types.wdm_xtalk import WDMXTalkCatalog
10
12
  from ..types.data_quality_file import DQFile
11
13
  from ..utils.network import max_delay
@@ -67,9 +69,8 @@ class Config:
67
69
  setattr(self, key, params[key])
68
70
 
69
71
  self.add_derived_key()
70
- self.check_file(self.MRAcatalog)
71
- if self.MRAcatalog:
72
- self.check_MRA_catalog()
72
+ self.check_xtalk_file(self.MRAcatalog)
73
+ self.check_MRA_catalog()
73
74
  self.check_lagStep()
74
75
 
75
76
  def add_derived_key(self):
@@ -90,7 +91,10 @@ class Config:
90
91
 
91
92
  # load WAT filter directory and set MRAcatalog
92
93
  if not self.filter_dir:
93
- self.filter_dir = os.environ['HOME_WAT_FILTERS']
94
+ if os.environ.get('HOME_WAT_FILTERS') is None:
95
+ self.filter_dir = os.path.abspath(".")
96
+ else:
97
+ self.filter_dir = os.environ['HOME_WAT_FILTERS']
94
98
 
95
99
  self.MRAcatalog = f"{self.filter_dir}/{self.wdmXTalk}"
96
100
 
@@ -142,6 +146,33 @@ class Config:
142
146
  if not os.path.isfile(file_name):
143
147
  raise FileNotFoundError(f"File {file_name} does not exist")
144
148
 
149
+ @staticmethod
150
+ def check_xtalk_file(file_name: str) -> bool:
151
+ """
152
+ Helper function to check if xtalk file exists and download it if it does not exist
153
+
154
+ Parameters
155
+ ----------
156
+ file_name : str
157
+ Path to the xtalk file
158
+
159
+ Returns
160
+ -------
161
+ bool
162
+ True if the file exists or has been downloaded successfully, False otherwise
163
+
164
+ Raises
165
+ ------
166
+ FileNotFoundError
167
+ If the file does not exist and cannot be downloaded
168
+ """
169
+ if not os.path.isfile(file_name):
170
+ if check_and_download_xtalk_data(str(pathlib.Path(file_name).name), str(pathlib.Path(file_name).parent)):
171
+ return True
172
+ else:
173
+ raise FileNotFoundError(f"File {file_name} does not exist")
174
+ return True
175
+
145
176
  def check_lagStep(self):
146
177
  """
147
178
  Check if lagStep compatible with WDM parity
@@ -190,3 +221,6 @@ class Config:
190
221
  logger.info(f"MRA catalog has tag {wdm_MRA.tag}, updating beta order and precision from MRA catalog")
191
222
  self.WDM_beta_order, self.WDM_precision = int(wdm_MRA.beta_order), int(wdm_MRA.precision)
192
223
 
224
+ @staticmethod
225
+ def get_precision(cluster_size_threshold, healpix_order):
226
+ return cluster_size_threshold+65536*healpix_order
@@ -0,0 +1,3 @@
1
+ ROUNDED_DIGITS = 50
2
+ XTALK_FILE_LIST_URL = "https://raw.githubusercontent.com/PycWB/xtalk-data/main/file_list.txt"
3
+ XTALK_DATA_URL = "https://github.com/PycWB/xtalk-data/raw/main"
@@ -51,6 +51,18 @@ schema = {
51
51
  "default": False,
52
52
  "cwb": False
53
53
  },
54
+ "save_injection": {
55
+ "type": "boolean",
56
+ "description": "save injected waveform",
57
+ "default": False,
58
+ "cwb": False
59
+ },
60
+ "plot_injection": {
61
+ "type": "boolean",
62
+ "description": "plot injected waveform",
63
+ "default": False,
64
+ "cwb": False
65
+ },
54
66
  "save_sky_map": {
55
67
  "type": "boolean",
56
68
  "description": "save sky maps to json",
@@ -69,6 +81,12 @@ schema = {
69
81
  "default": False,
70
82
  "cwb": False
71
83
  },
84
+ "use_root_supercluster": {
85
+ "type": "boolean",
86
+ "description": "use cwb supercluster, if false use python version",
87
+ "default": True,
88
+ "cwb": False
89
+ },
72
90
  "nproc": {
73
91
  "type": "integer",
74
92
  "description": "number of processes",
@@ -301,9 +319,8 @@ schema = {
301
319
  },
302
320
  "netRHO": {
303
321
  "type": "number",
304
- "description": "[>4.0] coherent network SNR (supercluster, likelihood)",
322
+ "description": "[>4.0] coherent network SNR (supercluster, likelihood), if <=0 then use the new statistics for XGBoost",
305
323
  "default": 4.0,
306
- "minimum": 4.0,
307
324
  },
308
325
  "netCC": {
309
326
  "type": "number",
@@ -123,6 +123,9 @@ def coherence_single_res(i, config, tf_maps, nRMS_list, up_n=None, net=None):
123
123
 
124
124
  # produce TF maps with max over the sky energy
125
125
  alp = 0.0
126
+
127
+ # FIXME: max time delay is different to pycbc
128
+ config.max_delay = net.get_max_delay()
126
129
  for n in range(len(config.ifo)):
127
130
  ts = convert_to_wavearray(tf_maps[n])
128
131
  ts.Edge = config.segEdge
@@ -0,0 +1,48 @@
1
+ import math
2
+ import numba
3
+
4
+
5
+ @numba.jit(nopython=True)
6
+ def threshold(tf_maps, nIFO, Edge, p, shape):
7
+ """
8
+ Calculate WaveBurst energy threshold for a given black pixel probability p
9
+ and single detector Gamma distribution shape. TF data should contain pixel energy.
10
+ """
11
+
12
+ # The WSeries, wavearray and iGamma should be replaced with equivalent
13
+ # Python implementation or library
14
+
15
+ N = nIFO
16
+ pw = tf_maps[0]
17
+ M = pw.maxLayer() + 1
18
+ nL = int(Edge * pw.w_rate * M)
19
+ nR = len(pw.data) - nL - 1
20
+ w = pw.copy()
21
+
22
+ for i in range(1, N):
23
+ w += tf_maps[i]
24
+
25
+ amp, avr, bbb, alp = 0, 0, 0, 0
26
+ nn = 0
27
+
28
+ for i in range(nL, nR):
29
+ amp = w.data[i]
30
+ if amp > N * 100:
31
+ amp = N * 100
32
+ if amp > 0.001:
33
+ avr += amp
34
+ bbb += math.log(amp)
35
+ nn += 1
36
+
37
+ avr /= nn
38
+ alp = math.log(avr) - bbb / nn
39
+ alp = (3 - alp + math.sqrt((alp - 3) * (alp - 3) + 24 * alp)) / (12 * alp)
40
+
41
+ bbb = p * alp / shape
42
+
43
+ # Assuming iGamma is defined elsewhere or imported from some library/module
44
+ return avr * iGamma(alp, bbb) / alp / 2
45
+
46
+ # Call the function
47
+ # result = threshold(tf_maps, nIFO, Edge, p, shape)
48
+ # print(result)
@@ -12,20 +12,20 @@ logger = logging.getLogger(__name__)
12
12
 
13
13
 
14
14
  def create_job_segment_from_config(config):
15
+ logger.info("-" * 80)
16
+ logger.info("Initializing job segments")
17
+
15
18
  if not config.simulation:
16
- logger.info("-" * 80)
17
- logger.info("Initializing job segments")
18
19
  job_segments = select_job_segment(config.dq_files, config.ifo, config.frFiles,
19
20
  config.segLen, config.segMLS, config.segEdge, config.segOverlap,
20
21
  config.rateANA, config.l_high)
21
-
22
- # log number of segments
23
- logger.info(f"Number of segments: {len(job_segments)}")
24
- logger.info("-" * 80)
25
22
  else:
26
23
  job_segments = create_job_segment_from_injection(config.ifo, config.simulation, config.injection)
27
- for job_seg in job_segments:
28
- logger.info(job_seg)
24
+ # for job_seg in job_segments:
25
+ # logger.info(job_seg)
26
+ # log number of segments
27
+ logger.info(f"Number of segments: {len(job_segments)}")
28
+ logger.info("-" * 80)
29
29
  return job_segments
30
30
 
31
31
 
@@ -4,13 +4,13 @@ import logging
4
4
  from pycwb.config import Config
5
5
  from pycwb.modules.cwb_conversions import convert_fragment_clusters_to_netcluster, \
6
6
  convert_netcluster_to_fragment_clusters
7
- from pycwb.types.network_cluster import FragmentCluster
7
+ from pycwb.types.network_cluster import FragmentCluster, Cluster
8
8
  from pycwb.types.network_event import Event
9
9
 
10
10
  logger = logging.getLogger(__name__)
11
11
 
12
12
 
13
- def likelihood(config, network, fragment_clusters):
13
+ def likelihood(config, network, fragment_clusters) -> tuple[list[Event], list[Cluster], list[dict]]:
14
14
  """
15
15
  calculate likelihood
16
16
 
@@ -107,7 +107,8 @@ def _likelihood(config, network, lag, cluster_id, fragment_cluster):
107
107
  wdm_list = network.get_wdm_list()
108
108
  for wdm in wdm_list:
109
109
  wdm.setTDFilter(config.TDSize, config.upTDF)
110
-
110
+ # FIXME: precision setup in config
111
+ # network.net.precision = config.get_precision(100, 5)
111
112
  network.set_delay_index(config.TDRate)
112
113
 
113
114
  # sparse_table_list = sparse_table_from_fragment_clusters(config, tf_maps, [fragment_cluster])
@@ -5,13 +5,15 @@ import logging
5
5
  logger = logging.getLogger(__name__)
6
6
 
7
7
 
8
- def plot_statistics(cluster, key='likelihood', filename=None):
8
+ def plot_statistics(cluster, key='likelihood', gps_shift=0, filename=None):
9
9
  """Plot the statistics of the event
10
10
 
11
11
  :param cluster: cluster
12
12
  :type cluster: Cluster
13
13
  :param key: key of the statistics, defaults to 'likelihood'
14
14
  :type key: str, optional
15
+ :param gps_shift: gps time shift, defaults to 0
16
+ :type gps_shift: int, optional
15
17
  :param filename: path to save the plot, defaults to None
16
18
  :type filename: str, optional
17
19
  """
@@ -20,7 +22,7 @@ def plot_statistics(cluster, key='likelihood', filename=None):
20
22
 
21
23
  merged_map, start, dt, df = cluster.get_sparse_map(key)
22
24
 
23
- plt = Spectrogram(merged_map, t0=start, dt=dt, f0=0, df=df).plot()
25
+ plt = Spectrogram(merged_map, t0=start + gps_shift, dt=dt, f0=0, df=df).plot()
24
26
  plt.colorbar()
25
27
  # save to png
26
28
  if filename is not None:
@@ -55,11 +55,15 @@ def check_and_resample(data, config, ifo_index):
55
55
  # DC correction
56
56
  if config.dcCal[ifo_index] > 0 and config.dcCal[ifo_index] != 1.0:
57
57
  data.data *= config.dcCal[config.ifo.indexof(ifo_index)]
58
+ logger.info(f"DC correction: {config.dcCal[ifo_index]}")
58
59
 
59
60
  # resampling
60
61
  if config.fResample > 0:
61
62
  logger.info(f"Resampling data from {data.sample_rate} to {config.fResample}")
62
- data = data.resample(1.0 / config.fResample)
63
+ # data = data.resample(1.0 / config.fResample)
64
+ w = convert_to_wavearray(data)
65
+ w.Resample(config.fResample)
66
+ data = convert_wavearray_to_pycbc_timeseries(w)
63
67
 
64
68
  new_sample_rate = data.sample_rate / (1 << config.levelR)
65
69
  if new_sample_rate != config.inRate: