800 likes | 1.37k Views
VIC: Model Overview. Ted Bohn UW Surface Water Hydrology Seminar November 15, 2012. Outline. VIC Overview VIC Web Site How to Run VIC How to Run the Routing Model Future Development Conclusions. VIC Model Overview. What is VIC? Large-scale hydrologic model (Liang et al, 1994)
E N D
VIC: Model Overview Ted Bohn UW Surface Water Hydrology Seminar November 15, 2012
Outline • VIC Overview • VIC Web Site • How to Run VIC • How to Run the Routing Model • Future Development • Conclusions
VIC Model Overview What is VIC? • Large-scale hydrologic model (Liang et al, 1994) • Simulates water & energy storages and fluxes • Inputs: daily or sub-daily meteorological drivers • Precipitation • Air temperature • Wind speed • etc • Model time step length = daily or sub-daily
VIC Model Overview VIC is intended for • Large regions (> 100,100 km2) • Monthly flows and land-atmosphere fluxes • Coupling with GCMs
VIC Model Overview VIC Makes Some Approximations: • Land surface = grid of large (>1km), flat, uniform cells • Equations derived for small, uniform cases are applied to very large heterogeneous areas • Sub-grid heterogeneity is handled via statistical distributions • Elevation • Land cover • Water can only enter a grid cell via the atmosphere • Non-channel flow between grid cells is ignored • MOST runoff reaches local channel network before reaching grid cell boundary • Once water reaches the channel network, it is assumed to stay in the channel (it cannot flow back into the soil) • Grid cells are simulated independently of each other • Routing of stream flow is performed separately from the land surface simulation, using a separate model (Lohmann et al., 1996 and 1998)
VIC Model Features Validity of these assumptions? 1. Uniform grid cells/small-scale equations • Depends on: • Linearity of the processes (does average land surface produce average results?) • Statistical independence of processes (no correlations/interactions) 2. Runoff goes to local channels/ doesn’t come back/independence of grid cells • Depends on: • Grid cell size • Channel network density • Rule of thumb: Grid cell size > spacing between channels (or big enough to contain typical hill or mountain) • Groundwater flow must be small
VIC Model Features Meteorological Inputs • VIC can accept any combination of daily or sub-daily met. variables • At minimum, VIC requires daily Prcp, Tmin, Tmax, and Wind Speed • VIC uses MTCLIM algorithms to compute daily (and hourly) incoming shortwave radiation and daily humidity • VIC uses Prata algorithm to compute daily incoming longwave algorithm • VIC uses cubic spline to interpolate diurnal cycle of T • From diurnal T, computes sub-daily values of other forcings • Prcp and Wind held constant throughout day
VIC Model Features Land Cover • “Tiles” • Each type of vegetation gets 1 tile • Optional lake/wetland tile • Spatial distribution ignored • Each tile is homogeneous • Trees have same height, LAI, etc • Each tile modeled separately • Fluxes and storages from the tiles are averaged together (weighted by area fraction) to give grid-cell average for output
VIC Model Features Evapotranspiration (ET) • From canopy storage • From soil via transpiration OR bare soil evap • If veg present, no bare soil evap • If overstory, no understory evap 6 types of Potential Evap (PET) • Open water • Wet soil • Natural Veg with no soil moisture limitation (but other resistances intact) • Natural Veg with no environmental limitations • Short reference crop • Tall reference crop
VIC Model Features Penman-Monteith formulation = f(radiation, humidity, wind, surface roughness, architectural resistance, stomatal resistance) • Architectural Resistance • Shape of canopy; impedance to turbulent transport • = f(LAI, canopy structure) • Stomatal Resistance • Stomata: pores in leaves for transport of H2O, CO2 • Plants actively change stomatal opening to optimize photosynthesis and retain moisture • = f(radiation, temperature, humidity, soil moisture, LAI) • Evap of canopy storage (dew on leaves) • = Penman-Monteith with stomatal resistance set to 0 • Transpiration • = Penman-Monteith • Bare soil evap • = Penman-Monteith with architectural and stomatal resistance set to 0 • Only applied to saturated soil fraction
VIC Model Features Soil • Typically 3 soil layers • Infiltration into the top-most layers controlled by variable infiltration capacity (VIC) parameterization • Top-most layers can lose moisture to evapotranspiration • Gravity-driven flow from upper layers to lower layers • Q = f(soil moisture, Ksat) • ARNO baseflow formulation for drainage from bottom layer • Optional organic content in soil parameter file • Optional water table position computed via Van Genuchten curve
VIC Model Features Soil T profile • 1. QUICK_FLUX approximation • (QUICK_FLUX TRUE in global parameter file) • Assumes exponential decay towards “deep temperature” with depth • 2. Finite element scheme • (QUICK_FLUX FALSE in global parameter file) • Heat diffusion equation • Anywhere from 3 to 50 “nodes” • Hydro soil layer average T can be output (as of VIC 4.1.2) • Optional soil freeze/thaw: FROZEN_SOIL TRUE in global parameter file • Finite element + Frozen Soil is computationally expensive • Only recommended where soil freezing is important process
VIC Model Features Soil T heterogeneity • Option: SPATIAL_FROST (user_def.h) • Linear (uniform) distribution of soil T around mean • Allows some moisture movement in soil when avg T below freezing
VIC Model Features Snow • 2-layer formulation • Precip, Sublimation and melt • Albedo decay • Energy balance • Need diurnal radiation to get snowmelt rate right • SNOW_STEP in global parameter file • Partial snow cover can also be considered (affects melt rate) • (SPATIAL_SNOW TRUE in user_def.h)
VIC Model Features Elevation Bands • Snow pack size depends non-linearly on altitude, via precipitation and temperature • In temperate mountainous regions, with seasonally-varying snow line, using the average elevation, temperature, and precipitation over the entire grid cell gives wrong answer • How it works: • Subdivide grid cell into arbitrary number of elevation bands • Within each band, meteorologic forcings are lapsed from grid cell average elevation to band's elevation • Geographic locations or configurations of elevation bands are not considered; VIC lumps all areas of same elevation range into 1 band • Fluxes and storages from the bands are averaged together (weighted by area fraction) to give grid-cell average for writing to output files • Specify in global parameter file • Less necessary when running VIC at high resolution (1/16 degree)
VIC Model Features • Dynamic Lake/Wetland Model (Bowling, 2002, 2009) • Multi-layer lake model of Hostetler et al. 2000 • Energy-balance model • Mixing, radiation attenuation, variable ice cover • Dynamic lake area (taken from topography) allows seasonal inundation of adjacent wetlands • 1 composite lake per cell • Lakes can (as of VIC 4.1.2) receive input from upstream channel network: • Requires running upstream cells first • One option: run entire basin without lakes, then route flows, then simulate lake as single grid cell • Note: lake parameters (bathymetry, wfrac, mindepth, etc) not available on global scale; so far calibrating case-by-case
VIC Model Features River Routing • Routing of stream flow is performed separately from the land surface simulation, using a separate model, typically the routing model of Lohmann, et al. (1996; 1998) • Each grid cell is represented by a node in the channel network • The total runoff and baseflow from each grid cell is first convolved with a unit hydrograph representing the distribution of travel times of water from its points of origin to the channel network • Then, each grid cell's input into the channel network is routed through the channel using linearized St. Venant's equations • A lot of slop here: we typically don’t calibrate the unit hydrograph, channel velocities, etc. Errors are small when looking at monthly flows from large basins
Outline • VIC Overview • VIC Web Site • How to Run VIC • How to Run the Routing Model • Future Development • Conclusions
VIC Web Site www.hydro.washington.edu/Lettenmaier/Models/VIC/
Outline • VIC Overview • VIC Web Site • How to Run VIC • How to Run the Routing Model • Future Development • Conclusions
How to Run VIC • Download source code • Compile (via “make”) • Prepare input files • Run VIC vicNl –g global_parameter_file >& log.file.txt Other Usage: • To see version info: vicNl –v • To see compile-time option settings: vicNl –o
Global Parameter File Global Parameter File = Master Input File • Names/locations of all other input/output files • Contents/formatting of input forcing and output files • You can make whatever output files you want • Settings of most simulation options • Start/stop dates • Model time step • Water Balance v. Full Energy mode • Etc • Options and their allowed values are listed in vicNl_def.h
Other Parameter Files • ASCII text • 1+ line(s) per grid cell • Formats described on VIC web site • Optionally, soil parameters can be specified in Arc/INFO grid format
Met. Forcing Files • ASCII or binary • Can be traditional units (e.g. mm) or ALMA convention (e.g. m3/sec) • ALMA = standard for atmospheric models • You MUST describe file contents in the global parameter file • Variables • Start date • Time step • Measurement height • Usually 1 file per grid cell • Optionally a 2nd file • Can have different variables, time step, start date than first file • New input forcing variable, CHANNEL_IN, is only used for input into a lake • Can be the routed runoff of upstream cells
State Files • Can be ASCII or Binary • Initial state file has same format as final state file • Initial state file can be the final state file from a previous VIC run
Output Files • Can be ASCII or Binary • Units can be traditional or ALMA convention • 1+ file(s) per grid cell • You can either: • Specify the files’ names and contents in the global parameter file • Or omit this information and have VIC create default output files • You can either: • Specify the output time step (n-hourly or daily) • Or omit this and the output time step will = model time step
VIC Simulation Mode Settings 2 types of settings: • Run-time • Most options are of this type • Set in global parameter file • Examples of most available in global.param.sample • Compile-time • Only a few options • Set in user_def.h • Values in user_def.h may be misleading, if it has been edited since the last “make” • To see their current values, type vicNl –o • To change these: • Edit user_def.h • Make clean • Make
vicNl_def.h Describes Most Model Options • Input Forcing Variables /***** Forcing Variable Types *****/ #define N_FORCING_TYPES 24 #define AIR_TEMP 0 /* air temperature per time step [C] (ALMA_INPUT: [K]) */ #define ALBEDO 1 /* surface albedo [fraction] */ #define CHANNEL_IN 2 /* incoming channel flow [m3] (ALMA_INPUT: [m3/s]) */ • Output Forcing Variables /***** Output Variable Types *****/ #define N_OUTVAR_TYPES 160 // Water Balance Terms - state variables #define OUT_ASAT 0 /* Saturated Area Fraction */ #define OUT_LAKE_AREA_FRAC 1 /* lake surface area as fraction of the grid cell area [fraction] */ #define OUT_LAKE_DEPTH 2 /* lake depth (distance between surface and deepest point) [m] */
vicNl_def.h Describes Most Model Options • Simulation Modes: options_struct typedef struct { // simulation modes int AboveTreelineVeg; /* Default veg type to use above treeline; Negative number indicates bare soil. */ char AERO_RESIST_CANSNOW; /* "AR_406" = multiply aerodynamic resistance … } option_struct
Example global parameter file • Included in code distribution • To make global parameter file for your project, copy this file and edit it • Contains most options, set to default values Global.param.sample ####################################################################### # VIC Model Parameters - 4.1.x ####################################################################### # $Id: global.param.sample,v 5.7.2.28 2012/04/15 05:39:10 vicadmin Exp $ ####################################################################### # Simulation Parameters ####################################################################### NLAYER 3 # number of soil layers NODES 10 # number of soil thermal nodes TIME_STEP 3 # model time step in hours (set to 24 if FULL_ENERGY = FALSE, set to < 24 if FULL_ENERGY = TRUE) SNOW_STEP 3 # time step in hours for which to solve the snow model (should = TIME_STEP if TIME_STEP < 24) STARTYEAR 2000 # year model simulation starts STARTMONTH 01 # month model simulation starts STARTDAY 01 # day model simulation starts STARTHOUR 00 # hour model simulation starts ENDYEAR 2000 # year model simulation ends ENDMONTH 12 # month model simulation ends ENDDAY 31 # day model simulation ends FULL_ENERGY TRUE # TRUE = calculate full energy balance; FALSE = compute water balance only FROZEN_SOIL TRUE # TRUE = calculate frozen soils ####################################################################### # Soil Temperature Parameters
Outline • VIC Overview • VIC Web Site • How to Run VIC • How to Run the Routing Model • Future Development • Conclusions
How to Run the Routing Model • Download source code • Compile (via “make”) • Prepare input files • Run rout rout input_file >& log.file.txt
Input Files “Input” File = Master Input File • Names/locations of all other input/output files • Settings of simulation options • Start/stop dates • Etc Unit Hydrograph File • Distribution of overland travel times for a pulse of runoff to reach the channel (impulse response) • ASCII text • Format: time(h) flow_fraction Station Location File • ASCII text • List row,column coordinates of station(s) for which you want a hydrograph
Input Files Flow Direction File • ASCII Arc/INFO • Numeric code indicates pixel’s flow direction Flow Fraction File • ASCII Arc/INFO • Fraction of pixel’s runoff that enters channel network • Usually = fraction of pixel that’s in the basin
Input Files Other Optional ASCII Arc/INFO Files: (You can either specify a filename or just a single value that will be used in all pixels) • Flow Velocity File • Diffusivity File
Input Files Runoff Files • ASCII Text (or NetCDF, in surface water monitor) • ASCII: require the following format Year Month Day (data) (data) Runoff Baseflow • Extra columns at the end of the line are allowed (and ignored) • VIC’s default output “fluxes” files have this format • Daily runoff and baseflow will be added together
Output Files Daily, Monthly, Annual flow files Units depend on settings in main input file
Outline • VIC Overview • VIC Web Site • How to Run VIC • How to Run the Routing Model • Future Development • Conclusions
Future Development Possible additions: • NetCDF Input/Output • Complete Carbon Cycle (port from my work) • Lakebottom heat flux (port from my work) • Distrib water table (port from my work) • Methane? • More user-friendly lake model • Multiple soil types per cell • Replace (veg tile, snow band) array with “patches”, each with own soil, veg, elevation, etc characteristics • Flow routing within VIC • Suggestions?
Large-Scale Modeling: Challenges How to Validate Model Results? • Large-scale simulations vs. point measurements • Soil moisture extremely heterogeneous • One point is NOT representative of entire grid cell • Streamflow is our friend! • Aggregates the runoff of the entire basin above the gauge • How would we do this with other hydrologic variables? • Satellites can measure things visible at surface • Problem: lateral extent (e.g. snow cover) not equal to total storage (e.g. snow depth)
Conclusions • Goals of large-scale models not the same as hillslope-scale models • Different assumptions & approximations • Large-scale behavior may look different from small-scale • Non-linearities • Interactions • Fine-scale variations, where important, represented by statistical distributions • Validation of large-scale models requires large-scale observations, special techniques
Thank You • More information at VIC web site: www.hydro.washington.edu/Lettenmaier/Models/VIC/
Large-Scale Modeling: Overview What is a model? • (Idealized) Representation of some aspect of natural world • Aid to understanding the real world • (Usually) Simpler than the real world • Captures most important features of the system • Less important features may be omitted or approximated
Large-Scale Modeling: Overview Types of Models: • Numerical (computer) • Analytical (equations) • Penman-Monteith Transpiration • Newton’s Gravity • Conceptual (need not be mathematical) • Role model • Fashion model • Model airplane • Etc
VIC = Large-Scale Land Surface Hydrology Model • Captures important features of largehydrologic systems • Sub-continental to global systems • >100,000 km2 • Coarse resolution (why?) • Spatial: 1/16- to 2-degree (5-200 km) • Temporal: generally analyze outputs at monthly scales • Inputs • Meteorology • Soil, vegetation, topography • Outputs • Water & energy storages and fluxes (snowpack, streamflow, soil moisture, etc)
Large-Scale Modeling: Overview Why use a large-scale hydrologic model? • Estimating continental/global: • water budgets • land-atmosphere energy fluxes • Allocation of international water resources • Drinking water • Agriculture • Hydropower • Environmental • Hydrologic impacts of large-scale climate variations/change • El Nino, Pacific Decadal Oscillation, etc • Global Warming (These all have signatures that vary over large spatial scales) • Land surface component of global climate model
Large-Scale Modeling: Overview Why Coarse Resolution? • Computational Efficiency • Large-scale questions don’t require fine resolution • Uncertainties at fine resolution • Observations • Model Equations
Large-Scale Modeling: Overview Primary Analysis Needs: • Availability of water resources • River discharge • Soil moisture • Snow pack & Reservoir storage • Large areas • Historical and projected • Seasonal averages • Interannual variability & trends Generally, coarse outputs (monthly data, at 1/8-degree or larger resolution), are sufficient • Room for slop…