def select( self ):
     self.refs = request_old_files(default_dir=self.directory)
     if self.refs:
         self.directory = self.refs[0].dir
         if len(self.refs) > 4:
             t = ', '.join([ref.name for ref in self.refs[:3]]+\
                           ['...'] + [self.refs[-1].name])
         else:
             t = ', '.join([ref.name for ref in self.refs])
         self.label_frame.item.text = t
         self.callback()
def demodulate(raw):
    data = numpy.concatenate(tuple(datparsing.iter_valid_revolutions(raw)))
    result = numpy.zeros(len(data), dtype=demod_dtype)
    result['rev'] = data['rev']
    for ch in datparsing.channels_labels:
        phase = phases.getint('DEFAULT', ch)
        q_commutator = square_wave(phase=phase)
        u_commutator = square_wave(phase=phase, U=True)
        result[ch+'T'] = numpy.mean(data[ch], axis=1)
        result[ch+'Q'] = numpy.mean(data[ch]*q_commutator, axis=1)
        result[ch+'U'] = numpy.mean(data[ch]*u_commutator, axis=1)
    return result

def demodulate_dat(filename):
    return demodulate(datparsing.read_raw(filename))


if __name__ == '__main__':
    from GUI import application
    from GUI.FileDialogs import request_old_files
    import sys
    sys.path.append(os.path.join(os.path.dirname(__file__),'..'))
    from cofe_io import fits as fitsio

    application()
    refs = request_old_files()
    for ref in refs:
	fname = ref.path.replace('.dat','.fits')
        fitsio.write_fits(fname, {'DATA': demodulate_dat(ref.path)})