%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