Ignore:
File:
1 edited

Legend:

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

    rd72567e r479799c  
    6262        :return: List of Data1D/2D objects and/or a list of errors. 
    6363        """ 
    64  
    6564        ## Reinitialize the class when loading a new data file to reset all class variables 
    6665        self.reset_class_variables() 
     
    136135                ## If this is a dataset, store the data appropriately 
    137136                data_set = data[key][:] 
     137                unit = self._get_unit(value) 
     138 
     139                ## I and Q Data 
     140                if key == u'I': 
     141                    if type(self.current_dataset) is plottable_2D: 
     142                        self.current_dataset.data = data_set 
     143                        self.current_dataset.zaxis("Intensity", unit) 
     144                    else: 
     145                        self.current_dataset.y = data_set.flatten() 
     146                        self.current_dataset.yaxis("Intensity", unit) 
     147                    continue 
     148                elif key == u'Idev': 
     149                    if type(self.current_dataset) is plottable_2D: 
     150                        self.current_dataset.err_data = data_set.flatten() 
     151                    else: 
     152                        self.current_dataset.dy = data_set.flatten() 
     153                    continue 
     154                elif key == u'Q': 
     155                    self.current_dataset.xaxis("Q", unit) 
     156                    if type(self.current_dataset) is plottable_2D: 
     157                        self.current_dataset.q = data_set.flatten() 
     158                    else: 
     159                        self.current_dataset.x = data_set.flatten() 
     160                    continue 
     161                elif key == u'Qy': 
     162                    self.current_dataset.yaxis("Q_y", unit) 
     163                    self.current_dataset.qy_data = data_set.flatten() 
     164                    continue 
     165                elif key == u'Qydev': 
     166                    self.current_dataset.dqy_data = data_set.flatten() 
     167                    continue 
     168                elif key == u'Qx': 
     169                    self.current_dataset.xaxis("Q_x", unit) 
     170                    self.current_dataset.qx_data = data_set.flatten() 
     171                    continue 
     172                elif key == u'Qxdev': 
     173                    self.current_dataset.dqx_data = data_set.flatten() 
     174                    continue 
     175                elif key == u'Mask': 
     176                    self.current_dataset.mask = data_set.flatten() 
     177                    continue 
    138178 
    139179                for data_point in data_set: 
    140180                    ## Top Level Meta Data 
    141                     unit = self._get_unit(value) 
    142181                    if key == u'definition': 
    143182                        self.current_datainfo.meta_data['reader'] = data_point 
     
    148187                    elif key == u'SASnote': 
    149188                        self.current_datainfo.notes.append(data_point) 
    150  
    151                     ## I and Q Data 
    152                     elif key == u'I': 
    153                         if type(self.current_dataset) is plottable_2D: 
    154                             self.current_dataset.data = np.append(self.current_dataset.data, data_point) 
    155                             self.current_dataset.zaxis("Intensity", unit) 
    156                         else: 
    157                             self.current_dataset.y = np.append(self.current_dataset.y, data_point) 
    158                             self.current_dataset.yaxis("Intensity", unit) 
    159                     elif key == u'Idev': 
    160                         if type(self.current_dataset) is plottable_2D: 
    161                             self.current_dataset.err_data = np.append(self.current_dataset.err_data, data_point) 
    162                         else: 
    163                             self.current_dataset.dy = np.append(self.current_dataset.dy, data_point) 
    164                     elif key == u'Q': 
    165                         self.current_dataset.xaxis("Q", unit) 
    166                         if type(self.current_dataset) is plottable_2D: 
    167                             self.current_dataset.q = np.append(self.current_dataset.q, data_point) 
    168                         else: 
    169                             self.current_dataset.x = np.append(self.current_dataset.x, data_point) 
    170                     elif key == u'Qy': 
    171                         self.current_dataset.yaxis("Q_y", unit) 
    172                         self.current_dataset.qy_data = np.append(self.current_dataset.qy_data, data_point) 
    173                     elif key == u'Qydev': 
    174                         self.current_dataset.dqy_data = np.append(self.current_dataset.dqy_data, data_point) 
    175                     elif key == u'Qx': 
    176                         self.current_dataset.xaxis("Q_x", unit) 
    177                         self.current_dataset.qx_data = np.append(self.current_dataset.qx_data, data_point) 
    178                     elif key == u'Qxdev': 
    179                         self.current_dataset.dqx_data = np.append(self.current_dataset.dqx_data, data_point) 
    180                     elif key == u'Mask': 
    181                         self.current_dataset.mask = np.append(self.current_dataset.mask, data_point) 
    182189 
    183190                    ## Sample Information 
     
    296303        ## Type cast data arrays to float64 and find min/max as appropriate 
    297304        for dataset in self.data2d: 
    298             dataset.data = np.delete(dataset.data, [0]) 
    299305            dataset.data = dataset.data.astype(np.float64) 
    300             dataset.err_data = np.delete(dataset.err_data, [0]) 
    301306            dataset.err_data = dataset.err_data.astype(np.float64) 
    302             dataset.mask = np.delete(dataset.mask, [0]) 
    303307            if dataset.qx_data is not None: 
    304                 dataset.qx_data = np.delete(dataset.qx_data, [0]) 
    305308                dataset.xmin = np.min(dataset.qx_data) 
    306309                dataset.xmax = np.max(dataset.qx_data) 
    307310                dataset.qx_data = dataset.qx_data.astype(np.float64) 
    308311            if dataset.dqx_data is not None: 
    309                 dataset.dqx_data = np.delete(dataset.dqx_data, [0]) 
    310312                dataset.dqx_data = dataset.dqx_data.astype(np.float64) 
    311313            if dataset.qy_data is not None: 
    312                 dataset.qy_data = np.delete(dataset.qy_data, [0]) 
    313314                dataset.ymin = np.min(dataset.qy_data) 
    314315                dataset.ymax = np.max(dataset.qy_data) 
    315316                dataset.qy_data = dataset.qy_data.astype(np.float64) 
    316317            if dataset.dqy_data is not None: 
    317                 dataset.dqy_data = np.delete(dataset.dqy_data, [0]) 
    318318                dataset.dqy_data = dataset.dqy_data.astype(np.float64) 
    319319            if dataset.q_data is not None: 
    320                 dataset.q_data = np.delete(dataset.q_data, [0]) 
    321320                dataset.q_data = dataset.q_data.astype(np.float64) 
    322321            zeros = np.ones(dataset.data.size, dtype=bool) 
     
    333332            except: 
    334333                dataset.q_data = None 
     334 
     335            if dataset.data.ndim == 2: 
     336                (n_rows, n_cols) = dataset.data.shape 
     337                dataset.y_bins = dataset.qy_data[0::n_cols] 
     338                dataset.x_bins = dataset.qx_data[:n_cols] 
     339                dataset.data = dataset.data.flatten() 
     340 
    335341            final_dataset = combine_data_info_with_plottable(dataset, self.current_datainfo) 
    336342            self.output.append(final_dataset) 
     
    338344        for dataset in self.data1d: 
    339345            if dataset.x is not None: 
    340                 dataset.x = np.delete(dataset.x, [0]) 
    341346                dataset.x = dataset.x.astype(np.float64) 
    342347                dataset.xmin = np.min(dataset.x) 
    343348                dataset.xmax = np.max(dataset.x) 
    344349            if dataset.y is not None: 
    345                 dataset.y = np.delete(dataset.y, [0]) 
    346350                dataset.y = dataset.y.astype(np.float64) 
    347351                dataset.ymin = np.min(dataset.y) 
    348352                dataset.ymax = np.max(dataset.y) 
    349353            if dataset.dx is not None: 
    350                 dataset.dx = np.delete(dataset.dx, [0]) 
    351354                dataset.dx = dataset.dx.astype(np.float64) 
    352355            if dataset.dxl is not None: 
    353                 dataset.dxl = np.delete(dataset.dxl, [0]) 
    354356                dataset.dxl = dataset.dxl.astype(np.float64) 
    355357            if dataset.dxw is not None: 
    356                 dataset.dxw = np.delete(dataset.dxw, [0]) 
    357358                dataset.dxw = dataset.dxw.astype(np.float64) 
    358359            if dataset.dy is not None: 
    359                 dataset.dy = np.delete(dataset.dy, [0]) 
    360360                dataset.dy = dataset.dy.astype(np.float64) 
    361361            final_dataset = combine_data_info_with_plottable(dataset, self.current_datainfo) 
Note: See TracChangeset for help on using the changeset viewer.