Index: reqs.txt
===================================================================
--- reqs.txt	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
+++ reqs.txt	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
@@ -0,0 +1,5 @@
+numpy==1.21.5
+pymongo==4.1.1
+scipy==1.8.0
+setuptools==59.6.0
+sphinx_adc_theme==0.1.7
Index: sample_scripts/import_signal.py
===================================================================
--- sample_scripts/import_signal.py	(revision 94f7c240c9883d7114ef55526286464e10941814)
+++ sample_scripts/import_signal.py	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
@@ -3,5 +3,8 @@
 import sqlite3
 import argparse
+import numpy as np
+from datetime import datetime
 from pathlib import Path
+from pymongo import MongoClient
 from ammosreader.AmmosIFReader import AmmosIFReader
 from ammosreader.PPDWReader import PPDWReader
@@ -16,8 +19,13 @@
 args = parser.parse_args()
 
+source = args.source.upper()
 code = args.code.upper()
 signal_number = args.signal_number
 input_dir = Path(args.input_dir)
 sqlite3_file = Path(args.output_file)
+
+if not re.match('[A-Z0-9]{2}', source):
+    print("Source identifier", source, "invalid")
+    sys.exit()
 
 if not re.match('[A-Z][0-9]{3}[A-Z]', code):
@@ -49,13 +57,13 @@
 #    sys.exit(1)
 
-try:
-    connection = sqlite3.connect(str(sqlite3_file))
-    cursor = connection.cursor()
-except Exception:
-    print("Can not connect to database file", str(sqlite3_file))
-    # sys.exit(1)
+# try:
+#    connection = sqlite3.connect(str(sqlite3_file))
+#    cursor = connection.cursor()
+# except Exception:
+#    print("Can not connect to database file", str(sqlite3_file))
+     # sys.exit(1)
 
-ammos_if_reader = AmmosIFReader(str(iqdw_file))
-ammos_if_reader.read_all_frames_left()
+#ammos_if_reader = AmmosIFReader(str(iqdw_file))
+#ammos_if_reader.read_all_frames_left()
 # for each_frame in ammos_if_reader.container.global_frames:
 #    print(each_frame)
@@ -63,3 +71,20 @@
 ppdw_reader = PPDWReader(ppdw_file)
 ppdw_reader.read_all_frames_left()
-print(ppdw_reader.container)
+
+client = MongoClient('hackathon.kid.local', 27017)
+
+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[code]
+year_collection = code_collection[str(time_tuple.tm_year)]
+source_collection = year_collection[source]
+
+
+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/iqdw_reader.py
===================================================================
--- sample_scripts/iqdw_reader.py	(revision 94f7c240c9883d7114ef55526286464e10941814)
+++ sample_scripts/iqdw_reader.py	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
@@ -18,2 +18,5 @@
     dat_file.read_all_frames_left()
     print(dat_file.container)
+
+    for each in dat_file.container.global_frames:
+        print(each)
Index: src/_version.py
===================================================================
--- src/_version.py	(revision 94f7c240c9883d7114ef55526286464e10941814)
+++ src/_version.py	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
@@ -2,4 +2,4 @@
 # file generated by setuptools_scm
 # don't change, don't track in version control
-version = '0.1.dev57+gbfab5ea.d20220505'
-version_tuple = (0, 1, 'dev57', 'gbfab5ea.d20220505')
+version = '0.1.dev59+g94f7c24.d20220506'
+version_tuple = (0, 1, 'dev59', 'g94f7c24.d20220506')
Index: src/ammosreader.egg-info/PKG-INFO
===================================================================
--- src/ammosreader.egg-info/PKG-INFO	(revision 94f7c240c9883d7114ef55526286464e10941814)
+++ src/ammosreader.egg-info/PKG-INFO	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
@@ -1,5 +1,5 @@
 Metadata-Version: 2.1
 Name: ammosreader
-Version: 0.1.dev57+gbfab5ea.d20220505
+Version: 0.1.dev59+g94f7c24.d20220506
 Summary: ammosreader: tool to parse R&S Ammos files
 Home-page: http://gitlab.kid.local/kidzg/ammosreader
Index: src/ammosreader/PDW.py
===================================================================
--- src/ammosreader/PDW.py	(revision 94f7c240c9883d7114ef55526286464e10941814)
+++ src/ammosreader/PDW.py	(revision 4180d6a349eca3e1821f1bb33b5cd5eba7022c07)
@@ -138,24 +138,24 @@
         :rtype: PDW
         """
-        self.time_of_arrival = time_of_arrival
+        self.time_of_arrival = time_of_arrival #
         self.pdw_format_identifier = pdw_format_identifier
-        self.center_frequency = center_frequency
-        self.is_valid = is_valid
-        self.is_pulse = is_pulse
-        self.level_unit = level_unit
+        self.center_frequency = center_frequency #
+        self.is_valid = is_valid #
+        self.is_pulse = is_pulse #
+        self.level_unit = level_unit #
         self.signal_start_missing = signal_start_missing
         self.signal_end_missing = signal_end_missing
-        self.pulse_width = pulse_width
-        self.frequency_shift_or_bandwidth = frequency_shift_or_bandwidth
-        self.pulse_level_or_pulse_field_strength = pulse_level_or_pulse_field_strength
+        self.pulse_width = pulse_width #
+        self.frequency_shift_or_bandwidth = frequency_shift_or_bandwidth #
+        self.pulse_level_or_pulse_field_strength = pulse_level_or_pulse_field_strength #
         self.region_of_interest = region_of_interest
         self.azimuth_confidence = azimuth_confidence
-        self.modulation = modulation
+        self.modulation = modulation #
         self.sector = sector
         self.polarity = polarity
-        self.df_quality = df_quality
-        self.elevation = elevation
+        self.df_quality = df_quality #
+        self.elevation = elevation #
         self.azimuth = azimuth
-        self.channel = channel
+        self.channel = channel #
 
     def __str__(self):
@@ -222,4 +222,18 @@
         return output
 
+    def to_json(self):
+        return {'TIMEOFARRIVAL': self.time_of_arrival.item(),
+                'CENTERFREQUENCY': self.center_frequency,
+                'VALID': self.is_valid,
+                'PULSE': self.is_pulse,
+                'PULSEWIDTH': self.pulse_width,
+                'LEVELUNIT': self.level_unit,
+                'FREQUENCYSHIFTORBANDWIDTH': self.frequency_shift_or_bandwidth,
+                'PULSELEVELORFIELDSTRENGTH': self.pulse_level_or_pulse_field_strength,
+                'MODULATION': self.modulation,
+                'ELEVATION': self.elevation,
+                'AZIMUTH': self.azimuth,
+                'CHANNEL': self.channel
+                }
 
 if __name__ == '__main__':
