Hydrologic Tools
Software Options
- VIC Model Processing Scripts and Programs
- VIC post-processing software
- Automated Condor submission system
- HDF-EOS5 post-processing software suite
- Other software programs
- GMT Scripts and Programs
- Python Libraries
Resources
- Purdue Hydrologic Impacts Group Wiki - serves as a shared resource for the distribution of training materials, management of data and equipment resources, and for monitoring progress on student projects.
- Environmental Informatics Wiki - a resource for training, and sharing tips and tools for the analysis of environmental data. (available to Purdue account holders)
- Purdue VIC Users Wiki - a resources for training, coordinated development, and the sharing of tips and tools relavent to applications of the VIC model. (available by invitation, contact Dr. Cherkauer)
- Purdue University Research Repository (PURR) - a shared resource for the exchange of documents, tools and field and modeling data. (available by invite to Purdue account holders)
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:
Vic_Model_Python_Tools.tgz - a collection of VIC model related 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.
- 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.