diff --git a/sohstationviewer/model/reftek_data/reftek.py b/sohstationviewer/model/reftek_data/reftek.py index 4255dd801f615f8458e0dfbfa3d258d8ab3942ed..0bcddc848987de8a5af08afd13d7f74d774dccdd 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 \ @@ -62,7 +64,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(): @@ -102,6 +107,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,