Package gmisclib :: Module HList
[frames] | no frames]

Source Code for Module gmisclib.HList

 1  """This reads HTK feature vectors via the HList program.""" 
 2   
 3   
 4  from gmisclib import die 
 5  from gmisclib import g_exec 
 6  import gpkimgclass 
 7  import numpy 
 8   
9 -def _parse_time(s):
10 v, u = s.split() 11 if u == 's': 12 u = 1.0 13 elif u == 'ms': 14 u = 1e-3 15 elif u == 'us': 16 u = 1e-6 17 elif u == 'ns': 18 u = 1e-9 19 elif u == 'ps': 20 u = 1e-12 21 else: 22 die.die('Unrecognized time units: %s' % u) 23 return float(v)*u
24 25
26 -def read(fname):
27 in_hdr = True 28 in_os = False 29 in_data = False 30 os = 0 31 ax1 = None 32 hdr = {'CRPIX1': 1, 'CRPIX2': 1, 'CRVAL2': 0.0} 33 xos = 'x' 34 data = None 35 hdr['_NAME'] = fname 36 for line in g_exec.getiter_raw(None, 37 ['HList', '-h', '-o', '-i', '1', fname] 38 ): 39 line = line.rstrip() 40 if line == ' Observation Structure': 41 in_os = True 42 in_hdr = False 43 continue 44 elif in_os and line.startswith(' Samples:'): 45 in_os = False 46 in_data = True 47 data = numpy.zeros((hdr['NAXIS2'], hdr['NAXIS1'])) 48 continue 49 elif line.startswith('----- END'): 50 in_data = False 51 52 if in_hdr: 53 k, v = line.strip().split(':', 1) 54 k = k.strip() 55 v = v.strip() 56 if k == 'Num Comps': 57 hdr['NAXIS1'] = int(v) 58 elif k == 'Num Samples': 59 hdr['NAXIS2'] = int(v) 60 elif k == 'Sample Period': 61 hdr['CDELT2'] = _parse_time(v) 62 elif k == 'File Format': 63 hdr['_FILETYPE'] = v 64 else: 65 hdr[k] = v 66 elif in_os: 67 if not line.startswith(' ') and ':' in line: 68 xos, tt = line.split(':', 1) 69 xos = xos.strip() 70 tt = tt.strip() 71 os = 0 72 else: 73 tt = line.strip() 74 hdr['TTYPE%d' % (os+1)] = '%s:%s' % (xos, tt) 75 os += 1 76 elif in_data: 77 if ':' in line: 78 os = 0 79 ax1, line = line.split(':') 80 ax1 = int(ax1) 81 data[ax1,os] = float(line) 82 os += 1 83 return gpkimgclass.gpk_img(hdr, data)
84 85 if __name__ == '__main__': 86 # /home/mace/jyuan/irr_pdur/plp_ip 87 import sys 88 import pylab 89 d = read(sys.argv[1]) 90 numpy.subtract(d.d, numpy.average(d.d, axis=0), d.d) 91 numpy.divide(d.d, numpy.std(d.d, axis=0), d.d) 92 pylab.imshow(d.d.transpose(), 93 interpolation='nearest', origin='lower', 94 aspect = 'normal', 95 ) 96 pylab.show() 97