Swmm Params
/install swmm-params
SWMM Params (MVP mapping layer)
Part of Agentic SWMM — install the project first for the executable toolchain (aiswmm CLI, SWMM solver, MCP servers).
What this skill provides
- Transparent CSV-to-JSON mapping for:
- land use class -> SWMM
[SUBCATCHMENTS]+[SUBAREAS]defaults - soil texture/type -> SWMM
[INFILTRATION](Green-Ampt) defaults
- land use class -> SWMM
- Deterministic, auditable outputs with explicit fallback usage and unmatched-key reporting.
- Optional merge step that emits one builder-ready JSON artifact.
Scripts
scripts/landuse_to_swmm_params.py- maps
subcatchment_id + landuse_classto runoff/subarea parameters
- maps
scripts/soil_to_greenampt.py- maps
subcatchment_id + soil_textureto Green-Ampt infiltration parameters
- maps
scripts/merge_swmm_params.py- merges outputs from the two mapping scripts into one JSON package for future
swmm-builder
- merges outputs from the two mapping scripts into one JSON package for future
Default lookup tables
By default, scripts read bundled lookup CSVs:
skills/swmm-params/references/landuse_class_to_subcatch_params.csvskills/swmm-params/references/soil_texture_to_greenampt.csv
You can override lookup paths with CLI flags.
Minimal input format
Land use input CSV:
- required columns:
subcatchment_id,landuse_class
Soil input CSV:
- required columns:
subcatchment_id,soil_texture
Example files are provided under examples/.
Outputs
Each mapper writes explicit JSON containing:
records(row-level audit trail)sections(SWMM-oriented lists keyed by subcatchment)unmatched_*lists (rows that used fallback)countssummary
The merge script writes:
sections(subcatchments,subareas,infiltration)by_subcatchment(combined record per subcatchment ID)incomplete_ids(IDs missing one or more sections)
CLI flags
All three scripts share these optional flags:
--strict— fail instead of using theDEFAULTfallback row when an input key is missing from the lookup table. Useful for auditable production runs where silent fallback would mask a data gap.
landuse_to_swmm_params.py also accepts:
--subcatchment-column \x3Ccol>— override the CSV column used as the subcatchment ID (default:subcatchment_id).--landuse-column \x3Ccol>— override the CSV column used as the land use class (default:landuse_class).
soil_to_greenampt.py also accepts:
--subcatchment-column \x3Ccol>— override the CSV column used as the subcatchment ID (default:subcatchment_id).--soil-column \x3Ccol>— override the CSV column used as the soil texture/type (default:soil_texture).
MCP
MCP wrapper location:
mcp/swmm-params/server.js
Exposed tools:
map_landuse(inputCsvPath, optionallookupCsvPath,outputPath)map_soil(inputCsvPath, optionallookupCsvPath,outputPath)merge_params(landuseJsonPath,soilJsonPath,outputPath)
Quick start:
npm --prefix mcp/swmm-params install
npm --prefix mcp/swmm-params run start
MVP limitations
- Lookup mapping is key-based only (no spatial interpolation or fuzzy matching).
- A fallback row is expected in lookup tables (
DEFAULTfor land use,-orDEFAULTfor soil). - No unit conversion or calibration logic is included here.
- This skill only maps parameters; it does not write a full SWMM
.inp.
Example commands
python3 skills/swmm-params/scripts/landuse_to_swmm_params.py \
--input skills/swmm-params/examples/landuse_input.csv \
--output runs/swmm-params/example_landuse.json
python3 skills/swmm-params/scripts/soil_to_greenampt.py \
--input skills/swmm-params/examples/soil_input.csv \
--output runs/swmm-params/example_soil.json
python3 skills/swmm-params/scripts/merge_swmm_params.py \
--landuse-json runs/swmm-params/example_landuse.json \
--soil-json runs/swmm-params/example_soil.json \
--output runs/swmm-params/example_builder_params.json
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install swmm-params - After installation, invoke the skill by name or use
/swmm-params - Provide required inputs per the skill's parameter spec and get structured output
What is Swmm Params?
Deterministic mapping from land use and soil texture to SWMM runoff/subarea and Green-Ampt infiltration parameters. Use when generating first-pass subcatchme... It is an AI Agent Skill for Claude Code / OpenClaw, with 38 downloads so far.
How do I install Swmm Params?
Run "/install swmm-params" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Swmm Params free?
Yes, Swmm Params is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Swmm Params support?
Swmm Params is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Swmm Params?
It is built and maintained by Zhonghao Zhang (@zhonghao1995); the current version is v0.7.3.