Versions Compared

Key

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

...

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

...

Input

Timeseries

Options

Requirements for definitions of peak 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 "peaksBeforeT0totalNumberBeforeT0" must be defined. The value attribute defines the maximum number of peaks to consider before T0.
  • An attribute "peaksAfterT0totalNumberAfterT0" must be defined. The value attribute defines the maximum number of peaks to consider before T0.
  • An attribute "totalNumberOfPeaks" must be defined. The value must be set to zero.

The following two attributes are optional:

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

or

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

Timeseries containing the selection of peaksThey default to 0.

Configuration example
Code Block
borderStyle
xml
xml
borderStylesolid
titleSelectionPeaksFunctionTest SelectionIndependentPeaksFunctionTest 1.00 default.xmlsolid

<transformation id="independent peaks function test">
   <selection>
      <peaks><independentPeaks>
         <inputVariable>
            <timeSeriesSet>
               <moduleInstanceId>SelectionPeaksFunctionTest<<moduleInstanceId>SelectionIndependentPeaksFunctionTest</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>
         <peaksBeforeT0>0<<totalNumberBeforeT0>3</peaksBeforeT0>totalNumberBeforeT0>
         <peaksAfterT0>15<<totalNumberAfterT0>4</peaksAfterT0>totalNumberAfterT0>
         <totalNumberOfPeaks>0</totalNumberOfPeaks>
         <skipJustBeforeT0>0</<skipJustBeforeT0>2</skipJustBeforeT0>
         <skipJustAfterT0>5<<skipJustAfterT0>2</skipJustAfterT0>			
         <outputVariable>
            <timeSeriesSet>
               <moduleInstanceId>SelectionPeaksFunctionTest<<moduleInstanceId>SelectionIndependentPeaksFunctionTest</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>
      </peaks>independentPeaks>
   </selection>
</transformation>

...

  • The time between two local maxima (peaks) should be at least 2700 seconds or 45 minutes.
  • Only the last three peaks before T0 and the first four peaks after T0 are considered.
  • The first two peaks of the last two three peaks just before T0 are skipped, leaving only the third last one.
  • Similarly the first two peaks 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="SelectionIndependentPeaksMultipleForecastsTest">
   <selection>
      <independentPeaks>
         <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>
      </independentPeaks>
   </selection>
</transformation>