diff --git a/allanplot.py b/allanplot.py index 7996627..224bf42 100755 --- a/allanplot.py +++ b/allanplot.py @@ -13,98 +13,98 @@ RATE = 1 #============================================================================== def parse(): - """ - Specific parsing procedure for Allan Deviation plotting tool. - :returns: populated namespace (parser) - """ - parser = argparse.ArgumentParser(description = 'Plot Allan Deviation from timeseries file', - epilog = 'Example: \'./allanplot.py -f \'toto.dat\' -c 2 3\' compute and plot Allan Deviation form columns 2 and 3 of toto.dat') - - parser.add_argument('-f', - action='store', - dest='filename', - default=FILENAME, - help='File(s) to import (default '+FILENAME+')') - - parser.add_argument('-c', - nargs = '+', - action='store', - dest='columns', - default=COLUMNS, - help='Columns to import (default '+str(COLUMNS)+')') - - parser.add_argument('-r', - action='store', - dest='rate', - default=RATE, - help='Time rate in seconds (default '+str(RATE)+')') - - parser.add_argument('-R', - action='store_true', - dest='rel', - default=False, - help='Relative ADev') - - args = parser.parse_args() - return args + """ + Specific parsing procedure for Allan Deviation plotting tool. + :returns: populated namespace (parser) + """ + parser = argparse.ArgumentParser(description = 'Plot Allan Deviation from timeseries file', + epilog = 'Example: \'./allanplot.py -f \'toto.dat\' -c 2 3\' compute and plot Allan Deviation form columns 2 and 3 of toto.dat') + + parser.add_argument('-f', + action='store', + dest='filename', + default=FILENAME, + help='File(s) to import (default '+FILENAME+')') + + parser.add_argument('-c', + nargs = '+', + action='store', + dest='columns', + default=COLUMNS, + help='Columns to import (default '+str(COLUMNS)+')') + + parser.add_argument('-r', + action='store', + dest='rate', + default=RATE, + help='Time rate in seconds (default '+str(RATE)+')') + + parser.add_argument('-R', + action='store_true', + dest='rel', + default=False, + help='Relative ADev') + + args = parser.parse_args() + return args #============================================================================== def main(): - """ - Main script - """ - # Parse command line - args = parse() - # filename - filename = args.filename - # columns - columns = map(int, args.columns) - # rate - rate = int(args.rate) - # rel - rel = bool(args.rel) - - try: - list_files = [] - filename = filename.split() - for name in filename: - list_files.extend(sorted(glob.glob(name))) - - for name in list_files: - print(name) - data = [] - - for f in list_files: - with open(f, 'r') as dest_f: - data_iter = csv.reader(dest_f, delimiter = '\t', quotechar = '"') - temp_data = [value for value in data_iter] - data.extend(temp_data) - - data = numpy.asarray(data, dtype = float) - - del(temp_data, list_files, value, f) - - g = Gnuplot.Gnuplot(persist = 1) - g('set logscale x') - g('set logscale y') - g('set grid') - g('set format y "%0.1e"') - g.xlabel('Tau (s)') - g.ylabel('Adev') - - for i in columns: - if rel: - (tau2, ad, ade, adn) = allantools.adev(data[:,i]/data[:,i].mean(), rate=rate, data_type="freq", taus='decade') - else: - (tau2, ad, ade, adn) = allantools.adev(data[:,i], rate=rate, data_type="freq", taus='decade') - g.replot(Gnuplot.Data(tau2, ad, ade, with_='yerrorbars', title='%s : %s'%(name, str(i)))) - - except Exception as ex: - print 'Oups '+str(ex) - print 'Program ending\n' + """ + Main script + """ + # Parse command line + args = parse() + # filename + filename = args.filename + # columns + columns = map(int, args.columns) + # rate + rate = int(args.rate) + # rel + rel = bool(args.rel) + + try: + list_files = [] + filename = filename.split() + for name in filename: + list_files.extend(sorted(glob.glob(name))) + + for name in list_files: + print(name) + data = [] + + for f in list_files: + with open(f, 'r') as dest_f: + data_iter = csv.reader(dest_f, delimiter = '\t', quotechar = '"') + temp_data = [value for value in data_iter] + data.extend(temp_data) + + data = numpy.asarray(data, dtype = float) + + del(temp_data, list_files, value, f) + + g = Gnuplot.Gnuplot(persist = 1) + g('set logscale x') + g('set logscale y') + g('set grid') + g('set format y "%0.1e"') + g.xlabel('Tau (s)') + g.ylabel('Adev') + + for i in columns: + if rel: + (tau2, ad, ade, adn) = allantools.adev(data[:,i]/data[:,i].mean(), rate=rate, data_type="freq", taus='decade') + else: + (tau2, ad, ade, adn) = allantools.adev(data[:,i], rate=rate, data_type="freq", taus='decade') + g.replot(Gnuplot.Data(tau2, ad, ade, with_='yerrorbars', title='%s : %s'%(name, str(i)))) + + except Exception as ex: + print 'Oups '+str(ex) + print 'Program ending\n' #============================================================================== if __name__ == "__main__": - main() + main()