def test_unit_conversion(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) tmp = mantidcompat.convert_Workspace2D_to_dataarray(ws) target_tof = tmp.coords[sc.Dim.Tof] ws = mantid.ConvertUnits(InputWorkspace=ws, Target="Wavelength", EMode="Elastic") converted_mantid = mantidcompat.convert_Workspace2D_to_dataarray(ws) da = mantidcompat.convertEventWorkspace_to_dataarray( eventWS, False) da = sc.histogram(da, target_tof) d = sc.Dataset(da) converted = sc.neutron.convert(d, sc.Dim.Tof, sc.Dim.Wavelength) self.assertTrue( np.all(np.isclose(converted_mantid.values, converted[""].values))) self.assertTrue( np.all( np.isclose( converted_mantid.coords[sc.Dim.Wavelength].values, converted.coords[sc.Dim.Wavelength].values, )))
def test_Workspace2D_not_common_bins_masks(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) ws = mantid.ConvertUnits(ws, "Wavelength", EMode="Direct", EFixed=0.1231) # these X values will mask different number of bins masked_ws = self._mask_bins_and_spectra(ws, -214, -192, num_spectra=3) self.assertFalse(masked_ws.isCommonBins()) ds = mantidcompat.convert_Workspace2D_to_data_array(masked_ws) # bin with 3 masks np.testing.assert_array_equal(ds.masks["bin"].values[0], [True, True, False, False, False]) # bin with only 2 np.testing.assert_array_equal(ds.masks["bin"].values[31], [True, True, True, False, False]) np.testing.assert_array_equal(ds.masks["spectrum"].values[0:3], [True, True, True])
def test_unit_conversion(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) tmp = mantidcompat.convert_Workspace2D_to_data_array(ws) target_tof = tmp.coords['tof'] ws = mantid.ConvertUnits(InputWorkspace=ws, Target="Wavelength", EMode="Elastic") converted_mantid = mantidcompat.convert_Workspace2D_to_data_array(ws) da = mantidcompat.convert_EventWorkspace_to_data_array( eventWS, load_pulse_times=False) da.realign({'tof': target_tof}) da = sc.histogram(da) d = sc.Dataset(da) converted = sc.neutron.convert(d, 'tof', 'wavelength') self.assertTrue( np.all(np.isclose(converted_mantid.values, converted[""].values))) self.assertTrue( np.all( np.isclose( converted_mantid.coords['wavelength'].values, converted.coords['wavelength'].values, )))
def test_Workspace2D(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) d = mantidcompat.convert_Workspace2D_to_data_array(ws) self.assertEqual( d.attrs["run"].value.getProperty("run_start").value, "2012-05-21T15:14:56.279289666", )
def test_EventWorkspace(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000) binned_mantid = mantidcompat.convert_Workspace2D_to_data_array(ws) target_tof = binned_mantid.coords[sc.Dim.Tof] d = mantidcompat.convert_EventWorkspace_to_data_array(eventWS, False) binned = sc.histogram(d, target_tof) delta = sc.sum(binned_mantid - binned, sc.Dim.Spectrum) delta = sc.sum(delta, sc.Dim.Tof) self.assertLess(np.abs(delta.value), 1e-5)
def test_EventWorkspace(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000) binned_mantid = mantidcompat.convert_Workspace2D_to_data_array(ws) target_tof = binned_mantid.coords['tof'] d = mantidcompat.convert_EventWorkspace_to_data_array( eventWS, load_pulse_times=False) binned = sc.histogram(d.bins, target_tof) delta = sc.sum(binned_mantid - binned, 'spectrum') delta = sc.sum(delta, 'tof') self.assertLess(np.abs(delta.value), 1e-5)
def test_Workspace2D(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) d = mantidcompat.convert_Workspace2D_to_data_array(ws) self.assertEqual( d.attrs["run_start"].value, "2012-05-21T15:14:56.279289666", ) self.assertEqual(d.data.unit, sc.units.counts) for i in range(ws.getNumberHistograms()): assert np.all(np.equal(d.values[i], ws.readY(i))) assert np.all(np.equal(d.variances[i], ws.readE(i) * ws.readE(i))) self.assertEqual(d.coords['spectrum'].dtype, sc.dtype.int32) self.assertEqual(d.coords['tof'].dtype, sc.dtype.float64)
def test_Workspace2D_common_bins_masks(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) ws_x = ws.readX(0) # mask the first 3 bins, range is taken as [XMin, XMax) masked_ws = self._mask_bins_and_spectra(ws, xmin=ws_x[0], xmax=ws_x[3], num_spectra=3) self.assertTrue(masked_ws.isCommonBins()) ds = mantidcompat.convert_Workspace2D_to_data_array(masked_ws) np.testing.assert_array_equal(ds.masks["bin"].values[0:3], [True, True, True]) np.testing.assert_array_equal(ds.masks["spectrum"].values[0:3], [True, True, True])
def test_Workspace2D_common_bins_not_common_masks(self): import mantid.simpleapi as mantid eventWS = mantid.CloneWorkspace(self.base_event_ws) ws = mantid.Rebin(eventWS, 10000, PreserveEvents=False) ws_x = ws.readX(0) # mask first 3 bins in first 3 spectra, range is taken as [XMin, XMax) masked_ws = self._mask_bins_and_spectra(ws, xmin=ws_x[0], xmax=ws_x[3], num_spectra=3, indices='0-2') self.assertTrue(masked_ws.isCommonBins()) ds = mantidcompat.convert_Workspace2D_to_data_array(masked_ws) mask = sc.Variable(dims=ds.dims, shape=ds.shape, dtype=sc.dtype.bool) mask['spectrum', 0:3]['tof', 0:3] |= sc.Variable(value=True) assert sc.is_equal(ds.masks['bin'], mask) np.testing.assert_array_equal(ds.masks["spectrum"].values[0:3], [True, True, True])