Skip to main content

Simulation Sandbox for the development and evaluation of stormwater control algorithms

Project description

Open-Storm's Benchmarking Library Smarter Stormwater Networks

Build Status License: GPL v3 Code style: black

Overview

This repo has been developed in an effort to systematize quantitative analysis of stormwater control algorithms. It is a natural extension of the the Open-Storm mission to open up and ease access into the technical world of smart stormwater systems. Our initial efforts allowed us to develop open source and free tools for anyone to be able to deploy flood sensors, measure green infrastructure, or even control storm or sewer systems. Now we have developed a tool to be able to test the performance of algorithms used to coordinate these different sensing and control technologies that have been deployed throughout urban water systems.

For reference on this Benchmarking we refer the reader to our manuscript describing the motivation behind the Benchmarking effort and details on the specifics behind this corresponding repo. In general, this repo provides three components:

  1. A library of scenarios that are built to allow for systematic quantitative evaluation of stormwater control algorithms,
  2. A stormwater hydraulic simulator named pyswmm_lite and forked heavily from OWA's SWMM and pyswmm, and
  3. An environment script that links the pyswmm_lite simulator to the scenarios, and can be edited/updated by users who might want to interface the scenarios with other stormwater simulator software (the environment script is included in pyswmm-lite).

Installation

To use the scenarios we have developed with our default stormwater simulator, two installations must occur: (i) an installation of pyswmm_lite and (ii) the corresponding Benchmarking library. Additionally, both of these also require python3 and numpy.

Before installation, we encourage users to consider setting up their Python environments using the virtualenv/venv packages for beetter control and organization of various Python packages and libraries. Details on these packages can be viewed here and here, with an additional tool called virtualenvwrapper available here.

The Easy Installation instructions below attempts to install both pyswmm_lite, the Benchmarking library, and the corresponding dependencies (if not yet installed) altogether, but if you run into any errors or would like demarcated installation instructions, follow the additional instructions presented in the Alternative Installation section.

Easy Installation

The easiest way to install the Benchmarking library and its dependencies is to run the following:

pip3 install git+https://github.com/kLabUM/Benchmarking

In case you encounter trouble in installing pyswmm_lite, then you can use the following set of commands instead:

git clone https://github.com/kLabUM/pyswmm_lite.git
cd pyswmm_lite
pip3 install .

Alternative Installation

An alternative method to install the library is the following:

  1. Clone/download the zip file of the Benchmarking repository from https://github.com/kLabUM/Benchmarking.git
  2. Move the downloaded Benchmarking to your desired directory
  3. Open your python client (Anaconda or generic python) from within the Benchmarking folder and run pip3 install .

Repeat the same method for pyswmm_lite if needed.

NOTE : You could also you pip instead of pip3

Raise an issue, if you run into any issues installing or working with the library.

TODO : The beta (uva's) references tides and hurricane Matthew... If we wanted to be thorough, we should change those.

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

pystorms-0.1.1.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

pystorms-0.1.1-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file pystorms-0.1.1.tar.gz.

File metadata

  • Download URL: pystorms-0.1.1.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.4

File hashes

Hashes for pystorms-0.1.1.tar.gz
Algorithm Hash digest
SHA256 903a6736e722c3f17233265e18793f9481357e1b1c1a86a7dd40bb9c283d5b7b
MD5 8fc372ced9cf2eb33ba9c85376823fd8
BLAKE2b-256 85c74a027d3e409a982ef99d328755f11d3cdba4760721b4bc340aa9bd393ac1

See more details on using hashes here.

File details

Details for the file pystorms-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pystorms-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.4

File hashes

Hashes for pystorms-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f931299e09cf3b5d5b0906a4da5f3b61a1fd37810dd23dc0f97e2b41a348d82
MD5 30512aa0851514cdc3ccb299ece977a7
BLAKE2b-256 6d5b366e73e465c9a26cfb9cd9d25d08785556fa6f9c1f6170802783bb4b7505

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