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)
Beispiel #2
0
 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"))
Beispiel #4
0
 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"))
Beispiel #5
0
 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"))