The MetInterp control file specifies the necessary settings for running MetInterp. Within this control file, each line may have a single argument, with an argument identifier and value separated by a ":" character. Any lines that start with a "*" character, or that are blank, are ignored. Also note that leading or trailing whitespaces are ignored in both the identifier and value.

The settings in the MetInterp file are generally broken up into five groups (although any order of arguments is accepted): General Settings, Gage Settings, Interpolation and Adjustment Settings, Output Settings, Disaggregation Patterns. The sections below describe these argument groups.

General Settings

IdentifierOptionsDefault ValueDescription
CreateAggregateImagetrue, falsefalseThis tells MetInterp to create a single aggregate grid when set to true. When true, gage data is aggregated in time, then interpolated spatially.
StartTimeDateNoneThis is the start date of the output grid(s).
EndTimeDateNoneThis is the end date of the output grid(s).
TimeStepInteger60Output grid time step in minutes. Ignored when "CreateAggregateImage: true", in which case a single image is created spanning StartTime to EndTime.
TimeZoneTime Zone IDGMTTime zone for writing the output grids. Supported time zone arguments described in Supported Time Zone.
ParameterStringNoneName of the parameter for the output grid metadata.
DataTypePER-CUM, INST-VAL, PER-AVER, PER-MIN, PER-MAXINVALThe data type of the data. When using INST-VAL, all grids are treated as instantaneous in time, otherwise the grid duration is assumed equal to the TimeStep.
UnitsStringNoneMeasurement units of the output grids (e.g. mm, in, deg f, deg c).
OutputGridOriginFloat,FloatNoneX,Y indices of the lower left grid cell of the output grid in the output coordinate system.  X,Y indices can be determined by dividing the coordinate values of X,Y by the grid cell resolution in the same unit system.
OutputGridResolutionFloatNoneOutput grid's resolution.
OutputGridSizeInteger,IntegerNoneOutput grid's number of rows, number of columns.
OutputCoordinateSystemStringNoneWell Known Text representation of the coordinate system of the output grid.

Gage Settings

Gage settings are broken up into two types: Aggregate Value and DSS Time Series. Aggregate value gages may be used to specify a storm total for a point gage, and a disaggregation pattern. Based on the disaggregation pattern, the specified storm total will be disaggregated to the TimeStep. Alternatively, a DSS time series is converted to the TimeStep (if necessary) with a uniform distribution (or interpolation in the case of instantaneous values).

Aggregate Value Gages

When specifying an Aggregate Value Gage, the identifier is AggregateValueGage. 

Following the identifier, there arguments are in a comma separated list. An example line is below:

AggregateValueGage: true,P1,25,50,2000,1000,10,pattern1

The information in the AggregateValueGage are described below:

NameOptionsDescription
Is Activetrue, falseWhen false, the gage is ignored.
Gage NameStringName of the gage.
X CoordinateFloatX Coordinate of the point in the output coordinate system.
Y CoordinateFloatY Coordinate of the point in the output coordinate system.
ElevationFloatElevation in meters. This is only used when performing lapse adjustment. If not using lapse adjustment, the user can enter any number, or NaN.
Radius of InfluenceFloatRadius of influence in km.
ValueFloatValue for this aggregate point in the units specified in the general settings.
Disaggregation PatternStringName of the disaggregation pattern.  See Disaggregation Pattern section below for more definition guidance.

DSS Time Series Gages

When specifying a DSS Time Series Gage, the identifier is DssTimeSeriesGage. Following the identifier, there arguments are in a comma separated list. An example line is below:

DssTimeSeriesGage: true,TS1,2000,1000,Gages.dss,/BASIN/LOCATION/PRECIP-INC/01JAN2014/1HOUR/VERSION/

The information in the DssTimeSeriesGage are described below:

NameOptionsDescription
Is Activetrue, falseWhen false, the gage is ignored
Gage NameStringName of the gage
ElevationFloatElevation in meters This is only used when performing lapse adjustment.
Radius of InfluenceFloatRadius of influence in km
DSS FileStringDSS file containing the time series
DSS Record PathnameStringDSS record pathname of the time series

MetInterp requires that all DSS Time Series records include coordinate system definitions in their supplemental info. 

Only the Geographic (i.e. lat/lon) Coordinate System is supported by MetInterp.

Missing Value Settings

IdentifierOptionsDefault ValueDescription
PercentAllowableMissingDataFloat0Number of missing values allowed before computation fails.
DefaultValueFloatNaNDefault value to use when time series has missing data.

Interpolation and Adjustment Settings

Interpolation Settings

Interpolation settings are a list of interpolators, each of which has a name, spatial interpolation method, vertical adjustment method, and a temporal sampling method. Any number of interpolators my be specified, but each must have a unique name. An interpolator is defined by a single line, where Interpolator is the identifier. An example line is below:

Interpolator:IDW2,InverseDistanceSquared,None,None

The information in the Interpolator are described below:

NameOptionsDescription
NameStringUnique name for this interpolator.  When multiple interpolator options are used, then the f-part will be replaced with the interpolator name, ensuring that each interpolator creates unique results.
Spatial Interpolation Method

InverseDistance,

InverseDistanceSquared,

NearestNeighbor,

Bilinear

Name of the spatial interpolation method.
Vertical Adjustment Method

None, Lapse, Bias

Name of the vertical adjustment method. When using lapse or bias method, a lapse or bias grid must be specified in the Adjustment Settings below.
Temporal Sampling MethodNone, McCormick, Modified_McCormickTemporal sampling method. Temporal sampling methods are used to account for the horizontal movement of storms.

Multiple spatial interpolation methods can be computed at the same time by including in the control file one row for the "Interpolator" settings per desired method.

Temporal Sampling Methods are only intended to be used with precipitation, as it is a means to account for the spatial movement of a storm. Although it's only intended to be used with precipitation, MetInterp will not prevent the use of Temporal Sampling with other data.

Bilinear Extrapolation Distance

A special setting for the Bilinear interpolation method is required to specify the extrapolation distance. Other methods use a radius of influence, but the radius of influence concept is incompatible with bilinear interpolation. Since radius of influence is not used, controls over the extrapolation beyond the convex hull of the TIN. This is controlled by an extrapolation distance which is applied orthogonally from the TIN exterior.

IdentifierOptionsDefaultDescription
BilinearExtrapolationDistanceFloat100Extrapolation distance in km

Adjustment Settings

Vertical adjustments require settings to be implemented. For bias adjustment, a bias grid is required. For lapse adjustment, an elevation grid and lapse rate must be specified. Interpolation options are specified below:

IdentifierOptionsDefaultDescription
BiasGridFileStringNoneThe bias grid filename.
BiasGridPathStringNoneThe bias grid DSS record pathname (only necessary if BiasGridFile is a DSS file).
LapseGridFileStringNoneThe lapse grid filename.
LapseGridPathStringNoneThe lapse grid DSS record pathname (only necessary if LapseGridFile is a DSS file).
LapseRateNumber, ComputedNaNThe lapse rate in output units per meter, or "Computed". If "Computed" is specified, then the lapse rate is computed for each time step from the gage data.

Output Settings

Output settings specify how the resulting grids will be written. These settings are described in the table below:

IdentifierOptionsDescription
OutputProviderStringName of the provider used to write the grid (e.g. DSS, ASCII_Grid.  See Grid and TIN Writing Arguments for all options).
OutputProviderTypeStringType to be written with the provider (e.g. SHG, HRAP, or WKT for DSS, ASC_GRID or FLT_Grid for ASCII_Grid.  See Grid and TIN Writing Arguments for all options)
OutputFileStringThis filename of the output grids. When this is a non-DSS file, the file must use date masks to work properly, and the directory of the file will be altered to include the interpolator name, which ensures that results from each interpolator are separated into their own location. Alternatively, if this is a DSS file, then the OutputPath must be specified.
OutputPathStringThe DSS record pathname for the output path. If there are more than one interpolator, then the f-part will be versioned with the interpolator name, based on the user-specified VersionHandling, ensuring that each interpolator creates unique results.
VersionHandlingStringWhen using DSS and multiple interpolators in a single run, the versioning behavior needs to be specified. This versioning behavior will either replace the F-Part with the interpolator name, append the interpolator name onto the F-Part, or prepend  the interpolator name onto the F-Part. The options are "Replace", "Append", and "Prepend".

Disaggregation Pattern

Disaggregation patterns are only used when Aggregate Value Gages are used. These disaggregation patterns are used to distribute values (typically precipitation depths) over some time period in a non-uniform fashion. For example, a triangular pattern is common, where the majority of precipitation occurs in the middle of the time window. In order to specify these patterns, the "Pattern" identifier is used, followed by a name and array of values, following the example below:

Pattern: Pattern1,{.1, .1, .2, .3, .2, .1}

In the example above, the pattern name is "Pattern1", and the array has 6 values. If the storm is 6 hours in duration, and hourly grids are being created, then the aggregate value for a given gage will be multiplied by each value in the array. For example, if the aggregate value is 5in, the 4th hour will be 1.5in (1.5=5*.3). When the output time steps are not equal to the array length, these 6 values will be converted to the number of time steps necessary. For example, if the storm is 1Day in duration, and the output is hourly, these 6 values will be converted to 24. When converting the number of values, the mass is conserved, meaning that the sum of the resulting 24 values will be equals to the sum of the original 6 values. In the example of 24 hours, the array will be converted to {.025, .025, .025, .025, .025, .025, .025, .025, .05, .05, .05, .05, .075, .075, .075, .075, .05, .05, .05, .05, .025, .025, .025, .025}.