Skip to content
Snippets Groups Projects
CropWorkspace-v1.rst 1.67 KiB
Newer Older
.. relatedalgorithms::

.. properties::

Description
-----------

Extracts a 'block' from a workspace and places it in a new workspace
(or, to look at it another way, lops bins or spectra off a workspace).

CropWorkspace works on workspaces with common X arrays/bin boundaries or
Roman Tolchenov's avatar
Roman Tolchenov committed
on so-called :ref:`ragged workspace <Ragged_Workspace>`. If the input
workspace has common bin boundaries/X values then cropping in X will
lead to an output workspace with fewer bins than the input one. If the
boundaries are not common then the output workspace will have the same
number of bins as the input one, but with data values outside the X
range given set to zero.

If an X value given for XMin/XMax does not match a bin boundary (within
a small tolerance to account for rounding errors), then the closest bin
boundary within the range will be used. Note that if none of the
optional properties are given, then the output workspace will be a copy
of the input one.

Lynch, Vickie's avatar
Lynch, Vickie committed
Usage
-----
**Example - Crop a 5-bin workspace**
Lynch, Vickie's avatar
Lynch, Vickie committed

.. testcode:: ExCropWorkspace

   # Create a workspace with 1 spectrum with five bins of width 10
   ws = CreateSampleWorkspace(WorkspaceType="Histogram",  NumBanks=1, BankPixelWidth=1, BinWidth=10, Xmax=50)

   # Run algorithm  removing first and last bins
   OutputWorkspace = CropWorkspace(InputWorkspace=ws,XMin=10.0,XMax=40.0)

   # Show workspaces
   print("TOF Before CropWorkspace {}".format(ws.readX(0)))
   print("TOF After CropWorkspace {}".format(OutputWorkspace.readX(0)))
Lynch, Vickie's avatar
Lynch, Vickie committed
   
Output:

.. testoutput:: ExCropWorkspace

   TOF Before CropWorkspace [  0.  10.  20.  30.  40.  50.]
   TOF After CropWorkspace [ 10.  20.  30.  40.]