PycWB 0.19.0__tar.gz → 0.20.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 (362) hide show
  1. {PycWB-0.19.0 → PycWB-0.20.0}/.gitignore +3 -1
  2. {PycWB-0.19.0 → PycWB-0.20.0}/PKG-INFO +1 -1
  3. {PycWB-0.19.0 → PycWB-0.20.0}/PycWB.egg-info/PKG-INFO +1 -1
  4. {PycWB-0.19.0 → PycWB-0.20.0}/PycWB.egg-info/SOURCES.txt +28 -0
  5. PycWB-0.20.0/benchmark/README.md +10 -0
  6. PycWB-0.20.0/benchmark/likelihood/README.md +21 -0
  7. PycWB-0.20.0/benchmark/likelihood/generate_data_for_likelihood.py +105 -0
  8. PycWB-0.20.0/benchmark/likelihood/performance_test_dpf.py +273 -0
  9. PycWB-0.20.0/benchmark/likelihood/performance_test_opt_sky.py +110 -0
  10. PycWB-0.20.0/benchmark/likelihood/user_parameters_injection.yaml +104 -0
  11. PycWB-0.20.0/benchmark/supercluster/README.md +12 -0
  12. PycWB-0.20.0/benchmark/supercluster/generate_data.py +51 -0
  13. PycWB-0.20.0/benchmark/supercluster/user_parameters_injection.yaml +104 -0
  14. PycWB-0.20.0/bin/pycwb +37 -0
  15. PycWB-0.20.0/bin/pycwb_search +12 -0
  16. PycWB-0.20.0/bin/pycwb_show +12 -0
  17. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/pycwb.hh +9 -0
  18. PycWB-0.20.0/prototypes/dag/prefect_test.py +298 -0
  19. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/_version.py +2 -2
  20. PycWB-0.20.0/pycwb/cli/run.py +87 -0
  21. PycWB-0.19.0/bin/pycwb_show → PycWB-0.20.0/pycwb/cli/server.py +5 -6
  22. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/autoencoder/autoencoder.py +17 -9
  23. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/coherence/coherence.py +6 -10
  24. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/cwb_conversions/series.py +15 -0
  25. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/data_conditioning/data_conditioning.py +2 -2
  26. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/likelihood/likelihood.py +9 -3
  27. PycWB-0.20.0/pycwb/modules/likelihoodWP/dpf.py +412 -0
  28. PycWB-0.20.0/pycwb/modules/likelihoodWP/dpf_cython.pyx +100 -0
  29. PycWB-0.20.0/pycwb/modules/likelihoodWP/likelihood.py +326 -0
  30. PycWB-0.20.0/pycwb/modules/likelihoodWP/sky_stat.py +273 -0
  31. PycWB-0.20.0/pycwb/modules/likelihoodWP/utils.py +214 -0
  32. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot/cluster_statistics.py +1 -2
  33. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot/waveform.py +1 -2
  34. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot_map/world_map.py +2 -3
  35. PycWB-0.20.0/pycwb/modules/read_data/data_find.py +30 -0
  36. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/read_data/read_data.py +8 -4
  37. PycWB-0.20.0/pycwb/modules/statistics/eff.py +249 -0
  38. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/super_cluster/supercluster.py +1 -1
  39. PycWB-0.20.0/pycwb/modules/superlag/__init__.py +1 -0
  40. PycWB-0.20.0/pycwb/modules/superlag/superlag.py +79 -0
  41. PycWB-0.20.0/pycwb/modules/xtalk/monster.py +129 -0
  42. PycWB-0.20.0/pycwb/modules/xtalk/monster_old.py +264 -0
  43. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/search.py +4 -5
  44. PycWB-0.20.0/pycwb/vendor/__init__.py +0 -0
  45. PycWB-0.20.0/pycwb/vendor/autoencoder/__init__.py +0 -0
  46. PycWB-0.20.0/pycwb/vendor/lib/__init__.py +0 -0
  47. PycWB-0.20.0/pycwb/vendor/wdmXTalk/__init__.py +0 -0
  48. {PycWB-0.19.0 → PycWB-0.20.0}/setup.py +2 -2
  49. PycWB-0.19.0/bin/pycwb_search +0 -91
  50. {PycWB-0.19.0 → PycWB-0.20.0}/.gitlab-ci.yml +0 -0
  51. {PycWB-0.19.0 → PycWB-0.20.0}/LICENSE +0 -0
  52. {PycWB-0.19.0 → PycWB-0.20.0}/MANIFEST.in +0 -0
  53. {PycWB-0.19.0 → PycWB-0.20.0}/Makefile +0 -0
  54. {PycWB-0.19.0 → PycWB-0.20.0}/PycWB.egg-info/dependency_links.txt +0 -0
  55. {PycWB-0.19.0 → PycWB-0.20.0}/PycWB.egg-info/requires.txt +0 -0
  56. {PycWB-0.19.0 → PycWB-0.20.0}/PycWB.egg-info/top_level.txt +0 -0
  57. {PycWB-0.19.0 → PycWB-0.20.0}/README.md +0 -0
  58. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Biorthogonal.cc +0 -0
  59. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Biorthogonal.hh +0 -0
  60. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/CMakeLists.txt +0 -0
  61. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Daubechies.cc +0 -0
  62. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Daubechies.hh +0 -0
  63. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/FourierCoefficients.icc +0 -0
  64. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Haar.cc +0 -0
  65. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Haar.hh +0 -0
  66. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/LineFilter.cc +0 -0
  67. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/LineFilter.hh +0 -0
  68. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Makefile +0 -0
  69. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Meyer.cc +0 -0
  70. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Meyer.hh +0 -0
  71. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Symlet.cc +0 -0
  72. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Symlet.hh +0 -0
  73. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/SymmArray.cc +0 -0
  74. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/SymmArray.hh +0 -0
  75. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/SymmArraySSE.cc +0 -0
  76. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/SymmArraySSE.hh +0 -0
  77. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/SymmObjArray.cc +0 -0
  78. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/SymmObjArray.hh +0 -0
  79. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/WDM.cc +0 -0
  80. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/WDM.hh +0 -0
  81. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/WDMOverlap.cc +0 -0
  82. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/WDMOverlap.hh +0 -0
  83. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/WaveDWT.cc +0 -0
  84. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/WaveDWT.hh +0 -0
  85. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Wavelet.cc +0 -0
  86. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/Wavelet.hh +0 -0
  87. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/alm.hh +0 -0
  88. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/build.sh +0 -0
  89. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/cluster.cc +0 -0
  90. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/cluster.hh +0 -0
  91. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/cmake/FindHealpix.cmake +0 -0
  92. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/cmake/FindeBBH.cmake +0 -0
  93. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/cmake/install_function.cmake +0 -0
  94. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/constants.hh +0 -0
  95. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/detector.cc +0 -0
  96. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/detector.hh +0 -0
  97. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/injection.cc +0 -0
  98. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/injection.hh +0 -0
  99. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/lossy.cc +0 -0
  100. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/lossy.hh +0 -0
  101. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/monster.cc +0 -0
  102. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/monster.hh +0 -0
  103. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/netcluster.cc +0 -0
  104. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/netcluster.hh +0 -0
  105. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/netevent.cc +0 -0
  106. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/netevent.hh +0 -0
  107. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/netpixel.cc +0 -0
  108. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/netpixel.hh +0 -0
  109. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/network.cc +0 -0
  110. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/network.hh +0 -0
  111. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/rdfr.cc +0 -0
  112. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/rdfr.hh +0 -0
  113. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/readframe.cc +0 -0
  114. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/readframe.hh +0 -0
  115. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/readfrfile.cc +0 -0
  116. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/readfrfile.hh +0 -0
  117. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/regression.cc +0 -0
  118. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/regression.hh +0 -0
  119. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/skycoord.hh +0 -0
  120. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/skymap.cc +0 -0
  121. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/skymap.hh +0 -0
  122. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/sseries.cc +0 -0
  123. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/sseries.hh +0 -0
  124. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/time.cc +0 -0
  125. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/time.hh +0 -0
  126. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wat.hh +0 -0
  127. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watasm.S +0 -0
  128. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watasm_elf64.o +0 -0
  129. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watavx.hh +0 -0
  130. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watbranch.in +0 -0
  131. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watfun.hh +0 -0
  132. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wathash.in +0 -0
  133. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watplot.cc +0 -0
  134. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watplot.hh +0 -0
  135. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watsse.hh +0 -0
  136. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wattag.in +0 -0
  137. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/waturl.in +0 -0
  138. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/watversion.hh.in +0 -0
  139. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavearray.cc +0 -0
  140. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavearray.hh +0 -0
  141. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavecomplex.cc +0 -0
  142. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavecomplex.hh +0 -0
  143. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavecor.cc +0 -0
  144. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavecor.hh +0 -0
  145. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavefft.cc +0 -0
  146. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavefft.hh +0 -0
  147. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavelet_LinkDef.h +0 -0
  148. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavelinefilter.cc +0 -0
  149. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wavelinefilter.hh +0 -0
  150. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/waverdc.cc +0 -0
  151. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/waverdc.hh +0 -0
  152. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wseries.cc +0 -0
  153. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wseries.hh +0 -0
  154. {PycWB-0.19.0 → PycWB-0.20.0}/cwb-core/wslice.hh +0 -0
  155. {PycWB-0.19.0 → PycWB-0.20.0}/docs/0.installation_guide.md +0 -0
  156. {PycWB-0.19.0 → PycWB-0.20.0}/docs/1.initialisation_guide.md +0 -0
  157. {PycWB-0.19.0 → PycWB-0.20.0}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
  158. {PycWB-0.19.0 → PycWB-0.20.0}/docs/3.run_pycwb_with_yaml_config.md +0 -0
  159. {PycWB-0.19.0 → PycWB-0.20.0}/docs/4.py_cwb_inet_2G.md +0 -0
  160. {PycWB-0.19.0 → PycWB-0.20.0}/docs/5.cwb2G_analyse.md +0 -0
  161. {PycWB-0.19.0 → PycWB-0.20.0}/docs/6.wat_codes_notes.md +0 -0
  162. {PycWB-0.19.0 → PycWB-0.20.0}/docs/Makefile +0 -0
  163. {PycWB-0.19.0 → PycWB-0.20.0}/docs/diagram.py +0 -0
  164. {PycWB-0.19.0 → PycWB-0.20.0}/docs/make.bat +0 -0
  165. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/_static/.keep +0 -0
  166. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/_templates/.keep +0 -0
  167. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/conf.py +0 -0
  168. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/credit.rst +0 -0
  169. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/index.rst +0 -0
  170. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/install.rst +0 -0
  171. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/mod_cwb.rst +0 -0
  172. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/package.rst +0 -0
  173. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/schema.rst +0 -0
  174. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/tutorial_batch_inj.rst +0 -0
  175. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/tutorial_customized_wf_gen.rst +0 -0
  176. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/tutorial_injection.rst +0 -0
  177. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/tutorial_multi_injection.rst +0 -0
  178. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/tutorial_search.rst +0 -0
  179. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/tutorials.rst +0 -0
  180. {PycWB-0.19.0 → PycWB-0.20.0}/docs/source/workflow.png +0 -0
  181. {PycWB-0.19.0 → PycWB-0.20.0}/envs/Dockerfile +0 -0
  182. {PycWB-0.19.0 → PycWB-0.20.0}/envs/mamba/Dockerfile +0 -0
  183. {PycWB-0.19.0 → PycWB-0.20.0}/examples/autoencoder/pycwb_injection.ipynb +0 -0
  184. {PycWB-0.19.0 → PycWB-0.20.0}/examples/autoencoder/user_parameters_injection.yaml +0 -0
  185. {PycWB-0.19.0 → PycWB-0.20.0}/examples/batch_injection/generate_parameters.py +0 -0
  186. {PycWB-0.19.0 → PycWB-0.20.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
  187. {PycWB-0.19.0 → PycWB-0.20.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
  188. {PycWB-0.19.0 → PycWB-0.20.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
  189. {PycWB-0.19.0 → PycWB-0.20.0}/examples/batch_injection/pycwb_injection.py +0 -0
  190. {PycWB-0.19.0 → PycWB-0.20.0}/examples/batch_injection/user_parameters_injection.yaml +0 -0
  191. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/H1_cat0.txt +0 -0
  192. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/H1_cat1.txt +0 -0
  193. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/H1_cat2.txt +0 -0
  194. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/H1_cat4.txt +0 -0
  195. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/L1_cat0.txt +0 -0
  196. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/L1_cat1.txt +0 -0
  197. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/L1_cat2.txt +0 -0
  198. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/DQ/L1_cat4.txt +0 -0
  199. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/input/OPBM.period +0 -0
  200. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/input/OPBM_H1.frames +0 -0
  201. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/input/OPBM_L1.frames +0 -0
  202. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/pycwb_mdc.py +0 -0
  203. {PycWB-0.19.0 → PycWB-0.20.0}/examples/benchmark/user_parameters_mdc.yaml +0 -0
  204. {PycWB-0.19.0 → PycWB-0.20.0}/examples/colab/pycWB_GW150914.ipynb +0 -0
  205. {PycWB-0.19.0 → PycWB-0.20.0}/examples/injection/pycwb_injection.ipynb +0 -0
  206. {PycWB-0.19.0 → PycWB-0.20.0}/examples/injection/pycwb_injection.py +0 -0
  207. {PycWB-0.19.0 → PycWB-0.20.0}/examples/injection/user_parameters_injection.yaml +0 -0
  208. {PycWB-0.19.0 → PycWB-0.20.0}/examples/lvk_sep_2023/demo.ipynb +0 -0
  209. {PycWB-0.19.0 → PycWB-0.20.0}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
  210. {PycWB-0.19.0 → PycWB-0.20.0}/examples/multiple_injection/pycwb_injection.py +0 -0
  211. {PycWB-0.19.0 → PycWB-0.20.0}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
  212. {PycWB-0.19.0 → PycWB-0.20.0}/examples/pyseobnr_injection/generate_parameters.py +0 -0
  213. {PycWB-0.19.0 → PycWB-0.20.0}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
  214. {PycWB-0.19.0 → PycWB-0.20.0}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
  215. {PycWB-0.19.0 → PycWB-0.20.0}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
  216. {PycWB-0.19.0 → PycWB-0.20.0}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
  217. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/cwb_core/coherence.cc +0 -0
  218. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/cwb_core/coherence.hh +0 -0
  219. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/cwb_core/likelihood.cc +0 -0
  220. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/cwb_core/likelihood.hh +0 -0
  221. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/dag/dag.py +0 -0
  222. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger/__init__.py +0 -0
  223. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger/server.py +0 -0
  224. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger/visualizition.py +0 -0
  225. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
  226. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/.gitignore +0 -0
  227. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
  228. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/README.md +0 -0
  229. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/index.html +0 -0
  230. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/package-lock.json +0 -0
  231. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/package.json +0 -0
  232. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
  233. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/App.vue +0 -0
  234. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
  235. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
  236. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
  237. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
  238. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
  239. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
  240. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
  241. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
  242. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
  243. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
  244. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
  245. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
  246. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
  247. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/main.js +0 -0
  248. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/router/index.js +0 -0
  249. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
  250. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
  251. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
  252. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
  253. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
  254. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
  255. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/messenger-web-interface/vite.config.js +0 -0
  256. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/performance/numba_test.py +0 -0
  257. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/performance/taichi_test.py +0 -0
  258. {PycWB-0.19.0 → PycWB-0.20.0}/prototypes/search.yaml +0 -0
  259. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/__init__.py +0 -0
  260. {PycWB-0.19.0/pycwb/messenger → PycWB-0.20.0/pycwb/cli}/__init__.py +0 -0
  261. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/config/__init__.py +0 -0
  262. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/config/config.py +0 -0
  263. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/constants/__init__.py +0 -0
  264. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/constants/project_constants.py +0 -0
  265. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/constants/user_parameters_schema.py +0 -0
  266. {PycWB-0.19.0/pycwb/modules → PycWB-0.20.0/pycwb/messenger}/__init__.py +0 -0
  267. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/messenger/messenger.py +0 -0
  268. {PycWB-0.19.0/pycwb/modules/condor → PycWB-0.20.0/pycwb/modules}/__init__.py +0 -0
  269. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/autoencoder/__init__.py +0 -0
  270. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
  271. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/autoencoder/module.yaml +0 -0
  272. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/catalog/__init__.py +0 -0
  273. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/catalog/catalog.py +0 -0
  274. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/catalog/module.yaml +0 -0
  275. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/coherence/__init__.py +0 -0
  276. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/coherence/coherence_lite.py +0 -0
  277. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/coherence/module.yaml +0 -0
  278. {PycWB-0.19.0/pycwb/modules/plot_map → PycWB-0.20.0/pycwb/modules/condor}/__init__.py +0 -0
  279. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/condor/condor.py +0 -0
  280. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/condor/module.yaml +0 -0
  281. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/cwb_conversions/__init__.py +0 -0
  282. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/cwb_conversions/cluster.py +0 -0
  283. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/cwb_conversions/module.yaml +0 -0
  284. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/cwb_conversions/pixel.py +0 -0
  285. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
  286. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/data_conditioning/__init__.py +0 -0
  287. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/data_conditioning/module.yaml +0 -0
  288. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/data_conditioning/regression.py +0 -0
  289. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/data_conditioning/whitening.py +0 -0
  290. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/__init__.py +0 -0
  291. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/dq_segment.py +0 -0
  292. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/frame.py +0 -0
  293. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/job_segment.py +0 -0
  294. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/module.yaml +0 -0
  295. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/plots.py +0 -0
  296. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/job_segment/super_lag.py +0 -0
  297. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/likelihood/__init__.py +0 -0
  298. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/likelihood/module.yaml +0 -0
  299. {PycWB-0.19.0/pycwb/modules/web_viewer → PycWB-0.20.0/pycwb/modules/likelihoodWP}/__init__.py +0 -0
  300. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/logger/__init__.py +0 -0
  301. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/logger/logger.py +0 -0
  302. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/logger/module.yaml +0 -0
  303. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
  304. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
  305. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
  306. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot/__init__.py +0 -0
  307. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot/event.py +0 -0
  308. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot/module.yaml +0 -0
  309. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot/spectrogram.py +0 -0
  310. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot_data_quality/__init__.py +0 -0
  311. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot_data_quality/module.yaml +0 -0
  312. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot_data_quality/plot.py +0 -0
  313. {PycWB-0.19.0/pycwb/types → PycWB-0.20.0/pycwb/modules/plot_map}/__init__.py +0 -0
  314. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/plot_map/module.yaml +0 -0
  315. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/read_data/__init__.py +0 -0
  316. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/read_data/data_check.py +0 -0
  317. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/read_data/mdc.py +0 -0
  318. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/read_data/module.yaml +0 -0
  319. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/reconstruction/__init__.py +0 -0
  320. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/reconstruction/getMRAwaveform.py +0 -0
  321. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/reconstruction/module.yaml +0 -0
  322. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/sparse_series/__init__.py +0 -0
  323. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/sparse_series/module.yaml +0 -0
  324. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/sparse_series/sparse_table.py +0 -0
  325. {PycWB-0.19.0/pycwb/utils → PycWB-0.20.0/pycwb/modules/statistics}/__init__.py +0 -0
  326. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/super_cluster/__init__.py +0 -0
  327. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/super_cluster/module.yaml +0 -0
  328. {PycWB-0.19.0/pycwb/utils/conversions → PycWB-0.20.0/pycwb/modules/web_viewer}/__init__.py +0 -0
  329. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/web_viewer/create.py +0 -0
  330. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/modules/web_viewer/module.yaml +0 -0
  331. {PycWB-0.19.0/pycwb/vendor → PycWB-0.20.0/pycwb/modules/xtalk}/__init__.py +0 -0
  332. {PycWB-0.19.0/pycwb/vendor/autoencoder → PycWB-0.20.0/pycwb/types}/__init__.py +0 -0
  333. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/data_quality_file.py +0 -0
  334. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/detector.py +0 -0
  335. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/job.py +0 -0
  336. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/network.py +0 -0
  337. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/network_cluster.py +0 -0
  338. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/network_event.py +0 -0
  339. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/network_pixel.py +0 -0
  340. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/sparse_series.py +0 -0
  341. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/time_frequency_series.py +0 -0
  342. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/wdm.py +0 -0
  343. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/types/wdm_xtalk.py +0 -0
  344. {PycWB-0.19.0/pycwb/vendor/lib → PycWB-0.20.0/pycwb/utils}/__init__.py +0 -0
  345. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/async_write.py +0 -0
  346. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/check_ROOT.py +0 -0
  347. {PycWB-0.19.0/pycwb/vendor/wdmXTalk → PycWB-0.20.0/pycwb/utils/conversions}/__init__.py +0 -0
  348. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/conversions/timeseries.py +0 -0
  349. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/dataclass_object_io.py +0 -0
  350. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/dep_check.py +0 -0
  351. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/image.py +0 -0
  352. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/module.py +0 -0
  353. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/network.py +0 -0
  354. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/skymap_coord.py +0 -0
  355. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/utils/yaml_helper.py +0 -0
  356. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
  357. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/vendor/example.yaml +0 -0
  358. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/vendor/web_viewer/event_dump.html +0 -0
  359. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/vendor/web_viewer/styles.css +0 -0
  360. {PycWB-0.19.0 → PycWB-0.20.0}/pycwb/vendor/web_viewer/viewer.html +0 -0
  361. {PycWB-0.19.0 → PycWB-0.20.0}/pyproject.toml +0 -0
  362. {PycWB-0.19.0 → PycWB-0.20.0}/setup.cfg +0 -0
@@ -22,4 +22,6 @@ messenger-web-interface/node_modules
22
22
  messenger-web-interface/dist
23
23
 
24
24
  cwb_wrapper/_version.py
25
- pycwb/_version.py
25
+ pycwb/_version.py
26
+
27
+ benchmark/*/*.pkl
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.19.0
3
+ Version: 0.20.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.19.0
3
+ Version: 0.20.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>
@@ -11,6 +11,16 @@ PycWB.egg-info/SOURCES.txt
11
11
  PycWB.egg-info/dependency_links.txt
12
12
  PycWB.egg-info/requires.txt
13
13
  PycWB.egg-info/top_level.txt
14
+ benchmark/README.md
15
+ benchmark/likelihood/README.md
16
+ benchmark/likelihood/generate_data_for_likelihood.py
17
+ benchmark/likelihood/performance_test_dpf.py
18
+ benchmark/likelihood/performance_test_opt_sky.py
19
+ benchmark/likelihood/user_parameters_injection.yaml
20
+ benchmark/supercluster/README.md
21
+ benchmark/supercluster/generate_data.py
22
+ benchmark/supercluster/user_parameters_injection.yaml
23
+ bin/pycwb
14
24
  bin/pycwb_search
15
25
  bin/pycwb_show
16
26
  cwb-core/Biorthogonal.cc
@@ -179,6 +189,7 @@ prototypes/cwb_core/coherence.hh
179
189
  prototypes/cwb_core/likelihood.cc
180
190
  prototypes/cwb_core/likelihood.hh
181
191
  prototypes/dag/dag.py
192
+ prototypes/dag/prefect_test.py
182
193
  prototypes/messenger/__init__.py
183
194
  prototypes/messenger/server.py
184
195
  prototypes/messenger/visualizition.py
@@ -218,6 +229,9 @@ prototypes/performance/taichi_test.py
218
229
  pycwb/__init__.py
219
230
  pycwb/_version.py
220
231
  pycwb/search.py
232
+ pycwb/cli/__init__.py
233
+ pycwb/cli/run.py
234
+ pycwb/cli/server.py
221
235
  pycwb/config/__init__.py
222
236
  pycwb/config/config.py
223
237
  pycwb/constants/__init__.py
@@ -261,6 +275,12 @@ pycwb/modules/job_segment/super_lag.py
261
275
  pycwb/modules/likelihood/__init__.py
262
276
  pycwb/modules/likelihood/likelihood.py
263
277
  pycwb/modules/likelihood/module.yaml
278
+ pycwb/modules/likelihoodWP/__init__.py
279
+ pycwb/modules/likelihoodWP/dpf.py
280
+ pycwb/modules/likelihoodWP/dpf_cython.pyx
281
+ pycwb/modules/likelihoodWP/likelihood.py
282
+ pycwb/modules/likelihoodWP/sky_stat.py
283
+ pycwb/modules/likelihoodWP/utils.py
264
284
  pycwb/modules/logger/__init__.py
265
285
  pycwb/modules/logger/logger.py
266
286
  pycwb/modules/logger/module.yaml
@@ -281,6 +301,7 @@ pycwb/modules/plot_map/module.yaml
281
301
  pycwb/modules/plot_map/world_map.py
282
302
  pycwb/modules/read_data/__init__.py
283
303
  pycwb/modules/read_data/data_check.py
304
+ pycwb/modules/read_data/data_find.py
284
305
  pycwb/modules/read_data/mdc.py
285
306
  pycwb/modules/read_data/module.yaml
286
307
  pycwb/modules/read_data/read_data.py
@@ -290,12 +311,19 @@ pycwb/modules/reconstruction/module.yaml
290
311
  pycwb/modules/sparse_series/__init__.py
291
312
  pycwb/modules/sparse_series/module.yaml
292
313
  pycwb/modules/sparse_series/sparse_table.py
314
+ pycwb/modules/statistics/__init__.py
315
+ pycwb/modules/statistics/eff.py
293
316
  pycwb/modules/super_cluster/__init__.py
294
317
  pycwb/modules/super_cluster/module.yaml
295
318
  pycwb/modules/super_cluster/supercluster.py
319
+ pycwb/modules/superlag/__init__.py
320
+ pycwb/modules/superlag/superlag.py
296
321
  pycwb/modules/web_viewer/__init__.py
297
322
  pycwb/modules/web_viewer/create.py
298
323
  pycwb/modules/web_viewer/module.yaml
324
+ pycwb/modules/xtalk/__init__.py
325
+ pycwb/modules/xtalk/monster.py
326
+ pycwb/modules/xtalk/monster_old.py
299
327
  pycwb/types/__init__.py
300
328
  pycwb/types/data_quality_file.py
301
329
  pycwb/types/detector.py
@@ -0,0 +1,10 @@
1
+ # Benchmark for the Python implementation of the algorithms
2
+
3
+
4
+ ## Supercluster Benchmark
5
+
6
+ Please refer to the subdirectory `benchmark/supercluster` for more details.
7
+
8
+ ## Likelihood Benchmark
9
+
10
+ Please refer to the subdirectory `benchmark/likelihood` for more details.
@@ -0,0 +1,21 @@
1
+ # Likelihood Benchmark
2
+
3
+ This benchmark is designed to test the performance of the likelihood in Python
4
+
5
+ ## Prepare the test data for the script
6
+
7
+ Run the script `generate_data_for_likelihood.py` to generate the cluster data for the likelihood benchmark.
8
+
9
+ ```bash
10
+ python generate_data_for_likelihood.py
11
+ ```
12
+
13
+ A `test_data.pkl` file will be generated for all the Python variables required for likelihood benchmark.
14
+
15
+ ## Run the benchmark
16
+
17
+ Run the script `performance_test_opt_sky.py` to run the benchmark.
18
+
19
+ ```bash
20
+ python performance_test_opt_sky.py
21
+ ```
@@ -0,0 +1,105 @@
1
+ import os
2
+
3
+ from pycwb.config import Config
4
+ from pycwb.modules.logger import logger_init
5
+
6
+ if not os.environ.get('HOME_WAT_FILTERS'):
7
+ print('Please set HOME_WAT_FILTERS to the directory of WAT filters')
8
+ exit(1)
9
+
10
+ logger_init()
11
+
12
+ config = Config('./user_parameters_injection.yaml')
13
+
14
+ #%% md
15
+ ## generate injected data for each detector with given parameters in config
16
+ #%%
17
+ from pycwb.modules.read_data import generate_injection
18
+ from pycwb.modules.job_segment import create_job_segment_from_injection
19
+
20
+ job_segments = create_job_segment_from_injection(config.ifo, config.simulation, config.injection)
21
+
22
+ data = generate_injection(config, job_segments[0])
23
+
24
+ #%% md
25
+ ## apply data conditioning to the data
26
+ #%%
27
+ from pycwb.modules.data_conditioning import data_conditioning
28
+
29
+ strains, nRMS = data_conditioning(config, data)
30
+
31
+ #%% md
32
+ ## calculate coherence
33
+ #%%
34
+ from pycwb.modules.coherence import coherence
35
+
36
+ # calculate coherence
37
+ fragment_clusters = coherence(config, strains, nRMS)
38
+
39
+ #%% md
40
+ ## supercluster
41
+ #%%
42
+ from pycwb.modules.super_cluster import supercluster
43
+ from pycwb.types.network import Network
44
+
45
+ network = Network(config, strains, nRMS)
46
+
47
+ pwc_list = supercluster(config, network, fragment_clusters, strains)
48
+
49
+ #%% md
50
+ ## dump data
51
+
52
+ #%%
53
+ # only dump the first supercluster
54
+ d = pwc_list[0]
55
+
56
+ from pycwb.modules.cwb_conversions import convert_fragment_clusters_to_netcluster, convert_netcluster_to_fragment_clusters
57
+
58
+ pwc = network.get_cluster(0)
59
+ wdm_list = network.get_wdm_list()
60
+ for wdm in wdm_list:
61
+ wdm.setTDFilter(config.TDSize, config.upTDF)
62
+
63
+ # load delay index
64
+ network.set_delay_index(config.TDRate)
65
+
66
+ # load time delay data
67
+ pwc.cpf(convert_fragment_clusters_to_netcluster(d.dump_cluster(0)), False)
68
+ pwc.setcore(False, 1)
69
+ pwc.loadTDampSSE(network.net, 'a', config.BATCH, config.BATCH)
70
+
71
+
72
+ from pycwb.modules.likelihoodWP.likelihood import load_data_from_ifo
73
+ import numpy as np
74
+
75
+ acor = network.net.acor
76
+ network_energy_threshold = 2 * acor * acor * config.nIFO
77
+ gamma_regulator = network.net.gamma * network.net.gamma * 2 / 3
78
+ delta_regulator = abs(network.net.delta) if abs(network.net.delta) < 1 else 1
79
+ REG = [delta_regulator * np.sqrt(2), 0, 0]
80
+ netEC_threshold = network.net.netRHO * network.net.netRHO * 2
81
+
82
+ n_sky = network.net.index.size()
83
+
84
+ ml, FP, FX = load_data_from_ifo(network, config.nIFO)
85
+
86
+ cluster_test = convert_netcluster_to_fragment_clusters(pwc)
87
+ pixels = cluster_test.clusters[0].pixels
88
+
89
+ # save FP, FX, rms, n_sky, gamma_regulator, network_energy_threshold to pickle
90
+ test_data = {
91
+ 'FP': FP,
92
+ 'FX': FX,
93
+ 'pixels': pixels,
94
+ 'n_ifo': config.nIFO,
95
+ 'ml': ml,
96
+ 'n_sky': n_sky,
97
+ 'delta_regulator': delta_regulator,
98
+ 'gamma_regulator': gamma_regulator,
99
+ 'netEC_threshold': netEC_threshold,
100
+ 'network_energy_threshold': network_energy_threshold,
101
+ 'netCC': network.net.netCC,
102
+ }
103
+ import pickle
104
+ with open('test_data.pkl', 'wb') as f:
105
+ pickle.dump(test_data, f)
@@ -0,0 +1,273 @@
1
+ import pickle
2
+ import numpy as np
3
+
4
+ from pycwb.modules.likelihoodWP.likelihood import load_data_from_pixels
5
+
6
+ # load FP, FX, rms, n_sky, gamma_regulator, network_energy_threshold from pickle
7
+ with open('test_data.pkl', 'rb') as f:
8
+ test_data = pickle.load(f)
9
+
10
+ FP = test_data['FP']
11
+ FX = test_data['FX']
12
+ pixels = test_data['pixels']
13
+ n_ifo = test_data['n_ifo']
14
+ n_sky = test_data['n_sky']
15
+ gamma_regulator = test_data['gamma_regulator']
16
+ network_energy_threshold = test_data['network_energy_threshold']
17
+ rms, td00, td90, td_energy = load_data_from_pixels(pixels, n_ifo)
18
+
19
+ from numba import njit, prange, vectorize, guvectorize, float32, uint32
20
+
21
+ import numpy as np
22
+ from math import sqrt
23
+
24
+
25
+ @njit(cache=True)
26
+ def dpf_np(Fp0, Fx0, rms):
27
+ """
28
+ :param Fp0: Fp0 is a NIFO x 1 array
29
+ :param Fx0: Fx0 is a NIFO x 1 array
30
+ :param rms: rms is a NIFO x NPIX array
31
+ :return:
32
+ """
33
+ # sign = np.sign(np.dot(Fp0, Fx0))
34
+
35
+ f = rms * Fp0
36
+ F = rms * Fx0
37
+
38
+ _ff = np.sum(f * f, axis=1)
39
+ _FF = np.sum(F * F, axis=1)
40
+ _fF = np.sum(f * F, axis=1)
41
+
42
+ _si = 2.0 * _fF
43
+ _co = _ff - _FF
44
+ _AP = _ff + _FF
45
+ _nn = np.sqrt(_co * _co + _si * _si)
46
+ _cc = _co / (_nn + 0.0001)
47
+ fp = (_AP + _nn) / 2.0
48
+
49
+ si = np.sqrt((1.0 - _cc) / 2.0)
50
+ co = np.where(_si > 0.0, np.sqrt((1.0 + _cc) / 2.0), -np.sqrt((1.0 + _cc) / 2.0))
51
+
52
+ f, F = f * co[:, np.newaxis] + F * si[:, np.newaxis], F * co[:, np.newaxis] - f * si[:, np.newaxis]
53
+ fF_new = np.sum(f * F, axis=1) / (fp + 0.0001)
54
+
55
+ F -= f * fF_new[:, np.newaxis]
56
+ fx = np.sum(F * F, axis=1)
57
+ ni = np.sum(f ** 4, axis=1) / ((fp * fp) + 0.0001)
58
+
59
+ NI = np.sum(fx / (ni + 0.0001))
60
+ NN = np.sum(fp > 0.0)
61
+
62
+ return sqrt(NI / (NN + 0.01)), fp, fx, si, co, ni
63
+
64
+
65
+ @vectorize([float32(float32, float32)])
66
+ def mul_vec(a, b):
67
+ return a * b
68
+
69
+
70
+ @vectorize([float32(float32, float32)])
71
+ def div_vec(a, b):
72
+ _o = float32(0.0001)
73
+ return a / (b + _o)
74
+
75
+
76
+ @vectorize([float32(float32, float32)])
77
+ def add_vec(a, b):
78
+ return a + b
79
+
80
+
81
+ @vectorize([float32(float32, float32)])
82
+ def sub_vec(a, b):
83
+ return a - b
84
+
85
+
86
+ @vectorize([float32(float32, float32)])
87
+ def norm_vec(a, b):
88
+ return sqrt(a * a + b * b)
89
+
90
+
91
+ @vectorize([float32(float32, float32)])
92
+ def avg_vec(a, b):
93
+ return (a + b) / float32(2.)
94
+
95
+
96
+ @vectorize([float32(float32)])
97
+ def sin_from_cc(a):
98
+ return sqrt((float32(1.) - a) / float32(2.))
99
+
100
+
101
+ @vectorize([float32(float32, float32)])
102
+ def cos_from_cc(a, si):
103
+ return sqrt((float32(1.) + a) / float32(2.)) if si > float32(0.) else - sqrt((float32(1.) + a) / float32(2.))
104
+
105
+
106
+ @vectorize([uint32(float32)])
107
+ def pos_sign_vec(a):
108
+ return uint32(1) if a > float32(0.) else uint32(0)
109
+
110
+
111
+ @vectorize([float32(float32, float32, float32, float32)])
112
+ def rotate_fp_vec(fp, fx, si, co):
113
+ return fp * co + fx * si
114
+
115
+ @vectorize([float32(float32, float32, float32, float32)])
116
+ def rotate_fx_vec(fp, fx, si, co):
117
+ return fx * co - fp * si
118
+
119
+ @vectorize([float32(float32)])
120
+ def quad_vec(a):
121
+ return a * a * a * a
122
+
123
+ @guvectorize([(float32[:], float32[:], float32[:])], '(n),(n)->()')
124
+ def sum_vec(a, b, res):
125
+ s = float32(0.)
126
+ for i in range(a.shape[0]):
127
+ s += a[i] * b[i]
128
+ res[0] = s
129
+
130
+
131
+ @njit(cache=True)
132
+ def dpf_np_loops_vec(Fp0, Fx0, rms):
133
+ NPIX, NIFO = rms.shape
134
+ NPIX = uint32(NPIX)
135
+ NIFO = uint32(NIFO)
136
+
137
+ # variables for return
138
+ f = np.empty((NPIX, NIFO), dtype=np.float32)
139
+ F = np.empty((NPIX, NIFO), dtype=np.float32)
140
+ si = np.empty(NPIX, dtype=np.float32)
141
+ co = np.empty(NPIX, dtype=np.float32)
142
+ fp = np.empty(NPIX, dtype=np.float32)
143
+ fx = np.zeros(NPIX, dtype=np.float32)
144
+ ni = np.zeros(NPIX, dtype=np.float32)
145
+
146
+ _o = float32(0.0001)
147
+
148
+ # Prepare constants
149
+ # NI = np.float32(0.0)
150
+ # NN = np.uint32(0)
151
+
152
+ # Compute f and F
153
+ for j in range(NIFO):
154
+ for i in range(NPIX):
155
+ f[i, j] = mul_vec(rms[i, j], Fp0[j])
156
+ F[i, j] = mul_vec(rms[i, j], Fx0[j])
157
+
158
+ # Compute ff, FF, and fF
159
+ for i in range(NPIX):
160
+ _ff = float32(0.)
161
+ _FF = float32(0.)
162
+ _fF = float32(0.)
163
+
164
+ for j in range(NIFO):
165
+ _ff += f[i, j] * f[i, j]
166
+ _FF += F[i, j] * F[i, j]
167
+ _fF += F[i, j] * f[i, j]
168
+
169
+ # Compute si, co, AP, nn, fp, and cc
170
+ _si = mul_vec(float32(2.), _fF) # 2. * _fF
171
+ _co = sub_vec(_ff, _FF) # _ff - _FF
172
+ _AP = add_vec(_ff, _FF) # _ff + _FF
173
+ _nn = norm_vec(_co, _si) # np.sqrt(_co * _co + _si * _si)
174
+ _cc = div_vec(_co, _nn) # _co / (_nn + 0.0001)
175
+ fp[i] = avg_vec(_AP, _nn) # (_AP + _nn) / 2.
176
+ si[i] = sin_from_cc(_cc) # sqrt((1. - _cc) / 2.)
177
+ co[i] = cos_from_cc(_cc,_si) # (sqrt((1. + _cc) / 2.) if _si > 0.0 else - sqrt((1. + _cc) / 2.))
178
+
179
+ # Compute f_new, F_new, fF_new, F_new, fx, ni
180
+ for i in range(NPIX):
181
+ for j in range(NIFO):
182
+ f[i, j], F[i, j] = f[i, j] * co[i] + F[i, j] * si[i], F[i, j] * co[i] - f[i, j] * si[i]
183
+ # f[i, j] = rotate_fp_vec(f[i, j], F[i, j], si[i], co[i])
184
+ # F[i, j] = rotate_fx_vec(f[i, j], F[i, j], si[i], co[i])
185
+
186
+ fF_new = float32(0.)
187
+ for j in range(NIFO):
188
+ fF_new += f[i, j] * F[i, j]
189
+ # fF_new /= (fp[i] + _o)
190
+ fF_new = div_vec(fF_new, fp[i])
191
+
192
+ for j in range(NIFO):
193
+ F[i, j] -= f[i, j] * fF_new
194
+ fx[i] += F[i, j] * F[i, j]
195
+ ni[i] += f[i, j] ** 4
196
+ # ni[i] += quad_vec(f[i, j])
197
+
198
+ NI, NN = float32(0.0), uint32(0)
199
+
200
+ # Compute NI and NN
201
+ for i in range(NPIX):
202
+ # ni[i] /= (fp[i] * fp[i] + _o)
203
+ ni[i] = div_vec(ni[i], mul_vec(fp[i], fp[i]))
204
+ # NI += fx[i] / (ni[i] + _o)
205
+ NI += div_vec(fx[i], ni[i])
206
+ # if fp[i] > float32(0.0):
207
+ NN += pos_sign_vec(fp[i])
208
+ # NN += 1 if fp[i] > 0.0 else 0
209
+
210
+ return sqrt(NI / (NN + 0.01)), fp, fx, si, co, ni
211
+
212
+
213
+ @njit(cache=True)
214
+ def calculate_dpf(FP, FX, rms, n_sky: int, gamma_regulator: float, network_energy_threshold: float):
215
+ FP = FP.astype(np.float32)
216
+ FX = FX.astype(np.float32)
217
+ rms = rms.astype(np.float32)
218
+
219
+ MM = np.zeros(n_sky, dtype=np.uint8)
220
+ mm = np.zeros(n_sky, dtype=np.uint8)
221
+
222
+ for i in range(n_sky):
223
+ # todo: if(!mm[l]) continue; // skip delay configurations
224
+ # if(bBB && !BB[l]) continue; // skip delay configurations : big clusters
225
+ MM[i] = 1
226
+ # FF += 1
227
+ aa, fp, fx, si, co, ni = dpf_np_loops_vec(FP[i], FX[i], rms)
228
+
229
+ mm[i] = 1 if aa > gamma_regulator else 0
230
+ FF = MM.sum()
231
+ ff = mm.sum()
232
+
233
+ return (FF ** 2 / (ff ** 2 + 1.e-9) - 1) * network_energy_threshold
234
+
235
+
236
+ calculate_dpf(FP.T, FX.T, rms.T,
237
+ int(n_sky),
238
+ gamma_regulator, network_energy_threshold)
239
+
240
+ print(dpf_np_loops_vec(FP.T[1000].astype(np.float32), FX.T[1000].astype(np.float32), rms.T.astype(np.float32))[0])
241
+
242
+ import time
243
+
244
+ total_time = 0
245
+ # # convert FP, FX, rms to float32
246
+ for i in range(10):
247
+ start = time.time()
248
+ calculate_dpf(FP.T, FX.T, rms.T,
249
+ int(n_sky),
250
+ gamma_regulator, network_energy_threshold)
251
+ end = time.time()
252
+ total_time += end - start
253
+ print(end - start)
254
+ print(f"Average time: {total_time / 10:.4f} s")
255
+
256
+ from subprocess import Popen
257
+ from contextlib import contextmanager
258
+ from os import getpid
259
+ from time import sleep
260
+ from signal import SIGINT
261
+
262
+ # @contextmanager
263
+ # def perf_stat():
264
+ # p = Popen(["perf", "stat", "-p", str(getpid())])
265
+ # sleep(0.5)
266
+ # yield
267
+ # p.send_signal(SIGINT)
268
+ #
269
+ #
270
+ # with perf_stat():
271
+ # calculate_dpf(FP.T, FX.T, rms.T,
272
+ # int(n_sky),
273
+ # gamma_regulator, network_energy_threshold)
@@ -0,0 +1,110 @@
1
+ # add .. to path[0]
2
+ import sys, os
3
+ sys.path.insert(0, '..')
4
+
5
+ import pickle
6
+ from math import sqrt
7
+ import numpy as np
8
+ from pycwb.modules.likelihoodWP.likelihood import calculate_dpf, find_optimal_sky_localization, calculate_sky_statistics
9
+ from pycwb.modules.likelihoodWP.likelihood import load_data_from_pixels
10
+ from pycwb.modules.xtalk.monster import load_catalog, getXTalk_pixels
11
+ import time
12
+
13
+ #################################################################################
14
+ # load FP, FX, rms, n_sky, gamma_regulator, network_energy_threshold from pickle
15
+ #################################################################################
16
+ with open('test_data.pkl', 'rb') as f:
17
+ test_data = pickle.load(f)
18
+
19
+ FP = test_data['FP']
20
+ FX = test_data['FX']
21
+ ml = test_data['ml']
22
+ n_sky = test_data['n_sky']
23
+ pixels = test_data['pixels']
24
+ gamma_regulator = test_data['gamma_regulator']
25
+ delta_regulator = test_data['delta_regulator']
26
+ network_energy_threshold = test_data['network_energy_threshold']
27
+ netCC = test_data['netCC']
28
+ n_ifo = test_data['n_ifo']
29
+ REG = np.array([delta_regulator * sqrt(2), 0., 0.])
30
+
31
+ rms, td00, td90, td_energy = load_data_from_pixels(pixels, n_ifo)
32
+
33
+ n_pix = rms.shape[1]
34
+ #####################
35
+ # Load xtalk catalog
36
+ #####################
37
+ if not os.environ.get('HOME_WAT_FILTERS'):
38
+ print('Please set HOME_WAT_FILTERS to the directory of WAT filters')
39
+ exit(1)
40
+
41
+ fn = f"{os.environ.get('HOME_WAT_FILTERS')}/wdmXTalk/OverlapCatalog16-1024.bin"
42
+
43
+ start_time = time.time()
44
+ xtalk_coeff, xtalk_lookup_table, layers, nRes = load_catalog(fn)
45
+ print(f"Time for load_catalog: {time.time() - start_time} s")
46
+
47
+ #######################
48
+ # Get xtalk for pixels
49
+ #######################
50
+ cluster_xtalk_lookup, cluster_xtalk = getXTalk_pixels(pixels, True, layers, xtalk_coeff, xtalk_lookup_table)
51
+
52
+ #############################################
53
+ # Convert FP, FX, rms, td00, td90 to float32
54
+ #############################################
55
+ td00 = np.transpose(td00.astype(np.float32), (2, 0, 1)) # (ndelay, nifo, npix)
56
+ td90 = np.transpose(td90.astype(np.float32), (2, 0, 1)) # (ndelay, nifo, npix)
57
+ FP = FP.T.astype(np.float32)
58
+ FX = FX.T.astype(np.float32)
59
+ rms = rms.T.astype(np.float32)
60
+
61
+ #############################################
62
+ # Calculate DPF and the optimal sky location
63
+ #############################################
64
+ REG[1] = calculate_dpf(FP, FX, rms, n_sky, n_ifo, gamma_regulator, network_energy_threshold)
65
+
66
+ l_max = find_optimal_sky_localization(n_ifo, n_pix, n_sky, FP, FX, rms, td00, td90, ml, REG, netCC, delta_regulator,
67
+ network_energy_threshold)
68
+ print(f"l_max: {l_max}")
69
+
70
+ #############################################
71
+ # Calculate sky statistics
72
+ #############################################
73
+ calculate_sky_statistics(l_max, n_ifo, n_pix, FP, FX, rms, td00, td90, ml, REG, network_energy_threshold, cluster_xtalk,
74
+ cluster_xtalk_lookup)
75
+
76
+ #############################################
77
+ # Performance test
78
+ #############################################
79
+
80
+ total_time = 0
81
+ # # convert FP, FX, rms to float32
82
+ for i in range(10):
83
+ start = time.time()
84
+ l_max = find_optimal_sky_localization(n_ifo, n_pix, n_sky, FP, FX, rms, td00, td90, ml, REG, netCC, delta_regulator,
85
+ network_energy_threshold)
86
+ end = time.time()
87
+ total_time += end - start
88
+ # print(end - start)
89
+ print(f"Average time for find_optimal_sky_localization: {total_time / 10} s")
90
+
91
+ total_time = 0
92
+ for i in range(10):
93
+ start = time.time()
94
+ calculate_sky_statistics(l_max, n_ifo, n_pix, FP, FX, rms, td00, td90, ml, REG, network_energy_threshold,
95
+ cluster_xtalk, cluster_xtalk_lookup)
96
+ end = time.time()
97
+ total_time += end - start
98
+ # print(end - start)
99
+ print(f"Average time for calculate_sky_statistics: {total_time / 10} s")
100
+
101
+ total_time = 0
102
+
103
+ for i in range(10):
104
+ start = time.time()
105
+ cluster_xtalk_lookup, cluster_xtalk = getXTalk_pixels(pixels, True, layers, xtalk_coeff, xtalk_lookup_table)
106
+ end = time.time()
107
+ # print(end - start)
108
+ total_time += end - start
109
+
110
+ print(f"Average time for getXTalk_pixels: {total_time / 10} s")