iterativefiltering


Nameiterativefiltering JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummaryPython Package for Iterative Filtering decomposition methods
upload_time2024-11-17 10:21:26
maintainerNone
docs_urlNone
authorNone
requires_python<3.13
licenseMIT License Copyright (c) 2022 Emanuele Papini Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords data analysis time series adaptive decomposition
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FAST ITERATIVE FILTERING - python package

This package contains the python classes and methods for the Iterative Filtering (IF), Fast Iterative Filtering (FIF), Multidimensional Iterative Filtering (MIF), the Multivariate Iterative Filtering (MvFIF) and the Multivariate Fast Iterative Filtering (MvFIF) algorithms.

## Definitions ##
* IF: Iterative Filtering is an adaptive method for decomposing a 1D signal into a set of Intrinsic Mode Components (IMC) plus a trend. These components are simple oscillating functions whose average frequency is well behaved and form a complete and nearly orthogonal basis of the original signal. In this repository, IF is made fast by using FFT convolution (similar to FIF but without the problem of having a periodic signal).

* FIF: builds on iterative filtering and combines it with FFT to make it faster. It requires, however, periodic signals.

* MIF: it is used to decompose multidimensional signals (currently only 2D and only defined on periodic domains).
Other versions (e.g. MIF multidimensional 3D) if present, are currently experimental and should be used with caution.

* MvFIF: is the multivariate version of FIF, designed to decompose multichannel signals at once (e.g. components of a vector). It requires, however, periodic signals.

* MvIF: Same as MvFIF, but without the problem of having a periodic signal.

* IMFogram: the IMFogram method, is contained in fifpy.IMFogram_v1. This program is experimental and should be used with care.

### Notes ###
This repository is a complete rewriting of the original matlab codes by A. Cicone.


### Dependencies ###
The package has been written and tested in python3.8, should be compatible with python <3.13, due to requirement from numba.

Dependencies: scipy, numpy, numba, scikit-learn, attrdict, matplotlib

### Install ###

The package is available on PyPI. To install it simply type

```
pip install iterativefiltering
```


### Examples ###

```
#create the signal to be analyzed
import numpy as np
x = np.linspace(0,2*np.pi,100,endpoint=False)
y = np.sin(2*x) + np.cos(10*x+2.3)
        
#do the FIF analysis
import fifpy
    
fif=fifpy.IF()
fif.run(y)
#plot the results
import pylab as plt
plt.ion()
plt.figure()
plt.plot(x,y,label='signal')
[plt.plot(x,fif.data['IMC'][i,:],label = 'IMC#'+str(i)) for i in range(fif.data['IMC'].shape[0])]
plt.legend(loc='best')

```

### Contacts ###

fifpy has been written and is maintained by Emanuele Papini - INAF (emanuele.papini@inaf.it).

The original code and algorithm conceptualization are authored by Antonio Cicone - University of L'Aquila (antonio.cicone@univaq.it).

Please feel free to contact us would you need any help in properly using fifpy and to report bug issues.

### Links ###
http://people.disim.univaq.it/~antonio.cicone/Software.html

Github: https://github.com/EmanuelePapini/fifpy

### References ###
1) A. Cicone, H. Zhou. [Numerical Analysis for Iterative Filtering with New Efficient Implementations Based on FFT.](https://arxiv.org/abs/1802.01359) Numerische Mathematik, 147 (1), pages 1-28, 2021. doi: 10.1007/s00211-020-01165-5

2) A. Cicone and E. Pellegrino. [Multivariate Fast Iterative Filtering for the decomposition of nonstationary signals.](https://arxiv.org/abs/1902.04860) IEEE Transactions on Signal Processing, Volume 70, pages 1521-1531, 2022. doi: 10.1109/TSP.2022.3157482

3) A. Cicone, W. S. Li, H. Zhou. [New theoretical insights in the decomposition and time-frequency representation of nonstationary signals: the IMFogram algorithm.](https://www.sciencedirect.com/science/article/abs/pii/S1063520324000113) Applied and Computational Harmonic Analysis, 71, 101634, 2024. doi: 10.1016/j.acha.2024.101634

4) A. Cicone, H. Zhou. [Multidimensional Iterative Filtering method for the decomposition of high-dimensional non-stationary signals.](https://doi.org/10.4208/nmtma.2017.s05) Cambridge Core in Numerical Mathematics: Theory, Methods and Applications, Volume 10, Issue 2, Pages 278-298, 2017. doi: 10.4208/nmtma.2017.s05 

5) E. Papini et al. [Multidimensional Iterative Filtering: a new approach for investigating plasma turbulence in numerical simulations.](https://doi.org/10.1017/S0022377820001221) Journal of Plasma Physics, Volume 86, Issue 5, 871860501, 2020. doi:10.1017/S0022377820001221

6) E. Papini et al. [Spacetime Hall-MHD Turbulence at Sub-ion Scales: Structures or Waves?](https://iopscience.iop.org/article/10.3847/2041-8213/ac11fd/pdf) The Astrophysical Journal Letters, 917:L12 (7pp), 2021. doi: 10.3847/2041-8213/ac11fd

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "iterativefiltering",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13",
    "maintainer_email": "Emanuele Papini <emanuele.papini@inaf.it>",
    "keywords": "data analysis, time series, adaptive decomposition",
    "author": null,
    "author_email": "Emanuele Papini <emanuele.papini@inaf.it>",
    "download_url": "https://files.pythonhosted.org/packages/b7/62/de8e4f7bff073aad6a5ce86fc0d3988bbabb1016000a153bd95f2f366f88/iterativefiltering-1.0.2.tar.gz",
    "platform": null,
    "description": "# FAST ITERATIVE FILTERING - python package\n\nThis package contains the python classes and methods for the Iterative Filtering (IF), Fast Iterative Filtering (FIF), Multidimensional Iterative Filtering (MIF), the Multivariate Iterative Filtering (MvFIF) and the Multivariate Fast Iterative Filtering (MvFIF) algorithms.\n\n## Definitions ##\n* IF: Iterative Filtering is an adaptive method for decomposing a 1D signal into a set of Intrinsic Mode Components (IMC) plus a trend. These components are simple oscillating functions whose average frequency is well behaved and form a complete and nearly orthogonal basis of the original signal. In this repository, IF is made fast by using FFT convolution (similar to FIF but without the problem of having a periodic signal).\n\n* FIF: builds on iterative filtering and combines it with FFT to make it faster. It requires, however, periodic signals.\n\n* MIF: it is used to decompose multidimensional signals (currently only 2D and only defined on periodic domains).\nOther versions (e.g. MIF multidimensional 3D) if present, are currently experimental and should be used with caution.\n\n* MvFIF: is the multivariate version of FIF, designed to decompose multichannel signals at once (e.g. components of a vector). It requires, however, periodic signals.\n\n* MvIF: Same as MvFIF, but without the problem of having a periodic signal.\n\n* IMFogram: the IMFogram method, is contained in fifpy.IMFogram_v1. This program is experimental and should be used with care.\n\n### Notes ###\nThis repository is a complete rewriting of the original matlab codes by A. Cicone.\n\n\n### Dependencies ###\nThe package has been written and tested in python3.8, should be compatible with python <3.13, due to requirement from numba.\n\nDependencies: scipy, numpy, numba, scikit-learn, attrdict, matplotlib\n\n### Install ###\n\nThe package is available on PyPI. To install it simply type\n\n```\npip install iterativefiltering\n```\n\n\n### Examples ###\n\n```\n#create the signal to be analyzed\nimport numpy as np\nx = np.linspace(0,2*np.pi,100,endpoint=False)\ny = np.sin(2*x) + np.cos(10*x+2.3)\n        \n#do the FIF analysis\nimport fifpy\n    \nfif=fifpy.IF()\nfif.run(y)\n#plot the results\nimport pylab as plt\nplt.ion()\nplt.figure()\nplt.plot(x,y,label='signal')\n[plt.plot(x,fif.data['IMC'][i,:],label = 'IMC#'+str(i)) for i in range(fif.data['IMC'].shape[0])]\nplt.legend(loc='best')\n\n```\n\n### Contacts ###\n\nfifpy has been written and is maintained by Emanuele Papini - INAF (emanuele.papini@inaf.it).\n\nThe original code and algorithm conceptualization are authored by Antonio Cicone - University of L'Aquila (antonio.cicone@univaq.it).\n\nPlease feel free to contact us would you need any help in properly using fifpy and to report bug issues.\n\n### Links ###\nhttp://people.disim.univaq.it/~antonio.cicone/Software.html\n\nGithub: https://github.com/EmanuelePapini/fifpy\n\n### References ###\n1) A. Cicone, H. Zhou. [Numerical Analysis for Iterative Filtering with New Efficient Implementations Based on FFT.](https://arxiv.org/abs/1802.01359) Numerische Mathematik, 147 (1), pages 1-28, 2021. doi: 10.1007/s00211-020-01165-5\n\n2) A. Cicone and E. Pellegrino. [Multivariate Fast Iterative Filtering for the decomposition of nonstationary signals.](https://arxiv.org/abs/1902.04860) IEEE Transactions on Signal Processing, Volume 70, pages 1521-1531, 2022. doi: 10.1109/TSP.2022.3157482\n\n3) A. Cicone, W. S. Li, H. Zhou. [New theoretical insights in the decomposition and time-frequency representation of nonstationary signals: the IMFogram algorithm.](https://www.sciencedirect.com/science/article/abs/pii/S1063520324000113) Applied and Computational Harmonic Analysis, 71,\u00a0101634, 2024. doi: 10.1016/j.acha.2024.101634\n\n4) A. Cicone, H. Zhou. [Multidimensional Iterative Filtering method for the decomposition of high-dimensional non-stationary signals.](https://doi.org/10.4208/nmtma.2017.s05) Cambridge Core in Numerical Mathematics: Theory, Methods and Applications, Volume 10, Issue 2, Pages\u00a0278-298,\u00a02017. doi: 10.4208/nmtma.2017.s05 \n\n5) E. Papini et al. [Multidimensional Iterative Filtering: a new approach for investigating plasma turbulence in numerical simulations.](https://doi.org/10.1017/S0022377820001221) Journal of Plasma Physics, Volume 86, Issue 5, 871860501, 2020. doi:10.1017/S0022377820001221\n\n6) E. Papini et al. [Spacetime Hall-MHD Turbulence at Sub-ion Scales: Structures or Waves?](https://iopscience.iop.org/article/10.3847/2041-8213/ac11fd/pdf) The Astrophysical Journal Letters, 917:L12 (7pp), 2021. doi: 10.3847/2041-8213/ac11fd\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2022 Emanuele Papini  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Python Package for Iterative Filtering decomposition methods",
    "version": "1.0.2",
    "project_urls": {
        "Homepage": "https://github.com/EmanuelePapini/fifpy"
    },
    "split_keywords": [
        "data analysis",
        " time series",
        " adaptive decomposition"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "18cffc588389ec1ca0e74f8a084960239026fd2224a639df54b36aec6115d665",
                "md5": "6ccb6c34e536d3d68cf275d7d462c569",
                "sha256": "c45dc9154d8f0e182ed004b7630c2da2e29e43573450ba9d2a39ad47cdaa5c28"
            },
            "downloads": -1,
            "filename": "iterativefiltering-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6ccb6c34e536d3d68cf275d7d462c569",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13",
            "size": 304225,
            "upload_time": "2024-11-17T10:21:23",
            "upload_time_iso_8601": "2024-11-17T10:21:23.922917Z",
            "url": "https://files.pythonhosted.org/packages/18/cf/fc588389ec1ca0e74f8a084960239026fd2224a639df54b36aec6115d665/iterativefiltering-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b762de8e4f7bff073aad6a5ce86fc0d3988bbabb1016000a153bd95f2f366f88",
                "md5": "4dd9a1cdcd0ff9f9c741bd5bc967dd3b",
                "sha256": "02a89ea3a05aaddf3497a9928da515e4e5a42ba4b1e4868dbc80f03362733deb"
            },
            "downloads": -1,
            "filename": "iterativefiltering-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4dd9a1cdcd0ff9f9c741bd5bc967dd3b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13",
            "size": 294641,
            "upload_time": "2024-11-17T10:21:26",
            "upload_time_iso_8601": "2024-11-17T10:21:26.271127Z",
            "url": "https://files.pythonhosted.org/packages/b7/62/de8e4f7bff073aad6a5ce86fc0d3988bbabb1016000a153bd95f2f366f88/iterativefiltering-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-17 10:21:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "EmanuelePapini",
    "github_project": "fifpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "iterativefiltering"
}
        
Elapsed time: 0.47645s