| name | hms_update_met-models |
| shared_corpus | true |
| harness_scope | shared |
| source_owner | gpt-cmdr |
| security_review | internal |
| description | Updates HEC-HMS meteorologic model files (.met) including precipitation methods,
gage assignments, evapotranspiration, and Atlas 14 frequency storms. Use when
configuring precipitation, assigning gages to subbasins, updating TP40 to Atlas 14,
modifying ET methods, or cloning met models for scenario comparison.
Trigger keywords: met model, precipitation, gage assignment, Atlas 14, TP40,
frequency storm, evapotranspiration, ET, meteorologic model, update precip.
|
Updating Meteorologic Models
When This Skill Is Activated
You are the meteorologic model specialist. Route the user's request through the decision tree below.
Decision Tree
- User wants to READ met configuration → "Reading Met Configuration"
- User wants to MODIFY precipitation depths → "Modifying Precipitation"
- User wants to ASSIGN gages → "Gage Assignment"
- User wants Atlas 14 update → "Atlas 14 Workflow"
- User wants to CLONE met for comparison → Delegate to
hms_clone_components skill
- Complex met automation → Delegate to
met-model-specialist agent
Reading Met Configuration
- Determine which
.met file to work with
- Read the precipitation method:
from hms_commander import HmsMet
method = HmsMet.get_precipitation_method("project.met")
- Read gage assignments:
assignments = HmsMet.get_gage_assignments("project.met")
- Read current precipitation depths (for frequency storms):
depths = HmsMet.get_precipitation_depths("project.met")
- Display results to the user
Modifying Precipitation
- Read current depths first — show the user what exists:
current = HmsMet.get_precipitation_depths("project.met")
- Confirm the new values with the user
- Apply the change:
HmsMet.set_precipitation_depths("project.met", [2.5, 3.1, 3.8, 4.5, 5.2, 6.0])
- Re-read to verify:
HmsMet.get_precipitation_depths("project.met")
Gage Assignment
- Read current assignments:
HmsMet.get_gage_assignments("project.met")
- Apply new assignment:
HmsMet.set_gage_assignment("project.met", "Subbasin1", "Gage1")
- For bulk assignment:
for sub, gage in zip(subbasins, gages):
HmsMet.set_gage_assignment("project.met", sub, gage)
Atlas 14 Workflow
Automated (recommended): Delegate to the production agent at .claude/agents/hms_atlas14/AGENT.md
Manual steps:
- Get project coordinates:
from hms_commander import HmsGeo
lat, lon = HmsGeo.get_project_centroid_latlon("project.geo")
- Download Atlas 14 depths from NOAA for those coordinates
- Clone the met model first (preserve baseline):
HmsMet.clone_met("Baseline_Met", "Atlas14_Met", hms_object=hms)
- Update the clone with Atlas 14 depths:
HmsMet.set_precipitation_depths("project/Atlas14_Met.met", atlas14_depths)
- Clone the run to use the new met → delegate to
hms_clone_components skill
If Something Goes Wrong
- Depths not updating: Check that the met file uses a frequency storm method that stores depths
- Gage not found: Verify gage name matches exactly (case-sensitive)
- Wrong met file: If project has multiple met files, confirm which one the user intends
Primary Sources
hms_commander/HmsMet.py — Complete API
hms_agents/hms_atlas14/ — Automated Atlas 14 updates
.claude/rules/hec-hms/met-files.md — Met file patterns
Implementing Agent
For complex met model operations, delegate to:
.claude/agents/met-model-specialist.md
Delegation Points
- Run after updating →
hms_execute_runs skill
- Clone for comparison →
hms_clone_components skill
- Full Atlas 14 automation →
.claude/agents/hms_atlas14/AGENT.md