Beispiel #1
0
def load_with_reader(filename, reader, record_by=None,
        signal_type=None, output_level=1, **kwds):
    from hyperspy.signals.image import Image
    from hyperspy.signals.spectrum import Spectrum
    from hyperspy.signals.eels import EELSSpectrum
    if output_level>1:
        messages.information('Loading %s ...' % filename)
    
    file_data_list = reader.file_reader(filename,
                                        record_by=record_by,
                                        output_level=output_level,
                                        **kwds)
    objects = []
    for file_data_dict in file_data_list:
        if record_by is not None:
            file_data_dict['mapped_parameters']['record_by'] = record_by
        # The record_by can still be None if it was not defined by the reader
        if file_data_dict['mapped_parameters']['record_by'] is None:
            print "No data type provided.  Defaulting to image."
            file_data_dict['mapped_parameters']['record_by']= 'image'

        if signal_type is not None:
            file_data_dict['mapped_parameters']['signal_type'] = signal_type

        if file_data_dict['mapped_parameters']['record_by'] == 'image':
            s = Image(file_data_dict)
        else:
            if ('signal_type' in file_data_dict['mapped_parameters'] 
                and file_data_dict['mapped_parameters']['signal_type'] 
                == 'EELS'):
                s = EELSSpectrum(file_data_dict)
            else:
                s = Spectrum(file_data_dict)
        folder, filename = os.path.split(os.path.abspath(filename))
        filename, extension = os.path.splitext(filename)
        s.tmp_parameters.folder = folder
        s.tmp_parameters.filename = filename
        s.tmp_parameters.extension = extension.replace('.','')
        objects.append(s)
        s.print_summary()

    if len(objects) == 1:
        objects = objects[0]
    if output_level>1:
        messages.information('%s correctly loaded' % filename)
    return objects