Components

The road from raw model output to optimized forecast involves many components, each of which plays a role in transforming or modifying the forecast. The schemes available, and their options, are described under each category below.

Attribute types: Required Conditional Optional

 

Description

Data is an abstraction layer that provides a consistent interface to the observations and model data.
 

Description

The components that are part of the post-processing chain can store parameters that are adaptively updated as COMPS iterates forward through the dates.
 

Description

COMPS provides components that provide services such as interpolation. These helper components are used by some of the other components.
 

List of schemes: Input, Dvh, Flat, FlatObs, Grib, Grid, Lorenz63, Netcdf, NetcdfCf, RdaNetcdf, Sinusoidal

Description

Inputs are sources of weather information. Inputs have 6-dimensional data that can be observations or model output (forecasts). Inputs provide data for different dates, hours, locations, and variables. Data from forecast also have an initialization time and can contain multiple ensemble members.

Input data can be provided in a variety of formats. The easiest is a simple text format (InputFlat below), which uses one row for each forecast horizon, and one column for each ensemble member. COMPS supports weather forecasts in the standardized Netcdf file-format, with CF naming conventions (NetcdfCf below).

Inputs can also simulate weather information. For example, InputSinusoidal produces a sinusoidal signal of a set frequency and amplitude. This is useful to test the performance of schemes against expected outcomes. Similarly, InputLorenz63 simulates a simple 3-state model of atmospheric convection.

Using your own observation or forecast data requires formatting the data into one of these formats. Alternatively, a new input scheme can be created that reads your custom format.

Dimensions
Location
Date
Offset (horizon)
Initialization time
Variable
Ensemble member

Common options Top

The following attributes are inherited by all Input schemes:
AttributeTypeDefaultDescription
folderstd::string Name of folder where namelists resides in ./input/
fileExtensionstd::string"" Specify file extension used on data files. Uses default otherwise.
allowTimeInterpolationboolfalse Should this dataset allow values to be interpolated for times between its offsets?
cacheOtherVariablesboolfalse When a value is retrived, should all other variables at the same location/member/offset be cached? This is advantageous if one file stores several variables, and there is an overhead in making multiple calls to getting data.
cacheOtherLocationsboolfalse
cacheOtherMembersboolfalse
cacheOtherOffsetsboolfalse
optimizeboolfalse Should the dataset figure out how to optimize the cache options itself?
forceLimitsboolfalse Should the dataset round values up/down to the boundary if it is outside?
locationFilenamestd::string"" If the locations are specified in a separate file, what is its filename?
initDelayfloat0 How many hours does it take before forecasts are available after initialization?
offsetsfloat[]
replaceMissingboolfalse If a date/init is missing, should an older date/init be used?
fileFormatstd::string What format are the filenames in? Recognizes standard date/time tokens such as %Y for 4-digit year. Use %H to represent initialization time. In addition, the following are recognized: %L location ID %LC location code %v local variable name %O,%02O,%03O offset (with or without padded 0s infront) Do not include the file extension
startDateintGlobal::MV Some selectors (such as climatology) must know which dates are available for the input set. By default this is done by analysing which filenames are available. This option overrides this automation and instead sets the start date (in YYYYMMDD format). Must also specify 'endDate'.
endDateintGlobal::MV See 'startDate'. Set the end date of available dates (in YYYYMMDD format).
typestd::string Dataset type. One of 'forecast' or 'observation'.
dataDirstd::string Full path of where data files are located
locationsint[] Only allow these location IDs
removeLocationsint[] Remove these location IDs
latRange Only allow locations within this latitude range (min,max)
lonRange Only allow locations within this longitude range (min,max)
maxCacheSize Limit the data cache size to this many bytes

Dvh (class=InputDvh) Top

Flat (class=InputFlat) Top

Data stored in flat files. Each row represents one offset, each column one ensemble member. Files have the format: dateYYYYMMDD_stationID_variableName

AttributeTypeDefaultDescription
offsetsfloat[]

FlatObs (class=InputFlatObs) Top

Data stored in flat files. Each row represents one date, each column one offset. Useful for observations, since only one ensemble member is supported. Files have the format: dateYYYYMMDD_variableName

Grib (class=InputGrib) Top

GRIB files version 2

AttributeTypeDefaultDescription
filenamePrefixstd::string""
filenameMiddlestd::string""
multiOffsetsPerFileboolfalse Are data for all offsets located in a single file (as opposed to one file per offset)?
mvfloatGlobal::MV Missing value indicator used in this dataset

Grid (class=InputGrid) Top

Input with locations on a refular lat/long grid. It is only used to define locations, and cannot contain any data. Creates one location for each combination of specified latitudes and longitudes.

AttributeTypeDefaultDescription
latsfloat[] Vector of latitudes (in degrees)
lonsfloat[] Vector of longitudes (in degrees)

Lorenz63 (class=InputLorenz63) Top

Simulates the Lorenz 1963 system of ordinary differential equations

AttributeTypeDefaultDescription
x0float Initial x condition
y0float Initial y condition
z0float Initial z condition
rfloat28 Model parameter 'r'
sfloat10 Model parameter 's'
bfloat8.0/3 Model parameter 'b'
dtfloat Integration timestep in seconds
ensSizeint1 Ensemble size (for perturbations)
xVarfloat0 Variance of x perturbation
yVarfloat0 Variance of y perturbation
zVarfloat0 Variance of z perturbation

Netcdf (class=InputNetcdf) Top

Data in NetCDF format. Currently only a very specific format is supported: Required dimensions: - Offset (number of offsets) - Location (number of locations) - Member (number of ensemble members) Required variables (dimension): - Offset(Offset): List of offsets - Lat(Location): Latitudes of locations - Lon(Location): Longitudes of locations - Id(Location): Ids of locations Dataset variables: - variableName(Offset, Location)

NetcdfCf (class=InputNetcdfCf) Top

Datasets conforming to the CF standard Recognizes the following attributes (assigned to a variable): scale_factor, add_offset, _FillValue

AttributeTypeDefaultDescription
latVarstd::string"Lat" Which variable stores latitudes
lonVarstd::string"Lon" Which variable stores longitudes
elevVarstd::string Which variable stores elevation
landUsestd::string"" Which variable stores land use index
timeDimstd::string"Offset" Which dimension defines time
timeRefstd::string Which variable stores the reference time for the first offset
timeDivisorfloat1 What should the times in the file be divided by to make them into hours
timeVarstd::string
horizDimsstd::string[] What dimension names represent horizontal dimensions?
vertDimsstd::string[] What dimension names represent vertical dimensions?
ensDimstd::string"" What dimension name represents the ensemble member dimension?
computeGradientboolfalse Should the gradient of elevation be computed for each location? Some downscaling methods require it, but the computation takes extra time.

RdaNetcdf (class=InputRdaNetcdf) Top

Retrives data from file format used by NCAR/CISL's research data archive (RDA). The global METAR observation dataset 336.0 is supported. More info at http://rda.ucar.edu/datasets/ds336.0/.

Sinusoidal (class=InputSinusoidal) Top

Creates fake sinusoidal data of the form: y(t) = mean + annualAmplitude*cos(d*2*pi/365 - dayPeak) + hourlyAmplitude*sin(h*2*pi/24 - hourPeak) + noise where 'd' is the day of year, 'h' is the hour of day (UTC), and 'noise' is made up of Gaussian perturbations due to ensemble, day-to-day variability, and random noise. e is random noise

AttributeTypeDefaultDescription
meanfloat Annual mean
yearAmplitudefloat Difference between mean and peaks in the curve
dayAmplitudefloat Distance between mean and peaks in the curve
membersint Number of ensemble members
dayCommonStdfloat0 Standard deviation of day-to-day changes
dayBiasStdfloat0 Standard deviation of bias of the day
dayBiasEfoldfloat10 How many days should it take to make daily bias 1/e of its starting value
ensStdfloat0 Standard deviation of ensemble noise
dayPeakint180 What julian date is the peak?
hourPeakfloat12 What offset is the peak?
 

List of schemes: Variable, Bypass, Phase, Power, Precip, Precip24, Precip3, Precip6, PrecipSolid, Surface, TDew, TMax24, TMin24, TWet, WindDir, WindSpeed

Common options Top

The following attributes are inherited by all Variable schemes:
AttributeTypeDefaultDescription
minfloatGlobal::MV
maxfloatGlobal::MV
meanfloatGlobal::MV
stdfloatGlobal::MV
lowerDiscreteboolfalse
upperDiscreteboolfalse
descriptionstd::string""
isCircularboolfalse
unitsstd::string""
standardNamestd::string""

Bypass (class=VariableBypass) Top

Phase (class=VariablePhase) Top

AttributeTypeDefaultDescription
sleetStartfloat2
SnowStartfloat1
useWetBulbboolfalse
minPrecipfloat0.1 Minimum precip amount needed to treat as precip

Power (class=VariablePower) Top

AttributeTypeDefaultDescription
turbineRadiusfloat
lowerCutOffSpeedfloat
upperCutOffSpeedfloat

Precip (class=VariablePrecip) Top

Precip24 (class=VariablePrecip24) Top

Precip3 (class=VariablePrecip3) Top

Precip6 (class=VariablePrecip6) Top

PrecipSolid (class=VariablePrecipSolid) Top

Surface (class=VariableSurface) Top

TDew (class=VariableTDew) Top

TMax24 (class=VariableTMax24) Top

TMin24 (class=VariableTMin24) Top

TWet (class=VariableTWet) Top

WindDir (class=VariableWindDir) Top

Using the meteorological definition of direction: * i.e. where the wind is coming from * From north is 0, from east is 90

WindSpeed (class=VariableWindSpeed) Top

 

List of schemes: Qc, Default

Common options Top

Default (class=QcDefault) Top

Checks that the value is between the min and max defined by the variable

 

List of schemes: Downscaler, Elevation, Neighbourhood

Description

The forecast datasets used are often defined for a grid. However, in many applications we are interested in forecasts for other locations. The downscaling component creates values at the desired locations by using forecasts from the grid.

Common options Top

Elevation (class=DownscalerElevation) Top

Move air parcel dry-adiabatically up/down to desired location, from nearest neighbours.

AttributeTypeDefaultDescription
neighbourhoodstd::string Which neighbourhood scheme should be used to define the neighbourhood? Defaults to 1 nearest neighbour.
lapseRatefloat6.5 Use this lapse rate (degrees/km). Positive means decreasing temperature with height.
computeLapseRateboolfalse Should the lapse rate be computed from neighbouring points?
showLapseRateboolfalse Output the lapse rate instead of temperature (only used for debugging)

Neighbourhood (class=DownscalerNeighbourhood) Top

Uses the mean of gridpoints within a neighbourhood.

AttributeTypeDefaultDescription
neighbourhoodsstd::string[] Which neighbourhood scheme should be used to define the neighbourhood? Defaults to 1 nearest neighbour.
weightOrderint0 Should gridpoints be weighted by distance? If so, what (inverse) power should be used? If 0 then no weighting performed.
 

List of schemes: Spreader, Cressman, Interpolate, Pooler

Common options Top

Cressman (class=SpreaderCressman) Top

Spread parameters based on inverse distance

AttributeTypeDefaultDescription
maxDistancefloatGlobal::MV
efoldDistancefloat

Interpolate (class=SpreaderInterpolate) Top

Spread parameters based on inverse distance

Pooler (class=SpreaderPooler) Top

Assign parameters based on which parameter pool the location is in

 

List of schemes: Pooler, All, Elevation, Locations

Common options Top

The following attributes are inherited by all Pooler schemes:
AttributeTypeDefaultDescription
windowLengthfloat0 Each bin should be this many hours wide

All (class=PoolerAll) Top

Pools all observations locations together

Elevation (class=PoolerElevation) Top

Create one pooling index for each elevation band.

AttributeTypeDefaultDescription
bandwidthfloat How wide a band should be used for elevations? [0, bandwidth, 2*bandwidth, ...]

Locations (class=PoolerLocations) Top

Create one pooling index for each obs-locations. Uses nearest neighbour.

AttributeTypeDefaultDescription
latsfloat[] Place parameters at latitude/longitude pairs
lonsfloat[]
datasetstd::string"" Use one parameter set for each location in this dataset
 

List of schemes: ParameterIo, Memory, Netcdf

Common options Top

Memory (class=ParameterIoMemory) Top

Store parameters in memory

Netcdf (class=ParameterIoNetcdf) Top

 

List of schemes: Selector, Analog, Clim, Default, Extreme, Member, Performance, Persistence, Super

Description

Typically an ensemble is constructed by selecting forecast from different runs. We have generalized this consept by allowing forecasts—or observations— from different initialization dates and times, datasets, and forecast horizons. In this way, climatology and persistence ensembles can be created as well as lagged-time ensembles.

Common options Top

The following attributes are inherited by all Selector schemes:
AttributeTypeDefaultDescription
removeMissingboolfalse Removes ensemble members that value missing forecasts
neighbourhoodsstd::string[]

Analog (under development) (class=SelectorAnalog) Top

Select dates/offsets in the past where the forecast issued is similar to today's forecast

AttributeTypeDefaultDescription
variablesstd::string[] Which variables should be used to search for analogs? If none specified, use the variable being predicted.
numAnalogsint Number of analogs to include in the ensemble
weightsfloat[] What weight should be given to each variable? If not specified, variables are weighted by their standard deviation of their climatology
dayWidthint365 Only find analogs within +- number of days
locationIndependentboolfalse
offsetIndependentboolfalse Should the same analogs be picked for all offsets?
doObsForwardboolfalse
computeVariableVariancesboolfalse Adaptively compute variable weights, instead of using constant variances from variable namelist
printDatesboolfalse Print the selected dates (for debugging)
datasetstd::string Use this (forecast) dataset to match analogs. Otherwise, the default datasets is used
analogMetricstd::string Which DetMetric scheme should be used to evaluate analog similarity? If unspecified, use absolute difference metric
adjustOffsetfloat0

Clim (class=SelectorClim) Top

Creates an ensemble by selecting past observations corresponding to a similar time of day and date of year

AttributeTypeDefaultDescription
dayLengthint Window length for seasonal cycle (days)
hourLengthint Window length for diurnal cycle (hours)
allowFutureValuesreturnfalse Allow dates in the future
futureBlackoutint0 Future values must be this number of days into the future
allowWrappedOffsetsboolfalse ?

Default (class=SelectorDefault) Top

AttributeTypeDefaultDescription
windowLengthfloat0

Extreme (class=SelectorExtreme) Top

Member (class=SelectorMember) Top

AttributeTypeDefaultDescription
membersint[] Add ensemble members with these indices
maxResolutionfloatGlobal::MV Allow ensemble members with resolution <= this (in km)
minResolutionfloatGlobal::MV Allow ensemble members with resolution >= this (in km)
modelsstd::string[] Allow ensemble members with these model names

Performance (under development) (class=SelectorPerformance) Top

AttributeTypeDefaultDescription
numint
detMetricstd::string

Persistence (class=SelectorPersistence) Top

AttributeTypeDefaultDescription
useLatestboolfalse Use today's obs at 00 UTC. Otherwise use yesterday's obs at the same time

Super (class=SelectorSuper) Top

Creates a super ensemble by using members from multiple EPSes

AttributeTypeDefaultDescription
datasetsstd::string[] Tags of inputs used to create ensemble
 

List of schemes: Corrector, Best, Clim, ClimReg, Directional, Dmb, Fixed, KalmanFilter, Kmeans, Measure, MultiVariateRegression, PolynomialRegression, QuantileQuantile, RecentObs, Round, Sort

Description

The correction component bias-corrects each ensemble member. Forecasts from models often exhibit biases. Typically, a correction is made by estimating the bias when compared to observations.

Common options Top

The following attributes are inherited by all Corrector schemes:
AttributeTypeDefaultDescription
enforceLimitsboolfalse Ensure that corrected values are within limits defined by the variable
memberSpecificboolfalse Run this scheme on each ensemble member separately
poolParametersboolfalse Use the same parameters on each ensemble member

Best (class=CorrectorBest) Top

Reducte the size of the ensemble such that it only contains the best members. Based on the mean absolute error of each member.

AttributeTypeDefaultDescription
numint1 How many of the best members should be used?

Clim (class=CorrectorClim) Top

Moderates ensemble members towards the climatological mean

AttributeTypeDefaultDescription
computeClimbool0 Should method compute the climatology (alternatively, look it up)?

ClimReg (class=CorrectorClimReg) Top

Uses linear regression between forecast and climatology

Directional (class=CorrectorDirectional) Top

Bias-correction based no wind-direction. Bias is computed for different wind direction.

AttributeTypeDefaultDescription
numPointsint How many bins should the direction be divided into?
multiplicativeboolfalse Should the correction be multiplicative instead of additive?
numWavesint

Dmb (class=CorrectorDmb) Top

Bias-correction using degree of mass balance

AttributeTypeDefaultDescription
fixedDivisorfloatGlobal::MV Divide forecasts by this fixed divisor

Fixed (class=CorrectorFixed) Top

Either add or set each ensemble member to a fixed value

AttributeTypeDefaultDescription
valuefloatGlobal::MV Set ensemble members to this value
addfloatGlobal::MV Add this value to each member

KalmanFilter (class=CorrectorKalmanFilter) Top

AttributeTypeDefaultDescription
ratiofloat Some ratio

Kmeans (class=CorrectorKmeans) Top

Creates an ensemble with 'K' members, using the Kmeans algorithm Means that have no closest ensemble members are set to missing

AttributeTypeDefaultDescription
numMeansint Number of clusters to identify

Measure (class=CorrectorMeasure) Top

Replace full ensemble with a single value created from an ensemble measure

AttributeTypeDefaultDescription
measurestd::string Which measure should be used to collapse ensemble?

MultiVariateRegression (under development) (class=CorrectorMultiVariateRegression) Top

AttributeTypeDefaultDescription
variablesstd::string[] List of variables used in regression

PolynomialRegression (class=CorrectorPolynomialRegression) Top

AttributeTypeDefaultDescription
useOrdersbool[] For each order (starting at 0), should a coefficient be computed?

QuantileQuantile (class=CorrectorQuantileQuantile) Top

Corrects forecasts by ensuring that the observations and forecasts have the same marginal distribution

AttributeTypeDefaultDescription
maxPointsint100 Maximum number of quantile-pairs to store in parameters

RecentObs (under development) (class=CorrectorRecentObs) Top

Date: 20130923 Author: Thomas Nipen Use the most recent observation to bias-correct forecast NOTE: If multiple correctors are chained, this must be first

Round (class=CorrectorRound) Top

Rounds forecast value down or up to some threshold if the forecast is less than what the observations historically are when the forecast is on the threshold. Useful for precipitation ensembles to help discrimiate between occurrance and non-occurance of precip

AttributeTypeDefaultDescription
roundDownTofloatGlobal::MV Round ensemble members down to this value
roundUpTofloatGlobal::MV Round ensemble members up to this value
fixedfloatGlobal::MV Use a fixed threshold for determining when to apply rounding

Sort (class=CorrectorSort) Top

Sorts the ensemble members in ascending order

 

List of schemes: Continuous, Bma, Bpe, Gamma, Moments, Upstream

Common options Top

The following attributes are inherited by all Continuous schemes:
AttributeTypeDefaultDescription
invTolfloat1e-4 When retriving an inverse value, how close must the cdf of that value be to the requested cdf? Note this only applies when a Continuous scheme does not implement its own inverter.

Bma (class=ContinuousBma) Top

Date: 20130305 Author: Dominique Bourdin Bayesian Model Averaging Adaptive parameter estimation based on http://www.dtcenter.org/events/workshops12/nuopc_2012/Presentations/Veenhuis%20-%20Ensemble%20Workshop.pdf NOTE: Assuming individual first moments, and pooled second moments

AttributeTypeDefaultDescription
distributionstd::string Tag of distribution to use

Bpe (class=ContinuousBpe) Top

Binned probability ensemble, where the cumulative probability is given by the fraction of ensemble members below. The probability mass between two consecutive ensemble members is fixed and equals 1/(numMembers+1). Currently, the CDF is set to 0 and 1 below and above the ensemble, respectively.

AttributeTypeDefaultDescription
interpstd::string Tag of interpolation scheme to use between ensemble members If not specified, use a step function

Gamma (class=ContinuousGamma) Top

AttributeTypeDefaultDescription
distributionstd::string

Moments (class=ContinuousMoments) Top

AttributeTypeDefaultDescription
transformstd::string
typestd::string Regression type (one of 'full', 'ens', and 'const')
distributionstd::string Tag of distribution to use
measurestd::string Tag of measure to use in regression

Upstream (under development) (class=ContinuousUpstream) Top

AttributeTypeDefaultDescription
distributionstd::string
 

List of schemes: Discrete, Consensus, Const, Fixed, Logit

Common options Top

The following attributes are inherited by all Discrete schemes:
AttributeTypeDefaultDescription
xfloat The value of the variable that the discrete mass is located at

Consensus (class=DiscreteConsensus) Top

Probability is the fraction of ensemble members forecasting the boundary. Assumptions: the obs is equally likely to fall between any consecutive ensemble members When one of two consecutive members fall on the boundary, half the mass is placed on the boundary the other half in the continuous part.

Const (class=DiscreteConst) Top

Probability is a value independent of the ensemble. It is adjusted based on the fraction of past observations falling on the discrete point.

AttributeTypeDefaultDescription
initialPfloat0.1 Starting value of the probability before training

Fixed (class=DiscreteFixed) Top

Probability is fixed to a value.

AttributeTypeDefaultDescription
valuereturn Value of the fixed probability

Logit (class=DiscreteLogit) Top

Discrete probability using logistic regression. Probability is of the form: logit(P) = a + b * m + c * f, where a, b, c are constants, m is the ensemble mean, and f is the fraction of ensemble members lying on the discrete point.

AttributeTypeDefaultDescription
useConstboolfalse Include the constant term in the regression?
measuresstd::string[] Ensemble measures to use in regression model
 

List of schemes: Calibrator, PitBased

Common options Top

The following attributes are inherited by all Calibrator schemes:
AttributeTypeDefaultDescription
invTolfloat1e-4

PitBased (under development) (class=CalibratorPitBased) Top

AttributeTypeDefaultDescription
numSmoothint
inteliCalFactorfloat1
inteliCalboolfalse
interpstd::string
doDiscreteboolfalse
numSmooth0int
numSmooth1int
 

List of schemes: Output, Flat, Netcdf, NetcdfCf, Verif

Common options Top

The following attributes are inherited by all Output schemes:
AttributeTypeDefaultDescription
namestd::string
folderstd::string"" Which folder should the output be placed in?
useDateFolderboolfalse Are files placed in folders according to date (YYYYMMDD)?
cdfsfloat[] What cumulative probabilities (quantiles) should be computed?
thresholdsfloat[] For which thresholds should cumulative probabilities be computed for
variablesstd::string

Flat (class=OutputFlat) Top

Netcdf (class=OutputNetcdf) Top

AttributeTypeDefaultDescription
dontWriteProbboolfalse

NetcdfCf (class=OutputNetcdfCf) Top

AttributeTypeDefaultDescription
numXintGlobal::MV Should locations be re-gridded? If so, how long is the first dimension?

Verif (class=OutputVerif) Top

 

List of schemes: Averager, Mean, Quantile

Averager (class=Averager:) Top

Reduces an ensemble to a deterministic forecast.

Mean (class=AveragerMean) Top

Computes the mean of the distribution by sampling several quantiles

AttributeTypeDefaultDescription
numPointsint10 How many sampling points should be used to compute mean of distribution?

Quantile (class=AveragerQuantile) Top

AttributeTypeDefaultDescription
quantilefloat
 

List of schemes: BaseDistribution, Gamma, Gaussian

Common options Top

Gamma (class=BaseDistributionGamma) Top

Gaussian (class=BaseDistributionGaussian) Top

 

List of schemes: Interpolator, Linear, Polynomial, Step

Common options Top

Linear (class=InterpolatorLinear:) Top

Connects each pair of coordinates by a straight line. Interpolation outside the domain of the points gives the value of the nearest end point. In this case the slope is 0. When multiple points have the same x-value but different y-values, the average of the smallest and largest y-value is used when interpolating at this x-value.

Polynomial (under development) (class=InterpolatorPolynomial:) Top

Fits a polynomial of specified order using least-squared error. Under development.

AttributeTypeDefaultDescription
orderint

Step (class=InterpolatorStep:) Top

Connects each pair of coordinates by a step function. The interpolation point immediately below is used. The slope is 0 at all points, and a fixed large value at the interpolation points. Interpolation outside the domain of the points gives the value of the nearest end point. When multiple points have the same x-value but different y-values, the average of the smallest and largest y-values is used when interpolating at this x-value.

 

List of schemes: Neighbourhood, Elevation, Nearest

Common options Top

Elevation (class=NeighbourhoodElevation) Top

Create a neighbourhood pf locations that are at a similar elevation

AttributeTypeDefaultDescription
searchRadiusfloatGlobal::MV Search for nearest elevation-neighbour within this radius (in m)
numintGlobal::MV Search for nearest neighbour within this radius (in m)
minElevDifffloat0 Only use the nearest neighbour if its elevation difference is less than this amount (in m)
distanceWeightfloat0 What weight should the distance have? (units 1/m)
elevationWeightfloat1 How weight should the elevation have? (units 1/m)
gradientWeightfloat0 How weight should the gradient have? (units 1m/1m)
numBestint1 How many of the best neighbours should be used?

Nearest (class=NeighbourhoodNearest) Top

Creates a neighbourhood using the nearest location. Curved earth distances are calculated.

AttributeTypeDefaultDescription
numint How many nearest neighbours should be used?
 

List of schemes: Measure, Anomaly, EnsembleMedian, EnsembleMoment, Fraction

Common options Top

The following attributes are inherited by all Measure schemes:
AttributeTypeDefaultDescription
preTransformsstd::string[] Apply this transofmration to the ensemble members
postTransformsstd::string[] Apply this transformation to the measure

Anomaly (class=MeasureAnomaly) Top

Returns the deviation of the enemble mean from the climatological value. Positive value means the ens mean is larger than normal.

EnsembleMedian (class=MeasureEnsembleMedian) Top

Returns the median of the ensemble

EnsembleMoment (class=MeasureEnsembleMoment) Top

Returns a specific moment of the ensemble

AttributeTypeDefaultDescription
momentint Which moment of the ensemble (between 0 and 2)? I.e. E[x^moment]. 2nd moment is the central moment.

Fraction (class=MeasureFraction) Top

Returns the fraction of members equal to some preset threshold

AttributeTypeDefaultDescription
xfloatGlobal::MV Use this threshold
useMinboolfalse Set the threshold to the forecast variable's minimum value (e.g. 0 mm for preciptation)
useMaxboolfalse Set the threshold to the forecast variable's maximum value (e.g. 100 % for RH)
 

List of schemes: Metric, Bias, Brier, Cdf, Contingency, Crps, EnsRange, EnsSpread, Forecast, Ignorance, Measure, Norm, Obs, Pit, SelectorSkill, Sharpness, Spread, Threshold

Metric (class=MetricBasic) Top

Schemes representing a verification metric for a single forecast/observation pair By default the metric will not be computed if the obs is invalid. Overwrite to change this. By default the metric will not be computed if the fcst is invalid. Overwrite to change this.

AttributeTypeDefaultDescription
useMedianboolfalse
anomalyboolfalse Should the forecast and observation be relative to the climatological mean?

Bias (class=MetricBias) Top

Observation minus forecast (deterministic)

Brier (class=MetricBrier) Top

AttributeTypeDefaultDescription
anomalyboolfalse
anomalyAboveboolfalse
anomalyBelowboolfalse
thresholdfloat

Cdf (class=MetricCdf) Top

Computes the CDF at a specified threshold

AttributeTypeDefaultDescription
thresholdfloat Compute CDF for this threshold (e.g. 0 mm for precipitation)

Contingency (class=MetricContingency) Top

Returns number from 2x2 contingency table formed by a set threshold.

AttributeTypeDefaultDescription
thresholdfloat Threshold to create contingency table for
quadrantstd::string Which quadrant in contingency table? One of: hit, falseAlarm, correctRejection, and miss.

Crps (class=MetricCrps) Top

EnsRange (class=MetricEnsRange) Top

EnsSpread (class=MetricEnsSpread) Top

Forecast (class=MetricForecast) Top

Ignorance (class=MetricIgnorance) Top

Measure (class=MetricMeasure) Top

AttributeTypeDefaultDescription
measurestd::string

Norm (class=MetricNorm) Top

AttributeTypeDefaultDescription
orderint

Obs (class=MetricObs) Top

Pit (class=MetricPit) Top

Probability integral transform value corresponding to the observation. In other words, the CDF of the forecast at the verifying value.

SelectorSkill (under development) (class=MetricSelectorSkill) Top

AttributeTypeDefaultDescription
typestd::string

Sharpness (class=MetricSharpness) Top

AttributeTypeDefaultDescription
widthfloat

Spread (class=MetricSpread) Top

Threshold (class=MetricThreshold) Top

AttributeTypeDefaultDescription
thresholdfloat
 

List of schemes: Transform, Absolute, Log, Power

Common options Top

Absolute (class=TransformAbsolute) Top

Gives the absolute value (i.e. turns -5 into +5)

Log (class=TransformLog) Top

AttributeTypeDefaultDescription
basefloat

Power (class=TransformPower) Top

AttributeTypeDefaultDescription
powerfloat