From 73d54093690169933c2350344fcd69d3f770c5bd Mon Sep 17 00:00:00 2001 From: Bruce Flynn <brucef@ssec.wisc.edu> Date: Mon, 28 Sep 2015 20:12:00 +0000 Subject: [PATCH] Tool for generic PDS info --- edosl0util/cli.py | 32 ++++++++++++++++++++++++++++++-- edosl0util/jpssrdr.py | 3 ++- setup.py | 1 + 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/edosl0util/cli.py b/edosl0util/cli.py index 60051fb..021e0c9 100644 --- a/edosl0util/cli.py +++ b/edosl0util/cli.py @@ -3,8 +3,9 @@ Console script entry points for CLI tools. """ import os from datetime import datetime +from collections import defaultdict -from edosl0util import split, trunc +from edosl0util import split, trunc, stream def _timestamp(v): @@ -28,10 +29,37 @@ def cmd_trunc(): def cmd_split(): from argparse import ArgumentParser - parser = ArgumentParser(description=split.__doc__) + parser = ArgumentParser() parser.add_argument('--minutes', type=int, default=6) parser.add_argument('filepath') args = parser.parse_args() for stamp, fpath in split.split_file(args.filepath, args.minutes, os.getcwd()): print('wrote bucket {} to {}'.format(stamp.isoformat(), fpath)) + + +def cmd_info(): + from argparse import ArgumentParser + parser = ArgumentParser(description=split.__doc__) + parser.add_argument('filepath') + args = parser.parse_args() + + packets = stream.PacketStream(open(args.filepath)) + + first = datetime(2016, 1, 1) + last = datetime(2000, 1, 1) + apids = defaultdict(lambda: {'count': 0}) + for p in packets: + if p.stamp: + first = min(first, p.stamp) + last = max(last, p.stamp) + apids[p.apid]['count'] += 1 + + print "First:", first + print "Last:", last + total = 0 + for apid in sorted(apids): + count = apids[apid]['count'] + total += count + print "{}: {}".format(apid, count) + print "{} total packets".format(total) diff --git a/edosl0util/jpssrdr.py b/edosl0util/jpssrdr.py index bee93d4..9ebd7e8 100644 --- a/edosl0util/jpssrdr.py +++ b/edosl0util/jpssrdr.py @@ -219,16 +219,17 @@ def convert_to_nasa_l0(sensor, filename, skipfill=False): if __name__ == '__main__': import argparse - from datetime import datetime parser = argparse.ArgumentParser() parser.add_argument('-v', action='store_true') parser.add_argument('-o', '--output') parser.add_argument('-f', '--skipfill', action='store_true') + """ def interval(val): fmt = '%Y-%m-%d %H:%M:%S' start, end = val.split(',') return datetime.strptime(start, fmt), datetime.strptime(end, fmt) parser.add_argument('-t', '--trunc', type=interval) + """ parser.add_argument('sensor', choices=('viirs', 'atms', 'cris')) parser.add_argument('rdr') args = parser.parse_args() diff --git a/setup.py b/setup.py index 22808d8..1a7889d 100644 --- a/setup.py +++ b/setup.py @@ -17,5 +17,6 @@ setup( [console_scripts] edosl0split = edosl0util.cli:cmd_split edosl0trunc = edosl0util.cli:cmd_trunc + edosl0info = edosl0util.cli:cmd_info """ ) -- GitLab