\(\renewcommand\AA{\unicode{x212B}}\)
ScaleX v1¶
Summary¶
Scales the X-axis of an input workspace by the given factor, which can be either multiplicative or additive.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
Name of the input workspace |
|
OutputWorkspace |
Output |
Mandatory |
Name of the output workspace |
|
Factor |
Input |
number |
1 |
The value by which to scale the X-axis of the input workspace. Default is 1.0 |
Operation |
Input |
string |
Multiply |
Whether to multiply by, or add factor. Allowed values: [‘Multiply’, ‘Add’] |
IndexMin |
Input |
number |
0 |
The workspace index of the first spectrum to scale. Only used if IndexMax is set. |
IndexMax |
Input |
number |
Optional |
The workspace index of the last spectrum to scale. Only used if explicitly set. |
InstrumentParameter |
Input |
string |
The name of an instrument parameter whose value is used to scale as the input factor |
|
Combine |
Input |
boolean |
False |
If true, combine the value given in the Factor property with the value obtained from the instrument parameter. The factors are combined using the operation specified in the Operation parameter |
Description¶
Scales the X axis, the X-coordinate of histograms in a histogram workspace, and the X-coordinate of events in an event workspace by the requested amount.
The amount can be specified either as:
an absolute numerical value via the “Factor” argument or
an detector parameter name whose value is retrieved from the instrument.
Usage¶
Example - Modify the mean and standard deviation of a Gaussian via rescaling of the X-axis:
import numpy as np
# A Gaussian in the [-1, 1] range
DataX=np.arange(-1,1,0.01)
mean=0.3
sigma=0.2
DataY=np.exp( -(DataX-mean)**2/(2*sigma**2) )
ws = CreateWorkspace(DataX,DataY)
# Center the Gaussian by shifting the X-axis, then find its average
ws2 = ScaleX(ws, Factor=-mean, Operation='Add')
print('mean={:.2f}'.format(abs(np.sum( ws2.dataX(0) *ws2.dataY(0) ) / np.sum( ws2.dataY(0) ))))
# Decrease the standard deviation of the Gaussian by half via shrinkage of the X-axis,
# then find its standard deviation
ws3 = ScaleX(ws2, Factor=0.5, Operation='Multiply')
print('sigma={:.2f}'.format(np.sqrt( np.sum( ws3.dataX(0)**2 *ws3.dataY(0) ) / np.sum( ws3.dataY(0) ) )))
Output:
mean=0.00
sigma=0.10
Categories: AlgorithmIndex | Arithmetic | CorrectionFunctions
Source¶
C++ header: ScaleX.h
C++ source: ScaleX.cpp