\(\renewcommand\AA{\unicode{x212B}}\)

GroupToXResolution v1

Summary

Groups points within intervals given by the Dx into single points

Properties

Name

Direction

Type

Default

Description

InputWorkspace

Input

MatrixWorkspace

Mandatory

An input workspace with Dx values.

OutputWorkspace

Output

MatrixWorkspace

Mandatory

The grouped workspace.

FractionOfDx

Input

number

0.2

A fraction of Dx to group the points to.

Description

This algorithm groups the points of a single histogram workspace according to the X resolution stored in the DX array.

The figure below shows schematically how the grouping procedure proceeds.

Schematic image of the point grouping algorithm.
  1. Select first ungrouped point \(i\). The X resolution (DX) for this point is \(D_{i}\).

  2. Calculate grouping width \(w_{i} =\) FractionOfDx * \(D_{i}\).

  3. Select ungrouped points within \(w_{i}\) from point \(i\).

  4. Calculate the average X, average Y, and the square root of the averaged squared sums of E of the selected points.

  5. Calculate new resolution \(D^{\circ} = \sqrt{D_{i}^{2} + (0.68 \Delta X)^{2}}\) where \(\Delta X\) is span of the X values of the selected points.

  6. Replace the selected points with a single grouped point.

  7. Return to 1.

Usage

Example - Grouping points to X resolution

from mantid.simpleapi import CreateWorkspace, DeleteWorkspaces, GroupToXResolution
import matplotlib.pyplot as plt
import numpy as np
# Create a workspace with exponential decay.
Xs = np.arange(0.01, 5., 0.01)
Ys = np.exp(-Xs)
# A clumsy way for filling a numpy array.
# Numpy version > 1.7 would support 'DXs = full_like(Ys, 1.)'
DXs = np.empty_like(Ys)
DXs.fill(1.)
original = CreateWorkspace(Xs, Ys, Dx=DXs, NSpec=1)
grouped = GroupToXResolution(original)
# Plot side-by-side comparison.
fig, (left, right) = plt.subplots(ncols=2, subplot_kw={'projection':'mantid'})
left.errorbar(original, linestyle='-')
left.set_title('Original')
right.errorbar(grouped, linestyle='-')
right.set_title('Grouped')
# Uncomment the next line to show the plot window.
#fig.show()
DeleteWorkspaces(['original', 'grouped'])

(Source code, png, hires.png, pdf)

../_images/GroupToXResolution-v1-1.png

Categories: AlgorithmIndex | Transforms\Rebin

Source

C++ header: GroupToXResolution.h

C++ source: GroupToXResolution.cpp