PySDKit 0.4.55__tar.gz → 0.5.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 (261) hide show
  1. {pysdkit-0.4.55 → pysdkit-0.5.0}/PKG-INFO +7 -3
  2. {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/PKG-INFO +7 -3
  3. {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/SOURCES.txt +44 -34
  4. {pysdkit-0.4.55 → pysdkit-0.5.0}/README.md +5 -1
  5. {pysdkit-0.4.55 → pysdkit-0.5.0}/pyproject.toml +2 -1
  6. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/__init__.py +1 -2
  7. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/base.py +1 -0
  8. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/__init__.py +8 -0
  9. pysdkit-0.5.0/pysdkit/data/_assets.py +40 -0
  10. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_image.py +5 -0
  11. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_loaders.py +106 -3
  12. pysdkit-0.5.0/pysdkit/data/real_world/bmemd_source02.npy +0 -0
  13. pysdkit-0.5.0/pysdkit/data/real_world/bmemd_source09.npy +0 -0
  14. pysdkit-0.5.0/pysdkit/data/real_world/bss_beam.npy +0 -0
  15. pysdkit-0.5.0/pysdkit/data/real_world/bss_yk9.npy +0 -0
  16. pysdkit-0.5.0/pysdkit/entropy/__init__.py +30 -0
  17. pysdkit-0.5.0/pysdkit/entropy/_approximate_entropy.py +58 -0
  18. pysdkit-0.5.0/pysdkit/entropy/_coarse_grain.py +53 -0
  19. pysdkit-0.5.0/pysdkit/entropy/_dispersion_entropy.py +87 -0
  20. pysdkit-0.5.0/pysdkit/entropy/_distribution_entropy.py +76 -0
  21. pysdkit-0.5.0/pysdkit/entropy/_fuzzy_entropy.py +96 -0
  22. pysdkit-0.5.0/pysdkit/entropy/_increment_entropy.py +59 -0
  23. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/entropy/_permutation_entropy.py +10 -11
  24. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/entropy/_sample_entropy.py +98 -1
  25. pysdkit-0.5.0/pysdkit/entropy/_slope_entropy.py +65 -0
  26. pysdkit-0.5.0/pysdkit/entropy/_spectral_entropy.py +56 -0
  27. pysdkit-0.5.0/pysdkit/entropy/_symbolic_dynamic_entropy.py +76 -0
  28. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_fourier_spectra.py +1 -0
  29. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_functions.py +3 -0
  30. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_plot_imfs.py +3 -0
  31. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/__init__.py +0 -1
  32. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_bmemd.py +25 -0
  33. pysdkit-0.5.0/pysdkit/tests/test_bss.py +381 -0
  34. pysdkit-0.5.0/pysdkit/tests/test_entropy.py +225 -0
  35. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/__init__.py +32 -0
  36. pysdkit-0.5.0/pysdkit/utils/bss/__init__.py +58 -0
  37. pysdkit-0.5.0/pysdkit/utils/bss/_bss.py +350 -0
  38. pysdkit-0.5.0/pysdkit/utils/bss/_modal.py +158 -0
  39. pysdkit-0.5.0/pysdkit/utils/bss/_stft.py +238 -0
  40. pysdkit-0.4.55/pysdkit/data/_assets.py +0 -23
  41. pysdkit-0.4.55/pysdkit/entropy/__init__.py +0 -20
  42. pysdkit-0.4.55/pysdkit/entropy/_approxiamte_entropy.py +0 -6
  43. pysdkit-0.4.55/pysdkit/models/__init__.py +0 -8
  44. pysdkit-0.4.55/pysdkit/models/_base.py +0 -114
  45. pysdkit-0.4.55/pysdkit/models/_kmeans.py +0 -4
  46. pysdkit-0.4.55/pysdkit/models/_knn.py +0 -199
  47. pysdkit-0.4.55/pysdkit/models/_pca.py +0 -229
  48. pysdkit-0.4.55/pysdkit/tests/models/__init__.py +0 -4
  49. pysdkit-0.4.55/pysdkit/tests/models/test_knn.py +0 -189
  50. pysdkit-0.4.55/pysdkit/tests/models/test_pca.py +0 -79
  51. {pysdkit-0.4.55 → pysdkit-0.5.0}/LICENSE +0 -0
  52. {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/dependency_links.txt +0 -0
  53. {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/requires.txt +0 -0
  54. {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/top_level.txt +0 -0
  55. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/__init__.py +0 -0
  56. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/acmd.py +0 -0
  57. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/ba_acmd.py +0 -0
  58. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/dd_acmd.py +0 -0
  59. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/__init__.py +0 -0
  60. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/_find_extrema.py +0 -0
  61. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/_prepare_points.py +0 -0
  62. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/_splines.py +0 -0
  63. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/apitmemd.py +0 -0
  64. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/ceemdan.py +0 -0
  65. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/eemd.py +0 -0
  66. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/emd.py +0 -0
  67. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/esmd.py +0 -0
  68. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/hht/__init__.py +0 -0
  69. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/hht/frequency.py +0 -0
  70. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/hht/hht.py +0 -0
  71. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/memd.py +0 -0
  72. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/nstemd.py +0 -0
  73. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/online_emd.py +0 -0
  74. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/remd.py +0 -0
  75. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/semd.py +0 -0
  76. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/tvf_emd.py +0 -0
  77. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd2d/__init__.py +0 -0
  78. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd2d/bmemd.py +0 -0
  79. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd2d/emd2d.py +0 -0
  80. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/__init__.py +0 -0
  81. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/efd.py +0 -0
  82. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/ewt.py +0 -0
  83. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/ewt2d.py +0 -0
  84. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/__init__.py +0 -0
  85. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/extrema.py +0 -0
  86. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/faemd.py +0 -0
  87. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/faemd2d.py +0 -0
  88. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/faemd3d.py +0 -0
  89. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/filter.py +0 -0
  90. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/__init__.py +0 -0
  91. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/agncmd.py +0 -0
  92. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/gdmd.py +0 -0
  93. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/ivgnmd.py +0 -0
  94. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/vgnmd.py +0 -0
  95. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_imd/__init__.py +0 -0
  96. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_imd/apmd.py +0 -0
  97. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_imd/imd.py +0 -0
  98. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/__init__.py +0 -0
  99. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/jmd.py +0 -0
  100. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/mjmd.py +0 -0
  101. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/sjmd.py +0 -0
  102. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_lmd/__init__.py +0 -0
  103. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_lmd/lmd.py +0 -0
  104. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_lmd/rlmd.py +0 -0
  105. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/__init__.py +0 -0
  106. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/components.py +0 -0
  107. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/osd.py +0 -0
  108. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/swd.py +0 -0
  109. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/__init__.py +0 -0
  110. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/set.py +0 -0
  111. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/sst.py +0 -0
  112. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/vtfmtd.py +0 -0
  113. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/__init__.py +0 -0
  114. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/alif.py +0 -0
  115. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/fmd.py +0 -0
  116. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/hvd.py +0 -0
  117. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/itd.py +0 -0
  118. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/iterative_filtering.py +0 -0
  119. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/ssa.py +0 -0
  120. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/__init__.py +0 -0
  121. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/mvmd.py +0 -0
  122. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/na_mvmd.py +0 -0
  123. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/namvmd.py +0 -0
  124. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/ovmd.py +0 -0
  125. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/stvmd.py +0 -0
  126. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/svmd.py +0 -0
  127. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/vmd_c.py +0 -0
  128. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/vmd_f.py +0 -0
  129. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/vme.py +0 -0
  130. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd2d/__init__.py +0 -0
  131. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd2d/cvmd2d.py +0 -0
  132. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd2d/vmd2d.py +0 -0
  133. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/__init__.py +0 -0
  134. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/avncmd.py +0 -0
  135. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/incmd.py +0 -0
  136. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/stnbmd.py +0 -0
  137. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/vncmd.py +0 -0
  138. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_add_noise.py +0 -0
  139. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_cube.py +0 -0
  140. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_generator.py +0 -0
  141. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_models.py +0 -0
  142. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_test_univariate.py +0 -0
  143. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_time_series.py +0 -0
  144. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/apitmemd_section_2b.npy +0 -0
  145. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/apitmemd_section_3a.npy +0 -0
  146. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/apitmemd_section_3b.npy +0 -0
  147. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/deconv_sig1.npy +0 -0
  148. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/deconv_sig2.npy +0 -0
  149. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/deconv_sig3.npy +0 -0
  150. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/dual_signal_noise.npy +0 -0
  151. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/ecg_055m.npy +0 -0
  152. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/fast_kurtogram_x.npy +0 -0
  153. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/fmd_demo.npy +0 -0
  154. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/gearbox_fault_snippet.npy +0 -0
  155. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/input_sig.npy +0 -0
  156. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/map2.npy +0 -0
  157. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_syn_12channel.npy +0 -0
  158. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_syn_16channel.npy +0 -0
  159. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_syn_hex.npy +0 -0
  160. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_taichi_hex.npy +0 -0
  161. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/oemd_ecg.npy +0 -0
  162. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/prefixed_double_filter.npy +0 -0
  163. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/set_batdata2.npy +0 -0
  164. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/set_vibdata.npy +0 -0
  165. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/single_nsignal.npy +0 -0
  166. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/sst_doppler.npy +0 -0
  167. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/sst_float.npy +0 -0
  168. {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/vmd_example.npy +0 -0
  169. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/texture.txt +0 -0
  170. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/__init__.py +0 -0
  171. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_plot_images.py +0 -0
  172. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_plot_signal.py +0 -0
  173. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/__init__.py +0 -0
  174. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_cube.py +0 -0
  175. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_image.py +0 -0
  176. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_signal.py +0 -0
  177. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_univariate_signal.py +0 -0
  178. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/run_all.py +0 -0
  179. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_acmd.py +0 -0
  180. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_agncmd.py +0 -0
  181. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_alif.py +0 -0
  182. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_apitmemd.py +0 -0
  183. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_apmd.py +0 -0
  184. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_avncmd.py +0 -0
  185. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_baacmd.py +0 -0
  186. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ceemdan.py +0 -0
  187. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_cvmd2d.py +0 -0
  188. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ddacmd.py +0 -0
  189. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_deconvolution.py +0 -0
  190. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_eemd.py +0 -0
  191. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_efd.py +0 -0
  192. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_emd.py +0 -0
  193. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_emd2d.py +0 -0
  194. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_esmd.py +0 -0
  195. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ewt.py +0 -0
  196. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ewt2d.py +0 -0
  197. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_faemd.py +0 -0
  198. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_faemd2d.py +0 -0
  199. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_faemd3d.py +0 -0
  200. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_fmd.py +0 -0
  201. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_gdmd.py +0 -0
  202. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_hht.py +0 -0
  203. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_hvd.py +0 -0
  204. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_imd.py +0 -0
  205. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_itd.py +0 -0
  206. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ivgnmd.py +0 -0
  207. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_jmd.py +0 -0
  208. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_kurtogram.py +0 -0
  209. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_lmd.py +0 -0
  210. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_memd.py +0 -0
  211. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_moving_decomp.py +0 -0
  212. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_mstl.py +0 -0
  213. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_mvmd.py +0 -0
  214. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_nstemd.py +0 -0
  215. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_onlineemd.py +0 -0
  216. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_osd.py +0 -0
  217. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ovmd.py +0 -0
  218. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_remd.py +0 -0
  219. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_rlmd.py +0 -0
  220. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_semd.py +0 -0
  221. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_set.py +0 -0
  222. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_sjmd.py +0 -0
  223. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ssa.py +0 -0
  224. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_sst.py +0 -0
  225. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_stl.py +0 -0
  226. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_stnbmd.py +0 -0
  227. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_stvmd.py +0 -0
  228. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_svmd.py +0 -0
  229. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_swd.py +0 -0
  230. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_tvfemd.py +0 -0
  231. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vgnmd.py +0 -0
  232. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vmd.py +0 -0
  233. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vmd2d.py +0 -0
  234. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vme.py +0 -0
  235. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vncmd.py +0 -0
  236. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vtfmtd.py +0 -0
  237. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/__init__.py +0 -0
  238. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_dtw.py +0 -0
  239. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_moving_decomp.py +0 -0
  240. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_mstl.py +0 -0
  241. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_stl.py +0 -0
  242. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_correlation.py +0 -0
  243. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_diagnalization.py +0 -0
  244. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_differ.py +0 -0
  245. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_fft.py +0 -0
  246. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_function.py +0 -0
  247. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_hilbert.py +0 -0
  248. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_instantaneous.py +0 -0
  249. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_kernel_matrix.py +0 -0
  250. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_kurtogram.py +0 -0
  251. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_mirror.py +0 -0
  252. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_pca.py +0 -0
  253. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_process.py +0 -0
  254. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_smooth1d.py +0 -0
  255. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/__init__.py +0 -0
  256. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_acycbd.py +0 -0
  257. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_common.py +0 -0
  258. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_imckd.py +0 -0
  259. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_plot.py +0 -0
  260. {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_smhd.py +0 -0
  261. {pysdkit-0.4.55 → pysdkit-0.5.0}/setup.cfg +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PySDKit
3
- Version: 0.4.55
3
+ Version: 0.5.0
4
4
  Summary: A Python library for signal decomposition algorithms with a unified interface.
5
- Author: Whenxuan Wang, RuiZhe Wang, Rongkun Zhu, Kai Wu, Lei Wang, josefinez, Deeksha Manjunath, Yuan Feng, WenTong Zhao, JacktheFowler
5
+ Author: Whenxuan Wang, RuiZhe Wang, Rongkun Zhu, Kai Wu, Lei Wang, Xinyu Wu, josefinez, Deeksha Manjunath, Yuan Feng, WenTong Zhao, JacktheFowler
6
6
  Maintainer-email: Whenxuan Wang <wwhenxuan@gmail.com>, RuiZhe Wang <3133986068@qq.com>
7
7
  License: MIT License
8
8
 
@@ -56,6 +56,7 @@ Dynamic: license-file
56
56
  # PySDKit: signal decomposition in Python
57
57
 
58
58
  [![PyPI version](https://badge.fury.io/py/PySDKit.svg)](https://pypi.org/project/PySDKit/)
59
+ [![Documentation Status](https://readthedocs.org/projects/pysdkit/badge/?version=latest)](https://pysdkit.readthedocs.io/en/latest/)
59
60
  ![License](https://img.shields.io/github/license/wwhenxuan/PySDKit)
60
61
  [![Python](https://img.shields.io/badge/python-3.8+-blue?logo=python)](https://www.python.org/)
61
62
  [![Downloads](https://pepy.tech/badge/pysdkit)](https://pepy.tech/project/pysdkit)
@@ -214,7 +215,10 @@ We would like to thank the researchers in signal processing for providing us wit
214
215
 
215
216
  ## Contributing 🤗
216
217
 
217
- This project exists thanks to all the people who contribute.
218
+ This project exists thanks to all the people who contribute. Please read
219
+ [CONTRIBUTING.md](CONTRIBUTING.md) for how to add an algorithm, tests, and
220
+ gallery examples (the same guide is in the
221
+ [documentation](https://pysdkit.readthedocs.io/en/stable/development/index.html)).
218
222
 
219
223
  <a href="https://github.com/wwhenxuan/PySDKit/graphs/contributors">
220
224
  <img src="https://contrib.rocks/image?repo=wwhenxuan/PySDKit" />
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PySDKit
3
- Version: 0.4.55
3
+ Version: 0.5.0
4
4
  Summary: A Python library for signal decomposition algorithms with a unified interface.
5
- Author: Whenxuan Wang, RuiZhe Wang, Rongkun Zhu, Kai Wu, Lei Wang, josefinez, Deeksha Manjunath, Yuan Feng, WenTong Zhao, JacktheFowler
5
+ Author: Whenxuan Wang, RuiZhe Wang, Rongkun Zhu, Kai Wu, Lei Wang, Xinyu Wu, josefinez, Deeksha Manjunath, Yuan Feng, WenTong Zhao, JacktheFowler
6
6
  Maintainer-email: Whenxuan Wang <wwhenxuan@gmail.com>, RuiZhe Wang <3133986068@qq.com>
7
7
  License: MIT License
8
8
 
@@ -56,6 +56,7 @@ Dynamic: license-file
56
56
  # PySDKit: signal decomposition in Python
57
57
 
58
58
  [![PyPI version](https://badge.fury.io/py/PySDKit.svg)](https://pypi.org/project/PySDKit/)
59
+ [![Documentation Status](https://readthedocs.org/projects/pysdkit/badge/?version=latest)](https://pysdkit.readthedocs.io/en/latest/)
59
60
  ![License](https://img.shields.io/github/license/wwhenxuan/PySDKit)
60
61
  [![Python](https://img.shields.io/badge/python-3.8+-blue?logo=python)](https://www.python.org/)
61
62
  [![Downloads](https://pepy.tech/badge/pysdkit)](https://pepy.tech/project/pysdkit)
@@ -214,7 +215,10 @@ We would like to thank the researchers in signal processing for providing us wit
214
215
 
215
216
  ## Contributing 🤗
216
217
 
217
- This project exists thanks to all the people who contribute.
218
+ This project exists thanks to all the people who contribute. Please read
219
+ [CONTRIBUTING.md](CONTRIBUTING.md) for how to add an algorithm, tests, and
220
+ gallery examples (the same guide is in the
221
+ [documentation](https://pysdkit.readthedocs.io/en/stable/development/index.html)).
218
222
 
219
223
  <a href="https://github.com/wwhenxuan/PySDKit/graphs/contributors">
220
224
  <img src="https://contrib.rocks/image?repo=wwhenxuan/PySDKit" />
@@ -101,41 +101,48 @@ pysdkit/data/_loaders.py
101
101
  pysdkit/data/_models.py
102
102
  pysdkit/data/_test_univariate.py
103
103
  pysdkit/data/_time_series.py
104
- pysdkit/data/apitmemd_section_2b.npy
105
- pysdkit/data/apitmemd_section_3a.npy
106
- pysdkit/data/apitmemd_section_3b.npy
107
- pysdkit/data/deconv_sig1.npy
108
- pysdkit/data/deconv_sig2.npy
109
- pysdkit/data/deconv_sig3.npy
110
- pysdkit/data/dual_signal_noise.npy
111
- pysdkit/data/ecg_055m.npy
112
- pysdkit/data/fast_kurtogram_x.npy
113
- pysdkit/data/fmd_demo.npy
114
- pysdkit/data/gearbox_fault_snippet.npy
115
- pysdkit/data/input_sig.npy
116
- pysdkit/data/map2.npy
117
- pysdkit/data/memd_syn_12channel.npy
118
- pysdkit/data/memd_syn_16channel.npy
119
- pysdkit/data/memd_syn_hex.npy
120
- pysdkit/data/memd_taichi_hex.npy
121
- pysdkit/data/oemd_ecg.npy
122
- pysdkit/data/prefixed_double_filter.npy
123
- pysdkit/data/set_batdata2.npy
124
- pysdkit/data/set_vibdata.npy
125
- pysdkit/data/single_nsignal.npy
126
- pysdkit/data/sst_doppler.npy
127
- pysdkit/data/sst_float.npy
128
104
  pysdkit/data/texture.txt
129
- pysdkit/data/vmd_example.npy
105
+ pysdkit/data/real_world/apitmemd_section_2b.npy
106
+ pysdkit/data/real_world/apitmemd_section_3a.npy
107
+ pysdkit/data/real_world/apitmemd_section_3b.npy
108
+ pysdkit/data/real_world/bmemd_source02.npy
109
+ pysdkit/data/real_world/bmemd_source09.npy
110
+ pysdkit/data/real_world/bss_beam.npy
111
+ pysdkit/data/real_world/bss_yk9.npy
112
+ pysdkit/data/real_world/deconv_sig1.npy
113
+ pysdkit/data/real_world/deconv_sig2.npy
114
+ pysdkit/data/real_world/deconv_sig3.npy
115
+ pysdkit/data/real_world/dual_signal_noise.npy
116
+ pysdkit/data/real_world/ecg_055m.npy
117
+ pysdkit/data/real_world/fast_kurtogram_x.npy
118
+ pysdkit/data/real_world/fmd_demo.npy
119
+ pysdkit/data/real_world/gearbox_fault_snippet.npy
120
+ pysdkit/data/real_world/input_sig.npy
121
+ pysdkit/data/real_world/map2.npy
122
+ pysdkit/data/real_world/memd_syn_12channel.npy
123
+ pysdkit/data/real_world/memd_syn_16channel.npy
124
+ pysdkit/data/real_world/memd_syn_hex.npy
125
+ pysdkit/data/real_world/memd_taichi_hex.npy
126
+ pysdkit/data/real_world/oemd_ecg.npy
127
+ pysdkit/data/real_world/prefixed_double_filter.npy
128
+ pysdkit/data/real_world/set_batdata2.npy
129
+ pysdkit/data/real_world/set_vibdata.npy
130
+ pysdkit/data/real_world/single_nsignal.npy
131
+ pysdkit/data/real_world/sst_doppler.npy
132
+ pysdkit/data/real_world/sst_float.npy
133
+ pysdkit/data/real_world/vmd_example.npy
130
134
  pysdkit/entropy/__init__.py
131
- pysdkit/entropy/_approxiamte_entropy.py
135
+ pysdkit/entropy/_approximate_entropy.py
136
+ pysdkit/entropy/_coarse_grain.py
137
+ pysdkit/entropy/_dispersion_entropy.py
138
+ pysdkit/entropy/_distribution_entropy.py
139
+ pysdkit/entropy/_fuzzy_entropy.py
140
+ pysdkit/entropy/_increment_entropy.py
132
141
  pysdkit/entropy/_permutation_entropy.py
133
142
  pysdkit/entropy/_sample_entropy.py
134
- pysdkit/models/__init__.py
135
- pysdkit/models/_base.py
136
- pysdkit/models/_kmeans.py
137
- pysdkit/models/_knn.py
138
- pysdkit/models/_pca.py
143
+ pysdkit/entropy/_slope_entropy.py
144
+ pysdkit/entropy/_spectral_entropy.py
145
+ pysdkit/entropy/_symbolic_dynamic_entropy.py
139
146
  pysdkit/plot/__init__.py
140
147
  pysdkit/plot/_fourier_spectra.py
141
148
  pysdkit/plot/_functions.py
@@ -152,6 +159,7 @@ pysdkit/tests/test_apmd.py
152
159
  pysdkit/tests/test_avncmd.py
153
160
  pysdkit/tests/test_baacmd.py
154
161
  pysdkit/tests/test_bmemd.py
162
+ pysdkit/tests/test_bss.py
155
163
  pysdkit/tests/test_ceemdan.py
156
164
  pysdkit/tests/test_cvmd2d.py
157
165
  pysdkit/tests/test_ddacmd.py
@@ -160,6 +168,7 @@ pysdkit/tests/test_eemd.py
160
168
  pysdkit/tests/test_efd.py
161
169
  pysdkit/tests/test_emd.py
162
170
  pysdkit/tests/test_emd2d.py
171
+ pysdkit/tests/test_entropy.py
163
172
  pysdkit/tests/test_esmd.py
164
173
  pysdkit/tests/test_ewt.py
165
174
  pysdkit/tests/test_ewt2d.py
@@ -208,9 +217,6 @@ pysdkit/tests/data/test_generator_cube.py
208
217
  pysdkit/tests/data/test_generator_image.py
209
218
  pysdkit/tests/data/test_generator_signal.py
210
219
  pysdkit/tests/data/test_generator_univariate_signal.py
211
- pysdkit/tests/models/__init__.py
212
- pysdkit/tests/models/test_knn.py
213
- pysdkit/tests/models/test_pca.py
214
220
  pysdkit/tsa/__init__.py
215
221
  pysdkit/tsa/_dtw.py
216
222
  pysdkit/tsa/_moving_decomp.py
@@ -230,6 +236,10 @@ pysdkit/utils/_mirror.py
230
236
  pysdkit/utils/_pca.py
231
237
  pysdkit/utils/_process.py
232
238
  pysdkit/utils/_smooth1d.py
239
+ pysdkit/utils/bss/__init__.py
240
+ pysdkit/utils/bss/_bss.py
241
+ pysdkit/utils/bss/_modal.py
242
+ pysdkit/utils/bss/_stft.py
233
243
  pysdkit/utils/deconvolution/__init__.py
234
244
  pysdkit/utils/deconvolution/_acycbd.py
235
245
  pysdkit/utils/deconvolution/_common.py
@@ -3,6 +3,7 @@
3
3
  # PySDKit: signal decomposition in Python
4
4
 
5
5
  [![PyPI version](https://badge.fury.io/py/PySDKit.svg)](https://pypi.org/project/PySDKit/)
6
+ [![Documentation Status](https://readthedocs.org/projects/pysdkit/badge/?version=latest)](https://pysdkit.readthedocs.io/en/latest/)
6
7
  ![License](https://img.shields.io/github/license/wwhenxuan/PySDKit)
7
8
  [![Python](https://img.shields.io/badge/python-3.8+-blue?logo=python)](https://www.python.org/)
8
9
  [![Downloads](https://pepy.tech/badge/pysdkit)](https://pepy.tech/project/pysdkit)
@@ -161,7 +162,10 @@ We would like to thank the researchers in signal processing for providing us wit
161
162
 
162
163
  ## Contributing 🤗
163
164
 
164
- This project exists thanks to all the people who contribute.
165
+ This project exists thanks to all the people who contribute. Please read
166
+ [CONTRIBUTING.md](CONTRIBUTING.md) for how to add an algorithm, tests, and
167
+ gallery examples (the same guide is in the
168
+ [documentation](https://pysdkit.readthedocs.io/en/stable/development/index.html)).
165
169
 
166
170
  <a href="https://github.com/wwhenxuan/PySDKit/graphs/contributors">
167
171
  <img src="https://contrib.rocks/image?repo=wwhenxuan/PySDKit" />
@@ -15,6 +15,7 @@ authors = [
15
15
  { name = "Rongkun Zhu" },
16
16
  { name = "Kai Wu" },
17
17
  { name = "Lei Wang" },
18
+ { name = "Xinyu Wu"},
18
19
  { name = "josefinez" },
19
20
  { name = "Deeksha Manjunath" },
20
21
  { name = "Yuan Feng" },
@@ -67,4 +68,4 @@ where = ["."]
67
68
  include = ["pysdkit*"]
68
69
 
69
70
  [tool.setuptools.package-data]
70
- "pysdkit.data" = ["*.npy", "*.txt"]
71
+ "pysdkit.data" = ["*.txt", "real_world/*.npy"]
@@ -2,7 +2,7 @@
2
2
  A Python library for signal decomposition algorithms.
3
3
  """
4
4
 
5
- __version__ = "0.4.55"
5
+ __version__ = "0.5.0"
6
6
 
7
7
  # Empirical Mode Decomposition
8
8
  from ._emd import EMD
@@ -337,7 +337,6 @@ __all__ = [
337
337
  "Moving_Decomp",
338
338
  "STL",
339
339
  "MSTL",
340
- "models",
341
340
  "data",
342
341
  "entropy",
343
342
  "HHT",
@@ -35,6 +35,7 @@ class Base(object):
35
35
  Implements a signal mirroring expansion function.
36
36
  This function mirrors 'sym' elements at both the beginning and the end of the given array 'ts',
37
37
  to create a new extended array.
38
+
38
39
  :param ts: The one-dimensional numpy array to be mirrored.
39
40
  :param sym: The number of elements to mirror from both the start and the end of the array 'ts'.
40
41
  This value must be less than or equal to half the length of the array.
@@ -55,6 +55,10 @@ __all__ = [
55
55
  "load_imckd_sig1",
56
56
  "load_acycbd_sig2",
57
57
  "load_smhd_sig3",
58
+ "load_bss_beam",
59
+ "load_bss_yk9",
60
+ "load_bmemd_source02",
61
+ "load_bmemd_source09",
58
62
  ]
59
63
 
60
64
  # A series of functions for generating 1D NumPy signals
@@ -149,4 +153,8 @@ from ._loaders import (
149
153
  load_imckd_sig1,
150
154
  load_acycbd_sig2,
151
155
  load_smhd_sig3,
156
+ load_bss_beam,
157
+ load_bss_yk9,
158
+ load_bmemd_source02,
159
+ load_bmemd_source09,
152
160
  )
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Resolve packaged array / text assets under ``pysdkit/data``."""
3
+
4
+ from pathlib import Path
5
+
6
+ DATA_DIR = Path(__file__).resolve().parent
7
+ REAL_WORLD_DIR = DATA_DIR / "real_world"
8
+
9
+
10
+ def data_file(name: str) -> Path:
11
+ """
12
+ Return the path to a file shipped in ``pysdkit/data``.
13
+
14
+ ``.npy`` records live in ``pysdkit/data/real_world``. Other assets
15
+ (e.g. ``texture.txt``) stay at the package root. ``name`` may be a
16
+ bare file name or a path relative to ``pysdkit/data``.
17
+
18
+ :param name: File name relative to ``pysdkit/data``.
19
+ :return: Absolute path to the packaged file.
20
+ :raises FileNotFoundError: If the asset is missing from the install.
21
+ """
22
+ relative = Path(name)
23
+ candidates = []
24
+ if relative.suffix.lower() == ".npy":
25
+ candidates.append(REAL_WORLD_DIR / relative.name)
26
+ candidates.append(DATA_DIR / relative)
27
+ if relative.parts and relative.parts[0] != "real_world":
28
+ candidates.append(DATA_DIR / "real_world" / relative)
29
+ else:
30
+ candidates.append(DATA_DIR / relative)
31
+
32
+ for path in candidates:
33
+ if path.is_file():
34
+ return path
35
+
36
+ tried = ", ".join(str(path) for path in candidates)
37
+ raise FileNotFoundError(
38
+ "Missing packaged data: {}. Reinstall PySDKit or restore "
39
+ "pysdkit/data (looked in: {})".format(name, tried)
40
+ )
@@ -165,6 +165,7 @@ def test_image_1(
165
165
  Generate a single image test sample 1
166
166
  the symbol function comes from:
167
167
  https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd
168
+
168
169
  :param low: Minimum value of grid matrix
169
170
  :param high: Maximum value of grid matrix
170
171
  :param sampling_rate: The sampling rate of the grid matrix, which is the number of points in the matrix
@@ -254,6 +255,7 @@ def test_image_4(
254
255
  Generate a single image test sample 4
255
256
  the symbol function comes from:
256
257
  https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd
258
+
257
259
  :param low: Minimum value of grid matrix
258
260
  :param high: Maximum value of grid matrix
259
261
  :param sampling_rate: The sampling rate of the grid matrix, which is the number of points in the matrix
@@ -283,6 +285,7 @@ def test_image_5(
283
285
  Generate a single image test sample 5
284
286
  the symbol function comes from:
285
287
  https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd
288
+
286
289
  :param low: Minimum value of grid matrix
287
290
  :param high: Maximum value of grid matrix
288
291
  :param sampling_rate: The sampling rate of the grid matrix, which is the number of points in the matrix
@@ -312,6 +315,7 @@ def test_image_6(
312
315
  Generate a single image test sample 6
313
316
  the symbol function comes from:
314
317
  https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd
318
+
315
319
  :param low: Minimum value of grid matrix
316
320
  :param high: Maximum value of grid matrix
317
321
  :param sampling_rate: The sampling rate of the grid matrix, which is the number of points in the matrix
@@ -341,6 +345,7 @@ def test_uni_image_7(
341
345
  Generate a single image test sample 7
342
346
  the symbol function comes from:
343
347
  https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd
348
+
344
349
  :param low: Minimum value of grid matrix
345
350
  :param high: Maximum value of grid matrix
346
351
  :param sampling_rate: The sampling rate of the grid matrix, which is the number of points in the matrix
@@ -2,9 +2,9 @@
2
2
  """
3
3
  Load packaged demo arrays and related example files.
4
4
 
5
- All ``.npy`` assets live under ``pysdkit/data``. Algorithm modules should
6
- import these helpers from here (or from ``pysdkit.data``) rather than
7
- resolving files themselves.
5
+ All ``.npy`` assets live under ``pysdkit/data/real_world``. Algorithm
6
+ modules should import these helpers from here (or from ``pysdkit.data``)
7
+ rather than resolving files themselves.
8
8
  """
9
9
 
10
10
  from __future__ import annotations
@@ -371,6 +371,109 @@ def load_acycbd_sig2() -> Dict[str, Union[np.ndarray, float]]:
371
371
  return {"signal": signal, "fs": fs, "t": t, "bpfi": 47.0}
372
372
 
373
373
 
374
+ def load_bss_beam() -> Dict[str, Union[np.ndarray, float]]:
375
+ """
376
+ Load the packaged three-sensor beam record used by BSS Example 2.
377
+
378
+ MATLAB ``data_test.mat`` from Yu, Shock and Vibration 2019
379
+ (experiment 1 / Yang et al. SCA paper): channels ``x1, x2, x3``,
380
+ first 1280 samples, linearly detrended as in ``Example_2.m``.
381
+ Sampling rate 2560 Hz. Stored as ``bss_beam.npy`` with layout
382
+ ``(3, 1280)``.
383
+
384
+ :return: dict with ``signal``, ``fs``, ``t``, ``mode_shape``
385
+ """
386
+ signal = np.asarray(np.load(data_file("bss_beam.npy")), dtype=np.float64)
387
+ if signal.ndim != 2 or signal.shape[0] != 3:
388
+ raise ValueError("bss_beam.npy must have shape (3, n_samples)")
389
+ fs = 2560.0
390
+ t = np.arange(signal.shape[1], dtype=float) / fs
391
+ mode_shape = np.array(
392
+ [
393
+ [1.0, 1.0, 1.0, 1.0],
394
+ [0.7625, 0.0747, -0.5937, -1.238],
395
+ [0.0025, -0.5344, 1.0722, -1.3099],
396
+ ],
397
+ dtype=float,
398
+ )
399
+ return {"signal": signal, "fs": fs, "t": t, "mode_shape": mode_shape}
400
+
401
+
402
+ def load_bss_yk9() -> Dict[str, Union[np.ndarray, float]]:
403
+ """
404
+ Load the packaged cantilever record used by BSS Example 3.
405
+
406
+ MATLAB ``yk9_mean.mat`` from Yu, Shock and Vibration 2019
407
+ (experiment 2): displacement channels ``d_1, d_2, d_5``, first
408
+ 1000 samples as in ``Example_3.m``. Sampling rate is
409
+ ``8142 / (t_end - t_start)``. Stored as ``bss_yk9.npy`` with
410
+ layout ``(3, 1000)``.
411
+
412
+ :return: dict with ``signal``, ``fs``, ``t``, ``mode_shape``
413
+ """
414
+ signal = np.asarray(np.load(data_file("bss_yk9.npy")), dtype=np.float64)
415
+ if signal.ndim != 2 or signal.shape[0] != 3:
416
+ raise ValueError("bss_yk9.npy must have shape (3, n_samples)")
417
+ fs = 8142.0 / (5.33 - 0.03252)
418
+ t = np.arange(signal.shape[1], dtype=float) / fs
419
+ mode_shape_full = np.array(
420
+ [
421
+ [1.0, 1.0, 1.0, 1.0, 1.0],
422
+ [0.1244, 0.1804, 0.3119, 0.9233, -0.3431],
423
+ [2.1046, 1.1760, 0.0262, -1.4827, -0.1384],
424
+ [3.8569, 0.5650, -0.8170, 0.8732, 0.6237],
425
+ [8.5515, -1.5033, 0.4697, -0.0618, -0.5077],
426
+ ],
427
+ dtype=float,
428
+ )
429
+ return {
430
+ "signal": signal,
431
+ "fs": fs,
432
+ "t": t,
433
+ "mode_shape": mode_shape_full[[0, 1, 4], :],
434
+ "mode_shape_full": mode_shape_full,
435
+ }
436
+
437
+
438
+ def load_bmemd_source02() -> Dict[str, Union[np.ndarray, Tuple[str, str]]]:
439
+ """
440
+ Load the packaged BMEMD multi-focus pair ``source02_1`` / ``source02_2``.
441
+
442
+ Xia et al., IEEE Access 2019 (MATLAB ``IMG/source02_*.tif``). Two
443
+ grayscale 224×224 frames stored as ``bmemd_source02.npy`` with layout
444
+ ``(2, 224, 224)`` uint8.
445
+
446
+ :return: dict with ``signal`` in ``[0, 1]`` of shape ``(2, H, W)``
447
+ and ``names``
448
+ """
449
+ raw = np.asarray(np.load(data_file("bmemd_source02.npy")))
450
+ if raw.ndim != 3 or raw.shape[0] != 2:
451
+ raise ValueError("bmemd_source02.npy must have shape (2, H, W)")
452
+ signal = raw.astype(np.float64)
453
+ if signal.max() > 1.0:
454
+ signal = signal / 255.0
455
+ return {"signal": signal, "names": ("source02_1", "source02_2")}
456
+
457
+
458
+ def load_bmemd_source09() -> Dict[str, Union[np.ndarray, Tuple[str, str]]]:
459
+ """
460
+ Load the packaged BMEMD pair ``source09_1`` / ``source09_2``.
461
+
462
+ Xia et al., IEEE Access 2019 (MATLAB ``IMG/source09_*.tif``). Stored
463
+ as ``bmemd_source09.npy`` with layout ``(2, 204, 268)`` uint8.
464
+
465
+ :return: dict with ``signal`` in ``[0, 1]`` of shape ``(2, H, W)``
466
+ and ``names``
467
+ """
468
+ raw = np.asarray(np.load(data_file("bmemd_source09.npy")))
469
+ if raw.ndim != 3 or raw.shape[0] != 2:
470
+ raise ValueError("bmemd_source09.npy must have shape (2, H, W)")
471
+ signal = raw.astype(np.float64)
472
+ if signal.max() > 1.0:
473
+ signal = signal / 255.0
474
+ return {"signal": signal, "names": ("source09_1", "source09_2")}
475
+
476
+
374
477
  def load_smhd_sig3() -> Dict[str, Union[np.ndarray, float]]:
375
478
  """
376
479
  Load the packaged SMHD demo record (Miao et al., Meas. Sci. Technol. 2016).
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Entropy measures for time series.
4
+ """
5
+
6
+ from ._permutation_entropy import permutation_entropy
7
+ from ._permutation_entropy import multiscale_permutation_entropy
8
+
9
+ from ._sample_entropy import sample_entropy
10
+ from ._sample_entropy import multiscale_sample_entropy
11
+ from ._sample_entropy import composite_multiscale_sample_entropy
12
+ from ._sample_entropy import refined_composite_multiscale_sample_entropy
13
+
14
+ from ._approximate_entropy import approximate_entropy
15
+
16
+ from ._fuzzy_entropy import fuzzy_entropy
17
+ from ._fuzzy_entropy import multiscale_fuzzy_entropy
18
+
19
+ from ._dispersion_entropy import dispersion_entropy
20
+ from ._dispersion_entropy import multiscale_dispersion_entropy
21
+
22
+ from ._spectral_entropy import spectral_entropy
23
+
24
+ from ._distribution_entropy import distribution_entropy
25
+
26
+ from ._increment_entropy import increment_entropy
27
+
28
+ from ._slope_entropy import slope_entropy
29
+
30
+ from ._symbolic_dynamic_entropy import symbolic_dynamic_entropy
@@ -0,0 +1,58 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Approximate entropy of a 1-D series (Pincus 1991).
4
+ """
5
+
6
+ import numpy as np
7
+ from typing import Optional
8
+
9
+ from pysdkit.entropy._coarse_grain import as_1d, embed
10
+
11
+
12
+ def approximate_entropy(
13
+ y: np.ndarray,
14
+ m: Optional[int] = 2,
15
+ r: Optional[float] = 0.2,
16
+ tau: int = 1,
17
+ ) -> float:
18
+ """
19
+ Approximate entropy (ApEn) of a 1-D series.
20
+
21
+ Unlike sample entropy, each template is compared with **all** templates
22
+ of the same length, including itself. The radius is ``r * std(y)``.
23
+
24
+ Pincus, S. M. (1991). Approximate entropy as a measure of system
25
+ complexity. Proceedings of the National Academy of Sciences, 88(6),
26
+ 2297-2301.
27
+
28
+ :param y: 1-D input series.
29
+ :param m: Embedding dimension (must be < ``len(y)``).
30
+ :param r: Tolerance as a fraction of the series standard deviation.
31
+ :param tau: Time delay between embedding coordinates.
32
+ :return: ApEn = Phi(m) - Phi(m + 1).
33
+ """
34
+ y = as_1d(y)
35
+ n = len(y)
36
+ if n < 2:
37
+ raise ValueError("Signal must have at least two points.")
38
+ if m < 1 or m >= n:
39
+ raise ValueError("Embedding dimension must satisfy 1 <= m < N.")
40
+ if tau < 1:
41
+ raise ValueError("tau must be a positive integer.")
42
+
43
+ sigma = np.std(y)
44
+ radius = r * sigma if sigma > 0 else 0.0
45
+ phi_m = _phi(y, m, radius, tau)
46
+ phi_m1 = _phi(y, m + 1, radius, tau)
47
+ return float(phi_m - phi_m1)
48
+
49
+
50
+ def _phi(y: np.ndarray, m: int, radius: float, tau: int) -> float:
51
+ """Mean log of the fraction of Chebyshev matches, including self-matches."""
52
+ templates = embed(y, m, tau)
53
+ n_vec = templates.shape[0]
54
+ delta = np.max(np.abs(templates[:, None, :] - templates[None, :, :]), axis=2)
55
+ counts = np.sum(delta <= radius, axis=1)
56
+ frac = counts / n_vec
57
+ frac = np.maximum(frac, np.finfo(float).tiny)
58
+ return float(np.mean(np.log(frac)))
@@ -0,0 +1,53 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Costa coarse-graining for multiscale entropy.
4
+ """
5
+
6
+ import numpy as np
7
+
8
+
9
+ def as_1d(y: np.ndarray) -> np.ndarray:
10
+ """Flatten ``y`` to a 1-D float array."""
11
+ return np.asarray(y, dtype=float).ravel()
12
+
13
+
14
+ def shannon(prob: np.ndarray) -> float:
15
+ """Natural-log Shannon entropy of a probability vector (zeros ignored)."""
16
+ p = np.asarray(prob, dtype=float)
17
+ p = p[p > 0]
18
+ if p.size == 0:
19
+ return 0.0
20
+ return float(-np.sum(p * np.log(p)))
21
+
22
+
23
+ def embed(y: np.ndarray, m: int, tau: int = 1) -> np.ndarray:
24
+ """Delay-embed ``y`` into shape ``(n_vectors, m)``."""
25
+ y = as_1d(y)
26
+ n_vec = len(y) - (m - 1) * tau
27
+ if n_vec < 1:
28
+ raise ValueError(
29
+ "Not enough samples for embedding dimension m=%d and delay tau=%d."
30
+ % (m, tau)
31
+ )
32
+ return np.column_stack([y[i * tau : i * tau + n_vec] for i in range(m)])
33
+
34
+
35
+ def coarse_grain(x: np.ndarray, scale: int, offset: int = 0) -> np.ndarray:
36
+ """
37
+ Non-overlapping mean blocks (Costa coarse-graining).
38
+
39
+ :param x: 1-D series.
40
+ :param scale: Block length (scale factor), integer >= 1.
41
+ :param offset: Start index; used for composite / phase-shifted grains.
42
+ :return: Coarse-grained series of length ``(len(x) - offset) // scale``.
43
+ """
44
+ x = as_1d(x)
45
+ if scale < 1:
46
+ raise ValueError("scale must be an integer >= 1.")
47
+ if offset < 0:
48
+ raise ValueError("offset must be >= 0.")
49
+ x = x[offset:]
50
+ n_blocks = len(x) // scale
51
+ if n_blocks < 1:
52
+ return np.empty(0, dtype=float)
53
+ return x[: n_blocks * scale].reshape(n_blocks, scale).mean(axis=1)