A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

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

README.md

pipedream 🚰 💭

Build Status Coverage Status Python 3.7 Docs Paper

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:

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.

Superlink Example

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


GitHub Events

Total
Last Year

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 Email Commits
Matt Bartos m****s@u****u 311
minsky97 9****7 46
Jeil Oh 8****h 37

Committer domains:


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

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/mdbartos/pipedream

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

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

setup.py pypi
  • matplotlib *
  • numba *
  • numpy *
  • pandas *
  • scipy *
.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
requirements.txt pypi

Score: 11.0677939443996