Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Set of rules to allow selection of lows from an input time series.
This transformation will select lows only if there is a only the lows which occur within the defined gap in time between lows. If not they are considered to be of dependent and only the lowest low of the dependent sets will be returned.

...

Input

Timeseries

Options

Requirements for definitions of peak low selections using gaps to define independence are;:

  • An attribute "gapLengthInsec" must be defined. The value attribute defines the length of the minimum gap in seconds.

There are two choices for refining the selection:

  • An attribute "lowsBeforeT0totalNumberBeforeT0" must be defined. The value attribute defines the maximum number of lows to consider before T0.
  • An attribute "lowsAfterT0totalNumberAfterT0" must be defined. The value attribute defines the maximum number of lows to consider before after T0.
  • An attribute "totalNumberOfLows" must be defined. The value must be set to zero.

The following two attributes are optional:

  • An attribute "skipJustBeforeT0" indicates how many lows to skip lows just before T0. (optional)
  • An attribute "skipJustAfterT0" indicates how many lows to skip lows just after T0.

They default to 0.

  • (optional)

or

  • An attribute "totalNumber" must be defined. The value attribute defines the maximum number of lows to consider.
Output

Timeseries containing the selection of lows

Configuration example
Code Block
xml
xml
borderStylesolid
titleSelectionLowsFunctionTest SelectionIndependentLowsFunctionTest 1.00 default.xmlborderStylesolid

<transformation id="independent lows function test">
   <selection>
      <lows><independentLows>
         <inputVariable>
            <timeSeriesSet>
               <moduleInstanceId>SelectionLowsFunctionTest<<moduleInstanceId>SelectionIndependentLowsFunctionTest</moduleInstanceId>
               <valueType>scalar</valueType>
               <parameterId>H.tidal</parameterId>
               <locationId>H-2010</locationId>
               <timeSeriesType>external historical</timeSeriesType>
               <timeStep unit="minute" multiplier="15"/>
               <relativeViewPeriod unit="day" start="0" end="365"/>
               <readWriteMode>editing visible to all future task runs</readWriteMode>
            </timeSeriesSet>
         </inputVariable>
         <gapLengthInSec>2700</gapLengthInSec>
         <lowsBeforeT0>0<<totalNumberBeforeT0>3</lowsBeforeT0>totalNumberBeforeT0>
         <lowsAfterT0>15<<totalNumberAfterT0>4</lowsAfterT0>totalNumberAfterT0>
         <totalNumberOfLows>0</totalNumberOfLows>
         <skipJustBeforeT0>0<<skipJustBeforeT0>2</skipJustBeforeT0>
         <skipJustAfterT0>5<<skipJustAfterT0>2</skipJustAfterT0>			
         <outputVariable>
            <timeSeriesSet>
               <moduleInstanceId>SelectionLowsFunctionTest<<moduleInstanceId>SelectionIndependentLowsFunctionTest</moduleInstanceId>
               <valueType>scalar</valueType>
               <parameterId>H.updated</parameterId>
               <locationId>H-2010</locationId>
               <timeSeriesType>external historical</timeSeriesType>
               <timeStep unit="nonequidistant"/>
               <relativeViewPeriod unit="day" start="-5" end="15"/>
               <readWriteMode>add originals</readWriteMode>
            </timeSeriesSet>
         </outputVariable>
      </lows>independentLows>
   </selection>
</transformation>

...

  • The time between two local minima (lows) should be at least 2700 seconds or 45 minutes.
  • Only the last three lows before T0 and the first four lows after T0 are considered.
  • The first two lows of the last two three lows just before T0 are skipped, leaving only the third last one.
  • Similarly the first two lows just after T0 are skipped, leaving the third and fourth ones.
forecastLoopSearchPeriod

When a forecastLoopSearchPeriod is configured the transformation will be repeated for each external forecast found in the defined period.

This will only work when the <inputVariable> and <outputVariable> are external forecasts, the output variable for each execution will get the same external forecast time as the input. 
For some general info see ForecastLoop 

Code Block
languagexml
titleExample forecastLoopSearchPeriod
<transformation id="SelectionIndependentLowsMultipleForecastsTest">
   <selection>
      <independentLows>
         <inputVariable>
            <variableId>forecast</variableId>
         </inputVariable>
         <forecastLoopSearchPeriod unit="week" start="-5" end="0"/>
         <gapLengthInSec>2700</gapLengthInSec>
         <totalNumberBeforeT0>0</totalNumberBeforeT0>
         <totalNumberAfterT0>0</totalNumberAfterT0>
         <skipJustBeforeT0>0</skipJustBeforeT0>
         <skipJustAfterT0>0</skipJustAfterT0>
         <outputVariable>
            <variableId>outputForecast</variableId>
         </outputVariable>
      </independentLows>
   </selection>
</transformation>