From 53de48903317e13cddd8678ad35230a353f47b23 Mon Sep 17 00:00:00 2001
From: kienle <kienle@passcal.nmt.edu>
Date: Mon, 27 Mar 2023 15:11:33 -0600
Subject: [PATCH] Add RT130 experiment number to file info widget

---
 .../file_information/get_file_information.py  | 20 +++++++++++--------
 sohstationviewer/view/main_window.py          |  3 +--
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/sohstationviewer/view/file_information/get_file_information.py b/sohstationviewer/view/file_information/get_file_information.py
index 039967acb..fe613c87c 100644
--- a/sohstationviewer/view/file_information/get_file_information.py
+++ b/sohstationviewer/view/file_information/get_file_information.py
@@ -9,22 +9,20 @@ from sohstationviewer.model.reftek.reftek import RT130
 from sohstationviewer.view.util.functions import extract_netcodes
 
 
-def extract_data_set_info(tracking_box: QTextBrowser,
-                          data_obj: Union[DataTypeModel, RT130, MSeed],
-                          date_format: str
-                          ) -> Dict[str, Union[str, List[str]]]:
+def extract_data_set_info(data_obj: Union[DataTypeModel, RT130, MSeed],
+                          date_format: str) -> Dict[str, Union[str, List[str]]]:
     """
     Extract information about a data set. The extracted information includes:
         - Sources read
         - Start / end times
         - Station ID
         - DAS Serial Number
+        - Experiment number
         - Network Code
         - Tag number
         - GPS information
         - Software version
 
-    :param tracking_box: widget to display tracking info on
     :param data_obj: the data object to extract file information from
     :param date_format: the format by which to format file's start/end times
     :return: a dictionary containing the information of a file
@@ -50,12 +48,18 @@ def extract_data_set_info(tracking_box: QTextBrowser,
 
     if data_type == 'RT130':
         das_serials = list({key[0] for key in data_obj.keys})
-        data_set_info['DAS Serial Numbers'] = ','.join(das_serials)
-        if len(das_serials) > 1:
+        experiment_numbers = list({str(key[1]) for key in data_obj.keys})
+        # The insertion order into data_set_info in this piece of code is
+        # important, so we had to write it in a way that is a bit repetitive.
+        data_set_info['DAS Serial Numbers'] = ',  '.join(das_serials)
+        if len(data_obj.keys) > 1:
             data_set_info['Selected DAS'] = data_obj.selected_key[0]
+        data_set_info['Experiment Numbers'] = ',  '.join(experiment_numbers)
+        if len(data_obj.keys) > 1:
+            data_set_info['Selected Experiment'] = data_obj.selected_key[1]
     else:
         stations = list(data_obj.sta_ids)
-        data_set_info['Station IDs'] = ','.join(stations)
+        data_set_info['Station IDs'] = ',  '.join(stations)
         if len(stations) > 1:
             data_set_info['Selected Station'] = data_obj.selected_key
         data_set_info['Network Codes'] = extract_netcodes(data_obj)
diff --git a/sohstationviewer/view/main_window.py b/sohstationviewer/view/main_window.py
index 204d52026..0eee116ce 100755
--- a/sohstationviewer/view/main_window.py
+++ b/sohstationviewer/view/main_window.py
@@ -665,8 +665,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
             log_message = ('Cannot get GPS data.', LogType.WARNING)
             self.processing_log.append(log_message)
 
-        data_set_info = extract_data_set_info(self.tracking_info_text_browser,
-                                              data_obj, self.date_format)
+        data_set_info = extract_data_set_info(data_obj, self.date_format)
         for info_name, info in data_set_info.items():
             if isinstance(info, str):
                 info_string = f'{info_name}:\n\t{info}'
-- 
GitLab