A Statistical Parameter Optimization Tool
Project description
.. image:: https://img.shields.io/pypi/v/spotpy.png
:target: https://pypi.python.org/pypi/spotpy
.. image:: https://img.shields.io/travis/thouska/spotpy/master.png
:target: https://travis-ci.org/thouska/spotpy
.. image:: https://img.shields.io/badge/license-MIT-blue.png
:target: http://opensource.org/licenses/MIT
.. image:: https://coveralls.io/repos/github/thouska/spotpy/badge.svg?branch=master
:target: https://coveralls.io/github/thouska/spotpy?branch=master
Purpose
-------
SPOTPY is a Python tool that enables the use of Computational optimization techniques for calibration, uncertainty
and sensitivity analysis techniques of almost every (environmental-) model. The package is puplished in the open source journal PLoS One
Houska, T, Kraft, P, Chamorro-Chavez, A and Breuer, L; `SPOTting Model Parameters Using a Ready-Made Python Package <http://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0145180>`_; PLoS ONE; 2015
The simplicity and flexibility enables the use and test of different
algorithms without the need of complex codes::
sampler = spotpy.algorithms.sceua(model_setup()) # Initialize your model with a setup file
sampler.sample(10000) # Run the model
results = sampler.getdata() # Load the results
spotpy.analyser.plot_parametertrace(results) # Show the results
Features
--------
Complex formal Bayesian informal Bayesian and non-Bayesian algorithms bring complex tasks to link them with a given model.
We want to make this task as easy as possible. Some features you can use with the SPOTPY package are:
* Fitting models to evaluation data with different algorithms.
Available algorithms are:
* Monte Carlo (`MC`)
* Markov-Chain Monte-Carlo (`MCMC`)
* Maximum Likelihood Estimation (`MLE`)
* Latin-Hypercube Sampling (`LHS`)
* Simulated Annealing (`SA`)
* Shuffled Complex Evolution Algorithm (`SCE-UA`)
* Differential Evolution Markov Chain Algorithm (`DE-MCz`)
* Differential Evolution Adaptive Metropolis Algorithm (`DREAM`)
* RObust Parameter Estimation (`ROPE`)
* Fourier Amplitude Sensitivity Test (`FAST`)
* Artificial Bee Colony (`ABC`)
* Fitness Scaled Chaotic Artificial Bee Colony (`FSCABC`)
* Wide range of objective functions (also known as loss function, fitness function or energy function) to validate the sampled results. Available functions are
* Bias
* Procentual Bias (`PBias`)
* Nash-Sutcliff (`NSE`)
* logarithmic Nash-Sutcliff (`logNSE`)
* logarithmic probability (`logp`)
* Correlation Coefficient (`r`)
* Coefficient of Determination (`r^2`)
* Mean Squared Error (`MSE`)
* Root Mean Squared Error (`RMSE`)
* Mean Absolute Error (`MAE`)
* Relative Root Mean Squared Error (`RRMSE`)
* Agreement Index (`AI`)
* Covariance, Decomposed MSE (`dMSE`)
* Kling-Gupta Efficiency (`KGE`)
* Wide range of likelihood functions to validate the sampled results:
* logLikelihood
* Gaussian Likelihood to account for Measurement Errors
* Gaussian Likelihood to account for Heteroscedasticity
* Likelihood to accounr for Autocorrelation
* Generalized Likelihood Function
* Lapacian Likelihood
* Skewed Student Likelihood assuming homoscedasticity
* Skewed Student Likelihood assuming heteroscedasticity
* Skewed Student Likelihood assuming heteroscedasticity and Autocorrelation
* Noisy ABC Gaussian Likelihood
* ABC Boxcar Likelihood
* Limits Of Acceptability
* Inverse Error Variance Shaping Factor
* Nash Sutcliffe Efficiency Shaping Factor
* Exponential Transform Shaping Factor
* Sum of Absolute Error Residuals
* Wide range of hydrological signatures functions to validate the sampled results:
* Slope
* Flooding/Drought events
* Flood/Drought frequency
* Flood/Drought duration
* Flood/Drought variance
* Mean flow
* Median flow
* Skewness
* compare percentiles of discharge
* Prebuild parameter distribution functions:
* Uniform
* Normal
* logNormal
* Chisquare
* Exponential
* Gamma
* Wald
* Weilbull
* Wide range to adapt algorithms to perform uncertainty-, sensitivity analysis or calibration
of a model.
* Multi-objective support
* MPI support for fast parallel computing
* A progress bar monitoring the sampling loops. Enables you to plan your coffee brakes.
* Use of NumPy functions as often as possible. This makes your coffee brakes short.
* Different databases solutions: `ram` storage for fast sampling a simple , `csv` tables
the save solution for long duration samplings and a `sql` database for larger projects.
* Automatic best run selecting and plotting
* Parameter trace plotting
* Parameter interaction plot including the Gaussian-kde function
* Regression analysis between simulation and evaluation data
* Posterior distribution plot
* Convergence diagnostics with Gelman-Rubin and the Geweke plot
Documentation
-------------
Documentation is available at `<http://fb09-pasig.umwelt.uni-giessen.de/spotpy>`__
Install
-------
Installing SPOTPY is easy. Just use:
pip install spotpy
Or, after downloading the source code and making sure python is in your path:
python setup.py install
Papers citing SPOTPY
-------
See `Google Scholar <https://scholar.google.de/scholar?cites=17155001516727704728&as_sdt=2005&sciodt=0,5&hl=de>`__ for a continuously updated list.
Support
-------
* Feel free to contact the authors of this tool for any support questions.
* If you use this package for a scientific research paper, please `cite <http://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0145180>`_ SPOTPY.
* Please report any bug through mail or GitHub: https://github.com/thouska/spotpy.
* If you want to share your code with others, you are welcome to do this through GitHub: https://github.com/thouska/spotpy.
Contributing
------------
Patches/enhancements/new algorithms and any other contributions to this package are very welcome!
1. Fork it ( http://github.com/thouska/spotpy/fork )
2. Create your feature branch (``git checkout -b my-new-feature``)
3. Add your modifications
4. Add short summary of your modifications on ``CHANGELOG.rst``
5. Commit your changes (``git commit -m "Add some feature"``)
6. Push to the branch (``git push origin my-new-feature``)
7. Create new Pull Request
Getting started
---------------
Have a look at https://github.com/thouska/spotpy/tree/master/spotpy/examples and http://fb09-pasig.umwelt.uni-giessen.de/spotpy/Tutorial/2-Rosenbrock/
:target: https://pypi.python.org/pypi/spotpy
.. image:: https://img.shields.io/travis/thouska/spotpy/master.png
:target: https://travis-ci.org/thouska/spotpy
.. image:: https://img.shields.io/badge/license-MIT-blue.png
:target: http://opensource.org/licenses/MIT
.. image:: https://coveralls.io/repos/github/thouska/spotpy/badge.svg?branch=master
:target: https://coveralls.io/github/thouska/spotpy?branch=master
Purpose
-------
SPOTPY is a Python tool that enables the use of Computational optimization techniques for calibration, uncertainty
and sensitivity analysis techniques of almost every (environmental-) model. The package is puplished in the open source journal PLoS One
Houska, T, Kraft, P, Chamorro-Chavez, A and Breuer, L; `SPOTting Model Parameters Using a Ready-Made Python Package <http://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0145180>`_; PLoS ONE; 2015
The simplicity and flexibility enables the use and test of different
algorithms without the need of complex codes::
sampler = spotpy.algorithms.sceua(model_setup()) # Initialize your model with a setup file
sampler.sample(10000) # Run the model
results = sampler.getdata() # Load the results
spotpy.analyser.plot_parametertrace(results) # Show the results
Features
--------
Complex formal Bayesian informal Bayesian and non-Bayesian algorithms bring complex tasks to link them with a given model.
We want to make this task as easy as possible. Some features you can use with the SPOTPY package are:
* Fitting models to evaluation data with different algorithms.
Available algorithms are:
* Monte Carlo (`MC`)
* Markov-Chain Monte-Carlo (`MCMC`)
* Maximum Likelihood Estimation (`MLE`)
* Latin-Hypercube Sampling (`LHS`)
* Simulated Annealing (`SA`)
* Shuffled Complex Evolution Algorithm (`SCE-UA`)
* Differential Evolution Markov Chain Algorithm (`DE-MCz`)
* Differential Evolution Adaptive Metropolis Algorithm (`DREAM`)
* RObust Parameter Estimation (`ROPE`)
* Fourier Amplitude Sensitivity Test (`FAST`)
* Artificial Bee Colony (`ABC`)
* Fitness Scaled Chaotic Artificial Bee Colony (`FSCABC`)
* Wide range of objective functions (also known as loss function, fitness function or energy function) to validate the sampled results. Available functions are
* Bias
* Procentual Bias (`PBias`)
* Nash-Sutcliff (`NSE`)
* logarithmic Nash-Sutcliff (`logNSE`)
* logarithmic probability (`logp`)
* Correlation Coefficient (`r`)
* Coefficient of Determination (`r^2`)
* Mean Squared Error (`MSE`)
* Root Mean Squared Error (`RMSE`)
* Mean Absolute Error (`MAE`)
* Relative Root Mean Squared Error (`RRMSE`)
* Agreement Index (`AI`)
* Covariance, Decomposed MSE (`dMSE`)
* Kling-Gupta Efficiency (`KGE`)
* Wide range of likelihood functions to validate the sampled results:
* logLikelihood
* Gaussian Likelihood to account for Measurement Errors
* Gaussian Likelihood to account for Heteroscedasticity
* Likelihood to accounr for Autocorrelation
* Generalized Likelihood Function
* Lapacian Likelihood
* Skewed Student Likelihood assuming homoscedasticity
* Skewed Student Likelihood assuming heteroscedasticity
* Skewed Student Likelihood assuming heteroscedasticity and Autocorrelation
* Noisy ABC Gaussian Likelihood
* ABC Boxcar Likelihood
* Limits Of Acceptability
* Inverse Error Variance Shaping Factor
* Nash Sutcliffe Efficiency Shaping Factor
* Exponential Transform Shaping Factor
* Sum of Absolute Error Residuals
* Wide range of hydrological signatures functions to validate the sampled results:
* Slope
* Flooding/Drought events
* Flood/Drought frequency
* Flood/Drought duration
* Flood/Drought variance
* Mean flow
* Median flow
* Skewness
* compare percentiles of discharge
* Prebuild parameter distribution functions:
* Uniform
* Normal
* logNormal
* Chisquare
* Exponential
* Gamma
* Wald
* Weilbull
* Wide range to adapt algorithms to perform uncertainty-, sensitivity analysis or calibration
of a model.
* Multi-objective support
* MPI support for fast parallel computing
* A progress bar monitoring the sampling loops. Enables you to plan your coffee brakes.
* Use of NumPy functions as often as possible. This makes your coffee brakes short.
* Different databases solutions: `ram` storage for fast sampling a simple , `csv` tables
the save solution for long duration samplings and a `sql` database for larger projects.
* Automatic best run selecting and plotting
* Parameter trace plotting
* Parameter interaction plot including the Gaussian-kde function
* Regression analysis between simulation and evaluation data
* Posterior distribution plot
* Convergence diagnostics with Gelman-Rubin and the Geweke plot
Documentation
-------------
Documentation is available at `<http://fb09-pasig.umwelt.uni-giessen.de/spotpy>`__
Install
-------
Installing SPOTPY is easy. Just use:
pip install spotpy
Or, after downloading the source code and making sure python is in your path:
python setup.py install
Papers citing SPOTPY
-------
See `Google Scholar <https://scholar.google.de/scholar?cites=17155001516727704728&as_sdt=2005&sciodt=0,5&hl=de>`__ for a continuously updated list.
Support
-------
* Feel free to contact the authors of this tool for any support questions.
* If you use this package for a scientific research paper, please `cite <http://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0145180>`_ SPOTPY.
* Please report any bug through mail or GitHub: https://github.com/thouska/spotpy.
* If you want to share your code with others, you are welcome to do this through GitHub: https://github.com/thouska/spotpy.
Contributing
------------
Patches/enhancements/new algorithms and any other contributions to this package are very welcome!
1. Fork it ( http://github.com/thouska/spotpy/fork )
2. Create your feature branch (``git checkout -b my-new-feature``)
3. Add your modifications
4. Add short summary of your modifications on ``CHANGELOG.rst``
5. Commit your changes (``git commit -m "Add some feature"``)
6. Push to the branch (``git push origin my-new-feature``)
7. Create new Pull Request
Getting started
---------------
Have a look at https://github.com/thouska/spotpy/tree/master/spotpy/examples and http://fb09-pasig.umwelt.uni-giessen.de/spotpy/Tutorial/2-Rosenbrock/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
spotpy-1.3.25.zip
(570.2 kB
view details)
Built Distributions
spotpy-1.3.25.win32.exe
(1.0 MB
view details)
spotpy-1.3.25-py2-none-any.whl
(834.0 kB
view details)
File details
Details for the file spotpy-1.3.25.zip
.
File metadata
- Download URL: spotpy-1.3.25.zip
- Upload date:
- Size: 570.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d9404df645ad5e0c1979a3876d0aa3a595c1a22d58184a704223c273f0608c3 |
|
MD5 | 911c1e451a714463d75f123067303fd1 |
|
BLAKE2b-256 | 0e2d075ba17135bd769c8d5c5c9a9c8ca4beaead21aa59f2be632d6606c1d396 |
File details
Details for the file spotpy-1.3.25.win32.exe
.
File metadata
- Download URL: spotpy-1.3.25.win32.exe
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5e37843ec1fa0623384878565fe338418684d050a21eff87d1f47ef188ac3fa |
|
MD5 | a14a58493dd4928f06d67c140aed31a8 |
|
BLAKE2b-256 | b5b760fc0de1120c920de015f9cc2abf879ca84ebce396c0032407fe7e16112c |
File details
Details for the file spotpy-1.3.25-py2-none-any.whl
.
File metadata
- Download URL: spotpy-1.3.25-py2-none-any.whl
- Upload date:
- Size: 834.0 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8326e13c3baafd81f69695562679b10286e1890fd7206c30eb3b93db97fcc6e8 |
|
MD5 | 7a76ac039c61c3c0279fc17bfe343908 |
|
BLAKE2b-256 | 80c1776e1167c54e4ef896e265f60fea5a748090d4010c63d1611299ffce786f |