thouska / spotpy

A Statistical Parameter Optimization Tool
https://spotpy.readthedocs.io/en/latest/
MIT License
247 stars 149 forks source link

spotpy

A Statistical Parameter Optimization Tool for Python


PyPI Version Python Versions Build Status License Coverage Status Documentation Status DOI

Purpose

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

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

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.