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.