示例#1
0
    def read_data(self, filename):
        count = 0
        #fields = [['name', 'RA', 'type1','type3', 'mag1', 'mag3', 'T1', 'P_orb', 'P3', 'EB', 'Spectr2', 'M1_M2', 'Incl', 'M1', 'M2'],
                    #['Alt_name', 'DEC', 'type2','type4', 'mag2', 'mag4', 'T2', 'P2', 'P4', 'SB', 'Spectr1', 'e_M1_M2', 'e_Incl', 'e_M1', 'e_M2']]
        
        fields = ['name', 'alias', 'flag1', 'flag2', 'ra', 'dec', 
                  'type1', 'type2', 'type3', 'type4', 'mag1', 'mag2', 'mag3', 'mag4',
                  'T1', 'T2', 'P0', 'P2', 'P3', 'P4', 'EB', 'SB', 'spectr2', 'spectr1',
                  'q', 'q_E', 'Incl',  'Incl_E', 'M1', 'M1_E', 'M2', 'M2_E'] 
        
        data = []
        with open(filename,'r') as fp:
            
            datalines = itt.filterfalse( lambda s: s.startswith(('\n','-')), fp )
            header = [next(datalines), next(datalines)]#consume(datalines, 2)       #header
            
            splitter = lambda line: map( str.strip, line.strip('\n|\r').split('|') )
            for i, lpair in enumerate( grouper(datalines, 2) ):
                data.append( interleave( *map( splitter, lpair ) ) )
                #data.append( dat )

        #Interleaving data and fields (every 2 lines refer to a single catalogue object)
        #data = [interleave(*s) for s in zip(*data)]
        #fields = interleave(fields)

        print('Data for %i objects successfully read.\n\n' %(i+1))

        return np.array(fields), np.array(data).T
示例#2
0
 def getter(item, g):
     return coll.defaultdict(list,
                             itt.zip_longest(order('xy'), 
                                             grouper(order(item), g),
                                             fillvalue=())
                             )