Changes in / [624235e:5c84add] in sasview


Ignore:
Location:
src/sas/sascalc/dataloader/readers
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sascalc/dataloader/readers/anton_paar_saxs_reader.py

    ra235f715 r80c5d46  
    4545    output = None 
    4646 
    47     def reset_state(self): 
     47    def __init__(self): 
    4848        self.current_dataset = Data1D(np.empty(0), np.empty(0), 
    4949                                            np.empty(0), np.empty(0)) 
     
    7272 
    7373        ## Reinitialize the class when loading a new data file to reset all class variables 
    74         self.reset_state() 
     74        self.__init__() 
    7575        ## Check that the file exists 
    7676        if os.path.isfile(filename): 
     
    8484                self.raw_data = buff.splitlines() 
    8585                self.read_data() 
     86                xml_intermediate = self.raw_data[self.upper:] 
     87                xml = ''.join(xml_intermediate) 
     88                self.set_xml_file(xml) 
    8689        return self.output 
    8790 
     
    97100        self.lower = 5 
    98101        self.upper = self.lower + self.data_points 
    99         self.source.radiation = 'x-ray' 
    100         normal = float(line4[3]) 
     102        self.detector.distance = float(line4[1]) 
    101103        self.current_dataset.source.radiation = "x-ray" 
    102104        self.current_dataset.source.name = "Anton Paar SAXSess Instrument" 
    103105        self.current_dataset.source.wavelength = float(line4[4]) 
    104         xvals = [] 
    105         yvals = [] 
    106         dyvals = [] 
     106        normal = line4[3] 
    107107        for i in range(self.lower, self.upper): 
    108             index = i - self.lower 
    109108            data = self.raw_data[i].split() 
    110             xvals.insert(index, normal * float(data[0])) 
    111             yvals.insert(index, normal * float(data[1])) 
    112             dyvals.insert(index, normal * float(data[2])) 
    113         self.current_dataset.x = np.append(self.current_dataset.x, xvals) 
    114         self.current_dataset.y = np.append(self.current_dataset.y, yvals) 
    115         self.current_dataset.dy = np.append(self.current_dataset.dy, dyvals) 
    116         if self.data_points != self.current_dataset.x.size: 
    117             self.errors.add("Not all data was loaded properly.") 
    118         if self.current_dataset.dx.size != self.current_dataset.x.size: 
    119             dxvals = np.zeros(self.current_dataset.x.size) 
    120             self.current_dataset.dx = dxvals 
    121         if self.current_dataset.x.size != self.current_dataset.y.size: 
    122             self.errors.add("The x and y data sets are not the same size.") 
    123         if self.current_dataset.y.size != self.current_dataset.dy.size: 
    124             self.errors.add("The y and dy datasets are not the same size.") 
    125         self.current_dataset.errors = self.errors 
    126         self.current_dataset.xaxis("Q", q_unit) 
    127         self.current_dataset.yaxis("Intensity", i_unit) 
    128         xml_intermediate = self.raw_data[self.upper:] 
    129         xml = ''.join(xml_intermediate) 
    130         self.set_xml_string(xml) 
    131         dom = self.xmlroot.xpath('/fileinfo') 
    132         self._parse_child(dom) 
     109            x_val = [float(data[0])] 
     110            y_val = [float(data[1])] 
     111            dy_val = [float(data[2])] 
     112            self.current_dataset.x = np.append(self.current_dataset.x, x_val) 
     113            self.current_dataset.y = np.append(self.current_dataset.y, y_val) 
     114            self.current_dataset.dy = np.append(self.current_dataset.dy, dy_val) 
     115        self.current_dataset.xaxis("Q (%s)" % (q_unit), q_unit) 
     116        self.current_dataset.yaxis("Intensity (%s)" % (i_unit), i_unit) 
     117        self.current_dataset.detector.append(self.detector) 
    133118        self.output.append(self.current_dataset) 
    134  
    135     def _parse_child(self, dom, parent=''): 
    136         """ 
    137         Recursive method for stepping through the embedded XML 
    138         :param dom: XML node with or without children 
    139         """ 
    140         for node in dom: 
    141             tagname = node.tag 
    142             value = node.text 
    143             attr = node.attrib 
    144             key = attr.get("key", '') 
    145             if len(node.getchildren()) > 1: 
    146                 self._parse_child(node, key) 
    147                 if key == "SampleDetector": 
    148                     self.current_dataset.detector.append(self.detector) 
    149                     self.detector = Detector() 
    150             else: 
    151                 if key == "value": 
    152                     if parent == "Wavelength": 
    153                         self.current_dataset.source.wavelength = value 
    154                     elif parent == "SampleDetector": 
    155                         self.detector.distance = value 
    156                     elif parent == "Temperature": 
    157                         self.current_dataset.sample.temperature = value 
    158                     elif parent == "CounterSlitLength": 
    159                         self.detector.slit_length = value 
    160                 elif key == "unit": 
    161                     value = value.replace("_", "") 
    162                     if parent == "Wavelength": 
    163                         self.current_dataset.source.wavelength_unit = value 
    164                     elif parent == "SampleDetector": 
    165                         self.detector.distance_unit = value 
    166                     elif parent == "X": 
    167                         self.current_dataset.xaxis(self.current_dataset._xaxis, value) 
    168                     elif parent == "Y": 
    169                         self.current_dataset.yaxis(self.current_dataset._yaxis, value) 
    170                     elif parent == "Temperature": 
    171                         self.current_dataset.sample.temperature_unit = value 
    172                     elif parent == "CounterSlitLength": 
    173                         self.detector.slit_length_unit = value 
    174                 elif key == "quantity": 
    175                     if parent == "X": 
    176                         self.current_dataset.xaxis(value, self.current_dataset._xunit) 
    177                     elif parent == "Y": 
    178                         self.current_dataset.yaxis(value, self.current_dataset._yunit) 
  • src/sas/sascalc/dataloader/readers/xml_reader.py

    ra235f715 rb699768  
    7070            self.xmldoc = etree.parse(self.xml, parser=PARSER) 
    7171            self.xmlroot = self.xmldoc.getroot() 
    72         except etree.XMLSyntaxError as xml_error: 
    73             logging.info(xml_error) 
    74         except Exception: 
    75             self.xml = None 
    76             self.xmldoc = None 
    77             self.xmlroot = None 
    78  
    79     def set_xml_string(self, tag_soup): 
    80         """ 
    81         Set an XML string as the working XML. 
    82  
    83         :param tag_soup: XML formatted string 
    84         """ 
    85         try: 
    86             self.xml = tag_soup 
    87             self.xmldoc = tag_soup 
    88             self.xmlroot = etree.fromstring(tag_soup) 
    8972        except etree.XMLSyntaxError as xml_error: 
    9073            logging.info(xml_error) 
Note: See TracChangeset for help on using the changeset viewer.