Skip to content

zengtianli/hydro-toolkit

Repository files navigation

🌊 Hydro Toolkit

English | 中文

Water resource calculation toolkit — reservoir scheduling, pollution capacity, irrigation demand, water efficiency assessment, and more.

Live Demo License: MIT Python 3.9+


Try it now — no install needed

All-in-one Or try each tool standalone
https://hydro.tianlizeng.cloud See links in the table below

Upload your data, pick a tool, download the result. Zero setup. All tools include sample data for instant demo.


What can Hydro Toolkit do?

Tool What it does Input Output Try it
Pollution Capacity River/reservoir pollution capacity with tributary segmentation Excel (flow + zone params) Excel (monthly capacity) Demo
Reservoir Scheduling Multi-reservoir cascaded hydropower dispatch optimization Excel (inflow + reservoir params) Excel (daily schedule) Demo
Water Efficiency AHP + CRITIC + TOPSIS assessment for industrial parks Excel (3-cycle indicators) Excel (scores + ranking) Demo
Water Annual Report Query Zhejiang province water resource annual data (2019-2024) Built-in CSV dataset Excel/CSV export Demo
Irrigation Demand Paddy + dryland irrigation water balance simulation TXT (rainfall + evaporation) Excel (daily demand) Demo
District Scheduling Regional water allocation for 19 districts with sluice cascade TXT (inflow + demand) TXT/ZIP (balance results) Demo
Geocoding Batch geocoding/reverse geocoding via Amap API Excel (coordinates/addresses) Excel (results) Demo
Rainfall Runoff Lake irrigation demand from rainfall data (6-step pipeline) TXT (rainfall + runoff) CSV (hourly demand) Demo
Risk Map Data Risk map data table auto-filling (GeoJSON → Excel ETL) GeoJSON + CSV Excel (18+ sheets) Demo

Screenshots

Homepage

Homepage

Tools

Pollution Capacity Reservoir Scheduling
Water Efficiency Water Annual Report
Irrigation Demand District Scheduling
Geocoding Rainfall Runoff
Risk Map Data

Plugin Architecture

hydro-toolkit (Host)          Plugins (git clone)
┌─────────────────┐     ┌──────────────────────┐
│  app.py         │     │  hydro-capacity/     │
│  core/          │────▶│  hydro-reservoir/    │
│  plugins/       │     │  hydro-efficiency/   │
│    hydro-xxx/   │     │  hydro-annual/       │
│    hydro-yyy/   │     │  hydro-irrigation/   │
└─────────────────┘     │  hydro-district/     │
                        └──────────────────────┘

The Toolkit is a host shell with zero business logic. Each tool is an independent plugin discovered at runtime via plugin.yaml. You can use them in the Toolkit or run each one standalone.

Plugin Description Repo Standalone Demo
🌊 Pollution Capacity River/reservoir pollution capacity calculator hydro-capacity hydro-capacity.tianlizeng.cloud
⚡ Reservoir Scheduling Cascade hydropower scheduling optimizer hydro-reservoir hydro-reservoir.tianlizeng.cloud
💧 Water Efficiency AHP+CRITIC+TOPSIS assessment hydro-efficiency hydro-efficiency.tianlizeng.cloud
📊 Water Annual Report Zhejiang Province data query (2019–2024) hydro-annual hydro-annual.tianlizeng.cloud
🌾 Irrigation Demand Paddy + dryland water balance model hydro-irrigation hydro-irrigation.tianlizeng.cloud
🗺️ District Scheduling 19-district daily supply-demand balance hydro-district hydro-district.tianlizeng.cloud
📍 Geocoding Batch geocoding/reverse geocoding (Amap API) hydro-geocode hydro-geocode.tianlizeng.cloud
🌧️ Rainfall Runoff Lake irrigation demand from rainfall data hydro-rainfall hydro-rainfall.tianlizeng.cloud
⚠️ Risk Map Data Risk map data table auto-filling ETL hydro-risk hydro-risk.tianlizeng.cloud

Quick Start

git clone https://github.com/zengtianli/hydro-toolkit.git
cd hydro-toolkit
pip install -r requirements.txt
streamlit run app.py

Then go to Plugin Manager in the sidebar and paste any plugin repo URL to install it.

Install a Plugin

  1. Open the Toolkit in your browser
  2. Click Plugin Manager (⚙️) in the sidebar
  3. Paste a GitHub URL (e.g. https://github.com/zengtianli/hydro-capacity)
  4. Click Install — the plugin appears in the sidebar immediately

Tech stack

  • Python 3.9+ — calculation engine
  • Streamlit 1.36+ — web interface (plugin-based navigation)
  • pandas / numpy / scipy — data processing & numerical computation
  • plotly — interactive charts
  • openpyxl — Excel I/O

Key algorithms

Tool Method
Pollution Capacity One-dimensional steady-state model with tributary mixing: W = 31.536 × b × (Cs - C0×e^(-KL/u)) × (QKL/u) / (1 - e^(-KL/u))
Reservoir Scheduling Cascaded hydropower dispatch with water-level/storage interpolation (scipy)
Water Efficiency AHP subjective + CRITIC objective weighting, combined via α slider, TOPSIS ranking
Irrigation Demand Penman-Monteith ET₀ based paddy/dryland water balance with daily time step
District Scheduling Daily water balance across 19 districts with dynamic equilibrium zones and sluice cascade

Develop Your Own Plugin

See ARCHITECTURE.md for the full plugin specification, namespace package rules, and step-by-step guide.

Contributing

Issues and PRs are welcome. Please open an issue first to discuss changes.

License

MIT

About

Water resource calculation toolkit — reservoir scheduling, pollution capacity, irrigation demand, and more.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages