Table of Contents
This algorithm creates an XML grouping file, which can be used in GroupDetectors or ReadGroupsFromFile, which groups the detectors of an instrument based on the distance between the detectors. It does this by querying the getNeighbours method on the Detector object.
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | Name of the input workspace, which is used only as a means of retrieving the instrument geometry. |
Filename | Input | string | Mandatory | Name (and location) in which to save the file. Having a suffix of ‘’.xml’’ is recommended. Allowed extensions: [‘.xml’] |
SearchDistance | Input | number | 2.5 | The number of pixel widths in which to search for neighbours of the detector. |
GridSize | Input | number | 3 | The size of the grid that should be grouped. i.e, 3 (the default) will select a group of nine detectors centred in a 3 by 3 grid. |
This algorithm creates an XML Grouping file of the form:
<?xml version="1.0" encoding="UTF-8" ?>
<detector-grouping>
<group name="fwd"><detids val="1,2,17,32"/></group>
<group name="bwd"><detids val="33,36,38,60,64"/> </group>
</detector-grouping>
Based on information retrieved from the Nearest Neighbours class in Mantid Geometry.
Caution
The following is a contrived example to show the functionaity of the algorithm, However, since the sample workspace does not have a valid instrument, the written grouping file is invalid and cannot be used.
# Create a workspace with a single bank and 9x9 pixels.
ws = CreateSampleWorkspace(NumBanks=1, BankPixelWidth=9)
import os
group_file = os.path.join(config["default.savedirectory"], "mygroup.xml")
# Want to get nine groups of 3x3
SpatialGrouping(ws, group_file, SearchDistance=10)
print("File created: {}".format(os.path.exists(group_file)))
Output:
File created: True
Categories: Algorithms | Transforms\Grouping
C++ source: SpatialGrouping.cpp (last modified: 2017-10-03)
C++ header: SpatialGrouping.h (last modified: 2017-03-20)