skip to navigation
skip to content

spotpy 1.3.21

A Statistical Parameter Optimization Tool

.. image::
.. image::
.. image::
.. image::


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:"" 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


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 is available at `<http:"" spotpy="">`__


Installing SPOTPY is easy. Just use:

pip install spotpy

Or, after downloading the source code and making sure python is in your path:

python install

Papers citing SPOTPY
See `Google Scholar <https:"" scholar?cites="17155001516727704728&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=de">`__ for a continuously updated list.


* 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:"" plosone="" article?id="10.1371%2Fjournal.pone.0145180">`_ SPOTPY.

* Please report any bug through mail or GitHub:

* If you want to share your code with others, you are welcome to do this through GitHub:

Patches/enhancements/new algorithms and any other contributions to this package are very welcome!

1. Fork it ( )
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 and
File Type Py Version Uploaded on Size
spotpy-1.3.21-py2-none-any.whl (md5) Python Wheel 2.7 2018-01-29 809KB
spotpy-1.3.21.win32.exe (md5) MS Windows installer any 2018-01-29 1002KB (md5) Source 2018-01-29 552KB