FilterLogByTime v1

../_images/FilterLogByTime-v1_dlg.png

FilterLogByTime dialog.

Summary

Filters a log between time intervals and applies a user defined operation to the result.

Properties

Name Direction Type Default Description
InputWorkspace Input Workspace Mandatory Input workspace
LogName Input string Mandatory Log name to filter by
StartTime Input number -1.79769313486e+308 Start time for filtering. Seconds after run start
EndTime Input number Optional End time for filtering. Seconds after run start
Method Input string mean Statistical method to use to generate ResultStatistic output. Allowed values: [‘mean’, ‘min’, ‘max’, ‘median’]
FilteredResult Output dbl list   Filtered values between specified times.
ResultStatistic Output number   Requested statistic

Description

Filters out logs that do not sit between StartTime and EndTime. The algorithm also applied a ‘Method’ to those filtered results and returns the statistic. A workspace must be provided containing logs. The log name provided must refer to a FloatTimeSeries log.

Unless specified, StartTime is taken to be run_start. StartTime and EndTime filtering is inclusive of the limits provided.

The Method allows you to create quick statistics on the filtered array returned in the FilteredResult output argument. Therefore the return value from Method=mean is equivalent to running numpy.mean() on the output from the FilteredResult property. All the Method options map directly to python numpy functions with the same name. These are documented here

Usage

Example - Filtering a simple time series Log

ws = CreateSampleWorkspace("Histogram",BankPixelWidth=1)

AddTimeSeriesLog(ws, Name="proton_charge", Time="2010-01-01T00:00:00", Value=100)
AddTimeSeriesLog(ws, Name="proton_charge", Time="2010-01-01T00:10:00", Value=100)
AddTimeSeriesLog(ws, Name="proton_charge", Time="2010-01-01T00:20:00", Value=100)
AddTimeSeriesLog(ws, Name="proton_charge", Time="2010-01-01T00:30:00", Value=100)
AddTimeSeriesLog(ws, Name="proton_charge", Time="2010-01-01T00:40:00", Value=15)
AddTimeSeriesLog(ws, Name="proton_charge", Time="2010-01-01T00:50:00", Value=100)

print("Without a StartTime or EndTime all of the values are included")
(filtered_result,stat_result) = FilterLogByTime(ws,LogName="proton_charge")
print("The default statistic is mean: %i" % stat_result)
print("The filtered result is")
print(filtered_result)

(filtered_result,stat_result) = FilterLogByTime(ws,LogName="proton_charge", Method="max")
print("The max is: %i" % stat_result)
(filtered_result,stat_result) = FilterLogByTime(ws,LogName="proton_charge", Method="min")
print("The min is: %i" % stat_result)
(filtered_result,stat_result) = FilterLogByTime(ws,LogName="proton_charge", Method="median")
print("The median is: %i" % stat_result)
print("")

print("Adding a start time and optionally an end time allows you to filter the values")
(filtered_result,stat_result) = FilterLogByTime(ws,LogName="proton_charge",
    StartTime=580,EndTime = 1800)
print("The filtered mean is: %i" % stat_result)
print("The filtered result is")
print(filtered_result)

Output:

Without a StartTime or EndTime all of the values are included
The default statistic is mean: 85
The filtered result is
[ 100.  100.  100.  100.   15.  100.]
The max is: 100
The min is: 15
The median is: 100

Adding a start time and optionally an end time allows you to filter the values
The filtered mean is: 100
The filtered result is
[ 100.  100.  100.]

Categories: Algorithms | Events\EventFiltering

Source

Python: FilterLogByTime.py (last modified: 2018-01-02)