CRHM

Configures, runs, and validates CRHM cold-regions hydrological simulations from HRU setup to discharge scoring.

155|6|Updated Mar 31, 2026
One-click install
npx skills add https://github.com/lzwei196/KISS-Knowledge-Infrastructure-for-Scientific-Simulation --skill crhm-lzwei196
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: CRHM
Source: https://github.com/lzwei196/KISS-Knowledge-Infrastructure-for-Scientific-Simulation/tree/main/models/CRHM
Command: npx skills add https://github.com/lzwei196/KISS-Knowledge-Infrastructure-for-Scientific-Simulation --skill crhm-lzwei196

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Running the CRHM cold-regions hydrological model correctly requires deep operational knowledge: HRU delineation, .obs/.prj file formats, module-chain selection, unit conversions, and silent failure modes that produce plausible-looking but wrong results. This Skill packages that expertise so an AI agent can build, execute, validate, and calibrate real CRHM simulations without substituting approximations. ## Core Features & Use Cases - Six-stage pipeline: HRU basin setup from DEM/land cover, forcing conversion to .obs format, landscape-aware module-chain selection, .prj generation with physically derived parameters, execution with output parsing/plotting, and VIC coupling. - Silent-error defense: 34 diagnostic triplets map symptoms to remedies for known traps such as specific-humidity-vs-RH misinterpretation, silent parameter clamping, and Shared-vs-module parameter scoping. - Calibration contract: A pinned, fail-closed calibration runner (calib_run.py) scores basinflow_s against HYDAT observations with NSE/KGE/PBIAS over a 26-parameter literature-cited pool. - Use Case: Simulate discharge for a mountain basin by converting NASA POWER forcing to .obs, auto-detecting the mountain module chain, deriving parameters from HWSD soil data, running the CRHM binary, and validating NSE against a HYDAT gauge. ## Quick Start Ask the agent to run the preflight check and then execute the CRHM quick-start pipeline for your basin, from HRU creation through validation and plotting.

Frequently Asked Questions about CRHM

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a CRHM hydrological simulation for my basin?

Follow the six-stage pipeline: create HRUs from a DEM and land cover, convert forcing to .obs format, select a module chain by landscape type, generate and validate the .prj file, then run the CRHM binary and parse outputs. Always run preflight_check.py first to verify the binary and data.

How do I convert VIC forcing data to CRHM .obs format?

Use tools/s2_observation_data/convert_vic_to_obs.py, which handles the critical specific-humidity-to-relative-humidity conversion via the Tetens formula plus precipitation rate scaling. Then validate the result with validate_obs_file.py before running the model.

Why does my CRHM run complete but produce wrong snow or discharge results?

CRHM has silent failure modes: humidity passed as kg/kg instead of percent zeroes sublimation, and parameters outside declared ranges are clamped without warning. Check diagnostics/triplets.yaml for the matching symptom and verify max(RH) exceeds 1.0 in your .obs file.

Which CRHM module chain should I use for a mountain basin?

Use the mountain chain including Slope_Qsi for slope radiation correction, walmsley_wind for topographic wind amplification, pbsm, ebsm, crack, evap, Soil, and Netroute. The select_modules.py tool auto-detects basin type from the HRU config when relief exceeds 500 m.

Can CRHM output be coupled with VIC model results?

Yes, stage s6 merges CRHM and VIC outputs using merge_crhm_vic.py, but you must define a process ownership table first. Both models compute snowmelt, ET, and soil moisture, so double-counting processes produces water balance errors over 100%.

What are the limitations of CRHM for hydrological modelling?

CRHM is HRU-based rather than grid-distributed, does not perform flood inundation modelling, and has no built-in automatic calibration. Decadal runs also carry a roughly 4-5% un-closable water-balance residual from Netroute lag-storage states that lack output variables.