import os, re def cfgsummary(cfgfile, freq): """ Essentially translates avgsep < cfgfile's output into a python structure. """ avgsep = os.popen('/users/rreid/bin/avgsep < ' + cfgfile) summary = {} for lin in avgsep: if re.search('^sqrt', lin): nominalscale = 1000.0 * float(lin.split()[3]) nominalscale *= 2.6682231283185 # pi / sqrt(2ln2) summary['nominalscale'] = nominalscale elif re.search('^Shortest baseline:', lin): summary['shortestbll'] = 1000.0 * float(lin.split()[2]) elif re.search('^Longest baseline:', lin): summary['longestbll'] = 1000.0 * float(lin.split()[2]) elif re.search('Nominal resolution acc. to rmssep:.*" at 300 GHz', lin): summary['fwhm'] = float(re.search('rmssep:\s+([^"]+)"', lin).groups()[0]) * 300.0 / freq break avgsep.close() return summary