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.
- {pysdkit-0.4.55 → pysdkit-0.5.0}/PKG-INFO +7 -3
- {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/PKG-INFO +7 -3
- {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/SOURCES.txt +44 -34
- {pysdkit-0.4.55 → pysdkit-0.5.0}/README.md +5 -1
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pyproject.toml +2 -1
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/__init__.py +1 -2
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/base.py +1 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/__init__.py +8 -0
- pysdkit-0.5.0/pysdkit/data/_assets.py +40 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_image.py +5 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_loaders.py +106 -3
- pysdkit-0.5.0/pysdkit/data/real_world/bmemd_source02.npy +0 -0
- pysdkit-0.5.0/pysdkit/data/real_world/bmemd_source09.npy +0 -0
- pysdkit-0.5.0/pysdkit/data/real_world/bss_beam.npy +0 -0
- pysdkit-0.5.0/pysdkit/data/real_world/bss_yk9.npy +0 -0
- pysdkit-0.5.0/pysdkit/entropy/__init__.py +30 -0
- pysdkit-0.5.0/pysdkit/entropy/_approximate_entropy.py +58 -0
- pysdkit-0.5.0/pysdkit/entropy/_coarse_grain.py +53 -0
- pysdkit-0.5.0/pysdkit/entropy/_dispersion_entropy.py +87 -0
- pysdkit-0.5.0/pysdkit/entropy/_distribution_entropy.py +76 -0
- pysdkit-0.5.0/pysdkit/entropy/_fuzzy_entropy.py +96 -0
- pysdkit-0.5.0/pysdkit/entropy/_increment_entropy.py +59 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/entropy/_permutation_entropy.py +10 -11
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/entropy/_sample_entropy.py +98 -1
- pysdkit-0.5.0/pysdkit/entropy/_slope_entropy.py +65 -0
- pysdkit-0.5.0/pysdkit/entropy/_spectral_entropy.py +56 -0
- pysdkit-0.5.0/pysdkit/entropy/_symbolic_dynamic_entropy.py +76 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_fourier_spectra.py +1 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_functions.py +3 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_plot_imfs.py +3 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/__init__.py +0 -1
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_bmemd.py +25 -0
- pysdkit-0.5.0/pysdkit/tests/test_bss.py +381 -0
- pysdkit-0.5.0/pysdkit/tests/test_entropy.py +225 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/__init__.py +32 -0
- pysdkit-0.5.0/pysdkit/utils/bss/__init__.py +58 -0
- pysdkit-0.5.0/pysdkit/utils/bss/_bss.py +350 -0
- pysdkit-0.5.0/pysdkit/utils/bss/_modal.py +158 -0
- pysdkit-0.5.0/pysdkit/utils/bss/_stft.py +238 -0
- pysdkit-0.4.55/pysdkit/data/_assets.py +0 -23
- pysdkit-0.4.55/pysdkit/entropy/__init__.py +0 -20
- pysdkit-0.4.55/pysdkit/entropy/_approxiamte_entropy.py +0 -6
- pysdkit-0.4.55/pysdkit/models/__init__.py +0 -8
- pysdkit-0.4.55/pysdkit/models/_base.py +0 -114
- pysdkit-0.4.55/pysdkit/models/_kmeans.py +0 -4
- pysdkit-0.4.55/pysdkit/models/_knn.py +0 -199
- pysdkit-0.4.55/pysdkit/models/_pca.py +0 -229
- pysdkit-0.4.55/pysdkit/tests/models/__init__.py +0 -4
- pysdkit-0.4.55/pysdkit/tests/models/test_knn.py +0 -189
- pysdkit-0.4.55/pysdkit/tests/models/test_pca.py +0 -79
- {pysdkit-0.4.55 → pysdkit-0.5.0}/LICENSE +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/dependency_links.txt +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/requires.txt +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/PySDKit.egg-info/top_level.txt +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/acmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/ba_acmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_acmd/dd_acmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/_find_extrema.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/_prepare_points.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/_splines.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/apitmemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/ceemdan.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/eemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/emd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/esmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/hht/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/hht/frequency.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/hht/hht.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/memd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/nstemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/online_emd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/remd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/semd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd/tvf_emd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd2d/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd2d/bmemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_emd2d/emd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/efd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/ewt.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_ewt/ewt2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/extrema.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/faemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/faemd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/faemd3d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_faemd/filter.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/agncmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/gdmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/ivgnmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_gdmd/vgnmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_imd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_imd/apmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_imd/imd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/jmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/mjmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_jmd/sjmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_lmd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_lmd/lmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_lmd/rlmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/components.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/osd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_osd/swd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/set.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/sst.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tfa/vtfmtd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/alif.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/fmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/hvd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/itd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/iterative_filtering.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_tid/ssa.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/mvmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/na_mvmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/namvmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/ovmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/stvmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/svmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/vmd_c.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/vmd_f.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd/vme.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd2d/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd2d/cvmd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vmd2d/vmd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/avncmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/incmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/stnbmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/_vncmd/vncmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_add_noise.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_cube.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_generator.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_models.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_test_univariate.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/_time_series.py +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/apitmemd_section_2b.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/apitmemd_section_3a.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/apitmemd_section_3b.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/deconv_sig1.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/deconv_sig2.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/deconv_sig3.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/dual_signal_noise.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/ecg_055m.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/fast_kurtogram_x.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/fmd_demo.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/gearbox_fault_snippet.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/input_sig.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/map2.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_syn_12channel.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_syn_16channel.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_syn_hex.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/memd_taichi_hex.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/oemd_ecg.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/prefixed_double_filter.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/set_batdata2.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/set_vibdata.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/single_nsignal.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/sst_doppler.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/sst_float.npy +0 -0
- {pysdkit-0.4.55/pysdkit/data → pysdkit-0.5.0/pysdkit/data/real_world}/vmd_example.npy +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/data/texture.txt +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_plot_images.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/plot/_plot_signal.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_cube.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_image.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_signal.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/data/test_generator_univariate_signal.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/run_all.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_acmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_agncmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_alif.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_apitmemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_apmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_avncmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_baacmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ceemdan.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_cvmd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ddacmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_deconvolution.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_eemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_efd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_emd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_emd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_esmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ewt.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ewt2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_faemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_faemd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_faemd3d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_fmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_gdmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_hht.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_hvd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_imd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_itd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ivgnmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_jmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_kurtogram.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_lmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_memd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_moving_decomp.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_mstl.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_mvmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_nstemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_onlineemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_osd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ovmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_remd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_rlmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_semd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_set.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_sjmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_ssa.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_sst.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_stl.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_stnbmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_stvmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_svmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_swd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_tvfemd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vgnmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vmd2d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vme.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vncmd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tests/test_vtfmtd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_dtw.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_moving_decomp.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_mstl.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/tsa/_stl.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_correlation.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_diagnalization.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_differ.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_fft.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_function.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_hilbert.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_instantaneous.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_kernel_matrix.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_kurtogram.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_mirror.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_pca.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_process.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/_smooth1d.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/__init__.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_acycbd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_common.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_imckd.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_plot.py +0 -0
- {pysdkit-0.4.55 → pysdkit-0.5.0}/pysdkit/utils/deconvolution/_smhd.py +0 -0
- {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.
|
|
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
|
[](https://pypi.org/project/PySDKit/)
|
|
59
|
+
[](https://pysdkit.readthedocs.io/en/latest/)
|
|
59
60
|

|
|
60
61
|
[](https://www.python.org/)
|
|
61
62
|
[](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.
|
|
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
|
[](https://pypi.org/project/PySDKit/)
|
|
59
|
+
[](https://pysdkit.readthedocs.io/en/latest/)
|
|
59
60
|

|
|
60
61
|
[](https://www.python.org/)
|
|
61
62
|
[](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/
|
|
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/
|
|
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/
|
|
135
|
-
pysdkit/
|
|
136
|
-
pysdkit/
|
|
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
|
[](https://pypi.org/project/PySDKit/)
|
|
6
|
+
[](https://pysdkit.readthedocs.io/en/latest/)
|
|
6
7
|

|
|
7
8
|
[](https://www.python.org/)
|
|
8
9
|
[](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" = ["*.
|
|
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.
|
|
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
|
|
6
|
-
import these helpers from here (or from ``pysdkit.data``)
|
|
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).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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)
|