Changes in / [b2ff1b2:26c9b85] in sasview


Ignore:
File:
1 edited

Legend:

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

    rc94280c rbbd0f37  
    99import sys 
    1010 
    11 from sas.sascalc.dataloader.data_info import plottable_1D, plottable_2D,\ 
    12     Data1D, Data2D, DataInfo, Process, Aperture, Collimation, \ 
    13     TransmissionSpectrum, Detector 
     11from sas.sascalc.dataloader.data_info import plottable_1D, plottable_2D, Data1D, Data2D, DataInfo, Process, Aperture 
     12from sas.sascalc.dataloader.data_info import Collimation, TransmissionSpectrum, Detector 
    1413from sas.sascalc.dataloader.data_info import combine_data_info_with_plottable 
     14 
    1515 
    1616 
    1717class Reader(): 
    1818    """ 
    19     A class for reading in CanSAS v2.0 data files. The existing iteration opens 
    20     Mantid generated HDF5 formatted files with file extension .h5/.H5. Any 
    21     number of data sets may be present within the file and any dimensionality 
    22     of data may be used. Currently 1D and 2D SAS data sets are supported, but 
    23     future implementations will include 1D and 2D SESANS data. 
    24  
    25     Any number of SASdata sets may be present in a SASentry and the data within 
    26     can be either 1D I(Q) or 2D I(Qx, Qy). 
     19    A class for reading in CanSAS v2.0 data files. The existing iteration opens Mantid generated HDF5 formatted files 
     20    with file extension .h5/.H5. Any number of data sets may be present within the file and any dimensionality of data 
     21    may be used. Currently 1D and 2D SAS data sets are supported, but future implementations will include 1D and 2D 
     22    SESANS data. 
     23 
     24    Any number of SASdata sets may be present in a SASentry and the data within can be either 1D I(Q) or 2D I(Qx, Qy). 
    2725 
    2826    Also supports reading NXcanSAS formatted HDF5 files 
     
    3230    """ 
    3331 
    34     # CanSAS version 
     32    ## CanSAS version 
    3533    cansas_version = 2.0 
    36     # Logged warnings or messages 
     34    ## Logged warnings or messages 
    3735    logging = None 
    38     # List of errors for the current data set 
     36    ## List of errors for the current data set 
    3937    errors = None 
    40     # Raw file contents to be processed 
     38    ## Raw file contents to be processed 
    4139    raw_data = None 
    42     # Data info currently being read in 
     40    ## Data info currently being read in 
    4341    current_datainfo = None 
    44     # SASdata set currently being read in 
     42    ## SASdata set currently being read in 
    4543    current_dataset = None 
    46     # List of plottable1D objects that should be linked to the current_datainfo 
     44    ## List of plottable1D objects that should be linked to the current_datainfo 
    4745    data1d = None 
    48     # List of plottable2D objects that should be linked to the current_datainfo 
     46    ## List of plottable2D objects that should be linked to the current_datainfo 
    4947    data2d = None 
    50     # Data type name 
     48    ## Data type name 
    5149    type_name = "CanSAS 2.0" 
    52     # Wildcards 
     50    ## Wildcards 
    5351    type = ["CanSAS 2.0 HDF5 Files (*.h5)|*.h5"] 
    54     # List of allowed extensions 
     52    ## List of allowed extensions 
    5553    ext = ['.h5', '.H5'] 
    56     # Flag to bypass extension check 
    57     allow_all = True 
    58     # List of files to return 
     54    ## Flag to bypass extension check 
     55    allow_all = False 
     56    ## List of files to return 
    5957    output = None 
    6058 
     
    6664        :return: List of Data1D/2D objects and/or a list of errors. 
    6765        """ 
    68         # Reinitialize when loading a new data file to reset all class variables 
     66        ## Reinitialize the class when loading a new data file to reset all class variables 
    6967        self.reset_class_variables() 
    70         # Check that the file exists 
     68        ## Check that the file exists 
    7169        if os.path.isfile(filename): 
    7270            basename = os.path.basename(filename) 
     
    7472            # If the file type is not allowed, return empty list 
    7573            if extension in self.ext or self.allow_all: 
    76                 # Load the data file 
     74                ## Load the data file 
    7775                self.raw_data = h5py.File(filename, 'r') 
    78                 # Read in all child elements of top level SASroot 
     76                ## Read in all child elements of top level SASroot 
    7977                self.read_children(self.raw_data, []) 
    80                 # Add the last data set to the list of outputs 
     78                ## Add the last data set to the list of outputs 
    8179                self.add_data_set() 
    82                 # Close the data file 
     80                ## Close the data file 
    8381                self.raw_data.close() 
    84         # Return data set(s) 
     82        ## Return data set(s) 
    8583        return self.output 
    8684 
     
    112110        """ 
    113111 
    114         # Loop through each element of the parent and process accordingly 
     112        ## Loop through each element of the parent and process accordingly 
    115113        for key in data.keys(): 
    116             # Get all information for the current key 
     114            ## Get all information for the current key 
    117115            value = data.get(key) 
    118116            if value.attrs.get(u'canSAS_class') is not None: 
     
    128126                self.parent_class = class_name 
    129127                parent_list.append(key) 
    130                 # If a new sasentry, store the current data sets and create 
    131                 # a fresh Data1D/2D object 
     128                ## If this is a new sasentry, store the current data sets and create a fresh Data1D/2D object 
    132129                if class_prog.match(u'SASentry'): 
    133130                    self.add_data_set(key) 
    134131                elif class_prog.match(u'SASdata'): 
    135132                    self._initialize_new_data_set(parent_list) 
    136                 # Recursion step to access data within the group 
     133                ## Recursion step to access data within the group 
    137134                self.read_children(value, parent_list) 
    138135                self.add_intermediate() 
     
    140137 
    141138            elif isinstance(value, h5py.Dataset): 
    142                 # If this is a dataset, store the data appropriately 
     139                ## If this is a dataset, store the data appropriately 
    143140                data_set = data[key][:] 
    144141                unit = self._get_unit(value) 
    145142 
    146                 # I and Q Data 
     143                ## I and Q Data 
    147144                if key == u'I': 
    148                     if isinstance(self.current_dataset, plottable_2D): 
     145                    if type(self.current_dataset) is plottable_2D: 
    149146                        self.current_dataset.data = data_set 
    150147                        self.current_dataset.zaxis("Intensity", unit) 
     
    154151                    continue 
    155152                elif key == u'Idev': 
    156                     if isinstance(self.current_dataset, plottable_2D): 
     153                    if type(self.current_dataset) is plottable_2D: 
    157154                        self.current_dataset.err_data = data_set.flatten() 
    158155                    else: 
     
    161158                elif key == u'Q': 
    162159                    self.current_dataset.xaxis("Q", unit) 
    163                     if isinstance(self.current_dataset, plottable_2D): 
     160                    if type(self.current_dataset) is plottable_2D: 
    164161                        self.current_dataset.q = data_set.flatten() 
    165162                    else: 
     
    169166                    self.current_dataset.dx = data_set.flatten() 
    170167                    continue 
    171                 elif key == u'dQw': 
    172                     self.current_dataset.dxw = data_set.flatten() 
    173                     continue 
    174                 elif key == u'dQl': 
    175                     self.current_dataset.dxl = data_set.flatten() 
    176                     continue 
    177168                elif key == u'Qy': 
    178169                    self.current_dataset.yaxis("Q_y", unit) 
     
    192183                    self.current_dataset.mask = data_set.flatten() 
    193184                    continue 
    194                 # Transmission Spectrum 
    195                 elif (key == u'T' 
    196                       and self.parent_class == u'SAStransmission_spectrum'): 
    197                     self.trans_spectrum.transmission = data_set.flatten() 
    198                     continue 
    199                 elif (key == u'Tdev' 
    200                       and self.parent_class == u'SAStransmission_spectrum'): 
    201                     self.trans_spectrum.transmission_deviation = \ 
    202                         data_set.flatten() 
    203                     continue 
    204                 elif (key == u'lambda' 
    205                       and self.parent_class == u'SAStransmission_spectrum'): 
    206                     self.trans_spectrum.wavelength = data_set.flatten() 
    207                     continue 
    208185 
    209186                for data_point in data_set: 
    210                     # Top Level Meta Data 
     187                    ## Top Level Meta Data 
    211188                    if key == u'definition': 
    212189                        self.current_datainfo.meta_data['reader'] = data_point 
     
    224201                        self.current_datainfo.notes.append(data_point) 
    225202 
    226                     # Sample Information 
    227                     # CanSAS 2.0 format 
    228                     elif key == u'Title' and self.parent_class == u'SASsample': 
     203                    ## Sample Information 
     204                    elif key == u'Title' and self.parent_class == u'SASsample': # CanSAS 2.0 format 
    229205                        self.current_datainfo.sample.name = data_point 
    230                     # NXcanSAS format 
    231                     elif key == u'name' and self.parent_class == u'SASsample': 
     206                    elif key == u'ID' and self.parent_class == u'SASsample': # NXcanSAS format 
    232207                        self.current_datainfo.sample.name = data_point 
    233                     # NXcanSAS format 
    234                     elif key == u'ID' and self.parent_class == u'SASsample': 
    235                         self.current_datainfo.sample.name = data_point 
    236                     elif (key == u'thickness' 
    237                           and self.parent_class == u'SASsample'): 
     208                    elif key == u'thickness' and self.parent_class == u'SASsample': 
    238209                        self.current_datainfo.sample.thickness = data_point 
    239                     elif (key == u'temperature' 
    240                           and self.parent_class == u'SASsample'): 
     210                    elif key == u'temperature' and self.parent_class == u'SASsample': 
    241211                        self.current_datainfo.sample.temperature = data_point 
    242                     elif (key == u'transmission' 
    243                           and self.parent_class == u'SASsample'): 
     212                    elif key == u'transmission' and self.parent_class == u'SASsample': 
    244213                        self.current_datainfo.sample.transmission = data_point 
    245                     elif (key == u'x_position' 
    246                           and self.parent_class == u'SASsample'): 
     214                    elif key == u'x_position' and self.parent_class == u'SASsample': 
    247215                        self.current_datainfo.sample.position.x = data_point 
    248                     elif (key == u'y_position' 
    249                           and self.parent_class == u'SASsample'): 
     216                    elif key == u'y_position' and self.parent_class == u'SASsample': 
    250217                        self.current_datainfo.sample.position.y = data_point 
    251                     elif key == u'pitch' and self.parent_class == u'SASsample': 
     218                    elif key == u'polar_angle' and self.parent_class == u'SASsample': 
    252219                        self.current_datainfo.sample.orientation.x = data_point 
    253                     elif key == u'yaw' and self.parent_class == u'SASsample': 
    254                         self.current_datainfo.sample.orientation.y = data_point 
    255                     elif key == u'roll' and self.parent_class == u'SASsample': 
     220                    elif key == u'azimuthal_angle' and self.parent_class == u'SASsample': 
    256221                        self.current_datainfo.sample.orientation.z = data_point 
    257                     elif (key == u'details' 
    258                           and self.parent_class == u'SASsample'): 
     222                    elif key == u'details' and self.parent_class == u'SASsample': 
    259223                        self.current_datainfo.sample.details.append(data_point) 
    260224 
    261                     # Instrumental Information 
    262                     elif (key == u'name' 
    263                           and self.parent_class == u'SASinstrument'): 
     225                    ## Instrumental Information 
     226                    elif key == u'name' and self.parent_class == u'SASinstrument': 
    264227                        self.current_datainfo.instrument = data_point 
    265228                    elif key == u'name' and self.parent_class == u'SASdetector': 
     
    268231                        self.detector.distance = float(data_point) 
    269232                        self.detector.distance_unit = unit 
    270                     elif (key == u'slit_length' 
    271                           and self.parent_class == u'SASdetector'): 
     233                    elif key == u'slit_length' and self.parent_class == u'SASdetector': 
    272234                        self.detector.slit_length = float(data_point) 
    273235                        self.detector.slit_length_unit = unit 
    274                     elif (key == u'x_position' 
    275                           and self.parent_class == u'SASdetector'): 
     236                    elif key == u'x_position' and self.parent_class == u'SASdetector': 
    276237                        self.detector.offset.x = float(data_point) 
    277238                        self.detector.offset_unit = unit 
    278                     elif (key == u'y_position' 
    279                           and self.parent_class == u'SASdetector'): 
     239                    elif key == u'y_position' and self.parent_class == u'SASdetector': 
    280240                        self.detector.offset.y = float(data_point) 
    281241                        self.detector.offset_unit = unit 
    282                     elif (key == u'pitch' 
    283                           and self.parent_class == u'SASdetector'): 
     242                    elif key == u'polar_angle' and self.parent_class == u'SASdetector': 
    284243                        self.detector.orientation.x = float(data_point) 
    285244                        self.detector.orientation_unit = unit 
    286                     elif key == u'roll' and self.parent_class == u'SASdetector': 
     245                    elif key == u'azimuthal_angle' and self.parent_class == u'SASdetector': 
    287246                        self.detector.orientation.z = float(data_point) 
    288247                        self.detector.orientation_unit = unit 
    289                     elif key == u'yaw' and self.parent_class == u'SASdetector': 
    290                         self.detector.orientation.y = float(data_point) 
    291                         self.detector.orientation_unit = unit 
    292                     elif (key == u'beam_center_x' 
    293                           and self.parent_class == u'SASdetector'): 
     248                    elif key == u'beam_center_x' and self.parent_class == u'SASdetector': 
    294249                        self.detector.beam_center.x = float(data_point) 
    295250                        self.detector.beam_center_unit = unit 
    296                     elif (key == u'beam_center_y' 
    297                           and self.parent_class == u'SASdetector'): 
     251                    elif key == u'beam_center_y' and self.parent_class == u'SASdetector': 
    298252                        self.detector.beam_center.y = float(data_point) 
    299253                        self.detector.beam_center_unit = unit 
    300                     elif (key == u'x_pixel_size' 
    301                           and self.parent_class == u'SASdetector'): 
     254                    elif key == u'x_pixel_size' and self.parent_class == u'SASdetector': 
    302255                        self.detector.pixel_size.x = float(data_point) 
    303256                        self.detector.pixel_size_unit = unit 
    304                     elif (key == u'y_pixel_size' 
    305                           and self.parent_class == u'SASdetector'): 
     257                    elif key == u'y_pixel_size' and self.parent_class == u'SASdetector': 
    306258                        self.detector.pixel_size.y = float(data_point) 
    307259                        self.detector.pixel_size_unit = unit 
    308                     elif (key == u'distance' 
    309                           and self.parent_class == u'SAScollimation'): 
     260                    elif key == u'SSD' and self.parent_class == u'SAScollimation': 
    310261                        self.collimation.length = data_point 
    311262                        self.collimation.length_unit = unit 
    312                     elif (key == u'name' 
    313                           and self.parent_class == u'SAScollimation'): 
     263                    elif key == u'name' and self.parent_class == u'SAScollimation': 
    314264                        self.collimation.name = data_point 
    315                     elif (key == u'shape' 
    316                           and self.parent_class == u'SASaperture'): 
    317                         self.aperture.shape = data_point 
    318                     elif (key == u'x_gap' 
    319                           and self.parent_class == u'SASaperture'): 
    320                         self.aperture.size.x = data_point 
    321                     elif (key == u'y_gap' 
    322                           and self.parent_class == u'SASaperture'): 
    323                         self.aperture.size.y = data_point 
    324  
    325                     # Process Information 
    326                     elif (key == u'Title' 
    327                           and self.parent_class == u'SASprocess'): # CanSAS 2.0 
     265 
     266                    ## Process Information 
     267                    elif key == u'name' and self.parent_class == u'SASprocess': 
    328268                        self.process.name = data_point 
    329                     elif (key == u'name' 
    330                           and self.parent_class == u'SASprocess'): # NXcanSAS 
     269                    elif key == u'Title' and self.parent_class == u'SASprocess': # CanSAS 2.0 format 
    331270                        self.process.name = data_point 
    332                     elif (key == u'description' 
    333                           and self.parent_class == u'SASprocess'): 
     271                    elif key == u'name' and self.parent_class == u'SASprocess': # NXcanSAS format 
     272                        self.process.name = data_point 
     273                    elif key == u'description' and self.parent_class == u'SASprocess': 
    334274                        self.process.description = data_point 
    335275                    elif key == u'date' and self.parent_class == u'SASprocess': 
    336276                        self.process.date = data_point 
    337                     elif key == u'term' and self.parent_class == u'SASprocess': 
    338                         self.process.term = data_point 
    339277                    elif self.parent_class == u'SASprocess': 
    340278                        self.process.notes.append(data_point) 
    341279 
    342                     # Source 
    343                     elif (key == u'wavelength' 
    344                           and self.parent_class == u'SASdata'): 
     280                    ## Transmission Spectrum 
     281                    elif key == u'T' and self.parent_class == u'SAStransmission_spectrum': 
     282                        self.trans_spectrum.transmission.append(data_point) 
     283                    elif key == u'Tdev' and self.parent_class == u'SAStransmission_spectrum': 
     284                        self.trans_spectrum.transmission_deviation.append(data_point) 
     285                    elif key == u'lambda' and self.parent_class == u'SAStransmission_spectrum': 
     286                        self.trans_spectrum.wavelength.append(data_point) 
     287 
     288                    ## Source 
     289                    elif key == u'wavelength' and self.parent_class == u'SASdata': 
    345290                        self.current_datainfo.source.wavelength = data_point 
    346291                        self.current_datainfo.source.wavelength_unit = unit 
    347                     elif (key == u'incident_wavelength' 
    348                           and self.parent_class == 'SASsource'): 
     292                    elif key == u'incident_wavelength' and self.parent_class == u'SASsource': 
    349293                        self.current_datainfo.source.wavelength = data_point 
    350294                        self.current_datainfo.source.wavelength_unit = unit 
    351                     elif (key == u'wavelength_max' 
    352                           and self.parent_class == u'SASsource'): 
     295                    elif key == u'wavelength_max' and self.parent_class == u'SASsource': 
    353296                        self.current_datainfo.source.wavelength_max = data_point 
    354297                        self.current_datainfo.source.wavelength_max_unit = unit 
    355                     elif (key == u'wavelength_min' 
    356                           and self.parent_class == u'SASsource'): 
     298                    elif key == u'wavelength_min' and self.parent_class == u'SASsource': 
    357299                        self.current_datainfo.source.wavelength_min = data_point 
    358300                        self.current_datainfo.source.wavelength_min_unit = unit 
    359                     elif (key == u'incident_wavelength_spread' 
    360                           and self.parent_class == u'SASsource'): 
    361                         self.current_datainfo.source.wavelength_spread = \ 
    362                             data_point 
    363                         self.current_datainfo.source.wavelength_spread_unit = \ 
    364                             unit 
    365                     elif (key == u'beam_size_x' 
    366                           and self.parent_class == u'SASsource'): 
     301                    elif key == u'wavelength_spread' and self.parent_class == u'SASsource': 
     302                        self.current_datainfo.source.wavelength_spread = data_point 
     303                        self.current_datainfo.source.wavelength_spread_unit = unit 
     304                    elif key == u'beam_size_x' and self.parent_class == u'SASsource': 
    367305                        self.current_datainfo.source.beam_size.x = data_point 
    368306                        self.current_datainfo.source.beam_size_unit = unit 
    369                     elif (key == u'beam_size_y' 
    370                           and self.parent_class == u'SASsource'): 
     307                    elif key == u'beam_size_y' and self.parent_class == u'SASsource': 
    371308                        self.current_datainfo.source.beam_size.y = data_point 
    372309                        self.current_datainfo.source.beam_size_unit = unit 
    373                     elif (key == u'beam_shape' 
    374                           and self.parent_class == u'SASsource'): 
     310                    elif key == u'beam_shape' and self.parent_class == u'SASsource': 
    375311                        self.current_datainfo.source.beam_shape = data_point 
    376                     elif (key == u'radiation' 
    377                           and self.parent_class == u'SASsource'): 
     312                    elif key == u'radiation' and self.parent_class == u'SASsource': 
    378313                        self.current_datainfo.source.radiation = data_point 
    379                     elif (key == u'transmission' 
    380                           and self.parent_class == u'SASdata'): 
     314                    elif key == u'transmission' and self.parent_class == u'SASdata': 
    381315                        self.current_datainfo.sample.transmission = data_point 
    382316 
    383                     # Everything else goes in meta_data 
     317                    ## Everything else goes in meta_data 
    384318                    else: 
    385                         new_key = self._create_unique_key( 
    386                             self.current_datainfo.meta_data, key) 
     319                        new_key = self._create_unique_key(self.current_datainfo.meta_data, key) 
    387320                        self.current_datainfo.meta_data[new_key] = data_point 
    388321 
    389322            else: 
    390                 # I don't know if this reachable code 
     323                ## I don't know if this reachable code 
    391324                self.errors.add("ShouldNeverHappenException") 
    392325 
    393326    def add_intermediate(self): 
    394327        """ 
    395         This method stores any intermediate objects within the final data set 
    396         after fully reading the set. 
    397  
    398         :param parent: The NXclass name for the h5py Group object that just 
    399                        finished being processed 
     328        This method stores any intermediate objects within the final data set after fully reading the set. 
     329 
     330        :param parent: The NXclass name for the h5py Group object that just finished being processed 
    400331        """ 
    401332 
     
    416347            self.aperture = Aperture() 
    417348        elif self.parent_class == u'SASdata': 
    418             if isinstance(self.current_dataset, plottable_2D): 
     349            if type(self.current_dataset) is plottable_2D: 
    419350                self.data2d.append(self.current_dataset) 
    420             elif isinstance(self.current_dataset, plottable_1D): 
     351            elif type(self.current_dataset) is plottable_1D: 
    421352                self.data1d.append(self.current_dataset) 
    422353 
    423354    def final_data_cleanup(self): 
    424355        """ 
    425         Does some final cleanup and formatting on self.current_datainfo and 
    426         all data1D and data2D objects and then combines the data and info into 
    427         Data1D and Data2D objects 
    428         """ 
    429  
    430         # Type cast data arrays to float64 
     356        Does some final cleanup and formatting on self.current_datainfo and all data1D and data2D objects and then 
     357        combines the data and info into Data1D and Data2D objects 
     358        """ 
     359 
     360        ## Type cast data arrays to float64 
    431361        if len(self.current_datainfo.trans_spectrum) > 0: 
    432362            spectrum_list = [] 
     
    434364                spectrum.transmission = np.delete(spectrum.transmission, [0]) 
    435365                spectrum.transmission = spectrum.transmission.astype(np.float64) 
    436                 spectrum.transmission_deviation = np.delete( 
    437                     spectrum.transmission_deviation, [0]) 
    438                 spectrum.transmission_deviation = \ 
    439                     spectrum.transmission_deviation.astype(np.float64) 
     366                spectrum.transmission_deviation = np.delete(spectrum.transmission_deviation, [0]) 
     367                spectrum.transmission_deviation = spectrum.transmission_deviation.astype(np.float64) 
    440368                spectrum.wavelength = np.delete(spectrum.wavelength, [0]) 
    441369                spectrum.wavelength = spectrum.wavelength.astype(np.float64) 
     
    444372            self.current_datainfo.trans_spectrum = spectrum_list 
    445373 
    446         # Append errors to dataset and reset class errors 
     374        ## Append errors to dataset and reset class errors 
    447375        self.current_datainfo.errors = self.errors 
    448376        self.errors.clear() 
    449377 
    450         # Combine all plottables with datainfo and append each to output 
    451         # Type cast data arrays to float64 and find min/max as appropriate 
     378        ## Combine all plottables with datainfo and append each to output 
     379        ## Type cast data arrays to float64 and find min/max as appropriate 
    452380        for dataset in self.data2d: 
    453381            dataset.data = dataset.data.astype(np.float64) 
     
    469397            zeros = np.ones(dataset.data.size, dtype=bool) 
    470398            try: 
    471                 for i in range(0, dataset.mask.size - 1): 
     399                for i in range (0, dataset.mask.size - 1): 
    472400                    zeros[i] = dataset.mask[i] 
    473401            except: 
    474402                self.errors.add(sys.exc_value) 
    475403            dataset.mask = zeros 
    476             # Calculate the actual Q matrix 
     404            ## Calculate the actual Q matrix 
    477405            try: 
    478406                if dataset.q_data.size <= 1: 
    479                     dataset.q_data = np.sqrt(dataset.qx_data 
    480                                              * dataset.qx_data 
    481                                              + dataset.qy_data 
    482                                              * dataset.qy_data) 
     407                    dataset.q_data = np.sqrt(dataset.qx_data * dataset.qx_data + dataset.qy_data * dataset.qy_data) 
    483408            except: 
    484409                dataset.q_data = None 
     
    490415                dataset.data = dataset.data.flatten() 
    491416 
    492             final_dataset = combine_data_info_with_plottable( 
    493                 dataset, self.current_datainfo) 
     417            final_dataset = combine_data_info_with_plottable(dataset, self.current_datainfo) 
    494418            self.output.append(final_dataset) 
    495419 
     
    511435            if dataset.dy is not None: 
    512436                dataset.dy = dataset.dy.astype(np.float64) 
    513             final_dataset = combine_data_info_with_plottable( 
    514                 dataset, self.current_datainfo) 
     437            final_dataset = combine_data_info_with_plottable(dataset, self.current_datainfo) 
    515438            self.output.append(final_dataset) 
    516439 
    517440    def add_data_set(self, key=""): 
    518441        """ 
    519         Adds the current_dataset to the list of outputs after preforming final 
    520         processing on the data and then calls a private method to generate a 
    521         new data set. 
     442        Adds the current_dataset to the list of outputs after preforming final processing on the data and then calls a 
     443        private method to generate a new data set. 
    522444 
    523445        :param key: NeXus group name for current tree level 
     
    531453 
    532454 
    533     def _initialize_new_data_set(self, parent_list=None): 
    534         """ 
    535         A private class method to generate a new 1D or 2D data object based on 
    536         the type of data within the set. Outside methods should call 
    537         add_data_set() to be sure any existing data is stored properly. 
     455    def _initialize_new_data_set(self, parent_list = None): 
     456        """ 
     457        A private class method to generate a new 1D or 2D data object based on the type of data within the set. 
     458        Outside methods should call add_data_set() to be sure any existing data is stored properly. 
    538459 
    539460        :param parent_list: List of names of parent elements 
     
    552473    def _find_intermediate(self, parent_list, basename=""): 
    553474        """ 
    554         A private class used to find an entry by either using a direct key or 
    555         knowing the approximate basename. 
    556  
    557         :param parent_list: List of parents nodes in the HDF5 file 
     475        A private class used to find an entry by either using a direct key or knowing the approximate basename. 
     476 
     477        :param parent_list: List of parents to the current level in the HDF5 file 
    558478        :param basename: Approximate name of an entry to search for 
    559479        :return: 
     
    566486            top = top.get(parent) 
    567487        for key in top.keys(): 
    568             if key_prog.match(key): 
     488            if (key_prog.match(key)): 
    569489                entry = True 
    570490                break 
     
    596516        """ 
    597517        unit = value.attrs.get(u'units') 
    598         if unit is None: 
     518        if unit == None: 
    599519            unit = value.attrs.get(u'unit') 
    600         # Convert the unit formats 
     520        ## Convert the unit formats 
    601521        if unit == "1/A": 
    602522            unit = "A^{-1}" 
Note: See TracChangeset for help on using the changeset viewer.