Table of Contents
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | InOut | MatrixWorkspace | Mandatory | Name of input Matrix workspace containing the log to export. |
OutputWorkspace | Output | MatrixWorkspace | Dummy | Name of the workspace containing the log events in Export. |
CalculateFirstDerivative | Input | boolean | False | If specified then the first derivative of exported data will be calcualted and put to spectrum 1. |
LogName | Input | string | Log’s name to filter events. | |
UnitOfTime | Input | string | Seconds | StartTime, StopTime and DeltaTime can be given in various unit.The unit can be ‘Seconds’ or ‘Nanoseconds’ from run start time.They can also be defined as ‘Percentage’ of total run time. Allowed values: [‘Seconds’, ‘Nano Seconds’] |
StartTime | Input | number | Optional | Relative starting time of the output series. Its unit is determined by property UnitOfTime. |
StopTime | Input | number | Optional | Relative stopping time of the output series.Its unit is determined by property UnitOfTime. |
OutputAbsoluteTime | Input | boolean | False | If true, the output times will be absolute time to 1990.01.01. |
NumberEntriesExport | Input | number | Optional | Number of entries of the log to be exported. Default is all entries. |
IsEventWorkspace | Input | boolean | True | If set to true, output workspace is EventWorkspace. Otherwise, it is Workspace2D. |
Export a sample log, which is of type TimeSeriesProperty, in a Workspace to a MatrixWorkspace.
The output workspace can be either a MatrixWorkspace or an EventWorkspace. If the output workspace is choosen to be an EventWorkspace, there are some limitations to it.
The output MatrixWorkspace has one spectrum. X-vector and Y-vector have the same size, which is the size of exported TimeSeriesProperty.
The unit of X-vector is either second or nano second.
The log values can be exported as a set of events. Each entry in the time series log will be converted to an event, , whose TOF are the log times. It is helpful if the log series has large number of entries. User should rebin the EventWorkspace afterwards.
The time of each event in the output EventWorkspace is same as log time. It is not affected by the specified unit of time for the output.
Example - export a float series to a MatrixWorkspace of type Workspace2D:
# Load data
dataws = LoadNexusProcessed(Filename="PG3_2538_2k.nxs")
# Create a new log
import mantid.kernel as mk
testprop = mk.FloatTimeSeriesProperty("Temp")
from numpy import random
random.seed(10)
for i in range(60):
randsec = random.randint(0, 59)
randval = random.random()*100.
timetemp = mk.DateAndTime("2012-01-01T00:{:02}:{:02}".format(i, randsec))
testprop.addValue(timetemp, randval)
dataws.run().addProperty("Temp", testprop, True)
# Run algorithm
propws = ExportTimeSeriesLog(InputWorkspace=dataws, LogName="Temp", IsEventWorkspace=False)
# Check
print("Length of X = %d, Length of Y = %d." % (len(propws.readX(0)), len(propws.readY(0))))
print("X[0] = {:.1f}, Y[0] = {:.5f}".format(propws.readX(0)[0], propws.readY(0)[0]))
print("X[20] = {:.1f}, Y[20] = {:.5f}".format(propws.readX(0)[20], propws.readY(0)[20]))
print("X[40] = {:.1f}, Y[40] = {:.5f}".format(propws.readX(0)[40], propws.readY(0)[40]))
Output:
Length of X = 60, Length of Y = 60.
X[0] = 26089801.0, Y[0] = 29.87612
X[20] = 26091048.0, Y[20] = 61.19433
X[40] = 26092225.0, Y[40] = 63.79516
Example - export a float series to a EventWorkspace:
# Load data
import mantid.kernel as mk
dataws = LoadNexusProcessed(Filename="PG3_2538_2k.nxs")
# Create a new log
testprop = mk.FloatTimeSeriesProperty("Temp")
from numpy import random
random.seed(10)
for i in range(60):
randsec = random.randint(0, 59)
randval = random.random()*100.
timetemp = mk.DateAndTime("2012-01-01T00:{:02}:{:02}".format(i, randsec))
testprop.addValue(timetemp, randval)
dataws.run().addProperty("Temp", testprop, True)
# Run algorithm
propws = ExportTimeSeriesLog(InputWorkspace=dataws, LogName="Temp", NumberEntriesExport=40, IsEventWorkspace=True)
# Check
print("Length of X = {}, Length of Y = {}.".format(len(propws.readX(0)), len(propws.readY(0))))
print("X[0] = {:.1f}, Y[0] = {:.5f}".format(propws.readX(0)[0], propws.readY(0)[0]))
print("Number of events = {}".format(propws.getNumberEvents()))
Output:
Length of X = 2, Length of Y = 1.
X[0] = 26089801000000.0, Y[0] = 1958.93574
Number of events = 40
Categories: Algorithms | Diffraction\DataHandling | Events\EventFiltering
C++ source: ExportTimeSeriesLog.cpp (last modified: 2017-09-28)
C++ header: ExportTimeSeriesLog.h (last modified: 2017-09-28)