From 9e68be49078d7f1537529de6ec1826727499ad09 Mon Sep 17 00:00:00 2001
From: Lan <ldam@passcal.nmt.edu>
Date: Tue, 9 May 2023 11:16:43 -0600
Subject: [PATCH] allow to select All Waveforms Channels and not select TPS,
 RAW to plot Event DS when not plotting TPS/RAW; flag rt130_waveform_data_req
 is up when either TPS or RAW is selected

---
 sohstationviewer/view/main_window.py | 70 ++++++++++++++--------------
 1 file changed, 34 insertions(+), 36 deletions(-)

diff --git a/sohstationviewer/view/main_window.py b/sohstationviewer/view/main_window.py
index f9369b556..c809b9db3 100755
--- a/sohstationviewer/view/main_window.py
+++ b/sohstationviewer/view/main_window.py
@@ -386,41 +386,31 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
         :rtype: List[str, int]
         """
         req_wf_chans = []
-        if ((self.all_wf_chans_check_box.isChecked()
-                or [ds for ds in self.ds_check_boxes if ds.isChecked()] != []
-                or self.mseed_wildcard_edit.text().strip() != "")
-                and not self.tps_check_box.isChecked()
-                and not self.raw_check_box.isChecked()):
-            raise Exception(
-                "Waveform channels have been selected but there are none of "
-                "TPS or RAW checkboxes checked.\nPlease clear the "
-                "selection of waveform if you don't want to display the data.")
-
-        if self.tps_check_box.isChecked() or self.raw_check_box.isChecked():
-            if self.all_wf_chans_check_box.isChecked():
-                req_mseed_wildcards = ['*']
-                req_dss = ['*']      # all data stream
-            else:
-                req_dss = []
-                req_mseed_wildcards = []
-                for idx, ds_checkbox in enumerate(self.ds_check_boxes):
-                    if ds_checkbox.isChecked():
-                        req_dss.append(idx + 1)
-                if self.mseed_wildcard_edit.text().strip() != "":
-                    req_mseed_wildcards = self.mseed_wildcard_edit.text(
-                        ).split(",")
-
-            if self.data_type == 'RT130':
-                req_wf_chans = req_dss
-                if req_dss != ['*'] and req_mseed_wildcards != []:
-                    msg = 'MSeed Wildcards will be ignored for RT130.'
-                    self.processing_log.append((msg, LogType.WARNING))
-            else:
-                req_wf_chans = req_mseed_wildcards
-                if req_mseed_wildcards != ['*'] and req_dss != []:
-                    msg = ('Checked data streams will be ignored for '
-                           'none-RT130 data type.')
-                    self.processing_log.append((msg, LogType.WARNING))
+
+        if self.all_wf_chans_check_box.isChecked():
+            req_mseed_wildcards = ['*']
+            req_dss = ['*']      # all data stream
+        else:
+            req_dss = []
+            req_mseed_wildcards = []
+            for idx, ds_checkbox in enumerate(self.ds_check_boxes):
+                if ds_checkbox.isChecked():
+                    req_dss.append(idx + 1)
+            if self.mseed_wildcard_edit.text().strip() != "":
+                req_mseed_wildcards = self.mseed_wildcard_edit.text(
+                    ).split(",")
+
+        if self.data_type == 'RT130':
+            req_wf_chans = req_dss
+            if req_dss != ['*'] and req_mseed_wildcards != []:
+                msg = 'MSeed Wildcards will be ignored for RT130.'
+                self.processing_log.append((msg, LogType.WARNING))
+        else:
+            req_wf_chans = req_mseed_wildcards
+            if req_mseed_wildcards != ['*'] and req_dss != []:
+                msg = ('Checked data streams will be ignored for '
+                       'none-RT130 data type.')
+                self.processing_log.append((msg, LogType.WARNING))
         return req_wf_chans
 
     def get_requested_soh_chan(self):
@@ -540,6 +530,13 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
         else:
             self.min_gap = None
 
+        # if waveform channels are selected, Event DS will be read from EH/ET
+        # header
+        # rt130_waveform_data_req is to read data for wave form data
+        rt130_waveform_data_req = False
+        if self.raw_check_box.isChecked() or self.tps_check_box.isChecked():
+            rt130_waveform_data_req = True
+
         if self.mseed_wildcard_edit.text().strip() != '':
             try:
                 check_chan_wildcards_format(self.mseed_wildcard_edit.text())
@@ -608,7 +605,8 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
             read_start=self.start_tm,
             read_end=self.end_tm,
             include_mp123=self.mass_pos_123zne_check_box.isChecked(),
-            include_mp456=self.mass_pos_456uvw_check_box.isChecked()
+            include_mp456=self.mass_pos_456uvw_check_box.isChecked(),
+            rt130_waveform_data_req=rt130_waveform_data_req
         )
 
         self.data_loader.worker.finished.connect(self.data_loaded)
-- 
GitLab