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