Skip to content
Snippets Groups Projects
Commit 74257d06 authored by Kien Le's avatar Kien Le
Browse files

Stop SOH files being read twice

parent a5dfb4c4
No related branches found
No related tags found
1 merge request!280Optimize reading RT130 data
......@@ -11,6 +11,8 @@ from obspy.core import Stream
from sohstationviewer.conf import constants
from sohstationviewer.conf.constants import SOFTWARE_VERSION
from sohstationviewer.model.reftek_data.reftek_reader.core import \
DecimatedReftek130
from sohstationviewer.model.reftek_data.reftek_reader.log_file_reader import (
LogFileReader, process_mass_poss_line, LogReadError,
)
......@@ -297,12 +299,6 @@ class RT130(GeneralData):
raise ProcessingDataError(msg)
selected_data_set_id = data_set_ids[0]
if not self.on_unittest and len(data_set_ids) > 1:
msg = ("There are more than one data set IDs in the given data.\n"
"Please select one to display")
self.pause_signal.emit(msg, data_set_ids)
self.pause()
selected_data_set_id = data_set_ids[self.pause_response]
self.track_info(f'Select data set ID {selected_data_set_id}',
LogType.INFO)
......@@ -318,7 +314,7 @@ class RT130(GeneralData):
:param path2file: absolute path to file
"""
try:
rt130 = core.Reftek130.from_file(path2file)
rt130 = core.DecimatedReftek130.from_file(path2file)
except Exception:
fmt = traceback.format_exc()
self.track_info(f"Skip file {path2file} can't be read "
......@@ -329,22 +325,20 @@ class RT130(GeneralData):
nbr_packet_type = dict(zip(unique, counts))
if b"SH" in nbr_packet_type:
self.read_sh_packet(path2file)
self.read_sh_packet(rt130)
if b"EH" in nbr_packet_type or b"ET" in nbr_packet_type:
self.read_eh_or_et_packet(rt130)
return True
def read_sh_packet(self, path2file: Path) -> None:
def read_sh_packet(self, rt130: DecimatedReftek130) -> None:
"""
Use soh_packet library to read file with SH packet for soh data
to append tuple (time, log string) to
log_data[self.cur_data_set_id][SOH]
:param path2file: absolute path to file
:param rt130: RT130 object of an SOH file.
"""
with open(path2file, "rb") as fh:
str = fh.read()
data = soh_packet._initial_unpack_packets_soh(str)
data = rt130._data
for ind, d in enumerate(data):
cur_data_set_id = (d['unit_id'].decode(),
f"{d['experiment_number']}")
......@@ -363,7 +357,7 @@ class RT130(GeneralData):
self.log_data[cur_data_set_id]['SOH'] = []
self.log_data[cur_data_set_id]['SOH'].append((d['time'], logs))
def read_eh_or_et_packet(self, rt130: core.Reftek130) -> None:
def read_eh_or_et_packet(self, rt130: core.DecimatedReftek130) -> None:
"""
Files that contents EH or ET packets are data stream (DS and
mass position (DS 9) files.
......@@ -394,7 +388,7 @@ class RT130(GeneralData):
self.get_mass_pos_data_and_waveform_data(
rt130, data_stream, cur_data_set_id)
def get_ehet_in_log_data(self, rt130: core.Reftek130,
def get_ehet_in_log_data(self, rt130: core.DecimatedReftek130,
cur_data_set_id: Tuple[str, str]) -> None:
"""
Read event header info to add to log_data['EHET']
......@@ -419,7 +413,7 @@ class RT130(GeneralData):
(d['time'], logs))
def get_mass_pos_data_and_waveform_data(
self, rt130: core.Reftek130, data_stream: int,
self, rt130: core.DecimatedReftek130, data_stream: int,
cur_data_set_id: Tuple[str, str]) -> None:
"""
Get mass_pos_data for the current data_set_id in DS 9.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment