Transformation functions — basics
This page is the generated field list for the shared mechanics of a
transformationModule file — everything about <transformation> that’s the
same no matter which function it runs. The function catalogue itself (43
categories, from accumulation to wave) is split across separate pages
listed in Function categories below, because
together they’re too large for one page (~400 types, ~3000 fields — see the
Transformations task guide for why).
At a glance
Section titled “At a glance”Purpose
: Runs one or more <transformation> steps in order, each reading an input
series and writing an output series through a chosen function.
Folder
: Config/ModuleConfigFiles/
Root element
: <transformationModule> (version="1.0", required)
Concept : Transformations task guide covers the input→function→output pattern and a worked gap-filling example in full.
Minimal example
Section titled “Minimal example”<?xml version="1.0" encoding="UTF-8"?><transformationModule xmlns="http://www.wldelft.nl/fews" version="1.0"> <transformation id="AggregateToDaily"> <aggregation> <accumulative> <inputVariable> <timeSeriesSet> <moduleInstanceId>ImportObservations</moduleInstanceId> <valueType>scalar</valueType> <parameterId>P.obs</parameterId> <locationId>RainGauge_01</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="hour" multiplier="1"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </inputVariable> <outputVariable> <timeSeriesSet> <moduleInstanceId>PreProcessObservations</moduleInstanceId> <valueType>scalar</valueType> <parameterId>P.obs</parameterId> <locationId>RainGauge_01</locationId> <timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="day" multiplier="1"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> </outputVariable> </accumulative> </aggregation> </transformation></transformationModule>This picks the aggregation family and its accumulative variant — see
Temporal reshaping for that family’s own
field tables.
Field reference
Section titled “Field reference”Auto-generated from transformationModule.xsd. Descriptions are the schema's own annotations.
Element <transformationModule>
Contains one or more transformations that will be carried out one by one.
Attributes
| Attribute | Use | Notes |
|---|---|---|
version | required | fixed: 1.0. Schema version. |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
timeZone | timeZoneStringType | optional | Optional time zone for dates and times defined in this configuration file. If no time zone is defined, then dates and times are in GMT. |
writeMissingsOutsideRangeLimits | boolean | optional | Since 2015.02 added for backwards compatibility. Default true. When true values outside limits for range transformations will be explicitly set to missing. When false values outside limits for range transformations will remain untouched |
preserveManualEdits | boolean | optional | Since 2017.02 . Default false. When true the transformation module will not overwrite any manual corrected edited values. |
variable | VariableDefinitionComplexType | optional · repeats | Definitions of variables that can be used as input, output or limit variable in the transformations. The output variable of one transformation can be used as input variable for another transformation. A variable is always a time series. Alternatively variable definitions can be embedded in a transformation. |
transformation | TransformationFunctionComplexType | required · repeats | One or more transformations that will be carried out one by one. |
VariableDefinitionComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
variableId | idStringType | required | Identifier for this variable. Use this identifier to reference to this variable in a transformation. |
timeSeriesSet | TimeSeriesSetComplexType | required | A time series set that can be used as input or as output for a transformation function. |
convertDatum | boolean | optional | If true, then this time series is converted from local to ordnance datum level before a transformation and back to local datum level after the transformation. Default is false. |
checkMissing | boolean | optional | Option to check this timeseries for missing values. This option works in combination with the Parameter flag 'allowMissing', which can be set for a parameter in the parameters.xml configuration file. If for a given parameter allowMissing is false and checkMissing is true, then the transformation throws an exception when there are missing values for this parameter. When omitted defaults to 'false'. For grid data this option only checks whether the entire grid contains missing values or not, i.e. individual cells can still have missing values as long as there are other cells with non-missing values in the grid for the same time step. |
TransformationFunctionComplexType
Contains a function that will be executed using the input and output variables for that function.
Attributes
| Attribute | Use | Notes |
|---|---|---|
id | required | Identifier of this transformation. This is only used in log messages and exception messages. |
useRelatedInputLocationForOutputMatching | optional | Since 2020.01. When true the related input time series will be matched with the output location. When false the original input location is used. This option is only applicable when the relation is defined in the input time series set. |
useRelatedOutputLocationForInputMatching | optional | Since 2020.01. When true the input time series will be matched with the related output location. When false the original output location is used. This option is only applicable when the relation is defined in the output time series set. |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Available since 2019.02. Optional field. If configured, the text will be shown as tooltip in the workflow tree, if the mouse is hovering over the function. |
periodTransformation | PeriodDependentTransformationComplexType | required · repeats | One or more transformations that are valid for different periods and contain multiple transformations that are valid for different ranges. |
accumulation | AccumulationTransformationChoiceComplexType | required | |
adjust | AdjustTransformationChoiceComplexType | required | |
aggregation | AggregationTransformationChoiceComplexType | required | |
altitude | AltitudeTransformationChoiceComplexType | required | |
conditional | ConditionalTransformationChoiceComplexType | required | |
copy | CopyTransformationChoiceComplexType | required | |
custom | CustomTransformationChoiceComplexType | required | |
deaccumulation | DeAccumulationTransformationChoiceComplexType | required | |
disaggregation | DisaggregationTransformationChoiceComplexType | required | |
dischargeStage | DischargeStageTransformationChoiceComplexType | required | |
events | EventsTransformationChoiceComplexType | required | |
filter | FilterTransformationChoiceComplexType | required | |
generation | GenerationChoiceComplexType | required | |
generationEnsemble | GenerationEnsembleChoiceComplexType | required | |
gradient | GradientChoiceComplexType | required | |
interpolationSerial | InterpolationSerialTransformationChoiceComplexType | required | |
interpolationSpatial | InterpolationSpatialTransformationChoiceComplexType | required | |
lookup | LookupTransformationChoiceComplexType | required | Transformations to map one set of values to another set of values using lookup tables. |
merge | MergeTransformationChoiceComplexType | required | |
multipleLocationAttributes | MultipleLocationAttributesComplexType | required | |
moisture | MoistureTransformationChoiceComplexType | required | |
performanceIndicatorsLeadTimeAccuracy | PerformanceIndicatorsLeadTimeAccuracyChoiceComplexType | required | Can be used to calculate different types of lead time accuracy performance indicators. The configured forecast search period is used to find forecasts that will be used as input. For a given forecast, the value at validTime = (forecastTime + leadTime) will be compared with the observed value at the same validTime. This comparison is done for all input forecasts to calculate a final output value for the performance indicator. The performance indicator type determines which calculations are used to make the comparison (e.g. BIAS, RMSE). The output value will be stored in the output time series at T0. |
precipitation | PrecipitationTransformationChoiceComplexType | required | |
profile | ProfileTransformationChoiceComplexType | required | |
regression | RegressieTransformationChoiceComplexType | required | |
review | ReviewTransformationChoiceComplexType | required | |
rotation | RotationTransformationChoiceComplexType | required | |
sample | SampleTransformationChoiceComplexType | required | |
selection | SelectionTransformationChoiceComplexType | required | |
stageDischarge | StageDischargeTransformationChoiceComplexType | required | |
statisticsSameAttributeValue | StatisticsSameAttributeValueChoiceComplexType | required | Input are multiple time series. Output are multiple time series. The output time series must have a shared attribute with the input time series (i.e. same attribute needs to exist for input and output locations). For example if "attribute1" is configured, both input and output time series must have an attribute with id "attribute1". The values of "attribute1" also need to match between input and output like "attributeValue1". |
statisticsChildrenLocations | StatisticsChildLocationsChoiceComplexType | required | Input are multiple time series. Output are multiple time series. Each output time series must have a parent location. For each output time series (with a parent location) the input time series with the corresponding child locations are selected. The selected input time series are used to get a statistic output value, per time step. |
statisticsRelatedLocations | StatisticsRelatedLocationsChoiceComplexType | required | You can compute some statistics on related locations. This transformation is available since 2013.01. It is possible to have the Location relation for either the input or the output locations. Relation points from input to output or from output to input. When the relation is available in both directions a config error is logged. |
statisticsValueProperties | StatisticsValuePropertiesChoiceComplexType | required | Input consists of time series with value properties. Based on those properties statistics are calculated. |
statisticsEnsemble | StatisticsEnsembleChoiceComplexType | required | Input is an ensemble with multiple time series. Output is one time series. Per time step the ensemble values for that time step are used to get a statistic output value. |
statisticsPeriodic | StatisticsPeriodicChoiceComplexType | required | A statisticsPeriodic transformation will compute the configured statistic function. The outputVariable has to be a timeSeries with a defined cycle period. The input periods for a given output time are acquired by repeating the aggregation period for that output time for every cycle. For a given output time the input times in all input periods are used to calculate a result value. A statisticsPeriodic transformation can e.g. be used in climatology to get e.g. the mean temperature in January over the last 100 years. E.g. input series has a temperature value for each day in 100 years and output has a temperature value for each month in the year (this means 12 values in a time series with a cycle of one year). |
statisticsSerial | StatisticsSerialChoiceComplexType | required | A statisticsSerial transformation will compute the configured statistic function. For each time in the output series the input values within the corresponding aggregation period are used to get a result value for that output time. |
statisticsSummary | StatisticsSummaryChoiceComplexType | required | A statisticsSummary transformation will compute the configured statistic function for the input values to get one result value (the summary). This uses only the input values within the relativeViewPeriod that is defined in the timeSeriesSet of the output variable. The result output value is stored at T0 (time zero) in the output timeSeries. |
statisticsVerticalLayers | StatisticsVerticalLayersChoiceComplexType | required | Available since 2021.01. Statistics calculated at the same time, at the same location from different z-layers or sigma layers. |
structure | StructureTransformationChoiceComplexType | required | |
timeShift | TimeShiftTransformationChoiceComplexType | required | |
user | UserTransformationChoiceComplexType | required | |
wave | WaveTransformationChoiceComplexType | required | |
rangeLimitVariableDefinition | VariableDefinitionComplexType | optional · repeats | Optional one or more definitions of range limit variables. The range limit variables that are defined here can only be used in the range elements in rangeTransformations inside this transformation. A limit variable has to be a scalar time series variable. Alternatively these variables can be defined at the start of this transformations file. |
rangeTransformation | RangeDependentTransformationComplexType | required · repeats | One or more transformations that are valid for different ranges of a certain limit variable. |
TimeSeriesSetComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
id | optional | |
name | optional |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | |
valueType | timeSeriesValueTypeStringType | required | |
parameterId | idStringType | required | |
domainParameterId | idStringType | optional · repeats | For a spectrum specify the frequency / wave length parameter. For a directional spectrum specify first the frequency parameter and secondly the directional parameter |
qualifierId | idStringType | optional · repeats | Id that references an qualifier listed in the regionConfigFiles/Qualifiers.xsd |
timeSeriesType | timeSeriesTypeStringType | required | |
timeStep | TimeStepComplexType | required | |
aggregationPeriod | RelativePeriodComplexType | optional | The value at a time represents the aggregated value over the aggregation period e.g when the aggregation period is -6 to 0 hour the value at 13:00 represents an aggregation (e.g. moving average) from 7:00 till 13:00 (including) |
cycle | CalendarTimeSpanComplexType | optional | If cycle specified, then the data is repeated periodically with this cycle as the period length. There is original data for only one cycle. After that cycle the data will be repeated periodically. In other words, when cycle is defined, then a missing value is filled up with a value from the last available cycle before the missing value. |
externalForecastSearchTimeStep | TimeStepComplexType | optional | Since 2024.01. Only time series with an external forecast time that match this time step are visible while searching |
externalForecastTimeCardinalTimeStep | TimeStepComplexType | optional | When no external forecast exists in the data store younger that the specified age a new external forecast is returned with a minimum age that applies to the specified cardinal time step |
qualifierAggregation | qualifierAggregationStringType | optional | When specified all the time series that have ALL the specified qualifiers are aggregated to a single time series on read. Can not be specified when this time series set is meant for writing |
readWriteMode | timeSeriesReadWriteModeStringType | required | Note: this readWriteMode is only used in the TimeSeriesDisplay. Other modules ignore this readWriteMode. |
synchLevel | intStringType | optional | |
expiryTime | CalendarTimeSpanComplexType | optional | |
delay | TimeShiftComplexType | optional | |
multiplier | floatStringType | optional | |
divider | floatStringType | optional | |
incrementer | floatStringType | optional | |
ensembleId | idStringType | optional | Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow. |
visibilityControllingFlagSourceColumnId | idStringType | optional | All values that not passed this validation step are removed on read. Set to missing for equidistant and removed for non-equidistant |
onlyReliableFlagSourceColumnId | idStringType | optional | Since 2022.02. All values that passed this validation step and are reliable will be included other will be set to missing for equidistant and removed for non-equidistant. This will work as an "or" operation together with "visibilityControllingFlagSourceColumnId", so data should either have passed "visibilityControllingFlagSourceColumnId" or "onlyReliableFlagSourceColumnId". |
locationRelationId | idStringType | required | Relation id to map the time series set locations to related locations. Instead of the time series set locations the related locations are used to read/write the time series. |
skipLocationsWithoutRelation | boolean | optional | Since 2020.01 When true locations that do not have a related location will be skipped, when false all location must have a related location. Default is false |
moduleInstanceId | idStringType | required · repeats | |
moduleInstanceSetId | idStringType | required | Query a single module instance in the data store that is available for this time series set |
filterModuleInstanceSetId | idStringType | required | Query all module instances in the data store that are available for this time series set |
locationId | idStringType | required · repeats | |
locationSetId | idStringType | required | |
chainageLocationSetId | idStringType | required | Id of location set which represents a chainage of locations. This can only be used in combination with readWriteMode readOnly |
relativeViewPeriod | TimeSeriesSetRelativePeriodComplexType | optional | Period relative the time 0 of the workflow or the system time of the fews explorer |
relativeForecastPeriod | TimeSeriesSetRelativePeriodComplexType | optional | Period relative to first time of a simulated or external forecast time series |
ensembleMemberId | nonEmptyStringType | required · repeats | Optional field used for reading or writing one or more particular ensemble member |
ensembleMemberIndex | nonNegativeIntegerStringType | required | Optional field used for reading or writing one particular ensemble member |
ensembleMemberIndexRange | EnsembleMemberIndexRangeComplexType | required | Optional field used for reading or writing one particular sub set of the ensemble |
relativeForecastSearchPeriod | TimeSeriesSetRelativePeriodComplexType | required | Since 2015.02. The latest available external forecast in this period will be read. By default the latest before time0 is returned |
externalForecastTimeId | idStringType | required | Since 2018.01. Forecast time reference id configured in the forecast length estimator config. Can only be used in workflows and only after the forecast length estimator. |
externalForecastMinAge | TimeSpanComplexType | optional | Since 2014.02. By default is there is no minimum age. All external forecasts after the time0 are ignored. The age of an external forecast is defined as the time span between the external forecast time and the time 0 |
externalForecastMaxAge | TimeSpanComplexType | optional | By default is there is no maximum age so the returned external forecast can be very old when there is no recent forecast available. All external forecasts after the time0 are ignored. The age of an external forecast is defined as the time span between the external forecast time and the time 0 |
PeriodDependentTransformationComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
period | PeriodConditionComplexType | required · repeats | One or more periods for which this transformation is valid. Periods should not overlap. For a period the start time is inclusive and the end time is exclusive. |
outputValueFlag | flagEnumStringType | optional | Optional flag that will be set for all output values for this period transformation.
One of: unreliable, doubtful |
accumulation | AccumulationTransformationChoiceComplexType | required | |
adjust | AdjustTransformationChoiceComplexType | required | |
aggregation | AggregationTransformationChoiceComplexType | required | |
altitude | AltitudeTransformationChoiceComplexType | required | |
conditional | ConditionalTransformationChoiceComplexType | required | |
copy | CopyTransformationChoiceComplexType | required | |
custom | CustomTransformationChoiceComplexType | required | |
deaccumulation | DeAccumulationTransformationChoiceComplexType | required | |
disaggregation | DisaggregationTransformationChoiceComplexType | required | |
dischargeStage | DischargeStageTransformationChoiceComplexType | required | |
events | EventsTransformationChoiceComplexType | required | |
filter | FilterTransformationChoiceComplexType | required | |
generation | GenerationChoiceComplexType | required | |
generationEnsemble | GenerationEnsembleChoiceComplexType | required | |
gradient | GradientChoiceComplexType | required | |
interpolationSerial | InterpolationSerialTransformationChoiceComplexType | required | |
interpolationSpatial | InterpolationSpatialTransformationChoiceComplexType | required | |
lookup | LookupTransformationChoiceComplexType | required | Transformations to map one set of values to another set of values using lookup tables. |
merge | MergeTransformationChoiceComplexType | required | |
multipleLocationAttributes | MultipleLocationAttributesComplexType | required | |
moisture | MoistureTransformationChoiceComplexType | required | |
performanceIndicatorsLeadTimeAccuracy | PerformanceIndicatorsLeadTimeAccuracyChoiceComplexType | required | Can be used to calculate different types of lead time accuracy performance indicators. The configured forecast search period is used to find forecasts that will be used as input. For a given forecast, the value at validTime = (forecastTime + leadTime) will be compared with the observed value at the same validTime. This comparison is done for all input forecasts to calculate a final output value for the performance indicator. The performance indicator type determines which calculations are used to make the comparison (e.g. BIAS, RMSE). The output value will be stored in the output time series at T0. |
precipitation | PrecipitationTransformationChoiceComplexType | required | |
profile | ProfileTransformationChoiceComplexType | required | |
regression | RegressieTransformationChoiceComplexType | required | |
review | ReviewTransformationChoiceComplexType | required | |
rotation | RotationTransformationChoiceComplexType | required | |
sample | SampleTransformationChoiceComplexType | required | |
selection | SelectionTransformationChoiceComplexType | required | |
stageDischarge | StageDischargeTransformationChoiceComplexType | required | |
statisticsSameAttributeValue | StatisticsSameAttributeValueChoiceComplexType | required | Input are multiple time series. Output are multiple time series. The output time series must have a shared attribute with the input time series (i.e. same attribute needs to exist for input and output locations). For example if "attribute1" is configured, both input and output time series must have an attribute with id "attribute1". The values of "attribute1" also need to match between input and output like "attributeValue1". |
statisticsChildrenLocations | StatisticsChildLocationsChoiceComplexType | required | Input are multiple time series. Output are multiple time series. Each output time series must have a parent location. For each output time series (with a parent location) the input time series with the corresponding child locations are selected. The selected input time series are used to get a statistic output value, per time step. |
statisticsRelatedLocations | StatisticsRelatedLocationsChoiceComplexType | required | You can compute some statistics on related locations. This transformation is available since 2013.01. It is possible to have the Location relation for either the input or the output locations. Relation points from input to output or from output to input. When the relation is available in both directions a config error is logged. |
statisticsValueProperties | StatisticsValuePropertiesChoiceComplexType | required | Input consists of time series with value properties. Based on those properties statistics are calculated. |
statisticsEnsemble | StatisticsEnsembleChoiceComplexType | required | Input is an ensemble with multiple time series. Output is one time series. Per time step the ensemble values for that time step are used to get a statistic output value. |
statisticsPeriodic | StatisticsPeriodicChoiceComplexType | required | A statisticsPeriodic transformation will compute the configured statistic function. The outputVariable has to be a timeSeries with a defined cycle period. The input periods for a given output time are acquired by repeating the aggregation period for that output time for every cycle. For a given output time the input times in all input periods are used to calculate a result value. A statisticsPeriodic transformation can e.g. be used in climatology to get e.g. the mean temperature in January over the last 100 years. E.g. input series has a temperature value for each day in 100 years and output has a temperature value for each month in the year (this means 12 values in a time series with a cycle of one year). |
statisticsSerial | StatisticsSerialChoiceComplexType | required | A statisticsSerial transformation will compute the configured statistic function. For each time in the output series the input values within the corresponding aggregation period are used to get a result value for that output time. |
statisticsSummary | StatisticsSummaryChoiceComplexType | required | A statisticsSummary transformation will compute the configured statistic function for the input values to get one result value (the summary). This uses only the input values within the relativeViewPeriod that is defined in the timeSeriesSet of the output variable. The result output value is stored at T0 (time zero) in the output timeSeries. |
statisticsVerticalLayers | StatisticsVerticalLayersChoiceComplexType | required | Available since 2021.01. Statistics calculated at the same time, at the same location from different z-layers or sigma layers. |
structure | StructureTransformationChoiceComplexType | required | |
timeShift | TimeShiftTransformationChoiceComplexType | required | |
user | UserTransformationChoiceComplexType | required | |
wave | WaveTransformationChoiceComplexType | required | |
rangeLimitVariableDefinition | VariableDefinitionComplexType | optional · repeats | Optional one or more definitions of range limit variables. The range limit variables that are defined here can only be used in the range elements in rangeTransformations inside this transformation. A limit variable has to be a scalar time series variable. Alternatively these variables can be defined at the start of this transformations file. |
rangeTransformation | RangeDependentTransformationComplexType | required · repeats | One or more transformations that are valid for different ranges of a certain limit variable. |
RangeDependentTransformationComplexType
A transformation that is valid for one or more ranges of a certain limit variable.
| Element | Type | Cardinality | Description |
|---|---|---|---|
range | RangeConditionComplexType | required · repeats | One or more ranges of values of (different) limit variables for which this transformation is valid. Ranges should not overlap. For a range the lower limit is inclusive and the upper limit is exclusive. |
outputValueFlag | flagEnumStringType | optional | Optional flag that will be set for all output values for this range transformation.
One of: unreliable, doubtful |
accumulation | AccumulationTransformationChoiceComplexType | required | |
adjust | AdjustTransformationChoiceComplexType | required | |
aggregation | AggregationTransformationChoiceComplexType | required | |
altitude | AltitudeTransformationChoiceComplexType | required | |
conditional | ConditionalTransformationChoiceComplexType | required | |
copy | CopyTransformationChoiceComplexType | required | |
custom | CustomTransformationChoiceComplexType | required | |
deaccumulation | DeAccumulationTransformationChoiceComplexType | required | |
disaggregation | DisaggregationTransformationChoiceComplexType | required | |
dischargeStage | DischargeStageTransformationChoiceComplexType | required | |
events | EventsTransformationChoiceComplexType | required | |
filter | FilterTransformationChoiceComplexType | required | |
generation | GenerationChoiceComplexType | required | |
generationEnsemble | GenerationEnsembleChoiceComplexType | required | |
gradient | GradientChoiceComplexType | required | |
interpolationSerial | InterpolationSerialTransformationChoiceComplexType | required | |
interpolationSpatial | InterpolationSpatialTransformationChoiceComplexType | required | |
lookup | LookupTransformationChoiceComplexType | required | Transformations to map one set of values to another set of values using lookup tables. |
merge | MergeTransformationChoiceComplexType | required | |
multipleLocationAttributes | MultipleLocationAttributesComplexType | required | |
moisture | MoistureTransformationChoiceComplexType | required | |
performanceIndicatorsLeadTimeAccuracy | PerformanceIndicatorsLeadTimeAccuracyChoiceComplexType | required | Can be used to calculate different types of lead time accuracy performance indicators. The configured forecast search period is used to find forecasts that will be used as input. For a given forecast, the value at validTime = (forecastTime + leadTime) will be compared with the observed value at the same validTime. This comparison is done for all input forecasts to calculate a final output value for the performance indicator. The performance indicator type determines which calculations are used to make the comparison (e.g. BIAS, RMSE). The output value will be stored in the output time series at T0. |
precipitation | PrecipitationTransformationChoiceComplexType | required | |
profile | ProfileTransformationChoiceComplexType | required | |
regression | RegressieTransformationChoiceComplexType | required | |
review | ReviewTransformationChoiceComplexType | required | |
rotation | RotationTransformationChoiceComplexType | required | |
sample | SampleTransformationChoiceComplexType | required | |
selection | SelectionTransformationChoiceComplexType | required | |
stageDischarge | StageDischargeTransformationChoiceComplexType | required | |
statisticsSameAttributeValue | StatisticsSameAttributeValueChoiceComplexType | required | Input are multiple time series. Output are multiple time series. The output time series must have a shared attribute with the input time series (i.e. same attribute needs to exist for input and output locations). For example if "attribute1" is configured, both input and output time series must have an attribute with id "attribute1". The values of "attribute1" also need to match between input and output like "attributeValue1". |
statisticsChildrenLocations | StatisticsChildLocationsChoiceComplexType | required | Input are multiple time series. Output are multiple time series. Each output time series must have a parent location. For each output time series (with a parent location) the input time series with the corresponding child locations are selected. The selected input time series are used to get a statistic output value, per time step. |
statisticsRelatedLocations | StatisticsRelatedLocationsChoiceComplexType | required | You can compute some statistics on related locations. This transformation is available since 2013.01. It is possible to have the Location relation for either the input or the output locations. Relation points from input to output or from output to input. When the relation is available in both directions a config error is logged. |
statisticsValueProperties | StatisticsValuePropertiesChoiceComplexType | required | Input consists of time series with value properties. Based on those properties statistics are calculated. |
statisticsEnsemble | StatisticsEnsembleChoiceComplexType | required | Input is an ensemble with multiple time series. Output is one time series. Per time step the ensemble values for that time step are used to get a statistic output value. |
statisticsPeriodic | StatisticsPeriodicChoiceComplexType | required | A statisticsPeriodic transformation will compute the configured statistic function. The outputVariable has to be a timeSeries with a defined cycle period. The input periods for a given output time are acquired by repeating the aggregation period for that output time for every cycle. For a given output time the input times in all input periods are used to calculate a result value. A statisticsPeriodic transformation can e.g. be used in climatology to get e.g. the mean temperature in January over the last 100 years. E.g. input series has a temperature value for each day in 100 years and output has a temperature value for each month in the year (this means 12 values in a time series with a cycle of one year). |
statisticsSerial | StatisticsSerialChoiceComplexType | required | A statisticsSerial transformation will compute the configured statistic function. For each time in the output series the input values within the corresponding aggregation period are used to get a result value for that output time. |
statisticsSummary | StatisticsSummaryChoiceComplexType | required | A statisticsSummary transformation will compute the configured statistic function for the input values to get one result value (the summary). This uses only the input values within the relativeViewPeriod that is defined in the timeSeriesSet of the output variable. The result output value is stored at T0 (time zero) in the output timeSeries. |
statisticsVerticalLayers | StatisticsVerticalLayersChoiceComplexType | required | Available since 2021.01. Statistics calculated at the same time, at the same location from different z-layers or sigma layers. |
structure | StructureTransformationChoiceComplexType | required | |
timeShift | TimeShiftTransformationChoiceComplexType | required | |
user | UserTransformationChoiceComplexType | required | |
wave | WaveTransformationChoiceComplexType | required |
TimeStepComplexType
Time step, There are 5 valid combinations of attributes. id, unit+[multiplier]+[divider]+[timeZone], times+[timeZone] + monthDays+[timeZone] ([]=optional)
Attributes
| Attribute | Use | Notes |
|---|---|---|
id | optional | Id of the time step. You can reference time steps defined in the regionConfig/timeSteps.xml. Only specify the id attribute when referring to a predefined time step. In the regionConfig/timeSteps.xml the time steps list both the id and the attributes that define the time step |
label | optional | Short name for the time step which is shown to the user when he can choose one from a list. |
unit | optional | |
divider | optional | |
multiplier | optional | |
times | optional | Defines the time step by a list of times without dates, e.g. "10:00 23:00" |
minutes | optional | Since 2017.02. Defines the time step by a list of minutes (with prefix 0 for single digits), e.g. "05 25" which results in times 0:05, 0:25, 1:05, etc. |
daysOfMonth | optional | Defines the time step by a list of days of month, use "01 11 21" for a decade time step |
monthDays | optional | Defines the time step by a list of dates, e.g. ""--03-01 --06-01 --09-01 --12-01" for the meteorological seasons |
timeZone | optional |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description of this timeStep. This is not used and is only present for convenience. |
RelativePeriodComplexType
Defines a moving period in time. The start and end time are relative time to a certain time.
Attributes
| Attribute | Use | Notes |
|---|---|---|
start | required | |
end | required | |
startOverrulable | optional | default: false. When the running module (e.g. general adaptor) has exported a state the state time is used instead of the specified start time. This option is only available during a (forecast) run. |
endOverrulable | optional | default: false. When a forecast length is specified (e.g. in the manual forecast dialog) the time 0 + forecast length is used instead of the specified end time This option is only available during a (forecast) run. |
unit | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional |
CalendarTimeSpanComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
unit | required | |
divider | optional | |
multiplier | optional |
TimeShiftComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
unit | required | |
divider | optional | |
multiplier | optional |
TimeSeriesSetRelativePeriodComplexType
Defines a moving period in time. The start and end time are relative time to a certain time. When the start time is not specified it is determined by the start time of the state of the current run. When the start is overrulable the time is overruled by the start of search period or the start of cold state run when one of two is specified When the end is overrulable this time is overruled by the end of the forecast when specified
Attributes
| Attribute | Use | Notes |
|---|---|---|
unit | required | |
start | optional | e.g. -1 hour means one before time 0 |
end | required | e.g. 1 hour means one hour after time 0 |
startOverrulable | optional | default: false. When the running module (e.g. general adaptor) has exported a state the state time is used instead of the specified start time. This option is only available during a (forecast) run. |
endOverrulable | optional | default: false. When a forecast length is specified (e.g. in the manual forecast dialog) the time 0 + forecast length is used instead of the specified end time This option is only available during a (forecast) run. |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional |
EnsembleMemberIndexRangeComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
start | required | |
end | optional |
TimeSpanComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
unit | required | |
divider | optional | |
multiplier | optional |
PeriodConditionComplexType
A period condition
| Element | Type | Cardinality | Description |
|---|---|---|---|
validBeforeDateTime | DateTimeComplexType | required | Valid for entire period prior to this date and time. |
validAfterDateTime | DateTimeComplexType | required | Valid for entire period after this date and time. |
season | SeasonConditionComplexType | required | A seasonal period that is repeated every year. |
startDateTime | DateTimeComplexType | required | Start date and time for this period. |
endDateTime | DateTimeComplexType | required | End date and time for this period. |
RangeConditionComplexType
A range condition.
| Element | Type | Cardinality | Description |
|---|---|---|---|
limitVariableId | idStringType | required | Reference to a range limit variable. The lower and upper limits of this range will be checked against this limit variable. Can be the same as input variable. A range limit variable has to be a scalar time series variable. Range limit variables can be defined in this transformation just before the first rangeTransformation, or at the start of this transformations file. If a range limit variable definition in this transformation has the same id as a variable definition at the start of this transformations file, then the range limit variable definition in this transformation is used. |
lowerLimit | floatStringType | required | Lower limit for this range. The lower limit is inclusive. |
upperLimit | floatStringType | required | Upper limit for this range. The upper limit is exclusive. |
DateTimeComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
date | required | |
time | optional |
SeasonConditionComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
startMonthDay | monthDayType | required | Start month and day of this season. |
endMonthDay | monthDayType | required | End month and day of this season. |
Function categories
Section titled “Function categories”Temporal reshaping — reference page ✅
: accumulation · deaccumulation · aggregation · disaggregation ·
timeShift · gradient · copy
Interpolation & spatial — reference page ✅
: interpolationSerial · interpolationSpatial · altitude · rotation ·
multipleLocationAttributes
Statistics — reference page ✅
: statisticsSameAttributeValue · statisticsChildrenLocations ·
statisticsRelatedLocations · statisticsValueProperties ·
statisticsEnsemble · statisticsPeriodic · statisticsSerial ·
statisticsSummary · statisticsVerticalLayers
Hydrology & physical process — reference page ✅
: dischargeStage · stageDischarge · precipitation · moisture ·
profile · wave · structure
Data quality, selection & control flow — reference page ✅
: filter · review · selection · events · sample · merge ·
conditional · adjust
Generation, lookup & modeling — reference page ✅
: generation · generationEnsemble · performanceIndicatorsLeadTimeAccuracy ·
lookup · regression · custom · user
All 43 function categories are now covered across the 6 pages above.
Gotchas
Section titled “Gotchas”rangeTransformationandperiodTransformationwrap the same 43-way choice, not a different one — a<transformation>picks a function directly, or wraps a series of<rangeTransformation>/<periodTransformation>blocks, each of which independently picks from the same function catalogue for its range/period. You can’t currently nest a period-dependent choice inside a range-dependent one (or vice versa) in one step.<variable>at the module root is optional — most transformations just embed a<timeSeriesSet>directly ininputVariable/outputVariableinstead. Declare a reusable<variable>only when several transformations need to reference the same series byvariableId.
See also
Section titled “See also”- Task guide: Transformations
- Reference: Temporal reshaping · Interpolation & spatial · Statistics · Hydrology & physical process · Data quality, selection & control flow · Generation, lookup & modeling
- Schema:
transformationModule.xsdand the function catalogue intransformationTypes.xsd