A Statistical Parameter Optimization Tool

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; 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 algorithms bring complex tasks to link them with a 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 Adaptive Metropolis Algorithm (DE-MCz)
• RObust Parameter Estimation (ROPE).
• Fourier Amplitude Sensitivity Test (FAST)
• Wide range of objective functions (also known as loss function, fitness function or energy function) to validate the sampled results. Available functions are
• 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).
• 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.
• 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

Install

Installing SPOTPY is easy. Just use:

pip install spotpy

python setup.py install

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 SPOTPY.
• Patches/enhancements and any other contributions to this package are very welcome!
• GitHub: https://github.com/thouska/spotpy

Version 1.1.0

• Changed likelihood to objectivefunction. Checkout new example spotpy_setup files.

Version 1.1.1

• Minor bugfixes

Version 1.1.2

• Minor bugfixes

Version 1.1.3

• Minor bugfixes

Version 1.2.2

• Minor bugfix in Monte Carlo sampler

Project details

Files for spotpy, version 1.2.25
Filename, size File type Python version Upload date Hashes
Filename, size spotpy-1.2.25-py2-none-any.whl (71.8 kB) File type Wheel Python version 2.7 Upload date Hashes
Filename, size spotpy-1.2.25.win32.exe (266.7 kB) File type Windows Installer Python version any Upload date Hashes
Filename, size spotpy-1.2.25.zip (74.3 kB) File type Source Python version None Upload date Hashes