UW logo

Variable Infiltration Capacity (VIC)
Macroscale Hydrologic Model

Home | Links | Contact
Dept. of Civil and Env. Engineering
University of Washington
Box 352700
Seattle, WA 98195-2700
206.685.1796
vicadmin@hydro.washington.edu

Preparation of Vegetation Files

The Vegetation Library and Vegetation Parameter Files may be prepared using various methods. Below are suggested methods for preparing each vegetation input file.

Vegetation Library File

Introduction

This section presents a methodology on how to generate a vegetation cover dataset for the VIC model. The first step is to download datasets from the web and import this datset into Arc/Info. Secondly, process the data, and last convert everything into the VIC-model vegetation input format. Basic skills in Arc/Info and UNIX are required.

Datasets

Landcover Datasets

There are several landcover datsets available to use in the VIC model. In this preparation method the landcover data from USGS Global Land Cover Characteristics Database will be used. This database offers several different datasets.

DERIVED DATA SETS

All of these can be used, but one of the datsets with up to 30 vegetation classes is recommended. Pick one of the above datasets and download it from the website, Go to USGS Global Land Cover Characteristics Database. This example uses the South American Lambert-Azimuthal projection.

Import Landcover Datasets to Arc/Info

GUNZIP the file you dowloaded (Lambert-Azimuthal projection). And change the filename to FILENAME.BIL. Then make a textfile with the extension FILENAME.HDR with this information:

nrows 8996
ncols 9223
nbands 1
nbits 8
ulxmap -4487000
ulymap 4480000
xdim 1000
ydim 1000

Import the image file into Arc/Info using: ARC: imagegrid FILENAME.BIL GRIDNAME.

Then use ArcTools to define the projection which is Lambert Azimuthal. You can use this information:

Projection Type: Lambert Azimuthal Equal Area
Units of Measure: meters
Pixel Size: 1000 meters
Radius of sphere: 6370997 m
Longitude of origin: 100 00 00 W
Latitude of origin: 50 00 00 N
False easting: 0.0
False northing: 0.0

XY corner coordinates (center of pixel) in projection units (meters):
Lower left: ( -4487000, -4515000)
Upper left: ( -4487000, 4480000)
Upper right: ( 4735000, 4480000)
Lower right: ( 4735000, -4515000)

Remember to set the filesize to 0.008333 when you project the grid into geographical coordinates

When the grid is projected. You can reduce the filesizes with GRIDCLIP in GRID.

Value grid

Now a new grid must be made by clipping the vegetation grid with the real_outline of the basin. A real outline means the outline of the basin that was prepared from the 1 km DEM or the USGS river basins coverages. An example of the commands is showed here:

GRID: gridclip sib1_3 sib1_4 COVER real_outline

Later on the zonalmean function in GRID will be used. This grid will be the value grid

Zone grid

When using the zonalmean command a zone grid is needed. Look in HELP in Arc/Info to learn more about this. The zonegrid file can be made like this:

Use your mask file at 1/8th degree resolution and in every gridcell give it a unique number. An easy way to do this is to make a grid in a spreadsheet with increasing values downwards.

Example:

ncols 5
nrows 5
xllcorner -120.125
yllcorner 45.125
cellsize 0.125
NODATA_valu 0
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

This grid will be refered to as ascending grid.

Make a cube_outline of your basin. Set all values in your maskfile to the same value and use gridpoly in GRID. This cover will be refered to as a cube_outline cover. Use the cube_outline cover to clip the ascending grid. You should now have a maskfile with a unique number in each gridcell. An example is given below.

ncols 5
nrows 5
xllcorner -120.125
yllcorner 45.125
cellsize 0.125
NODATA_valu 0
0 0 3 0 5
0 0 8 9 0
11 12 13 14 0
0 17 18 19 0
0 22 0 0 0

This grid will be refered to as a zone_grid. It is used in the zonalmean function in grid.

Resample the zone_grid to the resolution of the vegetation dataset (0.0083333 degrees). The value_grid and the zone_grid will be used in the next step. REMEMBER: The value_grid and the zone_grid have to have the same resolution.


Processing the Data

The scripts and programs in this section are the file veg_param_prep.tgz, also available under the "Preparing VIC Model Inputs" section of the download page.

Run makeveg.aml

Make_veg.aml is a program written in the Arc Macro Language (AML). The source code of the program does not need alteration. The user has to give information when the program is run. Start the make_veg.aml program in GRID.

GRID: &run make_veg

The user is asked to give the names of the value_grid,zone_grid and number of classes. The program then generates one asciigrid for each vegetation class. In each gridcell the areal cover as a fraction is given. If you use 20 vegetation classes output from the program is 20 ascciigrids.

If you use another resolution than 1/8th degree for the model, change the line were the grids are resampled.

res%i% = resample(zmean%i%,0.125,nearest)

res%i% = resample(zmean%i%,Your Resolution,nearest)

Be aware that the classes used in some of the legends from the USGS are not in ascending order. For example the SIB1 classification uses only 16 classes, but the numbering system is to 20. Classes 13,14,15,16 are not used.


Root library

Before the vegetation parameter file can be produced root depths and fraction of roots must be defined. The make_vegetation.c program needs a file that contains class number, root_depth and root_fraction for each layer. An example is given below.

 1  0.750 0.50 0.45 1.00 0.35 0.50 0.20
 2  0.200 0.50 0.50 0.50 0.50 0.00 0.00
 3  0.200 0.50 0.50 0.50 0.50 0.00 0.00
 4  .....
 5
 .
 .
 N classes

This will be referred to as the root_file in the following sections.


Make_vegetation.c

There should now be a set of ascii files named class1.asc ,class2.asc, etc. and a rootfile in the same directory as make_vegetation.c.

Before make_vegetation.c can be compiled you have to change some of the lines in the source file. Open up make_vegetation.c in your text editor and change the following lines:

/* SET INFORMATION HERE ************************/
#define CLASSES 16
#define CELLS 485    /* 4858 cells for the Columbia River 0.125 degree res */^M
#define COLS 100
#define ROWS 94
#define MINIMU_COVER 0.05  /* Classes with less than 5 % cover is not used */
#define LAYERS 3
/*****************************************************/

Change what is necessary. Do not change other lines in the file. Save the file after making the changes and compile.

Commandline arguments are:

make_vegetation rootfile output_veg_paramfile

The output file output_veg_paramfile is the vegetation parameter file needed by the VIC model.

Vegetation Parameter File

The scripts and programs in this section are the file veg_param_prep.tgz, also available under the "Preparing VIC Model Inputs" section of the download page.

The vegetation parameter file describes the vegetative composition of each grid cell, and uses the same grid cell numbering as the soil file (latitudes and longitudes are not included in the file). This file cross-indexes each vegetation class (from any land-cover classification scheme) to the classes listed in the vegetation library. The structure of the vegetation parameter file is found on the Vegetation Parameter File website.

The LDAS project has also produced a set of gridded vegetation data for the LDAS domain, available at their web site. This is based on the 1 km vegetation classification developed at UMD. The raw LDAS vegetation data can be converted to a VIC-style with the program LDAS_2_vegparam.c. The cell numbering in both the final soil file and vegetation parameter files must be identical. A sample vegetation library file (matching the UMD classification) can be downloaded here.

Once a vegetation parameter file is created at one resolution sometimes it is desirable to aggregate the input file to a coarser resolution (e.g. for preliminary calibration or for using an optimization routine). For the vegetation parameter file format including LAI, use the program aggregate_LAI_veg_param.c.


VIC Administrator
Last modified: Tue Sep 1 13:03:36 PDT 2009