SWMM Params (MVP mapping layer)
SkillDev toolsDeterministic mapping from land use and soil texture to SWMM runoff/subarea and Green-Ampt infiltration parameters. Use when generating first-pass subcatchment parameter tables for swmm-builder.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the SWMM Params (MVP mapping layer) skill
What this skill tells your AI
The instructions your AI receives, as published by zhonghao1995/agentic-swmm-workflow in skills/swmm-params/SKILL.md and read by ahel’s review.
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 <col>— override the CSV column used as the subcatchment ID (default:subcatchment_id).--landuse-column <col>— override the CSV column used as the land use class (default:landuse_class).
soil_to_greenampt.py also accepts:
--subcatchment-column <col>— override the CSV column used as the subcatchment ID (default:subcatchment_id).--soil-column <col>— 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
Known 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
Signals
- GitHub stars
- 28
- Forks
- 13
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
swmm-params- Source
- github.com/zhonghao1995/agentic-swmm-workflow