pipedream
Interactive hydrodynamic solver for sewer/stormwater networks.
https://github.com/mdbartos/pipedream
Category: Natural Resources
Sub Category: Water Supply and Quality
Last synced: about 20 hours ago
JSON representation
Repository metadata
🚰 Interactive hydrodynamic solver for pipe and channel networks
- Host: GitHub
- URL: https://github.com/mdbartos/pipedream
- Owner: mdbartos
- License: gpl-3.0
- Created: 2019-03-23T23:14:13.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-02-28T21:57:45.000Z (about 2 months ago)
- Last Synced: 2025-04-25T12:45:36.824Z (3 days ago)
- Language: Python
- Homepage: https://mdbartos.github.io/pipedream
- Size: 22 MB
- Stars: 82
- Watchers: 5
- Forks: 18
- Open Issues: 36
- Releases: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
pipedream 🚰 ðŸ’
An interactive hydrodynamic solver for sewer/stormwater networks.
About
Pipedream is a physically-based sewer/stormwater model designed for real-time applications. The pipedream toolkit consists of four major components:
- A hydraulic solver based on the 1D Saint-Venant equations.
- An infiltration solver based on the Green-Ampt formulation.
- A water quality solver based on the 1D advection-reaction-diffusion equation (experimental).
- An interactive simulation manager that facilitates real-time data assimilation and control.
Example use-cases for pipedream include:
- Real-time detection and forecasting of urban flooding.
- Implementation of real-time control strategies for combined sewer overflows.
- Stormwater asset management and detection of maintenance emergencies.
- Data-driven water quality assessment.
Documentation
Installation
Use pip
to install pipedream-solver
via pypi:
$ pip install pipedream-solver
Currently, only Python 3 is supported.
Dependencies
The following dependencies are required to install and use the pipedream toolkit:
- numpy (>= 1.18)
- pandas (>= 0.25)
- scipy (>= 1.5)
- numba (>= 0.40)
- matplotlib (>= 3.0)
Listed version numbers have been tested and are known to work (this does not necessarily preclude older versions).
A Minimal Example
Import modules and load data
# Import modules
import pandas as pd
from pipedream_solver.hydraulics import SuperLink
from pipedream_solver.simulation import Simulation
# Specify data path
input_path = './data/six_pipes'
# Get model components
superjunctions = pd.read_csv(f'{input_path}/superjunctions.csv')
superlinks = pd.read_csv(f'{input_path}/superlinks.csv')
junctions = pd.read_csv(f'{input_path}/junctions.csv')
links = pd.read_csv(f'{input_path}/links.csv')
# Read input data
Q_in = pd.read_csv(f'{input_path}/flow_input.csv', index_col=0)
H_bc = pd.read_csv(f'{input_path}/boundary_stage.csv', index_col=0)
Run superlink
# Instantiate superlink model
superlink = SuperLink(superlinks, superjunctions, links, junctions)
# Set constant timestep (in seconds)
dt = 30
# Create simulation context manager
with Simulation(superlink, Q_in=Q_in, H_bc=H_bc) as simulation:
# While simulation time has not expired...
while simulation.t <= simulation.t_end:
# Step model forward in time
simulation.step(dt=dt, num_iter=1)
# Record internal depth and flow states
simulation.record_state()
# Print progress bar
simulation.print_progress()
[==================================================] 100.0% [0.82 s]
Plot results
See plotting code here.
Acknowledgments
Hydraulic solver based on the SUPERLINK scheme proposed by Zhong Ji (1998).
Ji, Z. (1998). General Hydrodynamic Model for Sewer/Channel Network Systems.
Journal of Hydraulic Engineering, 124(3), 307–315.
doi: 10.1061/(asce)0733-9429(1998)124:3(307)
Owner metadata
- Name: Matt Bartos
- Login: mdbartos
- Email:
- Kind: user
- Description: Assistant Professor of Civil Engineering at UT Austin
- Website: future-water.github.io
- Location: Austin, TX
- Twitter:
- Company: @future-water, @ESIPFed
- Icon url: https://avatars.githubusercontent.com/u/8175317?u=b970ca0496ab3a237fa1346deb7762e0365835b3&v=4
- Repositories: 33
- Last ynced at: 2024-06-11T15:38:40.608Z
- Profile URL: https://github.com/mdbartos
GitHub Events
Total
- Watch event: 8
- Push event: 4
- Fork event: 1
Last Year
- Watch event: 8
- Push event: 4
- Fork event: 1
Committers metadata
Last synced: 7 days ago
Total Commits: 394
Total Committers: 3
Avg Commits per committer: 131.333
Development Distribution Score (DDS): 0.211
Commits in past year: 41
Committers in past year: 2
Avg Commits per committer in past year: 20.5
Development Distribution Score (DDS) in past year: 0.22
Name | Commits | |
---|---|---|
Matt Bartos | m****s@u****u | 311 |
minsky97 | 9****7 | 46 |
Jeil Oh | 8****h | 37 |
Committer domains:
- umich.edu: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 46
Total pull requests: 26
Average time to close issues: 7 months
Average time to close pull requests: 2 months
Total issue authors: 6
Total pull request authors: 4
Average comments per issue: 0.35
Average comments per pull request: 0.42
Merged pull request: 22
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 1
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- mdbartos (41)
- Stickman984 (1)
- michaeltryby (1)
- meghnathomas (1)
- schoeller (1)
- tianyongsen (1)
Top Pull Request Authors
- mdbartos (19)
- minsky97 (3)
- jeiloh (2)
- meghnathomas (2)
Top Issue Labels
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 179 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 5
- Total maintainers: 1
pypi.org: pipedream-solver
🚰 Interactive hydrodynamic solver for pipe and channel networks
- Homepage: https://mdbartos.github.io/pipedream
- Documentation: https://pipedream-solver.readthedocs.io/
- Licenses: gpl-3.0
- Latest release: 0.2.2 (published almost 2 years ago)
- Last Synced: 2025-04-26T13:01:05.140Z (2 days ago)
- Versions: 5
- Dependent Packages: 0
- Dependent Repositories: 1
- Downloads: 179 Last month
-
Rankings:
- Dependent packages count: 7.31%
- Stargazers count: 8.867%
- Forks count: 9.37%
- Average: 16.005%
- Dependent repos count: 22.088%
- Downloads: 32.389%
- Maintainers (1)
Dependencies
- matplotlib *
- numba *
- numpy *
- pandas *
- scipy *
- actions/checkout v3 composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
Score: 11.0677939443996