Metadata-Version: 2.1
Name: smartpy
Version: 0.1.1
Summary: SMARTpy: an open-source rainfall-runoff model in Python
Home-page: https://github.com/ThibHlln/smartpy
Author: Thibault Hallouin, Eva Mockler, and Michael Bruen
Author-email: thibault.hallouin@ucdconnect.ie
License: GPLv3
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Natural Language :: English
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Description-Content-Type: text/markdown
Provides-Extra: with_spotpy
Provides-Extra: with_netcdf
Provides-Extra: with_all_extras
Provides-Extra: with_smartcpp
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: future
Provides-Extra: with_all_extras
Requires-Dist: netCDF4; extra == 'with_all_extras'
Requires-Dist: spotpy; extra == 'with_all_extras'
Requires-Dist: smartcpp; extra == 'with_all_extras'
Provides-Extra: with_netcdf
Requires-Dist: netCDF4; extra == 'with_netcdf'
Provides-Extra: with_smartcpp
Requires-Dist: smartcpp; extra == 'with_smartcpp'
Provides-Extra: with_spotpy
Requires-Dist: spotpy (>=1.3.27); extra == 'with_spotpy'

[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![PyPI Version](https://badge.fury.io/py/smartpy.svg)](https://pypi.python.org/pypi/smartpy)
[![Travis CI Build Status](https://www.travis-ci.org/ThibHlln/smartpy.svg?branch=master)](https://www.travis-ci.org/ThibHlln/smartpy)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/ThibHlln/smartpy?branch=master&svg=true)](https://ci.appveyor.com/project/ThibHlln/smartpy)

# SMARTpy - An open-source version of the rainfall-runoff model SMART in Python

SMARTpy is an open-source hydrological catchment model in Python. It is licensed under GNU GPL-3.0 (see [licence file](LICENCE.md) provided). SMART (Soil Moisture Accounting and Routing for Transport) is a top-down rainfall-runoff model composed of a soil moisture accounting component and linear routing components. It requires rainfall and potential evapotranspiration time series as inputs, it features a set of ten parameters, and it yields a discharge time series.

Mockler, E., Oâ€™Loughlin, F., and Bruen, M.: Understanding hydrological flow paths in conceptual catchment models using uncertainty and sensitivity analysis, *Computers & Geosciences*, 90, 66â€“77,[doi:10.1016/j.cageo.2015.08.015](https://dx.doi.org/10.1016/j.cageo.2015.08.015), 2016

## How to Install

SMARTpy is available on PyPI, so you can simply use pip:

    python -m pip install smartpy

Alternatively, you can download the source code (*i.e.* this repository) and use the command:

    python setup.py install

## Dependencies

SMARTpy requires the popular Python package `numpy` and `scipy` to be installed on the Python implementation where `smartpy` is installed. For Python 2 and 3 compatibilities, the package `future` is also required.
Additional optional dependencies include `netCDF4` if one wishes to use NetCDF files as input, and `smartcpp` if one wishes to use an accelerator module for the `SMART` model (it gives access to a [C++ extension for the SMART model](https://github.com/ThibHlln/smartcpp)).

## Model Specifications

### Model Inputs

* aerial rainfall time series [mm/time step]
* aerial potential evapotranspiration time series [mm/time step]

### Model Parameters

* T: rainfall aerial correction coefficient [-]
* C: evaporation decay parameter [-]
* H: quick runoff coefficient [-]
* D: drain flow parameter - fraction of saturation excess diverted to drain flow [-]
* S: soil outflow coefficient [-]
* Z: effective soil depth [mm]
* SK: surface routing parameter [hours]
* FK: inter flow routing parameter [hours]
* GK: groundwater routing parameter [hours]
* RK: river channel routing parameter [hours]

### Model Outputs

* discharge time series at catchment outlet [m<sup>3</sup>/s]

## Version History

* 0.1.0 [17 Jul 2018]: First version of SMARTpy

## Acknowledgment

This tool was developed with the financial support of Ireland's Environmental Protection Agency (Grant Number 2014-W-LS-5).

