Changes in / [624235e:5c84add] in sasview
- 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 45 45 output = None 46 46 47 def reset_state(self):47 def __init__(self): 48 48 self.current_dataset = Data1D(np.empty(0), np.empty(0), 49 49 np.empty(0), np.empty(0)) … … 72 72 73 73 ## Reinitialize the class when loading a new data file to reset all class variables 74 self. reset_state()74 self.__init__() 75 75 ## Check that the file exists 76 76 if os.path.isfile(filename): … … 84 84 self.raw_data = buff.splitlines() 85 85 self.read_data() 86 xml_intermediate = self.raw_data[self.upper:] 87 xml = ''.join(xml_intermediate) 88 self.set_xml_file(xml) 86 89 return self.output 87 90 … … 97 100 self.lower = 5 98 101 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]) 101 103 self.current_dataset.source.radiation = "x-ray" 102 104 self.current_dataset.source.name = "Anton Paar SAXSess Instrument" 103 105 self.current_dataset.source.wavelength = float(line4[4]) 104 xvals = [] 105 yvals = [] 106 dyvals = [] 106 normal = line4[3] 107 107 for i in range(self.lower, self.upper): 108 index = i - self.lower109 108 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) 133 118 self.output.append(self.current_dataset) 134 135 def _parse_child(self, dom, parent=''):136 """137 Recursive method for stepping through the embedded XML138 :param dom: XML node with or without children139 """140 for node in dom:141 tagname = node.tag142 value = node.text143 attr = node.attrib144 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 = value154 elif parent == "SampleDetector":155 self.detector.distance = value156 elif parent == "Temperature":157 self.current_dataset.sample.temperature = value158 elif parent == "CounterSlitLength":159 self.detector.slit_length = value160 elif key == "unit":161 value = value.replace("_", "")162 if parent == "Wavelength":163 self.current_dataset.source.wavelength_unit = value164 elif parent == "SampleDetector":165 self.detector.distance_unit = value166 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 = value172 elif parent == "CounterSlitLength":173 self.detector.slit_length_unit = value174 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 70 70 self.xmldoc = etree.parse(self.xml, parser=PARSER) 71 71 self.xmlroot = self.xmldoc.getroot() 72 except etree.XMLSyntaxError as xml_error:73 logging.info(xml_error)74 except Exception:75 self.xml = None76 self.xmldoc = None77 self.xmlroot = None78 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 string84 """85 try:86 self.xml = tag_soup87 self.xmldoc = tag_soup88 self.xmlroot = etree.fromstring(tag_soup)89 72 except etree.XMLSyntaxError as xml_error: 90 73 logging.info(xml_error)
Note: See TracChangeset
for help on using the changeset viewer.