Skip to main content

spotpy

A Statistical Parameter Optimization Tool for Python


PyPI Version Python Versions License Coverage Status DOI

Purpose

https://github.com/user-attachments/assets/4df71cb2-dcf9-4a24-bb78-6e4e1c43356a

SPOTPY is a Python framework that enables the use of Computational optimization techniques for calibration, uncertainty and sensitivity analysis techniques of almost every (environmental-) model. The package is published 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, 10(12), e0145180, doi:10.1371/journal.pone.0145180, 2015

The simplicity and flexibility enables the use and test of different algorithms of almost any model, 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 Markov Chain Algorithm (DE-MCz)
    • Differential Evolution Adaptive Metropolis Algorithm (DREAM)
    • RObust Parameter Estimation (ROPE)
    • Fourier Amplitude Sensitivity Test (FAST)
    • extended Fourier Amplitude Sensitivity Test (eFAST)
    • Artificial Bee Colony (ABC)
    • Fitness Scaled Chaotic Artificial Bee Colony (FSCABC)
    • Dynamically Dimensioned Search algorithm (DDS)
    • Pareto Archived - Dynamically Dimensioned Search algorithm (PA-DDS)
    • Fast and Elitist Multiobjective Genetic Algorithm (NSGA-II)
  • 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-Sutcliffe (NSE)
    • logarithmic Nash-Sutcliffe (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)
    • Non-parametric Kling-Gupta Efficiency (KGE_non_parametric)
  • 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
    • log-normal
    • Chi-Square
    • Exponential
    • Gamma
    • Wald
    • Weibull
  • 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

Classical Python options exist to install SPOTPY:

From PyPi:

pip install spotpy

From Conda-Forge:

conda config --add channels conda-forge
conda config --set channel_priority strict
conda install spotpy

From Source:

python setup.py install

Support

  • Documentation: https://spotpy.readthedocs.io/en/latest/

  • Feel free to contact the authors of this tool for any support questions.

  • Please contact the authors in case of any bug.

  • If you use this package for a scientific research paper, please cite SPOTPY. It is peer-reviewed.

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

Getting started

Have a look at https://github.com/thouska/spotpy/tree/master/spotpy/examples and https://spotpy.readthedocs.io/en/latest/getting_started/

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.md
  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

Papers citing SPOTPY

See Google Scholar for a continuously updated list.

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.6.7.tar.gz (7.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spotpy-1.6.7-py3-none-any.whl (7.0 MB view details)

Uploaded Python 3

File details

Details for the file spotpy-1.6.7.tar.gz.

File metadata

  • Download URL: spotpy-1.6.7.tar.gz
  • Upload date:
  • Size: 7.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spotpy-1.6.7.tar.gz
Algorithm Hash digest
SHA256 50cc0a53c4518d81f5b02580a6eee98c16da48a21dde59a90fe2ed40a1413edd
MD5 fe8fb14619e58af544b0cbeedd3b2b81
BLAKE2b-256 af84ac8c24992425eb8eb0163181ef1afdada5c64aac333f50291aaf010c283a

See more details on using hashes here.

File details

Details for the file spotpy-1.6.7-py3-none-any.whl.

File metadata

  • Download URL: spotpy-1.6.7-py3-none-any.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spotpy-1.6.7-py3-none-any.whl
Algorithm Hash digest
SHA256 add77c4e17f49ecf54865a0f04008aee375d0c64c09a0fe6b3be392f7a280808
MD5 ecd262eff9cb40a3571a65e18947ce9a
BLAKE2b-256 5bb2a7f0d059c664b5fcdf4529df0e15d5075289146e04007fe8c7236051b7c7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.6.7 This release

2 files

1.6.6

2 files

1.6.4

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.14

2 files

1.5.13

2 files

1.5.12

2 files

1.5.11

1 file

1.5.10

2 files

1.5.9

1 file

1.5.8

3 files

1.5.7

3 files

1.5.6

3 files

1.5.5

3 files

1.5.4

3 files

1.5.3

3 files

1.5.2

3 files

1.5.1

3 files

1.5.0

3 files

1.4.6

3 files

1.4.5

3 files

1.4.4

3 files

1.4.3

3 files

1.4.2

3 files

1.4.1

3 files

1.4.0

3 files

1.3.30

3 files

1.3.29

3 files

1.3.28

3 files

1.3.27

3 files

1.3.26

3 files

1.3.25

3 files

1.3.23

3 files

1.3.22

3 files

1.3.21

3 files

1.3.20

3 files

1.3.19

3 files

1.3.18

3 files

1.3.17

3 files

1.3.16

3 files

1.3.15

3 files

1.3.14

3 files

1.3.13

3 files

1.3.12

3 files

1.3.11

3 files

1.3.10

3 files

1.3.9

3 files

1.3.8

3 files

1.3.7

3 files

1.3.6

3 files

1.3.4

3 files

1.3.3

3 files

1.3.2

2 files

1.3.1

3 files

1.3.0

3 files

1.2.38

3 files

1.2.37

3 files

1.2.36

3 files

1.2.35

3 files

1.2.34

3 files

1.2.33

3 files

1.2.32

3 files

1.2.31

3 files

1.2.30

3 files

1.2.29

3 files

1.2.27

3 files

1.2.26

3 files

1.2.25

3 files

1.2.24

3 files

1.2.23

3 files

1.2.22

3 files

1.2.21

3 files

1.2.20

3 files

1.2.19

3 files

1.2.18

3 files

1.2.17

3 files

1.2.16

3 files

1.2.15

3 files

1.2.14

3 files

1.2.13

3 files

1.2.12

3 files

1.2.11

3 files

1.2.10

3 files

1.2.9

3 files

1.2.8

3 files

1.2.7

3 files

1.2.6

3 files

1.2.5

3 files

1.2.4

3 files

1.2.3

3 files

1.2.2

3 files

1.2.1

3 files

1.2.0

3 files

1.1.5

3 files

1.1.4

3 files

1.1.3

3 files

1.1.2

3 files

1.1.1

3 files

1.1.0

3 files

1.0.13

3 files

1.0.12

3 files

1.0.11

3 files

1.0.10

3 files

1.0.9

3 files

1.0.8

3 files

1.0.7

3 files

1.0.6

3 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page