# HG changeset patch # User Daniel O'Connor # Date 1317178820 -34200 # Node ID 7d76b1d70096e413c9d7c87518e82c78496843f1 # Parent 3d2306e397009b82e5d372471b4ac234f3dc3678 Add file to generate stats on data files. diff -r 3d2306e39700 -r 7d76b1d70096 find.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/find.py Wed Sep 28 12:30:20 2011 +0930 @@ -0,0 +1,59 @@ +#!/usr/bin/env python + +import datafile +import getopt +import numpy +import sys + +if __name__ == "__main__": + opts, args = getopt.getopt(sys.argv[1:], "e:hm:s") + + minlev = None + exptag = None + dostats = False + for o, a in opts: + if o == "-h": + print """Find data files with certain characteristics + +%s [-h] [-e exp] [-m min] [-s] file [file ..] + exp Limit to experiment tag exp + min Find files with power greater than min + -s Print stats about files +""" + elif o == "-e": + exptag = a + elif o == "-m": + minlev = float(a) + elif o == "-s": + dostats = True + else: + print "Unknown option " + o + sys.exit(1) + + if len(args) == 0: + print "Need at least one file to analyse" + sys.exit(1) + + minfiles = [] + if dostats: + print "%-50s %7s %7s %7s (dBm)" % ("Name", "Min", "Mean", "Max") + for fn in args: + dfile = datafile.DataFile(fn) + + if exptag != None and dfile['TAG'] != exptag: + continue + + if minlev != None: + if reduce(lambda x, y: x or y, dfile.powers > minlev): + minfiles.append(fn) + + if dostats: + print "%-50s %7.2f %7.2f %7.2f" % (fn, dfile.powers.min(), dfile.powers.mean(), dfile.powers.max()) + + if minlev != None: + if dostats: + print "" + print "Files with any element exceeding %.2f dBm:" % (minlev) + for fn in minfiles: + print fn +