...
Module | Remarks |
---|---|
Transformation (old) | Test ok |
Interpolation | Test ok. Interpolation via DLL not tested |
TransformationModule (new) | Test ok. Interpolation via DLL not tested |
pcrTransformation | Test ok |
General Adapter | test ok |
Sample input and output (with explanation of all options)
An example for parallel running an import and then processing of the import modules is:
...
In a test using 2 CPU the total run of the whole ensemble reduced from exactly 900 seconds to 546 seconds.
Combination of ensembles and normal time series
You may have a combination of for example a rainfall ensemble with other non-ensemble timeseries (like structure operation or boundary levels). In case you run an ensemble with the runInLoop option at workflow level by default all timeseries are used from the defined ensembleId and member, also for a non-ensemble timeseries. That means that you should configure transformations to create also an ensemble of your non-ensemble series, which is of course not convenient. To enable non-ensemble timeseries FEWS has an option that overrules the ensemble member forcing at workflow level. Therefore you define for the non-ensemble series the fixed ensembleId "main". This is a "virtual" ensemble.
A configuration example:
Code Block | ||||
---|---|---|---|---|
| ||||
<errorModelSet> <inputVariable variableId="observation"> <timeSeriesSet> <moduleInstanceId>Import</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.obs</parameterId> <locationId>NA_Mastenbroek</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" start="-96" end="0" startOverrulable="true" endOverrulable="false"/> <readWriteMode>read only</readWriteMode> <ensembleId>main</ensembleId> </timeSeriesSet> </inputVariable> <inputVariable variableId="update_run"> <timeSeriesSet> <moduleInstanceId>Sobek_Update</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.sim.hist</parameterId> <locationId>NA_Mastenbroek</locationId> <timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" start="-96" end="0" startOverrulable="true" endOverrulable="false"/> <readWriteMode>read only</readWriteMode> <ensembleId>main</ensembleId> </timeSeriesSet> </inputVariable> <inputVariable variableId="forecast_run"> <timeSeriesSet> <moduleInstanceId>Sobek_Forecast</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.sim.for</parameterId> <locationId>NA_Mastenbroek</locationId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" start="-96" end="120" startOverrulable="true" endOverrulable="true"/> <readWriteMode>read only</readWriteMode> <ensembleId>EPS</ensembleId> </timeSeriesSet> </inputVariable> <autoOrderMethod> <orderSelection>true</orderSelection> <order_ar>3</order_ar> <order_ma>1</order_ma> <subtractMean>true</subtractMean> <boxcoxTransformation>false</boxcoxTransformation> <lambda>0</lambda> <observedTimeSeriesId>meting</observedTimeSeriesId> <simulatedTimeSeriesId>forecast_run</simulatedTimeSeriesId> <simulatedTimeSeriesId>update_run</simulatedTimeSeriesId> <outputTimeSeriesId>corrected</outputTimeSeriesId> </autoOrderMethod> <interpolationOptions> <interpolationType>linear</interpolationType> <gapLength>6</gapLength> </interpolationOptions> <minResult>0</minResult> <ignoreDoubtful>true</ignoreDoubtful> <outputVariable variableId="corrected"> <timeSeriesSet> <moduleInstanceId>Sobek_Forecast</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.updated.for</parameterId> <locationId>NA_Mastenbroek</locationId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" start="-96" end="120" startOverrulable="true" endOverrulable="true"/> <readWriteMode>add originals</readWriteMode> <ensembleId>EPS</ensembleId> </timeSeriesSet> </outputVariable> </errorModelSet> |
Error and warning messages
...