+

Reach-Specific Observed Runoff Data for VelmaParallelCmdLine

Overview

As of VELMA version 2.1.0.20, VelmaParallelCmdLine supports the optional --obsRunoff=\ argument.
Use this argument to specify a table of outlet locations and associated observed runoff data files. When VelmaParallelCmdLine launches the VELMA simulator for a sub-reach, if that sub-reach's outlet in in the table, the observed runoff data file is used as the sub-reach's input_runoff, instead of the file specified (or not specfied) in the simulation configuration .xml file passed into VelmaParallelCmdLine.

Reach-Specific observed runoff data allows VelmaParallelCmdLine to compute accurate Nash-Sutcliffe Coefficients for the runoff of reach outlets other than the final reach outlet.

File Format and Requirements

If the file name specified by the --obsRunoff argument is not a fully-qualified path + name, then its location is assumed relative to the location where VelmaParallelCmdLine was invoked.

The specified file must have the following characteristics:

Example

Here is an example .csv file, "CustomObsRunnoff.csv":

388,C:/Users/Meep/obsQ_1969-2008.csv
346,./m_7_Observed/ReachObs/obsRunoff_i346_TestB_perfect.csv
254,Some_Other_obsRunoff.csv
987,C:/Users/Meep/obsQ_1969-2008.csv

Suppose we invoke VelmaParallelCmdLine as follows:

C:\Users\Meep> java -Xmx1g -cp C:\Users\Meep\JVelma.jar gov.epa.velmasimulator.VelmaParallelCmdLine C:\Users\Meep\XML\OR_BR_ws10.xml --obsRunoff="D:\Data Repository\CustomObsRunnoff.csv" --maxProcesses=3

As the command line above indicates the .xml file is "OR_BR_ws10.xml".
Its initialReachOutlets parameter has this value:

388 321 346 251 254

and that the input data parameter values are:

inputDataLocationRootName = D:/My_VELMA_Data/OR_BlueRiver_ws10
inputDataLocationDirName  = DataInputs

and that the input_runoff value is unspecified (i.e. blank).

When VelmaParallelCmdLine runs, it combines the data from the .xml and .csv files above, leading to the following as each reach is run:

Reach Outlet initial input_runoff runtime input_runoff
388 blank C:/Users/Meep/obsQ_1969-2008.csv
321 blank blank
346 blank D:/My_VELMA_Data/OR_BlueRiver_ws10/m_7_Observed/ReachObs/obsRunoff_i346_TestB_perfect.csv
251 blank blank
254 blank D:/My_VELMA_Data/OR_BlueRiver_ws10/Some_Other_obsRunoff.csv

Outlet 987 is not in initialReachOutlets, and will be ignored at runtime.
(That being said, it's better to exclude outlets that aren't in the initialReachOutlets list, simply to keep the contents as concise and clear as possible.)

An observed runoff data file name specified in the --obsRunoff argument that does not exist, or cannot be opened will cause that reach's simulation run to crash.
(i.e. just what happens for the same circumstances for the input_runoff value -- because it is the input_runoff value.)