VIC: Model Overview Ted Bohn UW Surface Water Hydrology Seminar November 15, 2012.
-
Upload
jody-thompson -
Category
Documents
-
view
222 -
download
0
Transcript of VIC: Model Overview Ted Bohn UW Surface Water Hydrology Seminar November 15, 2012.
VIC: Model Overview
Ted BohnUW Surface Water Hydrology
SeminarNovember 15, 2012
Outline VIC Overview VIC Web Site How to Run VIC How to Run the Routing Model Future Development Conclusions
VIC Model OverviewWhat 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 forLarge regions (> 100,100
km2)Monthly flows and land-
atmosphere fluxesCoupling with GCMs
VIC Model OverviewVIC 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 FeaturesValidity 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 FeaturesMeteorological 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 FeaturesLand 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 FeaturesEvapotranspiration (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 FeaturesPenman-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 FeaturesSoil 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 FeaturesSoil 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 FeaturesSnow 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 FeaturesElevation 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 FeaturesDynamic 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 FeaturesRiver 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 Sitewww.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 VIC1. Download source code2. Compile (via “make”)3. Prepare input files4. 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 FileGlobal 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 Settings2 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, typevicNl –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_structtypedef 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
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 layersNODES 10 # number of soil thermal nodesTIME_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 startsSTARTMONTH 01 # month model simulation startsSTARTDAY 01 # day model simulation startsSTARTHOUR 00 # hour model simulation startsENDYEAR 2000 # year model simulation endsENDMONTH 12 # month model simulation endsENDDAY 31 # day model simulation endsFULL_ENERGY TRUE # TRUE = calculate full energy balance; FALSE = compute water balance
onlyFROZEN_SOIL TRUE # TRUE = calculate frozen soils
######################################################################## Soil Temperature Parameters
•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
Outline VIC Overview VIC Web Site How to Run VIC How to Run the Routing Model Future Development Conclusions
How to Run the Routing Model1. Download source code2. Compile (via “make”)3. Prepare input files4. 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 FilesFlow Direction File ASCII Arc/INFO Numeric code indicates pixel’s flow
directionFlow Fraction File ASCII Arc/INFO Fraction of pixel’s runoff that enters
channel network Usually = fraction of pixel that’s in the
basin
Input FilesOther 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 FilesRunoff 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 FilesDaily, Monthly, Annual flow filesUnits 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 DevelopmentPossible 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: ChallengesHow 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: OverviewWhat 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: OverviewTypes 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 large hydrologic 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: OverviewWhy use a large-scale hydrologic model?
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
Estimating continental/global: water budgets land-atmosphere energy
fluxes Allocation of international
water resources Drinking water Agriculture Hydropower Environmental
Large-Scale Modeling: OverviewWhy Coarse Resolution? Computational Efficiency Large-scale questions don’t require fine
resolution Uncertainties at fine resolution
Observations Model Equations
Large-Scale Modeling: OverviewPrimary 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…
Large-Scale Modeling: OverviewWhat are the largest sources of uncertainty in hydrologic modeling?
Observations ΔS = P – ET – R
R: Moderately well-observed (at surface) at large scale (but not everywhere) P: Well-sampled only in populated affluent areas ET: Very poorly sampled S (Snow, Soil Moisture, Lakes/Reservoirs): Very poorly sampled
Meteorologic inputs are a substantial component of uncertainty
Model equations Equations from “pure” lab settings applied to large, heterogeneous areas
Usually can’t predict “effective” parameters of these equations a priori Must calibrate them by comparing model outputs to observations
Model behaviors generally not sufficiently constrained by observations Errors in S can be compensated by errors in ET
Aggregating these over larger scales reduces errors (at the expense of precision)
Large-Scale Modeling: OverviewTherefore, large-scale models may use
different equations from what you might expect on the hillslope scale…