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.26.zip
(568.3 kB
view details)
Built Distributions
spotpy-1.3.26.win32.exe
(1.0 MB
view details)
spotpy-1.3.26-py2-none-any.whl
(835.5 kB
view details)
File details
Details for the file spotpy-1.3.26.zip
.
File metadata
- Download URL: spotpy-1.3.26.zip
- Upload date:
- Size: 568.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4c581d2ce52ef0cd0db76b65ccfa76d9dd6d930078b22698cac024b20dca292 |
|
MD5 | bcc5bd4a5ddce7a514e66dd2ad65f67f |
|
BLAKE2b-256 | 8b76391ee90bb71e62e04d8502c097059a6e5608e1b87b72c481bfcab6716209 |
File details
Details for the file spotpy-1.3.26.win32.exe
.
File metadata
- Download URL: spotpy-1.3.26.win32.exe
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c74bcbb1f0da47184da9b83ff673644a7b358aa8f3a7eb26049c90c31fe4beff |
|
MD5 | 54a063eccb984a5d004bc200a241c865 |
|
BLAKE2b-256 | 94a1b72b9fa9ebb33984a6d3f93d7c91a1adff5bd60bdcce1a4a24d8e374c795 |
File details
Details for the file spotpy-1.3.26-py2-none-any.whl
.
File metadata
- Download URL: spotpy-1.3.26-py2-none-any.whl
- Upload date:
- Size: 835.5 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81f9b67e947b03cc11d550559aa88be1a93a21460cc1bd48910f9401280a5afe |
|
MD5 | e1085fb0005817f709878f4c59da65f1 |
|
BLAKE2b-256 | cc8ff231416ce50f980f30f8c418d66ec1cc3f5c4c5689c89fc1b03616f71a7f |