From 7bdc11ed1b5ceefa9eeb76ab85c7755c6eb2bdd4 Mon Sep 17 00:00:00 2001
From: kienle <kienle@passcal.nmt.edu>
Date: Tue, 26 Sep 2023 21:31:22 -0600
Subject: [PATCH] Link log file reader to main window

---
 sohstationviewer/model/reftek_data/reftek.py | 31 +++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/sohstationviewer/model/reftek_data/reftek.py b/sohstationviewer/model/reftek_data/reftek.py
index da271a02e..89492c05d 100755
--- a/sohstationviewer/model/reftek_data/reftek.py
+++ b/sohstationviewer/model/reftek_data/reftek.py
@@ -8,6 +8,8 @@ import numpy as np
 from obspy.core import Stream
 
 from sohstationviewer.conf import constants
+from sohstationviewer.model.reftek_data.reftek_reader.log_file_reader import \
+    LogFileReader
 from sohstationviewer.view.util.enums import LogType
 
 from sohstationviewer.model.general_data.general_data import (
@@ -66,7 +68,10 @@ class RT130(GeneralData):
     def processing_data(self):
         if self.creator_thread.isInterruptionRequested():
             raise ThreadStopped()
-        self.read_folders()
+        if self.rt130_log_files:
+            self.read_log_files()
+        else:
+            self.read_folders()
         self.selected_key = self.select_key()
 
         if self.creator_thread.isInterruptionRequested():
@@ -106,6 +111,30 @@ class RT130(GeneralData):
                 # this happens when there is text or ascii only in the data
                 self.data_time[key] = [self.read_start, self.read_end]
 
+    def read_log_files(self):
+        """
+        Read data from self.rt130_log_files and store it in self.log_data
+        """
+        for log_file in self.rt130_log_files:
+            reader = LogFileReader(log_file)
+            reader.read()
+            file_key = (reader.station_code, reader.experiment_number)
+            self.populate_cur_key_for_all_data(file_key)
+            # We are creating the value for both keys 'SOH' and 'EHET' in this
+            # method (unlike how RT130 is usually read), so we only need to do
+            # one check.
+            if 'EHET' not in self.log_data[file_key]:
+                self.log_data[file_key]['EHET'] = [(1, reader.eh_et_lines)]
+                self.log_data[file_key]['SOH'] = [(1, reader.soh_lines)]
+            else:
+                key_file_count = self.log_data[file_key]['EHET'][-1][0] + 1
+                self.log_data[file_key]['EHET'].append(
+                    (key_file_count, reader.eh_et_lines)
+                )
+                self.log_data[file_key]['SOH'].append(
+                    (key_file_count, reader.soh_lines)
+                )
+
     def read_folders(self) -> None:
         """
         Read data from list_of_dir or list_of_rt130_paths for soh,
-- 
GitLab