Skip to main content

An auto-calibration tool for environmental models based on heuristic algorithms and uncertainty estimation theory.

Project description

PyCUP

This is an open-source package designed for (environmental) model calibration and uncertainty analysis. The current version is the very first version, we welcome all comments, suggestions, and improvements.

v 0.1.4 Update

The new module named pycup.integrate is designed for a better integration with other current existing packages for a more flexible and convenient calibration process. In the current version, the package supports the integration with spotpy (https://github.com/thouska/spotpy). The current integration has the following features:

  1. The csv and hdf5 database generated by spotpy can be converted to a pycup.save.RawDataSaver (calibration result file/object) for carrying out the post-processing in pycup.
  2. The pycup.save.RawDataSaver can be converted to a spotpy csv or hdf5 databse for using the functionalities in it.
  3. The model setup object can be converted to the lower boundary, upper boundary, and the objective function that are required to be defined to carry out a pycup calibration process.

What does it have

(1) For model calibration/optimization

  1. Single-objective heuristic algorithms including PSO, GWO, MFO, SOA, SCA, SSA, TSA, and WOA.
  2. Multi-objective heuristic algorithms including MOPSO, MODE, and NSGA-II.
  3. Elite opposition strategy modified heuristic algorithms -- with better optimum search abilities.
  4. Statistic based-method LHS-GLUE.

(2) For sensitivity & uncertainty analysis

  1. Likelihood uncertainty estimation used in the GLUE framework for the parameter uncertainty analysis/prediction uncertainty estimation.
  2. The frequency based-uncertainty estimation method for the prediction uncertainty estimation.
  3. The multi-linear regression method for the all-at-a-time parameter sensitivity based on statmodels.

(3) Other convenient features

  1. Multi-processing calibration.
  2. Recording and resuming during the calibration task.
  3. Several result plotting functions.
  4. A special simulation result object for multi-station & multi-event results (of environmental models) in pycup.ResLib.

How to install

​ The project has been uploaded onto the PyPI https://pypi.org/project/pycup/ . Or install the .whl file in the dist folder.

pip install pycup

How to use

​ Here is a simple example. For more details, please see the documentation.

import pycup as cp
import numpy as np

def uni_fun1(X):
	# X for example np.array([1,2,3,...,30])
    fitness = np.sum(np.power(X,2)) + 1 # example: 1.2
    result = fitness.reshape(1,-1) # example ([1.2,])

    return fitness,result

lb = -100 * np.ones(30)
ub = 100 * np.ones(30)
cp.SSA.run(pop = 1000, dim = 30, lb = lb, ub = ub, MaxIter = 30, fun = uni_fun1)

Example SWMM (Storm Water Management Model) calibration projects

IMPORTANT: PLEASE OPEN YOUR PYCHARM OR COMMAND LINE WITH THE ADMINISTRATOR RIGHTS BEFORE EXECUTING THE EXAMPLE PROJECT

Location: https://github.com/QianyangWang/PyCUP

  1. The example in folder 'Example01-GLUE' contains an SWMM calibration project using single-processing GLUE. Install the dependencies (for example: pip install swmm-api==0.2.0.18.3, pip install pyswmm). Execute the 'Calibrate.py' to calibrate the model. Then, execute the 'PostProcessing.py' for uncertainty analysis.
  2. The example in folder 'Example02-multiprocessing' contains an SWMM calibration project using multi-processing EOGWO.
  3. The example in folder 'Example03-multiobjective' contains an SWMM multi-objective calibration project using EOMOPSO.
  4. The example in folder 'Example04-validation&prediction' shows how to use our (Ensemble)Validator/(Ensemble)Predictor objects for the validation and prediction of the model using the calibrated parameter (set).
  5. The example in folder 'Example05-multi-station&event' shows how to use the pycup.Reslib.SimulationResult object for the storage of multi-station & multi-event simulation results, as well as the further analysis using them.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycup-0.1.4.tar.gz (868.1 kB view details)

Uploaded Source

Built Distribution

pycup-0.1.4-py3-none-any.whl (890.8 kB view details)

Uploaded Python 3

File details

Details for the file pycup-0.1.4.tar.gz.

File metadata

  • Download URL: pycup-0.1.4.tar.gz
  • Upload date:
  • Size: 868.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.3

File hashes

Hashes for pycup-0.1.4.tar.gz
Algorithm Hash digest
SHA256 56d0da02a9e97a713aafd064d139e5d220e1a493aee1c5497c63322e990efe2c
MD5 45d356e5bad6663effc49bc282e476d1
BLAKE2b-256 e679b907161d9df034da6f62788848da3400b8060095a3bb08c5005315d09265

See more details on using hashes here.

File details

Details for the file pycup-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pycup-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 890.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.3

File hashes

Hashes for pycup-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5ab0e8eaed7beb94af994e20c92bf52bbc8a0aecd00b8804ce6cfecf3b171ffb
MD5 b96914e5a46e6d25ee1962a5b86da7f0
BLAKE2b-256 fd78ddccab49fed42af3e068fc300bd85a0be99eaaac4a701becc47a49447438

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page