def PyExec(self): # Input laden self.getInputs() # Process Sample data self.processData(self._sample, self._sampleWS) if self._doEdge: self.binDataEdge(self._sampleWS) else: self.binDataLog(self._sampleWS, self._dSpaceBinning[0], self._dPerpendicularBinning[0]) # Process empty data if given if self._doEmpty: self.processData(self._empty, self._emptyWS) if self._doEdge: self.binDataEdge(self._emptyWS) else: self.binDataLog(self._emptyWS, self._dSpaceBinning[0], self._dPerpendicularBinning[0]) # Process vana data if given if self._doVana: self.processData(self._vana, self._vanaWS) self.processVana(self._vanaWS) if self._doEdge: self.binDataEdge(self._vanaWS) else: self.binDataLog(self._vanaWS, self._dSpaceBinning[0], self._dPerpendicularBinning[0]) self.postProcessVana(self._vanaWS) # Check all datafiles for negative Values and correct those self.checkForNegatives(self._sampleWS, self._doVana, self._vanaWS, self._doEmpty, self._emptyWS, self._addMinimum, self._resetValue, self._addMinimumVana, self._addMinimumVana) # Correct sample data with empty and vana data if they are there if self._doVana or self._doEmpty: self.correctSampleData(self._sampleWS, self._doVana, self._vanaWS, self._doEmpty, self._emptyWS) # Check final results again for negative Values and correct those self.checkForNegatives(self._sampleWS, self._doVana, self._vanaWS, self._doEmpty, self._emptyWS, self._addMinimum, self._resetValue, self._addMinimumVana, self._addMinimumVana) # Print sample data to p2d file SaveP2D(Workspace=self._sampleWS, OutputFile=self._outputFile, RemoveNaN=True, RemoveNegatives=True, CutData=True, TthMin=self._tthMin, TthMax=self._tthMax, lambdaMin=self._lambdaMin, LambdaMax=self._lambdaMax, DMin=self._dMin, DMax=self._dMax, DpMin=self._dpMin, DpMax=self._dpMax)
def test_savep2d_raw(self): SaveP2D(Workspace=self._workspace, OutputFile=os.path.join(self._test_dir, "test_savep2d_raw"), RemoveNaN=False, RemoveNegatives=False, CutData=False) text = '#Title: test\n#Inst: .prm\n#Binning: ddperp 0.8888889 1.0000000\n#Bank: 1\n#2theta lambda d-value dp-value counts\n 81.3046911 1.3029352 1.0000000 1.5000000 1.0000000\n 42.5730378 1.4521280 2.0000000 1.5000000 2.0000000\n 28.5401669 1.4789581 3.0000000 1.5000000 3.0000000\n 21.4420009 1.4882141 4.0000000 1.5000000 -1.0000000\n 17.1666094 1.4924723 5.0000000 1.5000000 0.0000000\n 14.3112545 1.4947782 6.0000000 1.5000000 nan\n 12.2697184 1.4961662 7.0000000 1.5000000 3.0000000\n 10.7376523 1.4970660 8.0000000 1.5000000 1.0000000\n 9.5455787 1.4976825 9.0000000 1.5000000 4.0000000\n 147.7039064 1.9210925 1.0000000 2.5000000 1.0000000\n 74.0366222 2.4082809 2.0000000 2.5000000 2.0000000\n 48.4687709 2.4628222 3.0000000 2.5000000 3.0000000\n 36.1141714 2.4797153 4.0000000 2.5000000 -1.0000000\n 28.8035116 2.4871957 5.0000000 2.5000000 0.0000000\n 23.9632304 2.4911738 6.0000000 2.5000000 nan\n 20.5194188 2.4935442 7.0000000 2.5000000 3.0000000\n 17.9428625 2.4950714 8.0000000 2.5000000 1.0000000\n 15.9421282 2.4961135 9.0000000 2.5000000 4.0000000\n' with open(os.path.join(self._test_dir, "ref_savep2d_raw.txt"), 'w') as of: of.write(text) self._assert_file_content_equal( os.path.join(self._test_dir, "ref_savep2d_raw.txt"), os.path.join(self._test_dir, "test_savep2d_raw.p2d"))
def test_resetNegatives2D_addMinimum(self): ResetNegatives2D(self._workspace1) SaveP2D(Workspace=self._workspace1, OutputFile=os.path.join(self._test_dir, "test_ResetNegatives2D_addMinimum"), RemoveNaN=0, RemoveNegatives=0, CutData=0) text = '#Title: test\n#Inst: .prm\n#Binning: ddperp 0.8888889 1.0000000\n#Bank: 1\n#2theta lambda d-value dp-value counts\n 81.3046911 1.3029352 1.0000000 1.5000000 3.0000000\n 42.5730378 1.4521280 2.0000000 1.5000000 1.0000000\n 28.5401669 1.4789581 3.0000000 1.5000000 3.0000000\n 21.4420009 1.4882141 4.0000000 1.5000000 3.0000000\n 17.1666094 1.4924723 5.0000000 1.5000000 3.0000000\n 14.3112545 1.4947782 6.0000000 1.5000000 3.0000000\n 12.2697184 1.4961662 7.0000000 1.5000000 0.0000000\n 10.7376523 1.4970660 8.0000000 1.5000000 3.0000000\n 9.5455787 1.4976825 9.0000000 1.5000000 3.0000000\n 147.7039064 1.9210925 1.0000000 2.5000000 3.0000000\n 74.0366222 2.4082809 2.0000000 2.5000000 1.0000000\n 48.4687709 2.4628222 3.0000000 2.5000000 3.0000000\n 36.1141714 2.4797153 4.0000000 2.5000000 3.0000000\n 28.8035116 2.4871957 5.0000000 2.5000000 3.0000000\n 23.9632304 2.4911738 6.0000000 2.5000000 3.0000000\n 20.5194188 2.4935442 7.0000000 2.5000000 0.0000000\n 17.9428625 2.4950714 8.0000000 2.5000000 3.0000000\n 15.9421282 2.4961135 9.0000000 2.5000000 3.0000000\n 178.1486860 1.9997390 1.0000000 3.5000000 3.0000000\n 112.5838945 3.3275045 2.0000000 3.5000000 1.0000000\n 70.0240404 3.4424897 3.0000000 3.5000000 3.0000000\n 51.4130764 3.4700953 4.0000000 3.5000000 3.0000000\n 40.7483187 3.4814929 5.0000000 3.5000000 3.0000000\n 33.7894761 3.4873718 6.0000000 3.5000000 3.0000000\n 28.8774112 3.4908181 7.0000000 3.5000000 0.0000000\n 25.2199975 3.4930167 8.0000000 3.5000000 3.0000000\n 22.3888960 3.4945073 9.0000000 3.5000000 3.0000000\n' with open( os.path.join(self._test_dir, "ref_resetNegatives_addMinimum.txt"), 'w') as of: of.write(text) self._assert_workspace_positive( os.path.join(self._test_dir, "ref_resetNegatives_addMinimum.txt"), os.path.join(self._test_dir, "test_ResetNegatives2D_addMinimum.p2d"))
def test_savep2d_cut_data_dp(self): SaveP2D(Workspace=self._workspace, OutputFile=os.path.join(self._test_dir, "test_savep2d_cut_data_dp"), RemoveNaN=False, RemoveNegatives=False, CutData=True, TthMin=10, TthMax=140, LambdaMin=1.4, LambdaMax=2.496, DMin=2.5, DMax=7.5) text = '#Title: test\n#Inst: .prm\n#Binning: ddperp 0.8888889 1.0000000\n#Bank: 1\n#2theta lambda d-value dp-value counts\n 28.5401669 1.4789581 3.0000000 1.5000000 3.0000000\n 21.4420009 1.4882141 4.0000000 1.5000000 -1.0000000\n 17.1666094 1.4924723 5.0000000 1.5000000 0.0000000\n 14.3112545 1.4947782 6.0000000 1.5000000 nan\n 12.2697184 1.4961662 7.0000000 1.5000000 3.0000000\n' with open(os.path.join(self._test_dir, "ref_savep2d_cut_data_dp.txt"), 'w') as of: of.write(text) self._assert_file_content_equal( os.path.join(self._test_dir, "ref_savep2d_cut_data_dp.txt"), os.path.join(self._test_dir, "test_savep2d_cut_data_dp.p2d"))
def test_savep2d_cut_data(self): SaveP2D(Workspace=self._workspace, OutputFile=os.path.join(self._test_dir, "test_savep2d_cut_data"), RemoveNaN=False, RemoveNegatives=False, CutData=True, TthMin=10, TthMax=140, LambdaMin=1.4, LambdaMax=2.496, DMin=2.5, DMax=7.5, DpMin=1, DpMax=3) text = '#Title: test\n#Inst: .prm\n#Binning: ddperp 0.8888889 1.0000000\n#Bank: 1\n#2theta lambda d-value dp-value counts\n 28.5401669 1.4789581 3.0000000 1.5000000 3.0000000\n 21.4420009 1.4882141 4.0000000 1.5000000 -1.0000000\n 17.1666094 1.4924723 5.0000000 1.5000000 0.0000000\n 14.3112545 1.4947782 6.0000000 1.5000000 nan\n 12.2697184 1.4961662 7.0000000 1.5000000 3.0000000\n 48.4687709 2.4628222 3.0000000 2.5000000 3.0000000\n 36.1141714 2.4797153 4.0000000 2.5000000 -1.0000000\n 28.8035116 2.4871957 5.0000000 2.5000000 0.0000000\n 23.9632304 2.4911738 6.0000000 2.5000000 nan\n 20.5194188 2.4935442 7.0000000 2.5000000 3.0000000\n' with open(os.path.join(self._test_dir, "ref_savep2d_cut_data.txt"), 'w') as of: of.write(text) self._assert_file_content_equal( os.path.join(self._test_dir, "ref_savep2d_cut_data.txt"), os.path.join(self._test_dir, "test_savep2d_cut_data.p2d"))