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
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 |
Attribute | Type | Default | Description |
---|---|---|---|
folder | std::string | Name of folder where namelists resides in ./input/ | |
fileExtension | std::string | "" | Specify file extension used on data files. Uses default otherwise. |
allowTimeInterpolation | bool | false | Should this dataset allow values to be interpolated for times between its offsets? |
cacheOtherVariables | bool | false | 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. |
cacheOtherLocations | bool | false | |
cacheOtherMembers | bool | false | |
cacheOtherOffsets | bool | false | |
optimize | bool | false | Should the dataset figure out how to optimize the cache options itself? |
forceLimits | bool | false | Should the dataset round values up/down to the boundary if it is outside? |
locationFilename | std::string | "" | If the locations are specified in a separate file, what is its filename? |
initDelay | float | 0 | How many hours does it take before forecasts are available after initialization? |
offsets | float[] | ||
replaceMissing | bool | false | If a date/init is missing, should an older date/init be used? |
fileFormat | std::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 | |
startDate | int | Global::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'. |
endDate | int | Global::MV | See 'startDate'. Set the end date of available dates (in YYYYMMDD format). |
type | std::string | Dataset type. One of 'forecast' or 'observation'. | |
dataDir | std::string | Full path of where data files are located | |
locations | int[] | Only allow these location IDs | |
removeLocations | int[] | 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 |
class=InputDvh
)
Top
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
Attribute | Type | Default | Description |
---|---|---|---|
offsets | float[] |
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
class=InputGrib
)
Top
GRIB files version 2
Attribute | Type | Default | Description |
---|---|---|---|
filenamePrefix | std::string | "" | |
filenameMiddle | std::string | "" | |
multiOffsetsPerFile | bool | false | Are data for all offsets located in a single file (as opposed to one file per offset)? |
mv | float | Global::MV | Missing value indicator used in this dataset |
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.
Attribute | Type | Default | Description |
---|---|---|---|
lats | float[] | Vector of latitudes (in degrees) | |
lons | float[] | Vector of longitudes (in degrees) |
class=InputLorenz63
)
Top
Simulates the Lorenz 1963 system of ordinary differential equations
Attribute | Type | Default | Description |
---|---|---|---|
x0 | float | Initial x condition | |
y0 | float | Initial y condition | |
z0 | float | Initial z condition | |
r | float | 28 | Model parameter 'r' |
s | float | 10 | Model parameter 's' |
b | float | 8.0/3 | Model parameter 'b' |
dt | float | Integration timestep in seconds | |
ensSize | int | 1 | Ensemble size (for perturbations) |
xVar | float | 0 | Variance of x perturbation |
yVar | float | 0 | Variance of y perturbation |
zVar | float | 0 | Variance of z perturbation |
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)
class=InputNetcdfCf
)
Top
Datasets conforming to the CF standard Recognizes the following attributes (assigned to a variable): scale_factor, add_offset, _FillValue
Attribute | Type | Default | Description |
---|---|---|---|
latVar | std::string | "Lat" | Which variable stores latitudes |
lonVar | std::string | "Lon" | Which variable stores longitudes |
elevVar | std::string | Which variable stores elevation | |
landUse | std::string | "" | Which variable stores land use index |
timeDim | std::string | "Offset" | Which dimension defines time |
timeRef | std::string | Which variable stores the reference time for the first offset | |
timeDivisor | float | 1 | What should the times in the file be divided by to make them into hours |
timeVar | std::string | ||
horizDims | std::string[] | What dimension names represent horizontal dimensions? | |
vertDims | std::string[] | What dimension names represent vertical dimensions? | |
ensDim | std::string | "" | What dimension name represents the ensemble member dimension? |
computeGradient | bool | false | Should the gradient of elevation be computed for each location? Some downscaling methods require it, but the computation takes extra time. |
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/.
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
Attribute | Type | Default | Description |
---|---|---|---|
mean | float | Annual mean | |
yearAmplitude | float | Difference between mean and peaks in the curve | |
dayAmplitude | float | Distance between mean and peaks in the curve | |
members | int | Number of ensemble members | |
dayCommonStd | float | 0 | Standard deviation of day-to-day changes |
dayBiasStd | float | 0 | Standard deviation of bias of the day |
dayBiasEfold | float | 10 | How many days should it take to make daily bias 1/e of its starting value |
ensStd | float | 0 | Standard deviation of ensemble noise |
dayPeak | int | 180 | What julian date is the peak? |
hourPeak | float | 12 | What offset is the peak? |
Attribute | Type | Default | Description |
---|---|---|---|
min | float | Global::MV | |
max | float | Global::MV | |
mean | float | Global::MV | |
std | float | Global::MV | |
lowerDiscrete | bool | false | |
upperDiscrete | bool | false | |
description | std::string | "" | |
isCircular | bool | false | |
units | std::string | "" | |
standardName | std::string | "" |
class=VariableBypass
)
Top
class=VariablePhase
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
sleetStart | float | 2 | |
SnowStart | float | 1 | |
useWetBulb | bool | false | |
minPrecip | float | 0.1 | Minimum precip amount needed to treat as precip |
class=VariablePower
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
turbineRadius | float | ||
lowerCutOffSpeed | float | ||
upperCutOffSpeed | float |
class=VariablePrecip
)
Top
class=VariablePrecip24
)
Top
class=VariablePrecip3
)
Top
class=VariablePrecip6
)
Top
class=VariablePrecipSolid
)
Top
class=VariableSurface
)
Top
class=VariableTDew
)
Top
class=VariableTMax24
)
Top
class=VariableTMin24
)
Top
class=VariableTWet
)
Top
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
class=VariableWindSpeed
)
Top
class=QcDefault
)
Top
Checks that the value is between the min and max defined by the variable
class=DownscalerElevation
)
Top
Move air parcel dry-adiabatically up/down to desired location, from nearest neighbours.
Attribute | Type | Default | Description |
---|---|---|---|
neighbourhood | std::string | Which neighbourhood scheme should be used to define the neighbourhood? Defaults to 1 nearest neighbour. | |
lapseRate | float | 6.5 | Use this lapse rate (degrees/km). Positive means decreasing temperature with height. |
computeLapseRate | bool | false | Should the lapse rate be computed from neighbouring points? |
showLapseRate | bool | false | Output the lapse rate instead of temperature (only used for debugging) |
class=DownscalerNeighbourhood
)
Top
Uses the mean of gridpoints within a neighbourhood.
Attribute | Type | Default | Description |
---|---|---|---|
neighbourhoods | std::string[] | Which neighbourhood scheme should be used to define the neighbourhood? Defaults to 1 nearest neighbour. | |
weightOrder | int | 0 | Should gridpoints be weighted by distance? If so, what (inverse) power should be used? If 0 then no weighting performed. |
class=SpreaderCressman
)
Top
Spread parameters based on inverse distance
Attribute | Type | Default | Description |
---|---|---|---|
maxDistance | float | Global::MV | |
efoldDistance | float |
class=SpreaderInterpolate
)
Top
Spread parameters based on inverse distance
class=SpreaderPooler
)
Top
Assign parameters based on which parameter pool the location is in
Attribute | Type | Default | Description |
---|---|---|---|
windowLength | float | 0 | Each bin should be this many hours wide |
class=PoolerAll
)
Top
Pools all observations locations together
class=PoolerElevation
)
Top
Create one pooling index for each elevation band.
Attribute | Type | Default | Description |
---|---|---|---|
bandwidth | float | How wide a band should be used for elevations? [0, bandwidth, 2*bandwidth, ...] |
class=PoolerLocations
)
Top
Create one pooling index for each obs-locations. Uses nearest neighbour.
Attribute | Type | Default | Description |
---|---|---|---|
lats | float[] | Place parameters at latitude/longitude pairs | |
lons | float[] | ||
dataset | std::string | "" | Use one parameter set for each location in this dataset |
class=ParameterIoMemory
)
Top
Store parameters in memory
class=ParameterIoNetcdf
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
removeMissing | bool | false | Removes ensemble members that value missing forecasts |
neighbourhoods | std::string[] |
class=SelectorAnalog
)
Top
Select dates/offsets in the past where the forecast issued is similar to today's forecast
Attribute | Type | Default | Description |
---|---|---|---|
variables | std::string[] | Which variables should be used to search for analogs? If none specified, use the variable being predicted. | |
numAnalogs | int | Number of analogs to include in the ensemble | |
weights | float[] | What weight should be given to each variable? If not specified, variables are weighted by their standard deviation of their climatology | |
dayWidth | int | 365 | Only find analogs within +- number of days |
locationIndependent | bool | false | |
offsetIndependent | bool | false | Should the same analogs be picked for all offsets? |
doObsForward | bool | false | |
computeVariableVariances | bool | false | Adaptively compute variable weights, instead of using constant variances from variable namelist |
printDates | bool | false | Print the selected dates (for debugging) |
dataset | std::string | Use this (forecast) dataset to match analogs. Otherwise, the default datasets is used | |
analogMetric | std::string | Which DetMetric scheme should be used to evaluate analog similarity? If unspecified, use absolute difference metric | |
adjustOffset | float | 0 |
class=SelectorClim
)
Top
Creates an ensemble by selecting past observations corresponding to a similar time of day and date of year
Attribute | Type | Default | Description |
---|---|---|---|
dayLength | int | Window length for seasonal cycle (days) | |
hourLength | int | Window length for diurnal cycle (hours) | |
allowFutureValues | return | false | Allow dates in the future |
futureBlackout | int | 0 | Future values must be this number of days into the future |
allowWrappedOffsets | bool | false | ? |
class=SelectorDefault
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
windowLength | float | 0 |
class=SelectorExtreme
)
Top
class=SelectorMember
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
members | int[] | Add ensemble members with these indices | |
maxResolution | float | Global::MV | Allow ensemble members with resolution <= this (in km) |
minResolution | float | Global::MV | Allow ensemble members with resolution >= this (in km) |
models | std::string[] | Allow ensemble members with these model names |
class=SelectorPerformance
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
num | int | ||
detMetric | std::string |
class=SelectorPersistence
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
useLatest | bool | false | Use today's obs at 00 UTC. Otherwise use yesterday's obs at the same time |
class=SelectorSuper
)
Top
Creates a super ensemble by using members from multiple EPSes
Attribute | Type | Default | Description |
---|---|---|---|
datasets | std::string[] | Tags of inputs used to create ensemble |
Attribute | Type | Default | Description |
---|---|---|---|
enforceLimits | bool | false | Ensure that corrected values are within limits defined by the variable |
memberSpecific | bool | false | Run this scheme on each ensemble member separately |
poolParameters | bool | false | Use the same parameters on each ensemble member |
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.
Attribute | Type | Default | Description |
---|---|---|---|
num | int | 1 | How many of the best members should be used? |
class=CorrectorClim
)
Top
Moderates ensemble members towards the climatological mean
Attribute | Type | Default | Description |
---|---|---|---|
computeClim | bool | 0 | Should method compute the climatology (alternatively, look it up)? |
class=CorrectorClimReg
)
Top
Uses linear regression between forecast and climatology
class=CorrectorDirectional
)
Top
Bias-correction based no wind-direction. Bias is computed for different wind direction.
Attribute | Type | Default | Description |
---|---|---|---|
numPoints | int | How many bins should the direction be divided into? | |
multiplicative | bool | false | Should the correction be multiplicative instead of additive? |
numWaves | int |
class=CorrectorDmb
)
Top
Bias-correction using degree of mass balance
Attribute | Type | Default | Description |
---|---|---|---|
fixedDivisor | float | Global::MV | Divide forecasts by this fixed divisor |
class=CorrectorFixed
)
Top
Either add or set each ensemble member to a fixed value
Attribute | Type | Default | Description |
---|---|---|---|
value | float | Global::MV | Set ensemble members to this value |
add | float | Global::MV | Add this value to each member |
class=CorrectorKalmanFilter
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
ratio | float | Some ratio |
class=CorrectorKmeans
)
Top
Creates an ensemble with 'K' members, using the Kmeans algorithm Means that have no closest ensemble members are set to missing
Attribute | Type | Default | Description |
---|---|---|---|
numMeans | int | Number of clusters to identify |
class=CorrectorMeasure
)
Top
Replace full ensemble with a single value created from an ensemble measure
Attribute | Type | Default | Description |
---|---|---|---|
measure | std::string | Which measure should be used to collapse ensemble? |
class=CorrectorMultiVariateRegression
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
variables | std::string[] | List of variables used in regression |
class=CorrectorPolynomialRegression
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
useOrders | bool[] | For each order (starting at 0), should a coefficient be computed? |
class=CorrectorQuantileQuantile
)
Top
Corrects forecasts by ensuring that the observations and forecasts have the same marginal distribution
Attribute | Type | Default | Description |
---|---|---|---|
maxPoints | int | 100 | Maximum number of quantile-pairs to store in parameters |
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
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
Attribute | Type | Default | Description |
---|---|---|---|
roundDownTo | float | Global::MV | Round ensemble members down to this value |
roundUpTo | float | Global::MV | Round ensemble members up to this value |
fixed | float | Global::MV | Use a fixed threshold for determining when to apply rounding |
class=CorrectorSort
)
Top
Sorts the ensemble members in ascending order
Attribute | Type | Default | Description |
---|---|---|---|
invTol | float | 1e-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. |
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
Attribute | Type | Default | Description |
---|---|---|---|
distribution | std::string | Tag of distribution to use |
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.
Attribute | Type | Default | Description |
---|---|---|---|
interp | std::string | Tag of interpolation scheme to use between ensemble members If not specified, use a step function |
class=ContinuousGamma
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
distribution | std::string |
class=ContinuousMoments
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
transform | std::string | ||
type | std::string | Regression type (one of 'full', 'ens', and 'const') | |
distribution | std::string | Tag of distribution to use | |
measure | std::string | Tag of measure to use in regression |
class=ContinuousUpstream
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
distribution | std::string |
Attribute | Type | Default | Description |
---|---|---|---|
x | float | The value of the variable that the discrete mass is located at |
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.
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.
Attribute | Type | Default | Description |
---|---|---|---|
initialP | float | 0.1 | Starting value of the probability before training |
class=DiscreteFixed
)
Top
Probability is fixed to a value.
Attribute | Type | Default | Description |
---|---|---|---|
value | return | Value of the fixed probability |
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.
Attribute | Type | Default | Description |
---|---|---|---|
useConst | bool | false | Include the constant term in the regression? |
measures | std::string[] | Ensemble measures to use in regression model |
Attribute | Type | Default | Description |
---|---|---|---|
invTol | float | 1e-4 |
class=CalibratorPitBased
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
numSmooth | int | ||
inteliCalFactor | float | 1 | |
inteliCal | bool | false | |
interp | std::string | ||
doDiscrete | bool | false | |
numSmooth0 | int | ||
numSmooth1 | int |
Attribute | Type | Default | Description |
---|---|---|---|
name | std::string | ||
folder | std::string | "" | Which folder should the output be placed in? |
useDateFolder | bool | false | Are files placed in folders according to date (YYYYMMDD)? |
cdfs | float[] | What cumulative probabilities (quantiles) should be computed? | |
thresholds | float[] | For which thresholds should cumulative probabilities be computed for | |
variables | std::string |
class=OutputFlat
)
Top
class=OutputNetcdf
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
dontWriteProb | bool | false |
class=OutputNetcdfCf
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
numX | int | Global::MV | Should locations be re-gridded? If so, how long is the first dimension? |
class=OutputVerif
)
Top
class=Averager:
)
Top
Reduces an ensemble to a deterministic forecast.
class=AveragerMean
)
Top
Computes the mean of the distribution by sampling several quantiles
Attribute | Type | Default | Description |
---|---|---|---|
numPoints | int | 10 | How many sampling points should be used to compute mean of distribution? |
class=AveragerQuantile
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
quantile | float |
class=BaseDistributionGamma
)
Top
class=BaseDistributionGaussian
)
Top
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.
class=InterpolatorPolynomial:
)
Top
Fits a polynomial of specified order using least-squared error. Under development.
Attribute | Type | Default | Description |
---|---|---|---|
order | int |
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.
class=NeighbourhoodElevation
)
Top
Create a neighbourhood pf locations that are at a similar elevation
Attribute | Type | Default | Description |
---|---|---|---|
searchRadius | float | Global::MV | Search for nearest elevation-neighbour within this radius (in m) |
num | int | Global::MV | Search for nearest neighbour within this radius (in m) |
minElevDiff | float | 0 | Only use the nearest neighbour if its elevation difference is less than this amount (in m) |
distanceWeight | float | 0 | What weight should the distance have? (units 1/m) |
elevationWeight | float | 1 | How weight should the elevation have? (units 1/m) |
gradientWeight | float | 0 | How weight should the gradient have? (units 1m/1m) |
numBest | int | 1 | How many of the best neighbours should be used? |
class=NeighbourhoodNearest
)
Top
Creates a neighbourhood using the nearest location. Curved earth distances are calculated.
Attribute | Type | Default | Description |
---|---|---|---|
num | int | How many nearest neighbours should be used? |
Attribute | Type | Default | Description |
---|---|---|---|
preTransforms | std::string[] | Apply this transofmration to the ensemble members | |
postTransforms | std::string[] | Apply this transformation to the measure |
class=MeasureAnomaly
)
Top
Returns the deviation of the enemble mean from the climatological value. Positive value means the ens mean is larger than normal.
class=MeasureEnsembleMedian
)
Top
Returns the median of the ensemble
class=MeasureEnsembleMoment
)
Top
Returns a specific moment of the ensemble
Attribute | Type | Default | Description |
---|---|---|---|
moment | int | Which moment of the ensemble (between 0 and 2)? I.e. E[x^moment]. 2nd moment is the central moment. |
class=MeasureFraction
)
Top
Returns the fraction of members equal to some preset threshold
Attribute | Type | Default | Description |
---|---|---|---|
x | float | Global::MV | Use this threshold |
useMin | bool | false | Set the threshold to the forecast variable's minimum value (e.g. 0 mm for preciptation) |
useMax | bool | false | Set the threshold to the forecast variable's maximum value (e.g. 100 % for RH) |
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.
Attribute | Type | Default | Description |
---|---|---|---|
useMedian | bool | false | |
anomaly | bool | false | Should the forecast and observation be relative to the climatological mean? |
class=MetricBias
)
Top
Observation minus forecast (deterministic)
class=MetricBrier
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
anomaly | bool | false | |
anomalyAbove | bool | false | |
anomalyBelow | bool | false | |
threshold | float |
class=MetricCdf
)
Top
Computes the CDF at a specified threshold
Attribute | Type | Default | Description |
---|---|---|---|
threshold | float | Compute CDF for this threshold (e.g. 0 mm for precipitation) |
class=MetricContingency
)
Top
Returns number from 2x2 contingency table formed by a set threshold.
Attribute | Type | Default | Description |
---|---|---|---|
threshold | float | Threshold to create contingency table for | |
quadrant | std::string | Which quadrant in contingency table? One of: hit, falseAlarm, correctRejection, and miss. |
class=MetricCrps
)
Top
class=MetricEnsRange
)
Top
class=MetricEnsSpread
)
Top
class=MetricForecast
)
Top
class=MetricIgnorance
)
Top
class=MetricMeasure
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
measure | std::string |
class=MetricNorm
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
order | int |
class=MetricObs
)
Top
class=MetricPit
)
Top
Probability integral transform value corresponding to the observation. In other words, the CDF of the forecast at the verifying value.
class=MetricSelectorSkill
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
type | std::string |
class=MetricSharpness
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
width | float |
class=MetricSpread
)
Top
class=MetricThreshold
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
threshold | float |
class=TransformAbsolute
)
Top
Gives the absolute value (i.e. turns -5 into +5)
class=TransformLog
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
base | float |
class=TransformPower
)
Top
Attribute | Type | Default | Description |
---|---|---|---|
power | float |