Exemplo n.º 1
0
    def from_xml_element(self, instrument_dom):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        # incident medium
        self.incident_medium_list = BaseScriptElement.getStringList(
            instrument_dom, "incident_medium_list")
        self.incident_medium_index_selected = BaseScriptElement.getIntElement(
            instrument_dom, "incident_medium_index_selected")

        self.tof_min = BaseScriptElement.getFloatElement(
            instrument_dom, "tof_min")
        self.tof_max = BaseScriptElement.getFloatElement(
            instrument_dom, "tof_max")

        # run number
        self.data_file = BaseScriptElement.getIntElement(
            instrument_dom, "data_file")

        # number of attenuator
        self.number_attenuator = BaseScriptElement.getIntElement(
            instrument_dom, "number_attenuator")

        # peak selection from and to
        self.peak_selection = [
            BaseScriptElement.getIntElement(instrument_dom,
                                            "peak_selection_from_pixel"),
            BaseScriptElement.getIntElement(instrument_dom,
                                            "peak_selection_to_pixel")
        ]

        # background flag and selection from and to
        self.back_selection = [
            BaseScriptElement.getIntElement(instrument_dom,
                                            "back_selection_from_pixel"),
            BaseScriptElement.getIntElement(instrument_dom,
                                            "back_selection_to_pixel")
        ]

        # lambda requested
        self.lambda_requested = BaseScriptElement.getStringElement(
            instrument_dom, "lambda_requested")

        # s1h, s2h, s1w, s2w
        self.s1h = BaseScriptElement.getStringElement(instrument_dom, "s1h")
        self.s2h = BaseScriptElement.getStringElement(instrument_dom, "s2h")
        self.s1w = BaseScriptElement.getStringElement(instrument_dom, "s1w")
        self.s2w = BaseScriptElement.getStringElement(instrument_dom, "s2w")

        # scaling factor file
        self.scaling_factor_file = BaseScriptElement.getStringElement(
            instrument_dom, "scaling_factor_file")
Exemplo n.º 2
0
    def from_xml(self, xml_str):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        self.reset()
        dom = xml.dom.minidom.parseString(xml_str)

        element_list = dom.getElementsByTagName("Transmission")
        if len(element_list) > 0:
            instrument_dom = element_list[0]
            self.transmission = BaseScriptElement.getFloatElement(
                instrument_dom, "trans", default=SampleData.transmission)
            self.transmission_spread = BaseScriptElement.getFloatElement(
                instrument_dom,
                "trans_spread",
                default=SampleData.transmission_spread)
            self.calculate_transmission = BaseScriptElement.getBoolElement(
                instrument_dom,
                "calculate_trans",
                default=SampleData.calculate_transmission)
            self.theta_dependent = BaseScriptElement.getBoolElement(
                instrument_dom,
                "theta_dependent",
                default=SampleData.theta_dependent)
            self.dark_current = BaseScriptElement.getStringElement(
                instrument_dom, "dark_current")

            for m in self.option_list:
                method = m()
                if method.find(instrument_dom):
                    method.from_xml(instrument_dom)
                    self.calculation_method = method
                    break

        # Data file section
        element_list = dom.getElementsByTagName("SampleData")
        if len(element_list) > 0:
            sample_data_dom = element_list[0]
            self.data_files = BaseScriptElement.getStringList(
                sample_data_dom, "data_file")
            self.sample_thickness = BaseScriptElement.getFloatElement(
                sample_data_dom,
                "sample_thickness",
                default=SampleData.sample_thickness)
            self.separate_jobs = BaseScriptElement.getBoolElement(
                sample_data_dom,
                "separate_jobs",
                default=SampleData.separate_jobs)
Exemplo n.º 3
0
    def from_xml(self, xml_str):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """   
        self.reset()    
        dom = xml.dom.minidom.parseString(xml_str)
        
        # Get Mantid version
        mtd_version = BaseScriptElement.getMantidBuildVersion(dom)

        element_list = dom.getElementsByTagName("Transmission")
        if len(element_list)>0:
            instrument_dom = element_list[0]      
            self.transmission = BaseScriptElement.getFloatElement(instrument_dom, "trans",
                                                                  default=SampleData.transmission)      
            self.transmission_spread = BaseScriptElement.getFloatElement(instrument_dom, "trans_spread",
                                                                  default=SampleData.transmission_spread)  
            self.calculate_transmission = BaseScriptElement.getBoolElement(instrument_dom, "calculate_trans",
                                                                           default = SampleData.calculate_transmission)
            self.theta_dependent = BaseScriptElement.getBoolElement(instrument_dom, "theta_dependent",
                                                                           default = SampleData.theta_dependent)
            self.dark_current = BaseScriptElement.getStringElement(instrument_dom, "dark_current")
            
            for m in self.option_list:
                method = m()
                if method.find(instrument_dom):
                    method.from_xml(instrument_dom)
                    self.calculation_method = method
                    break
                    
        # Data file section - take care of backward compatibility
        if mtd_version!=0 and mtd_version<BaseScriptElement.UPDATE_1_CHANGESET_CUTOFF:
            element_list = dom.getElementsByTagName("Instrument")
        else:
            element_list = dom.getElementsByTagName("SampleData")
        if len(element_list)>0:
            sample_data_dom = element_list[0]      
            self.data_files = BaseScriptElement.getStringList(sample_data_dom, "data_file")
            self.sample_thickness = BaseScriptElement.getFloatElement(sample_data_dom, "sample_thickness",
                                                                      default=SampleData.sample_thickness)      
Exemplo n.º 4
0
    def from_xml(self, xml_str):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        self.reset()
        dom = xml.dom.minidom.parseString(xml_str)

        element_list = dom.getElementsByTagName("Transmission")
        if len(element_list)>0:
            instrument_dom = element_list[0]
            self.transmission = BaseScriptElement.getFloatElement(instrument_dom, "trans",
                                                                  default=SampleData.transmission)
            self.transmission_spread = BaseScriptElement.getFloatElement(instrument_dom, "trans_spread",
                                                                         default=SampleData.transmission_spread)
            self.calculate_transmission = BaseScriptElement.getBoolElement(instrument_dom, "calculate_trans",
                                                                           default = SampleData.calculate_transmission)
            self.theta_dependent = BaseScriptElement.getBoolElement(instrument_dom, "theta_dependent",
                                                                    default = SampleData.theta_dependent)
            self.dark_current = BaseScriptElement.getStringElement(instrument_dom, "dark_current")

            for m in self.option_list:
                method = m()
                if method.find(instrument_dom):
                    method.from_xml(instrument_dom)
                    self.calculation_method = method
                    break

        # Data file section
        element_list = dom.getElementsByTagName("SampleData")
        if len(element_list)>0:
            sample_data_dom = element_list[0]
            self.data_files = BaseScriptElement.getStringList(sample_data_dom, "data_file")
            self.sample_thickness = BaseScriptElement.getFloatElement(sample_data_dom, "sample_thickness",
                                                                      default=SampleData.sample_thickness)
            self.separate_jobs = BaseScriptElement.getBoolElement(sample_data_dom, "separate_jobs",
                                                                  default = SampleData.separate_jobs)
 def from_xml_element(self, instrument_dom):
     """
         Read in data from XML
         @param xml_str: text to read the data from
     """   
     #incident medium
     self.incident_medium_list = BaseScriptElement.getStringList(instrument_dom, "incident_medium_list")        
     self.incident_medium_index_selected = BaseScriptElement.getIntElement(instrument_dom, "incident_medium_index_selected")
     
     self.tof_min = BaseScriptElement.getFloatElement(instrument_dom, "tof_min")
     self.tof_max = BaseScriptElement.getFloatElement(instrument_dom, "tof_max")
             
     #run number
     self.data_file = BaseScriptElement.getIntElement(instrument_dom, "data_file")
     
     #number of attenuator
     self.number_attenuator = BaseScriptElement.getIntElement(instrument_dom, "number_attenuator")
     
     #peak selection from and to
     self.peak_selection = [BaseScriptElement.getIntElement(instrument_dom, "peak_selection_from_pixel"),
                            BaseScriptElement.getIntElement(instrument_dom, "peak_selection_to_pixel")]
     
     #background flag and selection from and to
     self.back_selection = [BaseScriptElement.getIntElement(instrument_dom, "back_selection_from_pixel"),
                            BaseScriptElement.getIntElement(instrument_dom, "back_selection_to_pixel")]
     
     #lambda requested
     self.lambda_requested = BaseScriptElement.getStringElement(instrument_dom, "lambda_requested")
     
     #s1h, s2h, s1w, s2w
     self.s1h = BaseScriptElement.getStringElement(instrument_dom, "s1h")
     self.s2h = BaseScriptElement.getStringElement(instrument_dom, "s2h")
     self.s1w = BaseScriptElement.getStringElement(instrument_dom, "s1w")
     self.s2w = BaseScriptElement.getStringElement(instrument_dom, "s2w")
     
     #scaling factor file
     self.scaling_factor_file = BaseScriptElement.getStringElement(instrument_dom, "scaling_factor_file")
Exemplo n.º 6
0
    def from_xml_element(self, instrument_dom):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """   
        #Peak selection
        self.DataPeakSelectionType = BaseScriptElement.getStringElement(instrument_dom, "peak_selection_type")
        
        #Peak from/to pixels
        self.DataPeakPixels = [BaseScriptElement.getIntElement(instrument_dom, "from_peak_pixels"),
                               BaseScriptElement.getIntElement(instrument_dom, "to_peak_pixels")]
        
        
        #data metadata
        _tthd_value = BaseScriptElement.getStringElement(instrument_dom, "tthd_value")
        if (_tthd_value == ''):
            _tthd_value = 'N/A'
        self.tthd_value = _tthd_value
        
        _ths_value = BaseScriptElement.getStringElement(instrument_dom, "ths_value")
        if (_ths_value == ''):
            _ths_value = 'N/A'
        self.ths_value = _ths_value
        
        #low resolution range
        self.data_x_range_flag = BaseScriptElement.getBoolElement(instrument_dom, "x_range_flag",
                                                                  default=DataSets.data_x_range_flag)
        
        self.data_x_range = [BaseScriptElement.getIntElement(instrument_dom, "x_min_pixel"),
                             BaseScriptElement.getIntElement(instrument_dom, "x_max_pixel")]
        
        self.norm_x_range_flag = BaseScriptElement.getBoolElement(instrument_dom, "norm_x_range_flag",
                                                                  default=DataSets.norm_x_range_flag)

        self.norm_x_range = [BaseScriptElement.getIntElement(instrument_dom, "norm_x_min"),
                             BaseScriptElement.getIntElement(instrument_dom, "norm_x_max")]
        
        #discrete selection string
        self.DataPeakDiscreteSelection = BaseScriptElement.getStringElement(instrument_dom, "peak_discrete_selection")
        
        #background flag
        self.DataBackgroundFlag = BaseScriptElement.getBoolElement(instrument_dom,
                                                                   "background_flag",
                                                                   default=DataSets.DataBackgroundFlag)

        #background from/to pixels
        self.DataBackgroundRoi = [BaseScriptElement.getIntElement(instrument_dom, "back_roi1_from"),
                                  BaseScriptElement.getIntElement(instrument_dom, "back_roi1_to"),
                                  BaseScriptElement.getIntElement(instrument_dom, "back_roi2_from"),
                                  BaseScriptElement.getIntElement(instrument_dom, "back_roi2_to")]

        #from TOF and to TOF
        self.TofRangeFlag = BaseScriptElement.getBoolElement(instrument_dom, "tof_range_flag", 
                                                             default=DataSets.TofRangeFlag)
        self.DataTofRange = [BaseScriptElement.getFloatElement(instrument_dom, "from_tof_range"),
                             BaseScriptElement.getFloatElement(instrument_dom, "to_tof_range")]

        self.data_files = BaseScriptElement.getIntList(instrument_dom, "data_sets")
            
        #with or without norm 
        self.NormFlag = BaseScriptElement.getBoolElement(instrument_dom, "norm_flag",
                                                         default=DataSets.NormFlag)
        
        #Peak from/to pixels
        self.NormPeakPixels = [BaseScriptElement.getIntElement(instrument_dom, "norm_from_peak_pixels"),
                               BaseScriptElement.getIntElement(instrument_dom, "norm_to_peak_pixels")]

        #background flag
        self.NormBackgroundFlag = BaseScriptElement.getBoolElement(instrument_dom, 
                                                                   "norm_background_flag", 
                                                                   default=DataSets.NormBackgroundFlag)
        
        #background from/to pixels
        self.NormBackgroundRoi = [BaseScriptElement.getIntElement(instrument_dom, "norm_from_back_pixels"),
                                  BaseScriptElement.getIntElement(instrument_dom, "norm_to_back_pixels")]
        
        self.norm_file = BaseScriptElement.getIntElement(instrument_dom, "norm_dataset")
    
        # Q cut
        self.q_min = BaseScriptElement.getFloatElement(instrument_dom, "q_min", default=DataSets.q_min)    
        self.q_step = BaseScriptElement.getFloatElement(instrument_dom, "q_step", default=DataSets.q_step)
        self.auto_q_binning = BaseScriptElement.getBoolElement(instrument_dom, "auto_q_binning", default=False)
    
        # Angle offset
        self.angle_offset = BaseScriptElement.getFloatElement(instrument_dom, "angle_offset", default=DataSets.angle_offset)
        self.angle_offset_error = BaseScriptElement.getFloatElement(instrument_dom, "angle_offset_error", default=DataSets.angle_offset_error)        
        
        #scaling factor file and options
        self.scaling_factor_file = BaseScriptElement.getStringElement(instrument_dom, "scaling_factor_file")
        self.slits_width_flag = BaseScriptElement.getBoolElement(instrument_dom, "slits_width_flag")
        self.scaling_factor_file_flag = BaseScriptElement.getBoolElement(instrument_dom, "scaling_factor_flag")
        
        #incident medium selected
        if BaseScriptElement.getStringList(instrument_dom, "incident_medium_list") != []:        
            self.incident_medium_list = BaseScriptElement.getStringList(instrument_dom, "incident_medium_list")
            self.incident_medium_index_selected = BaseScriptElement.getIntElement(instrument_dom, "incident_medium_index_selected")
        else:
            self.incident_medium_list = ['H2O']
            self.incident_medium_index_selected = 0

        #fourth column (precision)
        self.fourth_column_flag = BaseScriptElement.getBoolElement(instrument_dom, "fourth_column_flag")
        self.fourth_column_dq0 = BaseScriptElement.getFloatElement(instrument_dom, "fourth_column_dq0")
        self.fourth_column_dq_over_q = BaseScriptElement.getFloatElement(instrument_dom, "fourth_column_dq_over_q")
Exemplo n.º 7
0
 def get_strlst(tag):
     return BaseScriptElement.getStringList(dom, tag)
Exemplo n.º 8
0
 def get_strlst(tag):
     return BaseScriptElement.getStringList(dom, tag)
Exemplo n.º 9
0
    def from_xml_element(self, instrument_dom):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        #Peak selection
        self.DataPeakSelectionType = BaseScriptElement.getStringElement(
            instrument_dom, "peak_selection_type")

        #Peak from/to pixels
        self.DataPeakPixels = [
            BaseScriptElement.getIntElement(instrument_dom,
                                            "from_peak_pixels"),
            BaseScriptElement.getIntElement(instrument_dom, "to_peak_pixels")
        ]

        #data metadata
        _tthd_value = BaseScriptElement.getStringElement(
            instrument_dom, "tthd_value")
        if _tthd_value == '':
            _tthd_value = 'N/A'
        self.tthd_value = _tthd_value

        _ths_value = BaseScriptElement.getStringElement(
            instrument_dom, "ths_value")
        if _ths_value == '':
            _ths_value = 'N/A'
        self.ths_value = _ths_value

        #low resolution range
        self.data_x_range_flag = BaseScriptElement.getBoolElement(
            instrument_dom, "x_range_flag", default=DataSets.data_x_range_flag)

        self.data_x_range = [
            BaseScriptElement.getIntElement(instrument_dom, "x_min_pixel"),
            BaseScriptElement.getIntElement(instrument_dom, "x_max_pixel")
        ]

        self.norm_x_range_flag = BaseScriptElement.getBoolElement(
            instrument_dom,
            "norm_x_range_flag",
            default=DataSets.norm_x_range_flag)

        self.norm_x_range = [
            BaseScriptElement.getIntElement(instrument_dom, "norm_x_min"),
            BaseScriptElement.getIntElement(instrument_dom, "norm_x_max")
        ]

        #discrete selection string
        self.DataPeakDiscreteSelection = BaseScriptElement.getStringElement(
            instrument_dom, "peak_discrete_selection")

        #background flag
        self.DataBackgroundFlag = BaseScriptElement.getBoolElement(
            instrument_dom,
            "background_flag",
            default=DataSets.DataBackgroundFlag)

        #background from/to pixels
        self.DataBackgroundRoi = [
            BaseScriptElement.getIntElement(instrument_dom, "back_roi1_from"),
            BaseScriptElement.getIntElement(instrument_dom, "back_roi1_to"),
            BaseScriptElement.getIntElement(instrument_dom, "back_roi2_from"),
            BaseScriptElement.getIntElement(instrument_dom, "back_roi2_to")
        ]

        #from TOF and to TOF
        self.TofRangeFlag = BaseScriptElement.getBoolElement(
            instrument_dom, "tof_range_flag", default=DataSets.TofRangeFlag)
        self.DataTofRange = [
            BaseScriptElement.getFloatElement(instrument_dom,
                                              "from_tof_range"),
            BaseScriptElement.getFloatElement(instrument_dom, "to_tof_range")
        ]

        self.data_files = BaseScriptElement.getIntList(instrument_dom,
                                                       "data_sets")

        #with or without norm
        self.NormFlag = BaseScriptElement.getBoolElement(
            instrument_dom, "norm_flag", default=DataSets.NormFlag)

        #Peak from/to pixels
        self.NormPeakPixels = [
            BaseScriptElement.getIntElement(instrument_dom,
                                            "norm_from_peak_pixels"),
            BaseScriptElement.getIntElement(instrument_dom,
                                            "norm_to_peak_pixels")
        ]

        #background flag
        self.NormBackgroundFlag = BaseScriptElement.getBoolElement(
            instrument_dom,
            "norm_background_flag",
            default=DataSets.NormBackgroundFlag)

        #background from/to pixels
        self.NormBackgroundRoi = [
            BaseScriptElement.getIntElement(instrument_dom,
                                            "norm_from_back_pixels"),
            BaseScriptElement.getIntElement(instrument_dom,
                                            "norm_to_back_pixels")
        ]

        self.norm_file = BaseScriptElement.getIntElement(
            instrument_dom, "norm_dataset")

        # Q cut
        self.q_min = BaseScriptElement.getFloatElement(instrument_dom,
                                                       "q_min",
                                                       default=DataSets.q_min)
        self.q_step = BaseScriptElement.getFloatElement(
            instrument_dom, "q_step", default=DataSets.q_step)
        self.auto_q_binning = BaseScriptElement.getBoolElement(
            instrument_dom, "auto_q_binning", default=False)

        # overlap_lowest_error
        self.overlap_lowest_error = BaseScriptElement.getBoolElement(
            instrument_dom, "overlap_lowest_error", default=True)
        self.overlap_mean_value = BaseScriptElement.getBoolElement(
            instrument_dom, "overlap_mean_value", default=False)

        # Angle offset
        self.angle_offset = BaseScriptElement.getFloatElement(
            instrument_dom, "angle_offset", default=DataSets.angle_offset)
        self.angle_offset_error = BaseScriptElement.getFloatElement(
            instrument_dom,
            "angle_offset_error",
            default=DataSets.angle_offset_error)

        #scaling factor file and options
        self.scaling_factor_file = BaseScriptElement.getStringElement(
            instrument_dom, "scaling_factor_file")
        self.slits_width_flag = BaseScriptElement.getBoolElement(
            instrument_dom, "slits_width_flag")
        self.scaling_factor_file_flag = BaseScriptElement.getBoolElement(
            instrument_dom, "scaling_factor_flag")

        # geometry correction switch
        self.geometry_correction_switch = BaseScriptElement.getBoolElement(
            instrument_dom, "geometry_correction_switch")

        #incident medium selected
        if BaseScriptElement.getStringList(instrument_dom,
                                           "incident_medium_list") != []:
            self.incident_medium_list = BaseScriptElement.getStringList(
                instrument_dom, "incident_medium_list")
            self.incident_medium_index_selected = BaseScriptElement.getIntElement(
                instrument_dom, "incident_medium_index_selected")
        else:
            self.incident_medium_list = ['H2O']
            self.incident_medium_index_selected = 0

        #fourth column (precision)
        self.fourth_column_flag = BaseScriptElement.getBoolElement(
            instrument_dom, "fourth_column_flag")
        self.fourth_column_dq0 = BaseScriptElement.getFloatElement(
            instrument_dom, "fourth_column_dq0")
        self.fourth_column_dq_over_q = BaseScriptElement.getFloatElement(
            instrument_dom, "fourth_column_dq_over_q")

        # Primary fraction
        self.clocking_from = BaseScriptElement.getIntElement(instrument_dom,
                                                             "clocking_from",
                                                             default=None)
        self.clocking_to = BaseScriptElement.getIntElement(instrument_dom,
                                                           "clocking_to",
                                                           default=None)
Exemplo n.º 10
0
    def from_xml_element(self, instrument_dom):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        # Peak from/to pixels
        self.DataPeakPixels = [
            BaseScriptElement.getIntElement(instrument_dom, "from_peak_pixels"),
            BaseScriptElement.getIntElement(instrument_dom, "to_peak_pixels"),
        ]

        # low resolution range
        self.data_x_range_flag = BaseScriptElement.getBoolElement(
            instrument_dom, "x_range_flag", default=DataSets.data_x_range_flag
        )

        self.data_x_range = [
            BaseScriptElement.getIntElement(instrument_dom, "x_min_pixel"),
            BaseScriptElement.getIntElement(instrument_dom, "x_max_pixel"),
        ]

        self.norm_x_range_flag = BaseScriptElement.getBoolElement(
            instrument_dom, "norm_x_range_flag", default=DataSets.norm_x_range_flag
        )

        self.norm_x_range = [
            BaseScriptElement.getIntElement(instrument_dom, "norm_x_min"),
            BaseScriptElement.getIntElement(instrument_dom, "norm_x_max"),
        ]

        # discrete selection string
        self.DataPeakDiscreteSelection = BaseScriptElement.getStringElement(instrument_dom, "peak_discrete_selection")

        # background flag
        self.DataBackgroundFlag = BaseScriptElement.getBoolElement(
            instrument_dom, "background_flag", default=DataSets.DataBackgroundFlag
        )

        # background from/to pixels
        self.DataBackgroundRoi = [
            BaseScriptElement.getIntElement(instrument_dom, "back_roi1_from"),
            BaseScriptElement.getIntElement(instrument_dom, "back_roi1_to"),
            BaseScriptElement.getIntElement(instrument_dom, "back_roi2_from"),
            BaseScriptElement.getIntElement(instrument_dom, "back_roi2_to"),
        ]

        # from TOF and to TOF
        # self.crop_TOF_range = BaseScriptElement.getBoolElement(instrument_dom, "crop_tof",
        #                                                       default=DataSets.crop_TOF_range)
        self.DataTofRange = [
            BaseScriptElement.getFloatElement(instrument_dom, "from_tof_range"),
            BaseScriptElement.getFloatElement(instrument_dom, "to_tof_range"),
        ]
        self.TOFstep = BaseScriptElement.getFloatElement(instrument_dom, "tof_step", default=DataSets.TOFstep)

        self.data_files = BaseScriptElement.getStringList(instrument_dom, "data_sets")

        # with or without norm
        self.NormFlag = BaseScriptElement.getBoolElement(instrument_dom, "norm_flag", default=DataSets.NormFlag)

        # Peak from/to pixels
        self.NormPeakPixels = [
            BaseScriptElement.getIntElement(instrument_dom, "norm_from_peak_pixels"),
            BaseScriptElement.getIntElement(instrument_dom, "norm_to_peak_pixels"),
        ]

        # background flag
        self.NormBackgroundFlag = BaseScriptElement.getBoolElement(
            instrument_dom, "norm_background_flag", default=DataSets.NormBackgroundFlag
        )

        # background from/to pixels
        self.NormBackgroundRoi = [
            BaseScriptElement.getIntElement(instrument_dom, "norm_from_back_pixels"),
            BaseScriptElement.getIntElement(instrument_dom, "norm_to_back_pixels"),
        ]

        self.norm_file = BaseScriptElement.getStringElement(instrument_dom, "norm_dataset")

        # Q cut
        self.q_min = BaseScriptElement.getFloatElement(instrument_dom, "q_min", default=DataSets.q_min)
        self.q_step = BaseScriptElement.getFloatElement(instrument_dom, "q_step", default=DataSets.q_step)
        self.q_bins = BaseScriptElement.getIntElement(instrument_dom, "q_bins", default=DataSets.q_bins)
        self.q_log = BaseScriptElement.getBoolElement(instrument_dom, "q_log", default=DataSets.q_log)

        # scattering angle
        self.theta = BaseScriptElement.getFloatElement(instrument_dom, "theta", default=DataSets.theta)
        # self.use_center_pixel = BaseScriptElement.getBoolElement(instrument_dom,
        #                                                         "use_center_pixel",
        #                                                         default=DataSets.use_center_pixel)

        # Sample log overwrites
        self.set_detector_angle = BaseScriptElement.getBoolElement(
            instrument_dom, "set_detector_angle", default=DataSets.set_detector_angle
        )
        self.detector_angle = BaseScriptElement.getFloatElement(
            instrument_dom, "detector_angle", default=DataSets.detector_angle
        )
        self.set_detector_angle_offset = BaseScriptElement.getBoolElement(
            instrument_dom, "set_detector_angle_offset", default=DataSets.set_detector_angle_offset
        )
        self.detector_angle_offset = BaseScriptElement.getFloatElement(
            instrument_dom, "detector_angle_offset", default=DataSets.detector_angle_offset
        )
        self.set_direct_pixel = BaseScriptElement.getBoolElement(
            instrument_dom, "set_direct_pixel", default=DataSets.set_direct_pixel
        )
        self.direct_pixel = BaseScriptElement.getFloatElement(
            instrument_dom, "direct_pixel", default=DataSets.direct_pixel
        )

        self.output_dir = BaseScriptElement.getStringElement(instrument_dom, "output_dir", default=DataSets.output_dir)
Exemplo n.º 11
0
    def from_xml_element(self, instrument_dom):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        # Peak from/to pixels
        self.DataPeakPixels = [BaseScriptElement.getIntElement(instrument_dom, "from_peak_pixels"),
                               BaseScriptElement.getIntElement(instrument_dom, "to_peak_pixels")]

        # low resolution range
        self.data_x_range_flag = BaseScriptElement.getBoolElement(instrument_dom, "x_range_flag",
                                                                  default=DataSets.data_x_range_flag)

        self.data_x_range = [BaseScriptElement.getIntElement(instrument_dom, "x_min_pixel"),
                             BaseScriptElement.getIntElement(instrument_dom, "x_max_pixel")]

        self.norm_x_range_flag = BaseScriptElement.getBoolElement(instrument_dom, "norm_x_range_flag",
                                                                  default=DataSets.norm_x_range_flag)

        self.norm_x_range = [BaseScriptElement.getIntElement(instrument_dom, "norm_x_min"),
                             BaseScriptElement.getIntElement(instrument_dom, "norm_x_max")]

        # discrete selection string
        self.DataPeakDiscreteSelection = BaseScriptElement.getStringElement(instrument_dom, "peak_discrete_selection")

        # background flag
        self.DataBackgroundFlag = BaseScriptElement.getBoolElement(instrument_dom,
                                                                   "background_flag",
                                                                   default=DataSets.DataBackgroundFlag)

        # background from/to pixels
        self.DataBackgroundRoi = [BaseScriptElement.getIntElement(instrument_dom, "back_roi1_from"),
                                  BaseScriptElement.getIntElement(instrument_dom, "back_roi1_to"),
                                  BaseScriptElement.getIntElement(instrument_dom, "back_roi2_from"),
                                  BaseScriptElement.getIntElement(instrument_dom, "back_roi2_to")]

        # from TOF and to TOF
        # self.crop_TOF_range = BaseScriptElement.getBoolElement(instrument_dom, "crop_tof",
        #                                                       default=DataSets.crop_TOF_range)
        self.DataTofRange = [BaseScriptElement.getFloatElement(instrument_dom, "from_tof_range"),
                             BaseScriptElement.getFloatElement(instrument_dom, "to_tof_range")]
        self.TOFstep = BaseScriptElement.getFloatElement(instrument_dom, "tof_step",
                                                         default=DataSets.TOFstep)

        self.data_files = BaseScriptElement.getStringList(instrument_dom, "data_sets")

        # with or without norm
        self.NormFlag = BaseScriptElement.getBoolElement(instrument_dom, "norm_flag",
                                                         default=DataSets.NormFlag)

        # Peak from/to pixels
        self.NormPeakPixels = [BaseScriptElement.getIntElement(instrument_dom, "norm_from_peak_pixels"),
                               BaseScriptElement.getIntElement(instrument_dom, "norm_to_peak_pixels")]

        # background flag
        self.NormBackgroundFlag = BaseScriptElement.getBoolElement(instrument_dom,
                                                                   "norm_background_flag",
                                                                   default=DataSets.NormBackgroundFlag)

        # background from/to pixels
        self.NormBackgroundRoi = [BaseScriptElement.getIntElement(instrument_dom, "norm_from_back_pixels"),
                                  BaseScriptElement.getIntElement(instrument_dom, "norm_to_back_pixels")]

        self.norm_file = BaseScriptElement.getStringElement(instrument_dom, "norm_dataset")

        # Q cut
        self.q_min = BaseScriptElement.getFloatElement(instrument_dom, "q_min", default=DataSets.q_min)
        self.q_step = BaseScriptElement.getFloatElement(instrument_dom, "q_step", default=DataSets.q_step)
        self.q_bins = BaseScriptElement.getIntElement(instrument_dom, "q_bins", default=DataSets.q_bins)
        self.q_log = BaseScriptElement.getBoolElement(instrument_dom, "q_log", default=DataSets.q_log)

        # scattering angle
        self.theta = BaseScriptElement.getFloatElement(instrument_dom, "theta", default=DataSets.theta)
        # self.use_center_pixel = BaseScriptElement.getBoolElement(instrument_dom,
        #                                                         "use_center_pixel",
        #                                                         default=DataSets.use_center_pixel)

        # Sample log overwrites
        self.set_detector_angle = BaseScriptElement.getBoolElement(instrument_dom,
                                                                   "set_detector_angle",
                                                                   default=DataSets.set_detector_angle)
        self.detector_angle = BaseScriptElement.getFloatElement(instrument_dom,
                                                                "detector_angle",
                                                                default=DataSets.detector_angle)
        self.set_detector_angle_offset = BaseScriptElement.getBoolElement(instrument_dom,
                                                                          "set_detector_angle_offset",
                                                                          default=DataSets.set_detector_angle_offset)
        self.detector_angle_offset = BaseScriptElement.getFloatElement(instrument_dom,
                                                                       "detector_angle_offset",
                                                                       default=DataSets.detector_angle_offset)
        self.set_direct_pixel = BaseScriptElement.getBoolElement(instrument_dom,
                                                                 "set_direct_pixel",
                                                                 default=DataSets.set_direct_pixel)
        self.direct_pixel = BaseScriptElement.getFloatElement(instrument_dom,
                                                              "direct_pixel",
                                                              default=DataSets.direct_pixel)

        self.output_dir = BaseScriptElement.getStringElement(instrument_dom,
                                                             "output_dir",
                                                             default=DataSets.output_dir)