Index: sample_scripts/import_signal.py
===================================================================
--- sample_scripts/import_signal.py	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
+++ sample_scripts/import_signal.py	(revision 1d0974dc34fdca9eff361d6c2ab7eb967bdb544a)
@@ -82,9 +82,13 @@
 source_collection = year_collection[source]
 
+json_representation = ppdw_reader.container.to_json()
+json_representation['SIGNALNUMBER'] = signal_number
+json_representation['SOURCEFILE'] = str(ppdw_file)
+source_collection.insert_one(json_representation)
 
-for each in ppdw_reader.container.signals:
-    each_json = each.to_json()
-    each_json['SIGNALNUMBER'] = signal_number
-    each_json['JULIANDATE'] = julian_date_string
-    # each_json['SOURCEFILE'] = str(ppdw_file)
-    source_collection.insert_one(each_json)
+# for each in ppdw_reader.container.signals:
+#    each_json = each.to_json()
+#    each_json['SIGNALNUMBER'] = signal_number
+#    each_json['JULIANDATE'] = julian_date_string
+#    each_json['SOURCEFILE'] = str(ppdw_file)
+#    source_collection.insert_one(each_json)
Index: sample_scripts/import_signals.py
===================================================================
--- sample_scripts/import_signals.py	(revision 1d0974dc34fdca9eff361d6c2ab7eb967bdb544a)
+++ sample_scripts/import_signals.py	(revision 1d0974dc34fdca9eff361d6c2ab7eb967bdb544a)
@@ -0,0 +1,74 @@
+import sys
+import re
+import argparse
+import numpy as np
+from datetime import datetime
+from pathlib import Path
+from pymongo import MongoClient
+from ammosreader.PPDWReader import PPDWReader
+
+parser = argparse.ArgumentParser()
+parser.add_argument('-s', '--source', required=True, help='specify source for given signal')
+parser.add_argument('-i', '--input-dir', required=True, help='specify source directory')
+
+args = parser.parse_args()
+
+source = args.source.upper()
+# code = args.code.upper()
+# signal_number = args.signal_number
+input_dir = Path(args.input_dir)
+
+if not re.match('[A-Z0-9]{2}', source):
+    print("Source identifier", source, "invalid")
+    sys.exit()
+
+code = input_dir.name
+
+#if not re.match('[A-Z][0-9]{3}[A-Z]', code):
+#    print("ELINT-Code incorrect")
+#    sys.exit(1)
+
+#if not re.match('[0-9]{4}', signal_number):
+#    print("Signal number incorrect")
+#    sys.exit(1)
+
+if not input_dir.is_dir():
+    print("Input dir invalid")
+    sys.exit(1)
+
+subdirs = [f for f in input_dir.iterdir() if f.is_dir()]
+
+client = MongoClient('hackathon.kid.local', 27017)
+
+for each_dir in subdirs:
+
+    print("Each dir", each_dir)
+    dir_name = each_dir.name
+
+    files_inside = [each for each in (each_dir.iterdir()) if (each.suffix in ['.idx', '.iqdw', '.ppdw'] and each_dir.stem == dir_name)]
+
+    print("Files inside", files_inside)
+    if len(files_inside) != 3:
+        print(".idx, .iqdw or .ppdw file missing in", each_dir)
+        sys.exit(1)
+
+    iqdw_file = (input_dir / each_dir / each_dir.stem).with_suffix('.iqdw')
+    ppdw_file = (input_dir / each_dir / each_dir.stem).with_suffix('.ppdw')
+    print("PPDW file", ppdw_file)
+    idx_file = (input_dir / each_dir / each_dir.stem).with_suffix('.idx')
+
+    ppdw_reader = PPDWReader(ppdw_file)
+    ppdw_reader.read_all_frames_left()
+
+    database = client['ELINT']
+    ts = (ppdw_reader.container.start_time() - np.datetime64('1970-01-01T00:00:00')) / np.timedelta64(1, 's')
+    time_tuple = datetime.utcfromtimestamp(ts).timetuple()
+    julian_date_string = str(time_tuple.tm_year)[2:] + str(time_tuple.tm_yday).zfill(3)
+    code_collection = database[input_dir.name]
+    year_collection = code_collection[str(time_tuple.tm_year)]
+    source_collection = year_collection[source]
+
+    json_representation = ppdw_reader.container.to_json()
+    json_representation['SIGNALNUMBER'] = dir_name
+    json_representation['SOURCEFILE'] = str(ppdw_file)
+    source_collection.insert_one(json_representation)
