def test_sum_range_operator_with_step_sums_to_single_workspace(self): data = Load("TSC15352-15354:2.raw", OutputWorkspace = self.wsname) self.assertTrue(isinstance(data, MatrixWorkspace)) self.assertEquals(149, data.getNumberHistograms()) self.assertEquals(24974, data.blocksize()) self.assertAlmostEqual(9.0, data.readX(2)[1], places = DIFF_PLACES) self.assertAlmostEqual(35640.0, data.readY(2)[1], places = DIFF_PLACES) self.assertAlmostEqual(188.78559267062727, data.readE(2)[1], places = DIFF_PLACES)
def test_sum_range_operator_with_step_sums_to_single_workspace(self): data = Load("TSC15352-15354:2.raw", OutputWorkspace=self.wsname) self.assertTrue(isinstance(data, MatrixWorkspace)) self.assertEquals(149, data.getNumberHistograms()) self.assertEquals(24974, data.blocksize()) self.assertAlmostEqual(9.0, data.readX(2)[1], places=DIFF_PLACES) self.assertAlmostEqual(35640.0, data.readY(2)[1], places=DIFF_PLACES) self.assertAlmostEqual(188.78559267062727, data.readE(2)[1], places=DIFF_PLACES)
def test_sum_range_operator_sums_to_single_workspace(self): data = Load("TSC15352-15353.raw", OutputWorkspace = self.wsname) self.assertTrue(isinstance(data, MatrixWorkspace)) self.assertEquals(149, data.getNumberHistograms()) self.assertEquals(24974, data.blocksize()) self.assertAlmostEqual(9.0, data.readX(2)[1], places = DIFF_PLACES) self.assertAlmostEqual(46352.0, data.readY(2)[1], places = DIFF_PLACES) self.assertAlmostEqual(215.29514625276622, data.readE(2)[1], places = DIFF_PLACES)
def test_sum_range_operator_sums_to_single_workspace(self): data = Load("TSC15352-15353.raw", OutputWorkspace=self.wsname) self.assertTrue(isinstance(data, MatrixWorkspace)) self.assertEquals(149, data.getNumberHistograms()) self.assertEquals(24974, data.blocksize()) self.assertAlmostEqual(9.0, data.readX(2)[1], places=DIFF_PLACES) self.assertAlmostEqual(46352.0, data.readY(2)[1], places=DIFF_PLACES) self.assertAlmostEqual(215.29514625276622, data.readE(2)[1], places=DIFF_PLACES)
def test_plus_operator_sums_single_set_files(self): data = Load("TSC15352+15353.raw", OutputWorkspace = self.wsname) self.assertTrue(isinstance(data, MatrixWorkspace)) self.assertEquals(149, data.getNumberHistograms()) self.assertEquals(24974, data.blocksize()) self.assertAlmostEqual(9.0, data.readX(2)[1], places = DIFF_PLACES) self.assertAlmostEqual(46352.0, data.readY(2)[1], places = DIFF_PLACES) self.assertAlmostEqual(215.29514625276622, data.readE(2)[1], places = DIFF_PLACES) deleted_names = ["TSC15352", "TSC15353"] for name in deleted_names: self.assertTrue(name not in AnalysisDataService)
def test_plus_operator_sums_single_set_files(self): data = Load("TSC15352+15353.raw", OutputWorkspace=self.wsname) self.assertTrue(isinstance(data, MatrixWorkspace)) self.assertEquals(149, data.getNumberHistograms()) self.assertEquals(24974, data.blocksize()) self.assertAlmostEqual(9.0, data.readX(2)[1], places=DIFF_PLACES) self.assertAlmostEqual(46352.0, data.readY(2)[1], places=DIFF_PLACES) self.assertAlmostEqual(215.29514625276622, data.readE(2)[1], places=DIFF_PLACES) deleted_names = ["TSC15352", "TSC15353"] for name in deleted_names: self.assertTrue(name not in AnalysisDataService)
def PyExec(self): from mantid.simpleapi import Load, ConvertUnits, Rebin, DeleteWorkspace # Load file to workspace _tmpws = Load(Filename=self.getPropertyValue("Filename")) # Convert to units to DeltaE ei = self.getProperty("Ei").value _tmpws = ConvertUnits(InputWorkspace=_tmpws, Target="DeltaE", EMode="Direct", EFixed=ei) # Rebin to requested units bins = self.getProperty("BinParams").value _tmpws = Rebin(InputWorkspace=_tmpws, Params=bins) # Create the new output workspace _summed = WorkspaceFactory.create(_tmpws, NVectors=1) # Set the X values for the new workspace _summed.setX(0, _tmpws.readX(0)) # Sum the rows to a single row. Two methods demonstrated: #----- 1: Direct workspace access ----- # Uses less memory as it avoids a copy of the data # readY returns read only array. dataY returns an array we can modify on the new workspace # note _summed at this point has all its y-values = 0 sumy = _summed.dataY(0) # initialise sumy with zeros for i in range(_tmpws.getNumberHistograms()): sumy += _tmpws.readY(i) #----- 2: Extract to numpy and sum ---- # Uses more memory as extract copies to data (uncomment to see working) #yin = __tmpsws.extractY() #npsum = numpy.sum(yin,axis=0) # Axis 0 = summing down the columns # and put the data to the workspace #_summed.setY(0, npsum) # Store reference outside of algorithm self.setProperty("OutputWorkspace", _summed) DeleteWorkspace(_tmpws)
def PyExec(self): from mantid.simpleapi import Load, ConvertUnits, Rebin, DeleteWorkspace # Load file to workspace _tmpws = Load(Filename=self.getPropertyValue("Filename")) # Convert to units to DeltaE ei = self.getProperty("Ei").value _tmpws = ConvertUnits(InputWorkspace=_tmpws, Target="DeltaE", EMode="Direct", EFixed=ei) # Rebin to requested units bins = self.getProperty("BinParams").value _tmpws = Rebin(InputWorkspace=_tmpws, Params=bins) # Create the new output workspace _summed = WorkspaceFactory.create(_tmpws, NVectors=1) # Set the X values for the new workspace _summed.setX(0, _tmpws.readX(0)) # Sum the rows to a single row. Two methods demonstrated: # ----- 1: Direct workspace access ----- # Uses less memory as it avoids a copy of the data # readY returns read only array. dataY returns an array we can modify on the new workspace # note _summed at this point has all its y-values = 0 sumy = _summed.dataY(0) # initialise sumy with zeros for i in range(_tmpws.getNumberHistograms()): sumy += _tmpws.readY(i) # ----- 2: Extract to numpy and sum ---- # Uses more memory as extract copies to data (uncomment to see working) # yin = __tmpsws.extractY() # npsum = numpy.sum(yin,axis=0) # Axis 0 = summing down the columns # and put the data to the workspace # _summed.setY(0, npsum) # Store reference outside of algorithm self.setProperty("OutputWorkspace", _summed) DeleteWorkspace(_tmpws)