Skip to main content

EFlowCalc: A Calculator of Streamflow Characteristics in Python

Project description

PyPI Version DOI License: GPL v3 GitHub Actions Test Workflow Status

eflowcalc is an open-source calculator of ecological streamflow characteristics in Python. It is licensed under GNU GPL-3.0. The package currently gives the Python scientific community access to 159 ecologically relevant streamflow characteristics inventoried by Olden and Poff (2003). A key strength of eflowcalc is the vectorisation of all calculations (using numpy, and therefore C code in the background) which makes for very efficient computation of the streamflow characteristics.

If you are using eflowcalc, please consider citing the software as follows (click on the link to get the DOI of a specific version):

Hallouin, T. (XXXX). EFlowCalc: Ecological Streamflow Characteristics Calculator (Version X.X.X). Zenodo.

Brief overview of the API

from datetime import datetime, timedelta
import numpy as np
import eflowcalc as efc

datetimes = [datetime(2010, 1, 1) + timedelta(days=d) for d in range(3652)]
streamflows = np.random.uniform(3, 50, 3652)
drainage_area = 120.7

ma41 = efc.calculator(efc.ma41, datetimes, streamflows, drainage_area)

ma41, dh4, ra7 = efc.calculator((efc.ma41, efc.dh4, efc.ra7),
                                datetimes, streamflows, drainage_area)

Streamflow characteristics available

The streamflow characteristics currently available in eflowcalc are as follows:

  • Magnitude of flow events
    • Average flow events: ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12, ma13, ma14, ma15, ma16, ma17, ma18, ma19, ma20, ma21, ma22, ma23, ma24, ma25, ma26, ma27, ma28, ma29, ma30, ma31, ma32, ma33, ma34, ma35, ma36, ma37, ma38, ma39, ma40, ma41, ma42, ma43, ma44, ma45
    • Low flow events: ml1, ml2, ml3, ml4, ml5, ml6, ml7, ml8, ml9, ml10, ml11, ml12, ml13, ml14, ml15, ml16, ml17, ml18, ml19, ml20, ml21, ml22
    • High flow events: mh1, mh2, mh3, mh4, mh5, mh6, mh7, mh8, mh9, mh10, mh11, mh12, mh13, mh14, mh15, mh16, mh17, mh18, mh19, mh20, mh21, mh22, mh23
  • Frequency of flow events
    • Low flow events: fl1, fl2, fl3
    • High flow events: fh1, fh2, fh3, fh4, fh5, fh6, fh7, fh8, fh9, fh10
  • Duration of flow events
    • Low flow events: dl1, dl2, dl3, dl4, dl5, dl6, dl7, dl8, dl9, dl10, dl11, dl12, dl13, dl14, dl15, dl16, dl17, dl18, dl19, dl20
    • High flow events: dh1, dh2, dh3, dh4, dh5, dh6, dh7, dh8, dh9, dh10, dh11, dh12, dh13, dh14, dh15, dh16, dh17, dh18, dh19, dh20, dh21
  • Timing of flow events
    • Average flow events: ta1, ta2
    • Low flow events: tl1, tl2
    • High flow events: th1, th2
  • Rate of change in flow events
    • Average flow events: ra1, ra2, ra3, ra4, ra5, ra6, ra7, ra8, ra9


The computations implemented in eflowcalc are partially inspired by the work of Henriksen et al. (2006), however eflowcalc is neither endorsed by these authors nor by the U.S. Geological Survey.


Early versions of this tool were developed with the financial support of Ireland’s Environmental Protection Agency (Grant Number 2014-W-LS-5).

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

eflowcalc-0.1.0.tar.gz (33.4 kB view hashes)

Uploaded source

Built Distribution

eflowcalc-0.1.0-py3-none-any.whl (37.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page