diff --git a/sohstationviewer/model/reftek_data/reftek.py b/sohstationviewer/model/reftek_data/reftek.py index da271a02e9625dc3e20a772573e1b42ba0c7034e..89492c05db007bf126e946d0a5a2581f70fadf77 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,