Purdue Hydrology

Hydrologic Tools

Software Options


VIC Processing Scripts and Programs

VIC post-processing software

VicPostProcessing.tgz - a collection of utility programs develped to work with VIC model binary output files with headers (version 4.1.0_r4 and above). Included programs:

  • compute_average_forcings.c - not really a post-processing program, this program build annual average ArcInfo ASCII style grid files for all meterological forcing data. This program MUST be edited to work with your files.
  • create_xmask.c - also not a post processing program, this program build the required xmask file for the routing model.
  • DateFuncs.c - a library of functions (based on the python library described below) for handling date information, required for programs in this set.
  • GetVicHeader.c - this program reads the header information from a VIC model binary output file with user defined columns.
  • VicBinary2ArcStatGrids.c - a program to compute time series statistics over a spatial domain of VIC model output in binary output files with headers. The file StatTestList is provided as an example statistics control file, edit it to produce the statistics you need.
  • VicBinaryDump2ASCII.c - a program to dump all or only selected columns from a VIC model binary output file with header to an ASCII column format file.
  • VicBinaryPenmanStatGrids.c - this program has been replaced with VicBinary2ArcStatGrids.c, it is included only for backwards compatability.
  • VicUtilities.c - a library of useful subroutines for handling VIC model output files, required for other programs in this library.
  • Makefile - used to build the programs provided.

Process_LDAS_2_DailyASCII.tar - a collection of utilities that will monitor an active VIC model output directory and process each completed and zipped output file from sub-daily LDAS binary into daily LDAS ASCII files.

Automated Condor submission system

VIC_CondorWrapper.tgz - a collection of scripts and utilities designed to automatically split large VIC model simulations into smaller subsets, submit those to the Condor system for evaluation and transfer completed files to the selected local or remote site. For additional information see the documentation.

Latest modified versions is VIC 4.1.0 r5 (Jan 08).

HDF-EOS5 post-processing software suite

VIC_HDFEOS5PostProcessor.tgz - a collection of scripts, programs and utilities designed to interface with the HDF5 data format with HDFEOS5 extension to convert VIC model output files into a more easily processed set of annual HDFEOS5 file structures. Software will read VIC model output headers (** not yet updated for VIC 4.1.0 r5 header format **) and the model global control file to automatically convert VIC model input and output files into daily grids. Included with this suite are programs to compute statistics, differences, common multi-variable products and extract data into ASCII or GMT NetCDF grid files. Software requires the installation of HDF5 and HDFEOS5. For additional information see the documentation.

Other software programs

GMT Scripts and Programs

gmt_utils.tgz - a collection of utilities for GMT:

  • ReadMe.txt - includes information about installing the scripts and programs.
  • C Programs
    • coldiff.c - This program reads through two multicolumn ASCII files and computes the differences between the selected columns. Differences are output to stdout, statistics are output to stderr.
    • colfilter.c - This program reads through a multicolumn ASCII file and exports only the selected columns to stdout (all functionality can be duplicated with awk).
    • colstat.c - This program reads through a multicolumn ASCII file and computes basic statistics on the selected colmns. Output is to stdout.
    • linearregression.c - This program computes a linear regression for data from a two column ASCII file. It outputs the regression parameters and statistics as described in Numerical Recipes.
    • makedates.c - This program creates two files (one with text and one with tick marks), which can be used to create a GMT x-axis with dates and times. 5 formats are available (only one works with sub-daily tick marks), providing necessary flexibility for creating nice looking date axes.
    • monthstats.c - This program reads through an ASCII file with julian days as the first column and computes monthly statistics (functionality of this program has been included in newer scripts which are also more flexible - will include those later).
  • C-shell Scripts
    • scripts/arcgrid_to_xyz.script - This script reads in an ArcInfo ASCII grid file (created using GRIDASCII in arc or grid) and writes out the three column ASCII equivalent for use in GMT. Output is to stdout.
  • Python Scripts
    • scripts/get.range.and.interval.py - This script accepts a range defined by maximum and minimum values and fits any number of intervals between such that the resulting numbers have an acceptable number of significant figures. This information can be used for making prettier axes and colorbars

GmtStuff.tar - contains a GMT utility for creating a page with plots in rows and columns. The program takes critical information for spacing plots on the page and creates a number of files containing information for GMT to help it place the plots. The included C-shell script serves as an example of how to use the program to develop a multi-row and multi-column figure. Will probably be included in gmt_utils in the future.

Python Libraries

python_utils.tgz - a collection of utilities for python:

  • datefuncs.py - defines the Date class of data, which includes functions as next_day(), next_month(), next_year() which operate on a calendar date. Also includes calc_jday() which computes julian dates either from Date class objects or simply from a given year, month, day and hour. The included get_date() function parses standard date input formats (such as MM/DD/YYYY) and returns that date information as a Date class object. ** This library is preserved for backwards compatability with earlier functions, untill those functions are all rewritten to make use of the native datetime module in Python. **
  • quicksort.py - a translation of the Numerical Recipes for C quicksort routine to python.
  • read_arcinfo_files.py - a suite of routines to read and write ArcInfo ASCII format grid files.
  • stats.py - suite of python routines to compute common statistics, such as meansand standard deviations. Also includes functions for computing counts over and under thresholds, running averages and statistics for testing model simulations such as bias, root mean square and Nash-Sutcliffe R-squared.
Vic_Model_Python_Tools.tgz - a collection of VIC model related utilities for python:
  • read_VIC_files.py - Functions to read and write fundemental VIC model input and output files, including soil, vegetation and lake parameter files. Also reads original LDAS flux, snow and fdepth files. Has no ability to work with headers and flexible output files available since VIC 4.1.0 r5, except those matching LDAS output file format.
  • read_arcinfo_files.py - a suite of routines to read and write ArcInfo ASCII format grid files.
  • CheckSnowBandFile.py - This script reads the cell number file, the model run mask and the snowband file and outputs cells that are missing from the snowband file.
  • FixSnowBandFile - This script reads the cell number file, the model run mask and the snowband file and outputs a new snowband file where missing grid cells have been added with a default definition of no bands present.