From 5fe424501c5ee9f3327a2696bf30133000518a4d Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 12 Apr 2023 04:53:53 +0000 Subject: automatic import of python-hampel --- .gitignore | 1 + python-hampel.spec | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 238 insertions(+) create mode 100644 python-hampel.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..4600868 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/hampel-0.0.5.tar.gz diff --git a/python-hampel.spec b/python-hampel.spec new file mode 100644 index 0000000..699f359 --- /dev/null +++ b/python-hampel.spec @@ -0,0 +1,236 @@ +%global _empty_manifest_terminate_build 0 +Name: python-hampel +Version: 0.0.5 +Release: 1 +Summary: Python implementation of the Hampel Filter +License: MIT License +URL: https://github.com/MichaelisTrofficus/hampel_filter +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/50/0c/a9c77ff9b7f3f907940f520274a3946ff66587f823e41b57c29ac33ed81d/hampel-0.0.5.tar.gz +BuildArch: noarch + +Requires: python3-numpy +Requires: python3-pandas + +%description +# Theory + +The Hampel filter is generally used to detect anomalies in data with a timeseries structure. It basically consists of a sliding window of a parameterizable size. For each window, each observation will be compared with the Median Absolute Deviation (MAD). The observation will be considered an outlier in the case in which it exceeds the MAD by n times (the parameter n is also parameterizable). For more details, see the following Medium post as well as the Wikipedia entry on MAD. + +https://medium.com/wwblog/clean-up-your-time-series-data-with-a-hampel-filter-58b0bb3ebb04 + +https://en.wikipedia.org/wiki/Median_absolute_deviation + +# Install Package + +To install the package execute the following command. + +``` +pip install hampel +``` + +# Usage + +``` +hampel(ts, window_size=5, n=3) +hampel(ts, window_size=5, n=3, imputation=True) +``` + +# Arguments + +- **ts** - A pandas Series object representing the timeseries +- **window_size** - Total window size will be computed as 2*window_size + 1 +- **n** - Threshold, default is 3 (Pearson's rule) +- **imputation** - If set to False, then the algorithm will be used for outlier detection. + If set to True, then the algorithm will also imput the outliers with the rolling median. + +# Code Example + +``` +import matplotlib.pyplot as plt +import pandas as pd +from hampel import hampel + +ts = pd.Series([1, 2, 1 , 1 , 1, 2, 13, 2, 1, 2, 15, 1, 2]) + +# Just outlier detection +outlier_indices = hampel(ts, window_size=5, n=3) +print("Outlier Indices: ", outlier_indices) + +# Outlier Imputation with rolling median +ts_imputation = hampel(ts, window_size=5, n=3, imputation=True) + +ts.plot(style="k-") +ts_imputation.plot(style="g-") +plt.show() +``` + + + + + +%package -n python3-hampel +Summary: Python implementation of the Hampel Filter +Provides: python-hampel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-hampel +# Theory + +The Hampel filter is generally used to detect anomalies in data with a timeseries structure. It basically consists of a sliding window of a parameterizable size. For each window, each observation will be compared with the Median Absolute Deviation (MAD). The observation will be considered an outlier in the case in which it exceeds the MAD by n times (the parameter n is also parameterizable). For more details, see the following Medium post as well as the Wikipedia entry on MAD. + +https://medium.com/wwblog/clean-up-your-time-series-data-with-a-hampel-filter-58b0bb3ebb04 + +https://en.wikipedia.org/wiki/Median_absolute_deviation + +# Install Package + +To install the package execute the following command. + +``` +pip install hampel +``` + +# Usage + +``` +hampel(ts, window_size=5, n=3) +hampel(ts, window_size=5, n=3, imputation=True) +``` + +# Arguments + +- **ts** - A pandas Series object representing the timeseries +- **window_size** - Total window size will be computed as 2*window_size + 1 +- **n** - Threshold, default is 3 (Pearson's rule) +- **imputation** - If set to False, then the algorithm will be used for outlier detection. + If set to True, then the algorithm will also imput the outliers with the rolling median. + +# Code Example + +``` +import matplotlib.pyplot as plt +import pandas as pd +from hampel import hampel + +ts = pd.Series([1, 2, 1 , 1 , 1, 2, 13, 2, 1, 2, 15, 1, 2]) + +# Just outlier detection +outlier_indices = hampel(ts, window_size=5, n=3) +print("Outlier Indices: ", outlier_indices) + +# Outlier Imputation with rolling median +ts_imputation = hampel(ts, window_size=5, n=3, imputation=True) + +ts.plot(style="k-") +ts_imputation.plot(style="g-") +plt.show() +``` + + + + + +%package help +Summary: Development documents and examples for hampel +Provides: python3-hampel-doc +%description help +# Theory + +The Hampel filter is generally used to detect anomalies in data with a timeseries structure. It basically consists of a sliding window of a parameterizable size. For each window, each observation will be compared with the Median Absolute Deviation (MAD). The observation will be considered an outlier in the case in which it exceeds the MAD by n times (the parameter n is also parameterizable). For more details, see the following Medium post as well as the Wikipedia entry on MAD. + +https://medium.com/wwblog/clean-up-your-time-series-data-with-a-hampel-filter-58b0bb3ebb04 + +https://en.wikipedia.org/wiki/Median_absolute_deviation + +# Install Package + +To install the package execute the following command. + +``` +pip install hampel +``` + +# Usage + +``` +hampel(ts, window_size=5, n=3) +hampel(ts, window_size=5, n=3, imputation=True) +``` + +# Arguments + +- **ts** - A pandas Series object representing the timeseries +- **window_size** - Total window size will be computed as 2*window_size + 1 +- **n** - Threshold, default is 3 (Pearson's rule) +- **imputation** - If set to False, then the algorithm will be used for outlier detection. + If set to True, then the algorithm will also imput the outliers with the rolling median. + +# Code Example + +``` +import matplotlib.pyplot as plt +import pandas as pd +from hampel import hampel + +ts = pd.Series([1, 2, 1 , 1 , 1, 2, 13, 2, 1, 2, 15, 1, 2]) + +# Just outlier detection +outlier_indices = hampel(ts, window_size=5, n=3) +print("Outlier Indices: ", outlier_indices) + +# Outlier Imputation with rolling median +ts_imputation = hampel(ts, window_size=5, n=3, imputation=True) + +ts.plot(style="k-") +ts_imputation.plot(style="g-") +plt.show() +``` + + + + + +%prep +%autosetup -n hampel-0.0.5 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-hampel -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot - 0.0.5-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..509463e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +9a91c229fc274d5916c7ab38576006fc hampel-0.0.5.tar.gz -- cgit v1.2.3