VIC

Automates VIC hydrological model runs from basin shapefile to routed gauge discharge.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Setting up and running the VIC (Variable Infiltration Capacity) hydrological model for a new basin requires manually preparing grids, soil and vegetation parameters, meteorological forcing, global parameter files, and external routing — a multi-stage process where ordering mistakes and unit errors silently invalidate results. This Skill encodes the full operational pipeline so an agent can execute it reliably. ## Core Features & Use Cases - End-to-end basin pipeline: Staged tools (s1–s10) build the basin grid, soil parameters, vegetation parameters, CMFD/MSWX/NASA POWER forcing, global parameter file, VIC classic execution, and Lohmann routing to gauge discharge in m³/s. - Diagnostics and validation: A preflight check, 31 diagnostic triplets mapping error symptoms to remedies, a dag.yaml output contract, and cited validation conventions (NSE/PBIAS bars) gate every run. - Calibration support: A calibration contract with a 13-parameter literature-seeded pool, fail-closed observation contract, and DDS strategy for gauged basins. - Use Case: Provide a basin boundary shapefile and forcing data directory, and the Skill produces daily routed discharge at the gauge, scored against observed streamflow with documented reference basins (Tangnaihai, Harbin, Bengbu). ## Quick Start Run preflight_check.py in this KI directory, set the VIC_BASIN_NAME, VIC_BASIN_SHP, forcing, and outlet environment variables, then execute pipeline stages s1 through s10 in order to produce routed daily discharge for your basin.

Frequently Asked Questions about VIC

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

FAQPage Schema
How do I run the VIC hydrological model for a new basin?▼

Provide a basin boundary shapefile and forcing data, set the VIC_BASIN_NAME, VIC_BASIN_SHP, and related environment variables, then run pipeline stages s1 through s10 in order. Soil parameters must be generated before forcing because process_forcing.py reads grid coordinates from SOIL_PARAM_COMPLETE.txt.

How do I get discharge in m3/s from VIC model output?▼

VIC does not route internally; it outputs per-cell runoff and baseflow in millimeters. You must run the Lohmann route_1.0 binary via s5_routing/build_routing_param.py and s5_routing/run_routing.py to produce daily gauge discharge in m³/s.

What forcing data does the VIC model require?▼

VIC needs precipitation, air temperature, pressure, vapor pressure, shortwave and longwave radiation, and wind. The pipeline converts CMFD, MSWX, or NASA POWER data into per-cell 7-column ASCII forcing, handling unit conversions such as kg m-2 s-1 to mm per step and Kelvin to Celsius.

Why does VIC fail with FROZEN_SOIL is neither TRUE nor FALSE?▼

This error occurs when the global parameter file has a path after FROZEN_SOIL instead of a boolean value. Regenerate the file from the shipped template and verify FROZEN_SOIL is set to FALSE, or check diagnostics/triplets.yaml for the matching remedy.

Can VIC simulate frozen soil, snow bands, or lakes?▼

VIC 5.1.0 supports frozen soil, elevation snow bands, lakes, and carbon cycle processes, but these require FULL_ENERGY=TRUE and additional parameter files. The current pipeline covers basic water balance; advanced modes need manual configuration beyond the standard tools.

What NSE value is considered good for VIC streamflow validation?▼

Following the Moriasi convention cited in the validation contract, daily discharge NSE is satisfactory at 0.5 or above, good at 0.65, and very good at 0.75, with PBIAS within 10-15 percent. Scores are judged against these cited bars, not intuition.