diff --git a/pyside6/click.wav b/pyside6/click.wav new file mode 100644 index 0000000000000000000000000000000000000000..86600f7f3764ffb27405595f618dfac1b5b959e4 Binary files /dev/null and b/pyside6/click.wav differ diff --git a/pyside6/fixhdr.py b/pyside6/fixhdr.py index fbece66f0e58a8dc82db501139d4dfd06b2a79ce..717aabb4dfcc1ab8957ec8406ac7d85cfb98dd6c 100644 --- a/pyside6/fixhdr.py +++ b/pyside6/fixhdr.py @@ -3,1839 +3,1909 @@ # TODO: Implement gloabl button actions, ie # --load template # --save template + # TODO: Implement button actions in TRACE HEADERS -# --build trace db : brings up data fields but does nothing with them -# --list traces +# --build trace db : brings up data fields but does not fill them with mseed file data +# --find : brings up file dialogue but only accepts one directory in the textbox. does +# not do anything with the mseed files, but does print them into the terminal +# to show they've been recognized +# --list traces : brings up window but has no data # --modify headers # --clear current # --clear update dictionary + # TODO: Implement button actions in GLOBAL MODIFY -# --build trace db : brings up data fields but does nothing with them # --global set # --clear current # --clear update dictionary + # TODO: Implement button actions in TIME SHIFT +# --undo time corrections +# --list time corrections +# --apply time corrections +# --time set +# --recalc start/end +# --clear all +# --add to/replace +# --wild card location code + # TODO: Implement button actions in ENDIANESS +# --convert to big +# --convert to little + # TODO: Implement button actions in LOG -# TODO: Improve indentation of text in HELP +# --print update dict +# --save log file +# --clear logs +# --all/header/timing/endian + +# TODO: Implement the bottom banner to transition from yellow/green/red + add text # What works: # Exit button # PopUp help checkbox -# Find directories button in TRACE HEADERS # Clear directories button in TRACE HEADERS # Clear stations button in TRACE HEADERS -# Find directories button in TRACE HEADERS # Template Format button in HELP -from PySide6 import QtCore, QtGui, QtWidgets +from PySide6 import QtCore, QtGui, QtWidgets, QtMultimedia import os import sys import time # Global variables -VERSION = "2022.1.0.0" # version of fixhdr +VERSION = "2022.1.0.0" # current version of fixhdr DIRECTORY = os.getcwd() # current working directory initially listed in Data Directories class Ui_Window(object): - - def setupUi(self, Window): - Window.setObjectName("Window") - Window.setFixedSize(730, 530) # static window size - - -############################################################################################################# - # GLOBAL WINDOW ASSETS - - # Bottom Frame around Load/Save/Exit - self.bottom_frame = QtWidgets.QFrame(Window) - self.bottom_frame.setGeometry(QtCore.QRect(0, 450, 721, 41)) - self.bottom_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.bottom_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.bottom_frame.setObjectName("bottom_frame") - - - - # Load Template Button - self.load_template_btn = QtWidgets.QPushButton(Window) - self.load_template_btn.setGeometry(QtCore.QRect(360, 458, 121, 25)) - self.load_template_btn.setObjectName("load_template_btn") - self.load_template_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:green;" - "}") - - - - # Save Template Button - self.save_template_btn = QtWidgets.QPushButton(Window) - self.save_template_btn.setGeometry(QtCore.QRect(480, 458, 121, 25)) - self.save_template_btn.setObjectName("save_template_btn") - self.save_template_btn.setStyleSheet("QPushButton::hover" + def setupUi(self, Window): + Window.setObjectName("Window") + Window.setFixedSize(730,530) # static window size + + ############################################################################################################# + + # GLOBAL ASSETS + + # Bottom Frame around Load/Save/Exit + self.bottom_frame = QtWidgets.QFrame(Window) + self.bottom_frame.setGeometry(QtCore.QRect(0, 450, 721, 41)) + self.bottom_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.bottom_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.bottom_frame.setObjectName("bottom_frame") + + # Load Template Button + self.load_template_btn = QtWidgets.QPushButton(Window) + self.load_template_btn.setGeometry(QtCore.QRect(360, 458, 121, 25)) + self.load_template_btn.setObjectName("load_template_btn") + self.load_template_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + + # Save Template Button + self.save_template_btn = QtWidgets.QPushButton(Window) + self.save_template_btn.setGeometry(QtCore.QRect(480, 458, 121, 25)) + self.save_template_btn.setObjectName("save_template_btn") + self.save_template_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + + # Exit button + self.exit_btn = QtWidgets.QPushButton(Window) + self.exit_btn.setGeometry(QtCore.QRect(600, 458, 121, 25)) + self.exit_btn.setObjectName("exit_btn") + #self.exit_btn.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.CrossCursor)) + self.exit_btn.setStyleSheet("QPushButton::hover" "{" - "background-color:green;" - "}") - - - - # Exit button - self.exit_btn = QtWidgets.QPushButton(Window) - self.exit_btn.setGeometry(QtCore.QRect(600, 458, 121, 25)) - self.exit_btn.setObjectName("exit_btn") - #self.exit_btn.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.CrossCursor)) - self.exit_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:rgb(165, 29, 45);" - "}") - self.exit_btn.clicked.connect(self.click_quit) - - # MSEED files found banner - self.files_alert_textBrowser = QtWidgets.QTextBrowser(Window) - self.files_alert_textBrowser.setGeometry(QtCore.QRect(0, 500, 730, 30)) - font = QtGui.QFont() - font.setFamily("DejaVu Sans") - self.files_alert_textBrowser.setFont(font) - self.files_alert_textBrowser.setObjectName("files_alert_textBrowser") - self.files_alert_textBrowser.setStyleSheet("background-color:yellow") - - - - -############################################################################################################# - - - - # TRACE HEADERS - - # Tab Setup - self.tabWidget = QtWidgets.QTabWidget(Window) - self.tabWidget.setGeometry(QtCore.QRect(0, 10, 721, 431)) - self.tabWidget.setObjectName("tabWidget") - - # Trace Headers Tab - self.TraceHeaders = QtWidgets.QWidget() - self.TraceHeaders.setObjectName("TraceHeaders") - - - # Trace Headers Tab -- Data Directories Frame - self.TH_dd_frame = QtWidgets.QFrame(self.TraceHeaders) - self.TH_dd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) - self.TH_dd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.TH_dd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.TH_dd_frame.setObjectName("TH_dd_frame") - - # Trace Headers Tab -- Data Directories Label - self.TH_data_directories_label = QtWidgets.QLabel(self.TraceHeaders) - self.TH_data_directories_label.setGeometry(QtCore.QRect(8, 17, 151, 17)) - self.TH_data_directories_label.setObjectName("TH_display_messages_for_label") - - # Trace Headers Tab -- File Directory textEdit - self.textEdit = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit.setGeometry(QtCore.QRect(130, 13, 350, 25)) - self.textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit.setAcceptRichText(False) - self.textEdit.setObjectName("textEdit") - - # Trace Headers Tab -- hidden frame + labels + textEdits - # revealed by clicking the Build Trace button - - self.frame = QtWidgets.QFrame(self.TraceHeaders) - self.frame.setGeometry(QtCore.QRect(-2, 100, 730, 259)) - self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.frame.setObjectName("frame") - self.frame.hide() - - self.stat_chan = QtWidgets.QLabel(self.TraceHeaders) - self.stat_chan.setGeometry(QtCore.QRect(8, 100, 150, 40)) - self.stat_chan.setObjectName("stat_chan") - self.stat_chan.hide() - self.stat_name = QtWidgets.QLabel(self.TraceHeaders) - self.stat_name.setGeometry(QtCore.QRect(8, 125, 150, 40)) - self.stat_name.setObjectName("stat_name") - self.stat_name.hide() - self.channel = QtWidgets.QLabel(self.TraceHeaders) - self.channel.setGeometry(QtCore.QRect(8, 150, 150, 40)) - self.channel.setObjectName("channel") - self.channel.hide() - self.loc_code = QtWidgets.QLabel(self.TraceHeaders) - self.loc_code.setGeometry(QtCore.QRect(8, 175, 150, 40)) - self.loc_code.setObjectName("loc_code") - self.loc_code.hide() - self.net_code = QtWidgets.QLabel(self.TraceHeaders) - self.net_code.setGeometry(QtCore.QRect(8, 200, 150, 40)) - self.net_code.setObjectName("net_code") - self.net_code.hide() - self.smpl_rt = QtWidgets.QLabel(self.TraceHeaders) - self.smpl_rt.setGeometry(QtCore.QRect(8, 225, 150, 40)) - self.smpl_rt.setObjectName("smpl_rt") - self.smpl_rt.hide() - self.textEdit1 = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit1.setGeometry(QtCore.QRect(180, 112, 150, 20)) - self.textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit1.setAcceptRichText(False) - self.textEdit1.hide() - self.textEdit2 = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit2.setGeometry(QtCore.QRect(180, 137, 150, 20)) - self.textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit2.setAcceptRichText(False) - self.textEdit2.hide() - self.textEdit3 = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit3.setGeometry(QtCore.QRect(180, 162, 150, 20)) - self.textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit3.setAcceptRichText(False) - self.textEdit3.hide() - self.textEdit4 = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit4.setGeometry(QtCore.QRect(180, 187, 150, 20)) - self.textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit4.setAcceptRichText(False) - self.textEdit4.hide() - self.textEdit5 = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit5.setGeometry(QtCore.QRect(180, 212, 150, 20)) - self.textEdit5.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit5.setAcceptRichText(False) - self.textEdit5.hide() - self.textEdit6 = QtWidgets.QTextEdit(self.TraceHeaders) - self.textEdit6.setGeometry(QtCore.QRect(180, 237, 150, 20)) - self.textEdit6.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.textEdit6.setAcceptRichText(False) - self.textEdit6.hide() - - self.new_val = QtWidgets.QLabel(self.TraceHeaders) - self.new_val.setGeometry(QtCore.QRect(350, 102, 150, 40)) - self.new_val.setObjectName("new_val") - self.new_val.hide() - self.nv_textEdit1 = QtWidgets.QTextEdit(self.TraceHeaders) - self.nv_textEdit1.setGeometry(QtCore.QRect(349, 137, 150, 20)) - self.nv_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.nv_textEdit1.setAcceptRichText(False) - self.nv_textEdit1.hide() - self.nv_textEdit2 = QtWidgets.QTextEdit(self.TraceHeaders) - self.nv_textEdit2.setGeometry(QtCore.QRect(349, 162, 150, 20)) - self.nv_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.nv_textEdit2.setAcceptRichText(False) - self.nv_textEdit2.hide() - self.nv_textEdit3 = QtWidgets.QTextEdit(self.TraceHeaders) - self.nv_textEdit3.setGeometry(QtCore.QRect(349, 187, 150, 20)) - self.nv_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.nv_textEdit3.setAcceptRichText(False) - self.nv_textEdit3.hide() - self.nv_textEdit4 = QtWidgets.QTextEdit(self.TraceHeaders) - self.nv_textEdit4.setGeometry(QtCore.QRect(349, 212, 150, 20)) - self.nv_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.nv_textEdit4.setAcceptRichText(False) - self.nv_textEdit4.hide() - - self.applied = QtWidgets.QLabel(self.TraceHeaders) - self.applied.setGeometry(QtCore.QRect(520, 102, 150, 40)) - self.applied.setObjectName("applied") - self.applied.hide() - - # Trace Headers Tab -- Build Trace button - self.TH_build_trace_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_build_trace_btn.setGeometry(QtCore.QRect(494, 13, 110, 25)) - self.TH_build_trace_btn.setObjectName("TH_build_traces_btn") - self.TH_build_trace_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - self.TH_build_trace_btn.clicked.connect(self.click_build_trace) - - # Trace Headers Tab -- Find button - self.TH_find_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_find_btn.setGeometry(QtCore.QRect(603, 13, 50, 25)) - self.TH_find_btn.setObjectName("TH_find_btn") - self.TH_find_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:green;" - "}") - self.TH_find_btn.clicked.connect(self.file_dialogue) - - # Trace Headers Tab -- Clear button - self.TH_clear_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_clear_btn.setGeometry(QtCore.QRect(652, 13, 50, 25)) - self.TH_clear_btn.setObjectName("TH_clear_btn") - self.TH_clear_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:orange;" - "}") - self.TH_clear_btn.clicked.connect(self.click_TH_clear) - - # Trace Headers Tab -- Find Only Stations Frame - self.TH_fos_frame = QtWidgets.QFrame(self.TraceHeaders) - self.TH_fos_frame.setGeometry(QtCore.QRect(-2, 53, 721, 41)) - self.TH_fos_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.TH_fos_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.TH_fos_frame.setObjectName("TH_fos_frame") - - # Trace Headers Tab -- Find Only Stations Label - self.TH_fos_label = QtWidgets.QLabel(self.TraceHeaders) - self.TH_fos_label.setGeometry(QtCore.QRect(8, 65, 280, 17)) - self.TH_fos_label.setObjectName("TH_display_messages_for_label") - - # Trace Headers Tab -- 2nd Clear button - self.TH_clear_2_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_clear_2_btn.setGeometry(QtCore.QRect(652, 61, 50, 25)) - self.TH_clear_2_btn.setObjectName("TH_clear_2_btn") - self.TH_clear_2_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:orange;" + "background-color:rgb(165, 29, 45);" "}") - self.TH_clear_2_btn.clicked.connect(self.click_TH_clear_2) - - # Trace Headers Tab -- Find Only Stations Directory text - self.fos_textEdit = QtWidgets.QTextEdit(self.TraceHeaders) - self.fos_textEdit.setGeometry(QtCore.QRect(280, 61, 358, 25)) - self.fos_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.fos_textEdit.setAcceptRichText(False) - self.fos_textEdit.setObjectName("fos_textEdit") - - - # Trace Headers Tab -- List Traces button - self.TH_popup = QtWidgets.QMainWindow() - self.TH_popup.setWindowTitle("Traces Listing") - self.TH_popup.resize(750, 480) - self.TH_popup.setObjectName("TH_popup") - self.TH_popup_textBrowser = QtWidgets.QTextBrowser(self.TH_popup) - self.TH_popup_textBrowser.setGeometry(QtCore.QRect(26, 25, 700, 400)) - self.TH_popup_textBrowser.setObjectName("TH_textBrowser") - self.TH_popup.hide() - self.TH_dismiss_btn = QtWidgets.QPushButton(self.TH_popup) - self.TH_dismiss_btn.setGeometry(QtCore.QRect(340, 440, 83, 25)) - self.TH_dismiss_btn.setObjectName("TH_dismiss_btn") - self.TH_dismiss_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234); - } - QPushButton::hover{ - background-color:rgb(165, 29, 45); - } - """) - self.TH_dismiss_btn.clicked.connect(self.TH_popup.close) - self.TH_list_traces_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_list_traces_btn.setGeometry(QtCore.QRect(6, 368, 85, 25)) - self.TH_list_traces_btn.setObjectName("TH_list_traces_btn") - self.TH_list_traces_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:green;" - "}") - self.TH_list_traces_btn.clicked.connect(self.click_list_traces) - - # Trace Headers Tab -- Clear Update Dictionary button - self.TH_clear_update_dictionary_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_clear_update_dictionary_btn.setGeometry(QtCore.QRect(540, 368, 171, 25)) - self.TH_clear_update_dictionary_btn.setObjectName("TH_clear_update_dictionary_btn") - self.TH_clear_update_dictionary_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:orange;" - "}") - - # Trace Headers Tab -- Clear Current button - self.TH_clear_current_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_clear_current_btn.setGeometry(QtCore.QRect(420, 368, 121, 25)) - self.TH_clear_current_btn.setObjectName("TH_clear_current_btn") - self.TH_clear_current_btn.setStyleSheet("QPushButton::hover" + self.exit_btn.clicked.connect(self.click_quit) + + # Banner + self.files_alert_textBrowser = QtWidgets.QTextBrowser(Window) + self.files_alert_textBrowser.setGeometry(QtCore.QRect(0, 500, 730, 30)) + font = QtGui.QFont() + font.setFamily("DejaVu Sans") + self.files_alert_textBrowser.setFont(font) + self.files_alert_textBrowser.setObjectName("files_alert_textBrowser") + self.files_alert_textBrowser.setStyleSheet("background-color:yellow") + + ############################################################################################################# + + # TRACE HEADERS + + # Tab Setup + self.tabWidget = QtWidgets.QTabWidget(Window) + self.tabWidget.setGeometry(QtCore.QRect(0, 10, 721, 431)) + self.tabWidget.setObjectName("tabWidget") + + # Trace Headers Tab + self.TraceHeaders = QtWidgets.QWidget() + self.TraceHeaders.setObjectName("TraceHeaders") + + # Trace Headers Tab -- Data Directories Frame + self.TH_dd_frame = QtWidgets.QFrame(self.TraceHeaders) + self.TH_dd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) + self.TH_dd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.TH_dd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.TH_dd_frame.setObjectName("TH_dd_frame") + + # Trace Headers Tab -- Data Directories Label + self.TH_data_directories_label = QtWidgets.QLabel(self.TraceHeaders) + self.TH_data_directories_label.setGeometry(QtCore.QRect(8, 17, 151, 17)) + self.TH_data_directories_label.setObjectName("TH_display_messages_for_label") + + # Trace Headers Tab -- File Directory textEdit + self.textEdit = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit.setGeometry(QtCore.QRect(130, 13, 350, 25)) + self.textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit.setAcceptRichText(False) + self.textEdit.setObjectName("textEdit") + + # Trace Headers Tab -- hidden frame + labels + textEdits + # revealed by clicking the Build Trace button + + # frame + self.frame = QtWidgets.QFrame(self.TraceHeaders) + self.frame.setGeometry(QtCore.QRect(-2, 100, 730, 259)) + self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.frame.setObjectName("frame") + self.frame.hide() + + # Stat:Chan:Loc:Net:Sps field + self.stat_chan = QtWidgets.QLabel(self.TraceHeaders) + self.stat_chan.setGeometry(QtCore.QRect(8, 100, 150, 40)) + self.stat_chan.setObjectName("stat_chan") + self.stat_chan.hide() + + self.textEdit1 = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit1.setGeometry(QtCore.QRect(180, 112, 150, 20)) + self.textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit1.setAcceptRichText(False) + self.textEdit1.hide() + + # Station_Name field + self.stat_name = QtWidgets.QLabel(self.TraceHeaders) + self.stat_name.setGeometry(QtCore.QRect(8, 125, 150, 40)) + self.stat_name.setObjectName("stat_name") + self.stat_name.hide() + + self.textEdit2 = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit2.setGeometry(QtCore.QRect(180, 137, 150, 20)) + self.textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit2.setAcceptRichText(False) + self.textEdit2.hide() + + # Channel field + self.channel = QtWidgets.QLabel(self.TraceHeaders) + self.channel.setGeometry(QtCore.QRect(8, 150, 150, 40)) + self.channel.setObjectName("channel") + self.channel.hide() + + self.textEdit3 = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit3.setGeometry(QtCore.QRect(180, 162, 150, 20)) + self.textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit3.setAcceptRichText(False) + self.textEdit3.hide() + + # Location_Code field + self.loc_code = QtWidgets.QLabel(self.TraceHeaders) + self.loc_code.setGeometry(QtCore.QRect(8, 175, 150, 40)) + self.loc_code.setObjectName("loc_code") + self.loc_code.hide() + + self.textEdit4 = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit4.setGeometry(QtCore.QRect(180, 187, 150, 20)) + self.textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit4.setAcceptRichText(False) + self.textEdit4.hide() + + # Network_Code field + self.net_code = QtWidgets.QLabel(self.TraceHeaders) + self.net_code.setGeometry(QtCore.QRect(8, 200, 150, 40)) + self.net_code.setObjectName("net_code") + self.net_code.hide() + + self.textEdit5 = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit5.setGeometry(QtCore.QRect(180, 212, 150, 20)) + self.textEdit5.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit5.setAcceptRichText(False) + self.textEdit5.hide() + + # Sample_Rate field + self.smpl_rt = QtWidgets.QLabel(self.TraceHeaders) + self.smpl_rt.setGeometry(QtCore.QRect(8, 225, 150, 40)) + self.smpl_rt.setObjectName("smpl_rt") + self.smpl_rt.hide() + + self.textEdit6 = QtWidgets.QTextEdit(self.TraceHeaders) + self.textEdit6.setGeometry(QtCore.QRect(180, 237, 150, 20)) + self.textEdit6.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.textEdit6.setAcceptRichText(False) + self.textEdit6.hide() + + # New Values field - label + self.new_val = QtWidgets.QLabel(self.TraceHeaders) + self.new_val.setGeometry(QtCore.QRect(350, 102, 150, 40)) + self.new_val.setObjectName("new_val") + self.new_val.hide() + + # New Values field - Station_name + self.nv_textEdit1 = QtWidgets.QTextEdit(self.TraceHeaders) + self.nv_textEdit1.setGeometry(QtCore.QRect(349, 137, 150, 20)) + self.nv_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.nv_textEdit1.setAcceptRichText(False) + self.nv_textEdit1.hide() + + # New Values field - Channel + self.nv_textEdit2 = QtWidgets.QTextEdit(self.TraceHeaders) + self.nv_textEdit2.setGeometry(QtCore.QRect(349, 162, 150, 20)) + self.nv_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.nv_textEdit2.setAcceptRichText(False) + self.nv_textEdit2.hide() + + # New Values field - Location_code + self.nv_textEdit3 = QtWidgets.QTextEdit(self.TraceHeaders) + self.nv_textEdit3.setGeometry(QtCore.QRect(349, 187, 150, 20)) + self.nv_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.nv_textEdit3.setAcceptRichText(False) + self.nv_textEdit3.hide() + + # New Values field - Network_code + self.nv_textEdit4 = QtWidgets.QTextEdit(self.TraceHeaders) + self.nv_textEdit4.setGeometry(QtCore.QRect(349, 212, 150, 20)) + self.nv_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.nv_textEdit4.setAcceptRichText(False) + self.nv_textEdit4.hide() + + # Applied label + self.applied = QtWidgets.QLabel(self.TraceHeaders) + self.applied.setGeometry(QtCore.QRect(520, 102, 150, 40)) + self.applied.setObjectName("applied") + self.applied.hide() + + # Trace Headers Tab -- Build Trace button + self.TH_build_trace_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_build_trace_btn.setGeometry(QtCore.QRect(494, 13, 110, 25)) + self.TH_build_trace_btn.setObjectName("TH_build_traces_btn") + self.TH_build_trace_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + self.TH_build_trace_btn.clicked.connect(self.click_build_trace) + + # Trace Headers Tab -- Find button + self.TH_find_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_find_btn.setGeometry(QtCore.QRect(603, 13, 50, 25)) + self.TH_find_btn.setObjectName("TH_find_btn") + self.TH_find_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + self.TH_find_btn.clicked.connect(self.file_dialogue) + + # Trace Headers Tab -- Clear button + self.TH_clear_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_clear_btn.setGeometry(QtCore.QRect(652, 13, 50, 25)) + self.TH_clear_btn.setObjectName("TH_clear_btn") + self.TH_clear_btn.setStyleSheet("QPushButton::hover" "{" "background-color:orange;" "}") - - # Trace Headers Tab -- Modify Headers button - self.TH_modify_headers_btn = QtWidgets.QPushButton(self.TraceHeaders) - self.TH_modify_headers_btn.setGeometry(QtCore.QRect(300, 368, 121, 25)) - self.TH_modify_headers_btn.setObjectName("TH_modify_headers_btn") - self.TH_modify_headers_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:green;" - "}") - - self.tabWidget.addTab(self.TraceHeaders, "") - - -############################################################################################################# - - # GLOBAL MODIFY - - # Global Modify Tab - self.GlobalModify = QtWidgets.QWidget() - self.GlobalModify.setObjectName("GlobalModify") - - # Global Modify Tab -- Current Data Directories Frame - self.GM_cdd_frame = QtWidgets.QFrame(self.GlobalModify) - self.GM_cdd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) - self.GM_cdd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.GM_cdd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.GM_cdd_frame.setObjectName("TH_cdd_frame") - - # Global Modify Tab -- Current Data Directories Label - self.GM_cdd_label = QtWidgets.QLabel(self.GlobalModify) - self.GM_cdd_label.setGeometry(QtCore.QRect(8, 17, 170, 17)) - self.GM_cdd_label.setObjectName("TH_cdd_label") - - # Global Modify Tab -- File Directory text - self.GM_cdd_textEdit = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_cdd_textEdit.setGeometry(QtCore.QRect(183, 13, 522, 25)) - self.GM_cdd_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_cdd_textEdit.setAcceptRichText(False) - self.GM_cdd_textEdit.setObjectName("GM_cdd_textEdit") - - # Global Tab -- hidden frame + labels + textEdits - - self.GM_h_frame = QtWidgets.QFrame(self.GlobalModify) - self.GM_h_frame.setGeometry(QtCore.QRect(-2, 53, 730, 306)) - self.GM_h_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.GM_h_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.GM_h_frame.setObjectName("frame") - self.GM_h_frame.hide() - - self.GM_for_headers_matching = QtWidgets.QLabel(self.GlobalModify) - self.GM_for_headers_matching.setGeometry(QtCore.QRect(120, 53, 150, 40)) - self.GM_for_headers_matching.setObjectName("GM_for_headers_matching") - self.GM_for_headers_matching.hide() - self.GM_sub_values = QtWidgets.QLabel(self.GlobalModify) - self.GM_sub_values.setGeometry(QtCore.QRect(300, 53, 150, 40)) - self.GM_sub_values.setObjectName("GM_for_headers_matching") - self.GM_sub_values.hide() - self.GM_stat_name = QtWidgets.QLabel(self.GlobalModify) - self.GM_stat_name.setGeometry(QtCore.QRect(8, 75, 150, 40)) - self.GM_stat_name.setObjectName("GM_stat_name") - self.GM_stat_name.hide() - self.GM_channel = QtWidgets.QLabel(self.GlobalModify) - self.GM_channel.setGeometry(QtCore.QRect(8, 100, 150, 40)) - self.GM_channel.setObjectName("GM_channel") - self.GM_channel.hide() - self.GM_loc_code = QtWidgets.QLabel(self.GlobalModify) - self.GM_loc_code.setGeometry(QtCore.QRect(8, 125, 150, 40)) - self.GM_loc_code.setObjectName("GM_loc_code") - self.GM_loc_code.hide() - self.GM_net_code = QtWidgets.QLabel(self.GlobalModify) - self.GM_net_code.setGeometry(QtCore.QRect(8, 150, 150, 40)) - self.GM_net_code.setObjectName("GM_net_code") - self.GM_net_code.hide() - self.GM_smpl_rt = QtWidgets.QLabel(self.GlobalModify) - self.GM_smpl_rt.setGeometry(QtCore.QRect(8, 175, 150, 40)) - self.GM_smpl_rt.setObjectName("GM_smpl_rt") - self.GM_smpl_rt.hide() - - self.GM_textEdit1 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit1.setGeometry(QtCore.QRect(119, 88, 150, 20)) - self.GM_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit1.setAcceptRichText(False) - self.GM_textEdit1.hide() - self.GM_textEdit2 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit2.setGeometry(QtCore.QRect(119, 113, 150, 20)) - self.GM_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit2.setAcceptRichText(False) - self.GM_textEdit2.hide() - self.GM_textEdit3 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit3.setGeometry(QtCore.QRect(119, 138, 150, 20)) - self.GM_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit3.setAcceptRichText(False) - self.GM_textEdit3.hide() - self.GM_textEdit4 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit4.setGeometry(QtCore.QRect(119, 163, 150, 20)) - self.GM_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit4.setAcceptRichText(False) - self.GM_textEdit4.hide() - self.GM_textEdit5 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit5.setGeometry(QtCore.QRect(119, 188, 150, 20)) - self.GM_textEdit5.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit5.setAcceptRichText(False) - self.GM_textEdit5.hide() - - self.GM_textEdit6 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit6.setGeometry(QtCore.QRect(299, 88, 150, 20)) - self.GM_textEdit6.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit6.setAcceptRichText(False) - self.GM_textEdit6.hide() - self.GM_textEdit7 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit7.setGeometry(QtCore.QRect(299, 113, 150, 20)) - self.GM_textEdit7.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit7.setAcceptRichText(False) - self.GM_textEdit7.hide() - self.GM_textEdit8 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit8.setGeometry(QtCore.QRect(299, 138, 150, 20)) - self.GM_textEdit8.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit8.setAcceptRichText(False) - self.GM_textEdit8.hide() - self.GM_textEdit9 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_textEdit9.setGeometry(QtCore.QRect(299, 163, 150, 20)) - self.GM_textEdit9.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_textEdit9.setAcceptRichText(False) - self.GM_textEdit9.hide() - - self.GM_sub_val = QtWidgets.QLabel(self.GlobalModify) - self.GM_sub_val.setGeometry(QtCore.QRect(350, 102, 150, 40)) - self.GM_sub_val.setObjectName("GM_sub_val") - self.GM_sub_val.hide() - self.GM_sv_textEdit1 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_sv_textEdit1.setGeometry(QtCore.QRect(349, 137, 150, 20)) - self.GM_sv_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_sv_textEdit1.setAcceptRichText(False) - self.GM_sv_textEdit1.hide() - self.GM_sv_textEdit2 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_sv_textEdit2.setGeometry(QtCore.QRect(349, 162, 150, 20)) - self.GM_sv_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_sv_textEdit2.setAcceptRichText(False) - self.GM_sv_textEdit2.hide() - self.GM_sv_textEdit3 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_sv_textEdit3.setGeometry(QtCore.QRect(349, 187, 150, 20)) - self.GM_sv_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_sv_textEdit3.setAcceptRichText(False) - self.GM_sv_textEdit3.hide() - self.GM_sv_textEdit4 = QtWidgets.QTextEdit(self.GlobalModify) - self.GM_sv_textEdit4.setGeometry(QtCore.QRect(349, 212, 150, 20)) - self.GM_sv_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.GM_sv_textEdit4.setAcceptRichText(False) - self.GM_sv_textEdit4.hide() - - # Global Modify Tab -- Global Set button - self.GM_global_set_btn = QtWidgets.QPushButton(self.GlobalModify) - self.GM_global_set_btn.setGeometry(QtCore.QRect(300, 368, 121, 25)) - self.GM_global_set_btn.setObjectName("GM_global_set_btn") - self.GM_global_set_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - # Global Modify Tab -- Clear Current button - self.GM_clear_current_btn = QtWidgets.QPushButton(self.GlobalModify) - self.GM_clear_current_btn.setGeometry(QtCore.QRect(420, 368, 121, 25)) - self.GM_clear_current_btn.setObjectName("GM_clear_current_btn") - self.GM_clear_current_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:orange;" - "}") - - # Global Modify Tab -- Clear Update Dictionary button - self.GM_clear_update_dictionary_btn = QtWidgets.QPushButton(self.GlobalModify) - self.GM_clear_update_dictionary_btn.setGeometry(QtCore.QRect(540, 368, 171, 25)) - self.GM_clear_update_dictionary_btn.setObjectName("GM_clear_update_dictionary_btn") - self.GM_clear_update_dictionary_btn.setStyleSheet("QPushButton::hover" + self.TH_clear_btn.clicked.connect(self.click_TH_clear) + + # Trace Headers Tab -- Find Only Stations Frame + self.TH_fos_frame = QtWidgets.QFrame(self.TraceHeaders) + self.TH_fos_frame.setGeometry(QtCore.QRect(-2, 53, 721, 41)) + self.TH_fos_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.TH_fos_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.TH_fos_frame.setObjectName("TH_fos_frame") + + # Trace Headers Tab -- Find Only Stations Label + self.TH_fos_label = QtWidgets.QLabel(self.TraceHeaders) + self.TH_fos_label.setGeometry(QtCore.QRect(8, 65, 280, 17)) + self.TH_fos_label.setObjectName("TH_display_messages_for_label") + + # Trace Headers Tab -- 2nd Clear button + self.TH_clear_2_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_clear_2_btn.setGeometry(QtCore.QRect(652, 61, 50, 25)) + self.TH_clear_2_btn.setObjectName("TH_clear_2_btn") + self.TH_clear_2_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:orange;" + "}") + self.TH_clear_2_btn.clicked.connect(self.click_TH_clear_2) + + # Trace Headers Tab -- Find Only Stations Directory text + self.fos_textEdit = QtWidgets.QTextEdit(self.TraceHeaders) + self.fos_textEdit.setGeometry(QtCore.QRect(280, 61, 358, 25)) + self.fos_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.fos_textEdit.setAcceptRichText(False) + self.fos_textEdit.setObjectName("fos_textEdit") + + # Trace Headers Tab -- List Traces button + self.TH_list_traces_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_list_traces_btn.setGeometry(QtCore.QRect(6, 368, 85, 25)) + self.TH_list_traces_btn.setObjectName("TH_list_traces_btn") + self.TH_list_traces_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + self.TH_list_traces_btn.clicked.connect(self.click_list_traces) + + # Popup Window for List Traces button + self.TH_popup = QtWidgets.QMainWindow() + self.TH_popup.setWindowTitle("Traces Listing") + self.TH_popup.resize(750, 480) + self.TH_popup.setObjectName("TH_popup") + + # Text box for popup window + self.TH_popup_textBrowser = QtWidgets.QTextBrowser(self.TH_popup) + self.TH_popup_textBrowser.setGeometry(QtCore.QRect(26, 25, 700, 400)) + self.TH_popup_textBrowser.setObjectName("TH_textBrowser") + self.TH_popup.hide() + + # Dismiss button for popup window + self.TH_dismiss_btn = QtWidgets.QPushButton(self.TH_popup) + self.TH_dismiss_btn.setGeometry(QtCore.QRect(340, 440, 83, 25)) + self.TH_dismiss_btn.setObjectName("TH_dismiss_btn") + self.TH_dismiss_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234); + } + QPushButton::hover{ + background-color:rgb(165, 29, 45); + } + """) + self.TH_dismiss_btn.clicked.connect(self.TH_popup.close) + + # Trace Headers Tab -- Clear Update Dictionary button + self.TH_clear_update_dictionary_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_clear_update_dictionary_btn.setGeometry(QtCore.QRect(540, 368, 171, 25)) + self.TH_clear_update_dictionary_btn.setObjectName("TH_clear_update_dictionary_btn") + self.TH_clear_update_dictionary_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:orange;" + "}") + + # Trace Headers Tab -- Clear Current button + self.TH_clear_current_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_clear_current_btn.setGeometry(QtCore.QRect(420, 368, 121, 25)) + self.TH_clear_current_btn.setObjectName("TH_clear_current_btn") + self.TH_clear_current_btn.setStyleSheet("QPushButton::hover" "{" "background-color:orange;" "}") - self.tabWidget.addTab(self.GlobalModify, "") - - -############################################################################################################# - - # TIME SHIFT - - # Time Shift Tab - self.TimeShift = QtWidgets.QWidget() - self.TimeShift.setObjectName("TimeShift") - - # Time Shift Tab -- Current Data Directories Frame - self.TS_dd_frame = QtWidgets.QFrame(self.TimeShift) - self.TS_dd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) - self.TS_dd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.TS_dd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.TS_dd_frame.setObjectName("TS_dd_frame") - - # Time Shift Tab -- Data Directories Label - self.TS_cdd_label = QtWidgets.QLabel(self.TimeShift) - self.TS_cdd_label.setGeometry(QtCore.QRect(8, 17, 165, 17)) - self.TS_cdd_label.setObjectName("TS_cdd_label") - - # Time Shift Tab -- File Directory text - self.TS_textEdit = QtWidgets.QTextEdit(self.TimeShift) - self.TS_textEdit.setGeometry(QtCore.QRect(183, 13, 522, 25)) - self.TS_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.TS_textEdit.setAcceptRichText(False) - self.TS_textEdit.setObjectName("TS_textEdit") - - # Time Shift Tab -- How To Treat Existing Corrections Frame - self.TS_ec_frame = QtWidgets.QFrame(self.TimeShift) - self.TS_ec_frame.setGeometry(QtCore.QRect(-2, 53, 721, 41)) - self.TS_ec_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.TS_ec_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.TS_ec_frame.setObjectName("TS_fos_frame") - - # Time Shift Tab -- How To Treat Existing Corrections Label - self.TS_ec_label = QtWidgets.QLabel(self.TimeShift) - self.TS_ec_label.setGeometry(QtCore.QRect(8, 65, 280, 17)) - self.TS_ec_label.setObjectName("TS_existing_corrections_label") - - # Time Shift Tab -- Add To radio button - self.TS_add_to_rbtn = QtWidgets.QRadioButton(self.TimeShift) - self.TS_add_to_rbtn.setGeometry(QtCore.QRect(240, 63, 70, 23)) - self.TS_add_to_rbtn.setObjectName("TS_add_to_rbtn") - self.TS_add_to_rbtn.setChecked(True) - - # Time Shift Tab -- Replace radio button - self.TS__replace_rbtn = QtWidgets.QRadioButton(self.TimeShift) - self.TS__replace_rbtn.setGeometry(QtCore.QRect(320, 63, 71, 23)) - self.TS__replace_rbtn.setObjectName("TS__replace_rbtn") - - # Time Shift Tab -- Undo Time Corrections button - self.TS_undo_tc_btn = QtWidgets.QPushButton(self.TimeShift) - self.TS_undo_tc_btn.setGeometry(QtCore.QRect(540, 61, 165, 25)) - self.TS_undo_tc_btn.setObjectName("TS_undo_tc_btn") - self.TS_undo_tc_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234); - } - QPushButton::hover{ - background-color:green; - } - """) - - # Time Shift Tab -- hidden - - self.TS_frame = QtWidgets.QFrame(self.TimeShift) - self.TS_frame.setGeometry(QtCore.QRect(-2, 100, 730, 200)) - self.TS_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.TS_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.TS_frame.setObjectName("TS_frame") - self.TS_frame.hide() - - self.TS_for_traces_matching = QtWidgets.QLabel(self.TimeShift) - self.TS_for_traces_matching.setGeometry(QtCore.QRect(101, 100, 150, 40)) - self.TS_for_traces_matching.setObjectName("TS_for_traces_matching") - self.TS_for_traces_matching.hide() - - self.TS_stat_loc_net = QtWidgets.QLabel(self.TimeShift) - self.TS_stat_loc_net.setGeometry(QtCore.QRect(8, 125, 150, 40)) - self.TS_stat_loc_net.setObjectName("TS_stat_loc_net") - self.TS_stat_loc_net.hide() - - self.TS_textEdit1 = QtWidgets.QTextEdit(self.TimeShift) - self.TS_textEdit1.setGeometry(QtCore.QRect(100, 135, 150, 20)) - self.TS_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.TS_textEdit1.setAcceptRichText(False) - self.TS_textEdit1.hide() - - self.TS_checkBox = QtWidgets.QCheckBox(self.TimeShift) - self.TS_checkBox.setGeometry(QtCore.QRect(101, 160, 180, 23)) - self.TS_checkBox.setObjectName("TS_checkBox") - self.TS_checkBox.setChecked(False) - self.TS_checkBox.hide() - - self.TS_time_shift = QtWidgets.QLabel(self.TimeShift) - self.TS_time_shift.setGeometry(QtCore.QRect(431, 100, 150, 40)) - self.TS_time_shift.setObjectName("TS_time_shift") - self.TS_time_shift.hide() - - self.TS_applied = QtWidgets.QLabel(self.TimeShift) - self.TS_applied.setGeometry(QtCore.QRect(600, 100, 150, 40)) - self.TS_applied.setObjectName("TS_applied") - self.TS_applied.hide() - - self.TS_start_time = QtWidgets.QLabel(self.TimeShift) - self.TS_start_time.setGeometry(QtCore.QRect(351, 125, 150, 40)) - self.TS_start_time.setObjectName("TS_start_time") - self.TS_start_time.hide() - - self.TS_textEdit2 = QtWidgets.QTextEdit(self.TimeShift) - self.TS_textEdit2.setGeometry(QtCore.QRect(430, 135, 150, 20)) - self.TS_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.TS_textEdit2.setAcceptRichText(False) - self.TS_textEdit2.hide() - - self.TS_end_time = QtWidgets.QLabel(self.TimeShift) - self.TS_end_time.setGeometry(QtCore.QRect(358, 150, 150, 40)) - self.TS_end_time.setObjectName("TS_end_time") - self.TS_end_time.hide() - - self.TS_textEdit3 = QtWidgets.QTextEdit(self.TimeShift) - self.TS_textEdit3.setGeometry(QtCore.QRect(430, 160, 150, 20)) - self.TS_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.TS_textEdit3.setAcceptRichText(False) - self.TS_textEdit3.hide() - - self.TS_time_shift_sec = QtWidgets.QLabel(self.TimeShift) - self.TS_time_shift_sec.setGeometry(QtCore.QRect(324, 175, 150, 40)) - self.TS_time_shift_sec.setObjectName("TS_time_shift_sec") - self.TS_time_shift_sec.hide() - - self.TS_textEdit4 = QtWidgets.QTextEdit(self.TimeShift) - self.TS_textEdit4.setGeometry(QtCore.QRect(430, 185, 150, 20)) - self.TS_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.TS_textEdit4.setAcceptRichText(False) - self.TS_textEdit4.hide() - - self.TS_tt_questionable = QtWidgets.QLabel(self.TimeShift) - self.TS_tt_questionable.setGeometry(QtCore.QRect(257, 200, 165, 40)) - self.TS_tt_questionable.setObjectName("TS_tt_questionable") - self.TS_tt_questionable.hide() - - self.TS_textEdit5 = QtWidgets.QTextEdit(self.TimeShift) - self.TS_textEdit5.setGeometry(QtCore.QRect(430, 210, 150, 20)) - self.TS_textEdit5.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.TS_textEdit5.setAcceptRichText(False) - self.TS_textEdit5.hide() - - # Time Shift Tab - List Time Corrections button - self.TS_list_time_corrections_btn = QtWidgets.QPushButton(self.TimeShift) - self.TS_list_time_corrections_btn.setGeometry(QtCore.QRect(50, 368, 161, 25)) - self.TS_list_time_corrections_btn.setObjectName("TS_list_time_corrections_btn") - self.TS_list_time_corrections_btn.setStyleSheet("QPushButton::hover" + # Trace Headers Tab -- Modify Headers button + self.TH_modify_headers_btn = QtWidgets.QPushButton(self.TraceHeaders) + self.TH_modify_headers_btn.setGeometry(QtCore.QRect(300, 368, 121, 25)) + self.TH_modify_headers_btn.setObjectName("TH_modify_headers_btn") + self.TH_modify_headers_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + + self.tabWidget.addTab(self.TraceHeaders, "") # end of tab + + ############################################################################################################# + + # GLOBAL MODIFY + + # Global Modify Tab + self.GlobalModify = QtWidgets.QWidget() + self.GlobalModify.setObjectName("GlobalModify") + + # Global Modify Tab -- Current Data Directories Frame + self.GM_cdd_frame = QtWidgets.QFrame(self.GlobalModify) + self.GM_cdd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) + self.GM_cdd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.GM_cdd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.GM_cdd_frame.setObjectName("TH_cdd_frame") + + # Global Modify Tab -- Current Data Directories Label + self.GM_cdd_label = QtWidgets.QLabel(self.GlobalModify) + self.GM_cdd_label.setGeometry(QtCore.QRect(8, 17, 170, 17)) + self.GM_cdd_label.setObjectName("TH_cdd_label") + + # Global Modify Tab -- File Directory text + self.GM_cdd_textEdit = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_cdd_textEdit.setGeometry(QtCore.QRect(183, 13, 522, 25)) + self.GM_cdd_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_cdd_textEdit.setAcceptRichText(False) + self.GM_cdd_textEdit.setObjectName("GM_cdd_textEdit") + + # Global Tab -- hidden frame + labels + textEdits + # revealed by clicking the Build Traces button + + # frame + self.GM_h_frame = QtWidgets.QFrame(self.GlobalModify) + self.GM_h_frame.setGeometry(QtCore.QRect(-2, 53, 730, 306)) + self.GM_h_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.GM_h_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.GM_h_frame.setObjectName("frame") + self.GM_h_frame.hide() + + # For Headers Matching label + self.GM_for_headers_matching = QtWidgets.QLabel(self.GlobalModify) + self.GM_for_headers_matching.setGeometry(QtCore.QRect(120, 53, 150, 40)) + self.GM_for_headers_matching.setObjectName("GM_for_headers_matching") + self.GM_for_headers_matching.hide() + + # Substitute Values label + self.GM_sub_values = QtWidgets.QLabel(self.GlobalModify) + self.GM_sub_values.setGeometry(QtCore.QRect(300, 53, 150, 40)) + self.GM_sub_values.setObjectName("GM_sub_values") + self.GM_sub_values.hide() + + # Station_Name field + self.GM_stat_name = QtWidgets.QLabel(self.GlobalModify) + self.GM_stat_name.setGeometry(QtCore.QRect(8, 75, 150, 40)) + self.GM_stat_name.setObjectName("GM_stat_name") + self.GM_stat_name.hide() + # for headers matching column + self.GM_textEdit1 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit1.setGeometry(QtCore.QRect(119, 88, 150, 20)) + self.GM_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit1.setAcceptRichText(False) + self.GM_textEdit1.hide() + # substitute values column + self.GM_textEdit6 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit6.setGeometry(QtCore.QRect(299, 88, 150, 20)) + self.GM_textEdit6.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit6.setAcceptRichText(False) + self.GM_textEdit6.hide() + + # Channel field + self.GM_channel = QtWidgets.QLabel(self.GlobalModify) + self.GM_channel.setGeometry(QtCore.QRect(8, 100, 150, 40)) + self.GM_channel.setObjectName("GM_channel") + self.GM_channel.hide() + # for headers matching column + self.GM_textEdit2 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit2.setGeometry(QtCore.QRect(119, 113, 150, 20)) + self.GM_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit2.setAcceptRichText(False) + self.GM_textEdit2.hide() + # substitute values column + self.GM_textEdit7 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit7.setGeometry(QtCore.QRect(299, 113, 150, 20)) + self.GM_textEdit7.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit7.setAcceptRichText(False) + self.GM_textEdit7.hide() + + # Location_Code field + self.GM_loc_code = QtWidgets.QLabel(self.GlobalModify) + self.GM_loc_code.setGeometry(QtCore.QRect(8, 125, 150, 40)) + self.GM_loc_code.setObjectName("GM_loc_code") + self.GM_loc_code.hide() + # for headers matching column + self.GM_textEdit3 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit3.setGeometry(QtCore.QRect(119, 138, 150, 20)) + self.GM_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit3.setAcceptRichText(False) + self.GM_textEdit3.hide() + # substitute values column + self.GM_textEdit8 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit8.setGeometry(QtCore.QRect(299, 138, 150, 20)) + self.GM_textEdit8.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit8.setAcceptRichText(False) + self.GM_textEdit8.hide() + + # Network_Code field + self.GM_net_code = QtWidgets.QLabel(self.GlobalModify) + self.GM_net_code.setGeometry(QtCore.QRect(8, 150, 150, 40)) + self.GM_net_code.setObjectName("GM_net_code") + self.GM_net_code.hide() + # for headers matching column + self.GM_textEdit4 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit4.setGeometry(QtCore.QRect(119, 163, 150, 20)) + self.GM_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit4.setAcceptRichText(False) + self.GM_textEdit4.hide() + # substitute values column + self.GM_textEdit9 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit9.setGeometry(QtCore.QRect(299, 163, 150, 20)) + self.GM_textEdit9.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit9.setAcceptRichText(False) + self.GM_textEdit9.hide() + + # Sample_Rate field + self.GM_smpl_rt = QtWidgets.QLabel(self.GlobalModify) + self.GM_smpl_rt.setGeometry(QtCore.QRect(8, 175, 150, 40)) + self.GM_smpl_rt.setObjectName("GM_smpl_rt") + self.GM_smpl_rt.hide() + # for headers matching column + self.GM_textEdit5 = QtWidgets.QTextEdit(self.GlobalModify) + self.GM_textEdit5.setGeometry(QtCore.QRect(119, 188, 150, 20)) + self.GM_textEdit5.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.GM_textEdit5.setAcceptRichText(False) + self.GM_textEdit5.hide() + + # Global Modify Tab -- Global Set button + self.GM_global_set_btn = QtWidgets.QPushButton(self.GlobalModify) + self.GM_global_set_btn.setGeometry(QtCore.QRect(300, 368, 121, 25)) + self.GM_global_set_btn.setObjectName("GM_global_set_btn") + self.GM_global_set_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + # Global Modify Tab -- Clear Current button + self.GM_clear_current_btn = QtWidgets.QPushButton(self.GlobalModify) + self.GM_clear_current_btn.setGeometry(QtCore.QRect(420, 368, 121, 25)) + self.GM_clear_current_btn.setObjectName("GM_clear_current_btn") + self.GM_clear_current_btn.setStyleSheet("QPushButton::hover" "{" - "background-color:green;" + "background-color:orange;" "}") - # Time Shift Tab - Apply Time Corrections button - self.TS_apply_time_correction_btn = QtWidgets.QPushButton(self.TimeShift) - self.TS_apply_time_correction_btn.setGeometry(QtCore.QRect(210, 368, 161, 25)) - self.TS_apply_time_correction_btn.setObjectName("TS_apply_time_correction_btn") - self.TS_apply_time_correction_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - # Time Shift Tab - Time Set button - self.TS_time_set_btn = QtWidgets.QPushButton(self.TimeShift) - self.TS_time_set_btn.setGeometry(QtCore.QRect(370, 368, 83, 25)) - self.TS_time_set_btn.setObjectName("TS_time_set_btn") - self.TS_time_set_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - # Time Shift Tab - Recalc Start/End button - self.TS_recalc_start_end_btn = QtWidgets.QPushButton(self.TimeShift) - self.TS_recalc_start_end_btn.setGeometry(QtCore.QRect(450, 368, 131, 25)) - self.TS_recalc_start_end_btn.setObjectName("TS_recalc_start_end_btn") - self.TS_recalc_start_end_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - # Time Shift Tab - Clear All button - self.TS_clear_all_btn = QtWidgets.QPushButton(self.TimeShift) - self.TS_clear_all_btn.setGeometry(QtCore.QRect(580, 368, 83, 25)) - self.TS_clear_all_btn.setObjectName("TS_clear_all_btn") - self.TS_clear_all_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:orange;" - "}") - - self.tabWidget.addTab(self.TimeShift, "") - - -############################################################################################################# - - # ENDIANESS - - # Endianess Tab - self.Endianess = QtWidgets.QWidget() - self.Endianess.setObjectName("Endianess") - - # Endianess Tab -- Current Data Directories Frame - self.E_cdd_frame = QtWidgets.QFrame(self.Endianess) - self.E_cdd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) - self.E_cdd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.E_cdd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.E_cdd_frame.setObjectName("E_cdd_frame") - - # Endianess Tab -- Current Data Directories Label - self.E_cdd_label = QtWidgets.QLabel(self.Endianess) - self.E_cdd_label.setGeometry(QtCore.QRect(8, 17, 170, 17)) - self.E_cdd_label.setObjectName("E_cdd_label") - - # Endianess Tab -- File Directory text - self.E_cdd_textEdit = QtWidgets.QTextEdit(self.Endianess) - self.E_cdd_textEdit.setGeometry(QtCore.QRect(183, 13, 522, 25)) - self.E_cdd_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.E_cdd_textEdit.setAcceptRichText(False) - self.E_cdd_textEdit.setObjectName("E_cdd_textEdit") - - # Endianess Tab -- Endian Files Found Frame - self.E_files_frame = QtWidgets.QFrame(self.Endianess) - self.E_files_frame.setGeometry(QtCore.QRect(-2, 53, 721, 73)) - self.E_files_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.E_files_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.E_files_frame.setObjectName("E_files_frame") - - # Endianess Tab -- Little Endian Files Found Label - self.E_little_label = QtWidgets.QLabel(self.Endianess) - self.E_little_label.setGeometry(QtCore.QRect(8, 65, 170, 17)) - self.E_cdd_label.setObjectName("E_little_label") - - # Endianess Tab -- Little Endian Files Found text - self.E_little_textEdit = QtWidgets.QTextEdit(self.Endianess) - self.E_little_textEdit.setGeometry(QtCore.QRect(180, 65, 70, 17)) - self.E_little_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.E_little_textEdit.setAcceptRichText(False) - self.E_little_textEdit.setObjectName("E_little_textEdit") - - # Endianess Tab -- Convert to Big button - self.E_ctb_btn = QtWidgets.QPushButton(self.Endianess) - self.E_ctb_btn.setGeometry(QtCore.QRect(261, 61, 120, 25)) - self.E_ctb_btn.setObjectName("E_ctb_btn") - self.E_ctb_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - # Endianess Tab -- Big Endian Files Found Label - self.E_big_label = QtWidgets.QLabel(self.Endianess) - self.E_big_label.setGeometry(QtCore.QRect(8, 95, 170, 17)) - self.E_big_label.setObjectName("E_big_label") - - # Endianess Tab -- Big Endian Files Found text - self.E_big_textEdit = QtWidgets.QTextEdit(self.Endianess) - self.E_big_textEdit.setGeometry(QtCore.QRect(180, 96, 70, 17)) - self.E_big_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.E_big_textEdit.setAcceptRichText(False) - self.E_big_textEdit.setObjectName("E_big_textEdit") - - # Endianess Tab -- Convert to Little button - self.E_ctl_btn = QtWidgets.QPushButton(self.Endianess) - self.E_ctl_btn.setGeometry(QtCore.QRect(261, 93, 120, 25)) - self.E_ctl_btn.setObjectName("E_ctl_btn") - self.E_ctl_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - self.tabWidget.addTab(self.Endianess, "") - - -############################################################################################################# + # Global Modify Tab -- Clear Update Dictionary button + self.GM_clear_update_dictionary_btn = QtWidgets.QPushButton(self.GlobalModify) + self.GM_clear_update_dictionary_btn.setGeometry(QtCore.QRect(540, 368, 171, 25)) + self.GM_clear_update_dictionary_btn.setObjectName("GM_clear_update_dictionary_btn") + self.GM_clear_update_dictionary_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:orange;" + "}") + + self.tabWidget.addTab(self.GlobalModify, "") # end of tab + + ############################################################################################################# + + # TIME SHIFT + + # Time Shift Tab + self.TimeShift = QtWidgets.QWidget() + self.TimeShift.setObjectName("TimeShift") + + # Time Shift Tab -- Current Data Directories Frame + self.TS_dd_frame = QtWidgets.QFrame(self.TimeShift) + self.TS_dd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) + self.TS_dd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.TS_dd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.TS_dd_frame.setObjectName("TS_dd_frame") + + # Time Shift Tab -- Data Directories Label + self.TS_cdd_label = QtWidgets.QLabel(self.TimeShift) + self.TS_cdd_label.setGeometry(QtCore.QRect(8, 17, 165, 17)) + self.TS_cdd_label.setObjectName("TS_cdd_label") + + # Time Shift Tab -- File Directory text + self.TS_textEdit = QtWidgets.QTextEdit(self.TimeShift) + self.TS_textEdit.setGeometry(QtCore.QRect(183, 13, 522, 25)) + self.TS_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.TS_textEdit.setAcceptRichText(False) + self.TS_textEdit.setObjectName("TS_textEdit") + + # Time Shift Tab -- How To Treat Existing Corrections Frame + self.TS_ec_frame = QtWidgets.QFrame(self.TimeShift) + self.TS_ec_frame.setGeometry(QtCore.QRect(-2, 53, 721, 41)) + self.TS_ec_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.TS_ec_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.TS_ec_frame.setObjectName("TS_fos_frame") + + # Time Shift Tab -- How To Treat Existing Corrections Label + self.TS_ec_label = QtWidgets.QLabel(self.TimeShift) + self.TS_ec_label.setGeometry(QtCore.QRect(8, 65, 280, 17)) + self.TS_ec_label.setObjectName("TS_existing_corrections_label") + + # Time Shift Tab -- Add To radio button + self.TS_add_to_rbtn = QtWidgets.QRadioButton(self.TimeShift) + self.TS_add_to_rbtn.setGeometry(QtCore.QRect(240, 63, 70, 23)) + self.TS_add_to_rbtn.setObjectName("TS_add_to_rbtn") + self.TS_add_to_rbtn.setChecked(True) + + # Time Shift Tab -- Replace radio button + self.TS__replace_rbtn = QtWidgets.QRadioButton(self.TimeShift) + self.TS__replace_rbtn.setGeometry(QtCore.QRect(320, 63, 71, 23)) + self.TS__replace_rbtn.setObjectName("TS__replace_rbtn") + + # Time Shift Tab -- Undo Time Corrections button + self.TS_undo_tc_btn = QtWidgets.QPushButton(self.TimeShift) + self.TS_undo_tc_btn.setGeometry(QtCore.QRect(540, 61, 165, 25)) + self.TS_undo_tc_btn.setObjectName("TS_undo_tc_btn") + self.TS_undo_tc_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234); + } + QPushButton::hover{ + background-color:green; + } + """) + + # Time Shift Tab -- hidden labels + textboxes + # revealed by clicking the Build Traces button + + # frame + self.TS_frame = QtWidgets.QFrame(self.TimeShift) + self.TS_frame.setGeometry(QtCore.QRect(-2, 100, 730, 200)) + self.TS_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.TS_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.TS_frame.setObjectName("TS_frame") + self.TS_frame.hide() + + # For Traces Matching label + self.TS_for_traces_matching = QtWidgets.QLabel(self.TimeShift) + self.TS_for_traces_matching.setGeometry(QtCore.QRect(101, 100, 150, 40)) + self.TS_for_traces_matching.setObjectName("TS_for_traces_matching") + self.TS_for_traces_matching.hide() + + # Stat:Loc:Net label + self.TS_stat_loc_net = QtWidgets.QLabel(self.TimeShift) + self.TS_stat_loc_net.setGeometry(QtCore.QRect(8, 125, 150, 40)) + self.TS_stat_loc_net.setObjectName("TS_stat_loc_net") + self.TS_stat_loc_net.hide() + + # Stat:Loc:Net textbox + self.TS_textEdit1 = QtWidgets.QTextEdit(self.TimeShift) + self.TS_textEdit1.setGeometry(QtCore.QRect(100, 135, 150, 20)) + self.TS_textEdit1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.TS_textEdit1.setAcceptRichText(False) + self.TS_textEdit1.hide() + + # Wild Card Location Code checkbox + self.TS_checkBox = QtWidgets.QCheckBox(self.TimeShift) + self.TS_checkBox.setGeometry(QtCore.QRect(101, 160, 180, 23)) + self.TS_checkBox.setObjectName("TS_checkBox") + self.TS_checkBox.setChecked(False) + self.TS_checkBox.hide() + + # Time Shift label + self.TS_time_shift = QtWidgets.QLabel(self.TimeShift) + self.TS_time_shift.setGeometry(QtCore.QRect(431, 100, 150, 40)) + self.TS_time_shift.setObjectName("TS_time_shift") + self.TS_time_shift.hide() + + # Applied label + self.TS_applied = QtWidgets.QLabel(self.TimeShift) + self.TS_applied.setGeometry(QtCore.QRect(600, 100, 150, 40)) + self.TS_applied.setObjectName("TS_applied") + self.TS_applied.hide() + + # Start_Time label + self.TS_start_time = QtWidgets.QLabel(self.TimeShift) + self.TS_start_time.setGeometry(QtCore.QRect(351, 125, 150, 40)) + self.TS_start_time.setObjectName("TS_start_time") + self.TS_start_time.hide() + # Start_Time textbox + self.TS_textEdit2 = QtWidgets.QTextEdit(self.TimeShift) + self.TS_textEdit2.setGeometry(QtCore.QRect(430, 135, 150, 20)) + self.TS_textEdit2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.TS_textEdit2.setAcceptRichText(False) + self.TS_textEdit2.hide() + + # End_Time label + self.TS_end_time = QtWidgets.QLabel(self.TimeShift) + self.TS_end_time.setGeometry(QtCore.QRect(358, 150, 150, 40)) + self.TS_end_time.setObjectName("TS_end_time") + self.TS_end_time.hide() + # End_Time textbox + self.TS_textEdit3 = QtWidgets.QTextEdit(self.TimeShift) + self.TS_textEdit3.setGeometry(QtCore.QRect(430, 160, 150, 20)) + self.TS_textEdit3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.TS_textEdit3.setAcceptRichText(False) + self.TS_textEdit3.hide() + + # Time_Shift_Sec label + self.TS_time_shift_sec = QtWidgets.QLabel(self.TimeShift) + self.TS_time_shift_sec.setGeometry(QtCore.QRect(324, 175, 150, 40)) + self.TS_time_shift_sec.setObjectName("TS_time_shift_sec") + self.TS_time_shift_sec.hide() + # Time_Shift_sec textbox + self.TS_textEdit4 = QtWidgets.QTextEdit(self.TimeShift) + self.TS_textEdit4.setGeometry(QtCore.QRect(430, 185, 150, 20)) + self.TS_textEdit4.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.TS_textEdit4.setAcceptRichText(False) + self.TS_textEdit4.hide() + + # Tag Time is Questionable label + self.TS_tt_questionable = QtWidgets.QLabel(self.TimeShift) + self.TS_tt_questionable.setGeometry(QtCore.QRect(257, 200, 165, 40)) + self.TS_tt_questionable.setObjectName("TS_tt_questionable") + self.TS_tt_questionable.hide() + # Tag Time is Questionable textbox + self.TS_textEdit5 = QtWidgets.QTextEdit(self.TimeShift) + self.TS_textEdit5.setGeometry(QtCore.QRect(430, 210, 150, 20)) + self.TS_textEdit5.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.TS_textEdit5.setAcceptRichText(False) + self.TS_textEdit5.hide() + + # Time Shift Tab - List Time Corrections button + self.TS_list_time_corrections_btn = QtWidgets.QPushButton(self.TimeShift) + self.TS_list_time_corrections_btn.setGeometry(QtCore.QRect(50, 368, 161, 25)) + self.TS_list_time_corrections_btn.setObjectName("TS_list_time_corrections_btn") + self.TS_list_time_corrections_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + + # Time Shift Tab - Apply Time Corrections button + self.TS_apply_time_correction_btn = QtWidgets.QPushButton(self.TimeShift) + self.TS_apply_time_correction_btn.setGeometry(QtCore.QRect(210, 368, 161, 25)) + self.TS_apply_time_correction_btn.setObjectName("TS_apply_time_correction_btn") + self.TS_apply_time_correction_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + # Time Shift Tab - Time Set button + self.TS_time_set_btn = QtWidgets.QPushButton(self.TimeShift) + self.TS_time_set_btn.setGeometry(QtCore.QRect(370, 368, 83, 25)) + self.TS_time_set_btn.setObjectName("TS_time_set_btn") + self.TS_time_set_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + # Time Shift Tab - Recalc Start/End button + self.TS_recalc_start_end_btn = QtWidgets.QPushButton(self.TimeShift) + self.TS_recalc_start_end_btn.setGeometry(QtCore.QRect(450, 368, 131, 25)) + self.TS_recalc_start_end_btn.setObjectName("TS_recalc_start_end_btn") + self.TS_recalc_start_end_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + # Time Shift Tab - Clear All button + self.TS_clear_all_btn = QtWidgets.QPushButton(self.TimeShift) + self.TS_clear_all_btn.setGeometry(QtCore.QRect(580, 368, 83, 25)) + self.TS_clear_all_btn.setObjectName("TS_clear_all_btn") + self.TS_clear_all_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:orange;" + "}") + + self.tabWidget.addTab(self.TimeShift, "") # end of tab + + ############################################################################################################# + + # ENDIANESS + + # Endianess Tab + self.Endianess = QtWidgets.QWidget() + self.Endianess.setObjectName("Endianess") + + # Endianess Tab -- Current Data Directories Frame + self.E_cdd_frame = QtWidgets.QFrame(self.Endianess) + self.E_cdd_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) + self.E_cdd_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.E_cdd_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.E_cdd_frame.setObjectName("E_cdd_frame") + + # Endianess Tab -- Current Data Directories Label + self.E_cdd_label = QtWidgets.QLabel(self.Endianess) + self.E_cdd_label.setGeometry(QtCore.QRect(8, 17, 170, 17)) + self.E_cdd_label.setObjectName("E_cdd_label") + + # Endianess Tab -- File Directory text + self.E_cdd_textEdit = QtWidgets.QTextEdit(self.Endianess) + self.E_cdd_textEdit.setGeometry(QtCore.QRect(183, 13, 522, 25)) + self.E_cdd_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.E_cdd_textEdit.setAcceptRichText(False) + self.E_cdd_textEdit.setObjectName("E_cdd_textEdit") + + # Endianess Tab -- Endian Files Found Frame + self.E_files_frame = QtWidgets.QFrame(self.Endianess) + self.E_files_frame.setGeometry(QtCore.QRect(-2, 53, 721, 73)) + self.E_files_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.E_files_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.E_files_frame.setObjectName("E_files_frame") + + # Endianess Tab -- Little Endian Files Found Label + self.E_little_label = QtWidgets.QLabel(self.Endianess) + self.E_little_label.setGeometry(QtCore.QRect(8, 65, 170, 17)) + self.E_cdd_label.setObjectName("E_little_label") + + # Endianess Tab -- Little Endian Files Found textbox + self.E_little_textEdit = QtWidgets.QTextEdit(self.Endianess) + self.E_little_textEdit.setGeometry(QtCore.QRect(180, 65, 70, 17)) + self.E_little_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.E_little_textEdit.setAcceptRichText(False) + self.E_little_textEdit.setObjectName("E_little_textEdit") + + # Endianess Tab -- Big Endian Files Found Label + self.E_big_label = QtWidgets.QLabel(self.Endianess) + self.E_big_label.setGeometry(QtCore.QRect(8, 95, 170, 17)) + self.E_big_label.setObjectName("E_big_label") + + # Endianess Tab -- Big Endian Files Found textbox + self.E_big_textEdit = QtWidgets.QTextEdit(self.Endianess) + self.E_big_textEdit.setGeometry(QtCore.QRect(180, 96, 70, 17)) + self.E_big_textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.E_big_textEdit.setAcceptRichText(False) + self.E_big_textEdit.setObjectName("E_big_textEdit") + + # Endianess Tab -- Convert to Big button + self.E_ctb_btn = QtWidgets.QPushButton(self.Endianess) + self.E_ctb_btn.setGeometry(QtCore.QRect(261, 61, 120, 25)) + self.E_ctb_btn.setObjectName("E_ctb_btn") + self.E_ctb_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + # Endianess Tab -- Convert to Little button + self.E_ctl_btn = QtWidgets.QPushButton(self.Endianess) + self.E_ctl_btn.setGeometry(QtCore.QRect(261, 93, 120, 25)) + self.E_ctl_btn.setObjectName("E_ctl_btn") + self.E_ctl_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + self.tabWidget.addTab(self.Endianess, "") # end of tab + + ############################################################################################################# + + # LOG + + # Log Tab + self.Log = QtWidgets.QWidget() + self.Log.setObjectName("Log") + + # # Log Tab -- top buttons frame + self.L_top_btns_frame = QtWidgets.QFrame(self.Log) + self.L_top_btns_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) + self.L_top_btns_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.L_top_btns_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.L_top_btns_frame.setObjectName("top_btns_frame") + + # # Log Tab -- Display Messages frame + self.L_display_frame = QtWidgets.QFrame(self.Log) + self.L_display_frame.setGeometry(QtCore.QRect(-2, 53, 721, 41)) + self.L_display_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.L_display_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.L_display_frame.setObjectName("L_display_frame") + + # Log Tab -- Print Update Dict button + self.L_print_update_dict_btn = QtWidgets.QPushButton(self.Log) + self.L_print_update_dict_btn.setGeometry(QtCore.QRect(350, 13, 141, 25)) + self.L_print_update_dict_btn.setObjectName("L_print_update_dict_btn") + self.L_print_update_dict_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234);; + } + QPushButton::hover{ + background-color:green; + } + """) + + # Log Tab -- Save Log File button + self.L_save_log_file_btn = QtWidgets.QPushButton(self.Log) + self.L_save_log_file_btn.setGeometry(QtCore.QRect(490, 13, 111, 25)) + self.L_save_log_file_btn.setObjectName("L_save_log_file_btn") + self.L_save_log_file_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:green;" + "}") + + # Log Tab -- Clear Logs button + self.L_clear_logs_btn = QtWidgets.QPushButton(self.Log) + self.L_clear_logs_btn.setGeometry(QtCore.QRect(600, 13, 101, 25)) + self.L_clear_logs_btn.setObjectName("L_clear_logs_btn") + self.L_clear_logs_btn.setStyleSheet("QPushButton::hover" + "{" + "background-color:rgb(165, 29, 45);" + "}") + + # Log Tab -- Display Messages label + self.L_display_messages_for_label = QtWidgets.QLabel(self.Log) + self.L_display_messages_for_label.setGeometry(QtCore.QRect(8, 65, 151, 17)) + self.L_display_messages_for_label.setObjectName("L_display_messages_for_label") + + # Log Tab -- All radio button + self.L_all_rbtn = QtWidgets.QRadioButton(self.Log) + self.L_all_rbtn.setGeometry(QtCore.QRect(170, 64, 41, 23)) + self.L_all_rbtn.setObjectName("L_all_rbtn") + self.L_all_rbtn.setChecked(True) + + # Log Tab -- Header radio button + self.L_header_rbtn = QtWidgets.QRadioButton(self.Log) + self.L_header_rbtn.setGeometry(QtCore.QRect(220, 64, 71, 23)) + self.L_header_rbtn.setObjectName("L_header_rbtn") + + # Log Tab -- Timing radio button + self.L_timing_rbtn = QtWidgets.QRadioButton(self.Log) + self.L_timing_rbtn.setGeometry(QtCore.QRect(300, 64, 71, 23)) + self.L_timing_rbtn.setObjectName("L_timing_rbtn") + + # Log Tab -- Endian radio button + self.L_endian_rbtn = QtWidgets.QRadioButton(self.Log) + self.L_endian_rbtn.setGeometry(QtCore.QRect(380, 64, 71, 23)) + self.L_endian_rbtn.setObjectName("L_endian_rbtn") + + # Log Tab -- Log Message Window + self.L_textBrowser = QtWidgets.QTextBrowser(self.Log) + self.L_textBrowser.setGeometry(QtCore.QRect(30, 100, 661, 296)) + font = QtGui.QFont() + font.setFamily("DejaVu Sans") + self.L_textBrowser.setFont(font) + self.L_textBrowser.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.L_textBrowser.setObjectName("L_textBrowser") + + + self.tabWidget.addTab(self.Log, "") # end of tab + + ############################################################################################################# + + # HELP + + # Help Tab + self.Help = QtWidgets.QWidget() + self.Help.setObjectName("Help") + + # Template Format popup window + self.popup = QtWidgets.QMainWindow() + self.popup.setWindowTitle("Template Format") + self.popup.resize(750, 480) + self.popup.setObjectName("popup") + self.popup_textBrowser = QtWidgets.QTextBrowser(self.popup) + self.popup_textBrowser.setGeometry(QtCore.QRect(26, 25, 700, 400)) + self.popup_textBrowser.setObjectName("textBrowser") + self.done_btn = QtWidgets.QPushButton(self.popup) + self.done_btn.setGeometry(QtCore.QRect(340, 440, 83, 25)) + self.done_btn.setObjectName("done_btn") + self.done_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234); + } + QPushButton::hover{ + background-color:rgb(165, 29, 45); + } + """) + self.done_btn.clicked.connect(self.popup.close) + self.popup.hide() + + # Help Tab - Template Format button + self.H_template_format_btn = QtWidgets.QPushButton(self.Help) + self.H_template_format_btn.setGeometry(QtCore.QRect(570, 10, 131, 25)) + self.H_template_format_btn.setObjectName("H_template_format_btn") + self.H_template_format_btn.setStyleSheet(""" + QPushButton{ + background-color:rgb(98, 160, 234); + } + QPushButton::hover{ + background-color:green; + } + """) + self.H_template_format_btn.clicked.connect(self.template_format_window) + + self.H_textBrowser = QtWidgets.QTextBrowser(self.Help) + self.H_textBrowser.setGeometry(QtCore.QRect(30, 46, 661, 325)) + font = QtGui.QFont() + font.setFamily("DejaVu Sans") + self.H_textBrowser.setFont(font) + self.H_textBrowser.setAcceptRichText(True) + self.H_textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.CursorShape.SizeVerCursor)) + self.H_textBrowser.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.H_textBrowser.setObjectName("H_textBrowser") + + self.tabWidget.addTab(self.Help, "") # end of tab + + ############################################################################################################# + + # MSEED format + + # MSEED format Tab + self.MSEEDformat = QtWidgets.QWidget() + self.MSEEDformat.setObjectName("MSEEDformat") + + # textbox + self.M_textBrowser = QtWidgets.QTextBrowser(self.MSEEDformat) + self.M_textBrowser.setGeometry(QtCore.QRect(30, 30, 661, 341)) + font = QtGui.QFont() + font.setFamily("DejaVu Sans") + self.M_textBrowser.setFont(font) + self.M_textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.CursorShape.SizeVerCursor)) + self.M_textBrowser.setObjectName("M_textBrowser") + + self.tabWidget.addTab(self.MSEEDformat, "") # end of tab - # LOG - - # Log Tab - self.Log = QtWidgets.QWidget() - self.Log.setObjectName("Log") - - # # Log Tab -- top buttons frame - self.L_top_btns_frame = QtWidgets.QFrame(self.Log) - self.L_top_btns_frame.setGeometry(QtCore.QRect(-2, 5, 721, 41)) - self.L_top_btns_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.L_top_btns_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.L_top_btns_frame.setObjectName("top_btns_frame") - - # # Log Tab -- Display Messages frame - self.L_display_frame = QtWidgets.QFrame(self.Log) - self.L_display_frame.setGeometry(QtCore.QRect(-2, 53, 721, 41)) - self.L_display_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.L_display_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.L_display_frame.setObjectName("L_display_frame") - - # Log Tab -- Print Update Dict button - self.L_print_update_dict_btn = QtWidgets.QPushButton(self.Log) - self.L_print_update_dict_btn.setGeometry(QtCore.QRect(350, 13, 141, 25)) - self.L_print_update_dict_btn.setObjectName("L_print_update_dict_btn") - self.L_print_update_dict_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234);; - } - QPushButton::hover{ - background-color:green; - } - """) - - # Log Tab -- Save Log File button - self.L_save_log_file_btn = QtWidgets.QPushButton(self.Log) - self.L_save_log_file_btn.setGeometry(QtCore.QRect(490, 13, 111, 25)) - self.L_save_log_file_btn.setObjectName("L_save_log_file_btn") - self.L_save_log_file_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:green;" - "}") - - # Log Tab -- Clear Logs button - self.L_clear_logs_btn = QtWidgets.QPushButton(self.Log) - self.L_clear_logs_btn.setGeometry(QtCore.QRect(600, 13, 101, 25)) - self.L_clear_logs_btn.setObjectName("L_clear_logs_btn") - self.L_clear_logs_btn.setStyleSheet("QPushButton::hover" - "{" - "background-color:rgb(165, 29, 45);" - "}") + ############################################################################################################# - # Log Tab -- Display Messages label - self.L_display_messages_for_label = QtWidgets.QLabel(self.Log) - self.L_display_messages_for_label.setGeometry(QtCore.QRect(8, 65, 151, 17)) - self.L_display_messages_for_label.setObjectName("L_display_messages_for_label") - - # Log Tab -- All radio button - self.L_all_rbtn = QtWidgets.QRadioButton(self.Log) - self.L_all_rbtn.setGeometry(QtCore.QRect(170, 64, 41, 23)) - self.L_all_rbtn.setObjectName("L_all_rbtn") - self.L_all_rbtn.setChecked(True) - - # Log Tab -- Header radio button - self.L_header_rbtn = QtWidgets.QRadioButton(self.Log) - self.L_header_rbtn.setGeometry(QtCore.QRect(220, 64, 71, 23)) - self.L_header_rbtn.setObjectName("L_header_rbtn") - - # Log Tab -- Timing radio button - self.L_timing_rbtn = QtWidgets.QRadioButton(self.Log) - self.L_timing_rbtn.setGeometry(QtCore.QRect(300, 64, 71, 23)) - self.L_timing_rbtn.setObjectName("L_timing_rbtn") + # PopUp Help Check box + self.checkBox = QtWidgets.QCheckBox(Window) + self.checkBox.setGeometry(QtCore.QRect(10, 459, 101, 23)) + self.checkBox.setObjectName("checkBox") + self.checkBox.setToolTip("Toggles 'PopUp Help' on and off") + self.checkBox.clicked.connect(self.click_help_popup) + + ############################################################################################################# - # Log Tab -- Endian radio button - self.L_endian_rbtn = QtWidgets.QRadioButton(self.Log) - self.L_endian_rbtn.setGeometry(QtCore.QRect(380, 64, 71, 23)) - self.L_endian_rbtn.setObjectName("L_endian_rbtn") - - # Log Tab -- Log Message Window - self.L_textBrowser = QtWidgets.QTextBrowser(self.Log) - self.L_textBrowser.setGeometry(QtCore.QRect(30, 100, 661, 296)) - font = QtGui.QFont() - font.setFamily("DejaVu Sans") - self.L_textBrowser.setFont(font) - self.L_textBrowser.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.L_textBrowser.setObjectName("L_textBrowser") + # calls retranslateUi - - self.tabWidget.addTab(self.Log, "") - - -############################################################################################################# - - # HELP - - # Help Tab - self.Help = QtWidgets.QWidget() - self.Help.setObjectName("Help") - - # Template Format popup window - self.popup = QtWidgets.QMainWindow() - self.popup.setWindowTitle("Template Format") - self.popup.resize(750, 480) - self.popup.setObjectName("popup") - self.popup_textBrowser = QtWidgets.QTextBrowser(self.popup) - self.popup_textBrowser.setGeometry(QtCore.QRect(26, 25, 700, 400)) - self.popup_textBrowser.setObjectName("textBrowser") - self.done_btn = QtWidgets.QPushButton(self.popup) - self.done_btn.setGeometry(QtCore.QRect(340, 440, 83, 25)) - self.done_btn.setObjectName("done_btn") - self.done_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234); - } - QPushButton::hover{ - background-color:rgb(165, 29, 45); - } - """) - self.done_btn.clicked.connect(self.popup.close) - self.popup.hide() - - # Help Tab - Template Format button - self.H_template_format_btn = QtWidgets.QPushButton(self.Help) - self.H_template_format_btn.setGeometry(QtCore.QRect(570, 10, 131, 25)) - self.H_template_format_btn.setObjectName("H_template_format_btn") - self.H_template_format_btn.setStyleSheet(""" - QPushButton{ - background-color:rgb(98, 160, 234); - } - QPushButton::hover{ - background-color:green; - } - """) - self.H_template_format_btn.clicked.connect(self.template_format_window) - - self.H_textBrowser = QtWidgets.QTextBrowser(self.Help) - self.H_textBrowser.setGeometry(QtCore.QRect(30, 46, 661, 325)) - font = QtGui.QFont() - font.setFamily("DejaVu Sans") - self.H_textBrowser.setFont(font) - self.H_textBrowser.setAcceptRichText(True) - self.H_textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.CursorShape.SizeVerCursor)) - self.H_textBrowser.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.H_textBrowser.setObjectName("H_textBrowser") - - self.tabWidget.addTab(self.Help, "") - - -############################################################################################################# - - # MSEED format - - # MSEED format Tab - self.MSEEDformat = QtWidgets.QWidget() - self.MSEEDformat.setObjectName("MSEEDformat") - self.M_textBrowser = QtWidgets.QTextBrowser(self.MSEEDformat) - self.M_textBrowser.setGeometry(QtCore.QRect(30, 30, 661, 341)) - font = QtGui.QFont() - font.setFamily("DejaVu Sans") - self.M_textBrowser.setFont(font) - self.M_textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.CursorShape.SizeVerCursor)) - self.M_textBrowser.setObjectName("M_textBrowser") - self.tabWidget.addTab(self.MSEEDformat, "") - - - -############################################################################################################# - - - - # PopUp Help Check box - self.checkBox = QtWidgets.QCheckBox(Window) - self.checkBox.setGeometry(QtCore.QRect(10, 459, 101, 23)) - self.checkBox.setObjectName("checkBox") - self.checkBox.setToolTip("Toggles 'PopUp Help' on and off") - #self.checkBox.setChecked(True) - self.checkBox.clicked.connect(self.click_help_popup) - + self.retranslateUi(Window) + self.tabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(Window) -############################################################################################################# - - - - # calls retranslateUi - - self.retranslateUi(Window) - self.tabWidget.setCurrentIndex(0) - QtCore.QMetaObject.connectSlotsByName(Window) - - - -############################################################################################################# - - - def retranslateUi(self, Window): - _translate = QtCore.QCoreApplication.translate - Window.setWindowTitle(_translate("Window", "fixhdr " + VERSION)) - - self.load_template_btn.setText(_translate("Window", "Load Template")) - self.save_template_btn.setText(_translate("Window", "Save Template")) - self.exit_btn.setText(_translate("Window", "Exit")) - - # Trace Headers Tab - - self.stat_chan.setText(_translate("Window", "Stat:Chan:Loc:Net:Sps:")) - self.stat_name.setText(_translate("Window", "Station_name")) - self.channel.setText(_translate("Window", "Channel")) - self.loc_code.setText(_translate("Window", "Location_Code")) - self.net_code.setText(_translate("Window", "Network_Code")) - self.smpl_rt.setText(_translate("Window", "Sample_Rate")) - self.new_val.setText(_translate("Window", "New Values")) - self.applied.setText(_translate("Window", "Applied")) - self.TH_list_traces_btn.setText(_translate("Window", "List Traces")) - self.TH_dismiss_btn.setText(_translate("TH_popup", "Dismiss")) - self.TH_clear_update_dictionary_btn.setText(_translate("Window", "Clear Update Dictionary")) - self.TH_clear_current_btn.setText(_translate("Window", "Clear Current")) - self.TH_modify_headers_btn.setText(_translate("Window", "Modify Headers")) - self.TH_data_directories_label.setText(_translate("Window", "Data Directories:")) - self.textEdit.setText(_translate("Window", "" + DIRECTORY)) - self.TH_fos_label.setText(_translate("Window", "Find only stations (colon separated list):")) - self.TH_build_trace_btn.setText(_translate("Window", "Build Trace db")) - self.TH_find_btn.setText(_translate("Window", "Find")) - self.TH_clear_btn.setText(_translate("Window", "Clear")) - self.TH_clear_2_btn.setText(_translate("Window", "Clear")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.TraceHeaders), _translate("Window", "Trace Headers")) - - # Global Modify Tab - self.GM_cdd_label.setText(_translate("Window", "Current Data Directories:")) - self.GM_cdd_textEdit.setText(_translate("Window", "" + DIRECTORY)) - self.GM_for_headers_matching.setText(_translate("Window", "For Headers Matching:")) - self.GM_sub_values.setText(_translate("Window", "Substitute Values:")) - self.GM_stat_name.setText(_translate("Window", "Station_Name")) - self.GM_channel.setText(_translate("Window", "Channel")) - self.GM_loc_code.setText(_translate("Window", "Location_Code")) - self.GM_net_code.setText(_translate("Window", "Network_Code")) - self.GM_smpl_rt.setText(_translate("Window", "Sample_Rate")) - self.GM_global_set_btn.setText(_translate("Window", "Global Set")) - self.GM_clear_current_btn.setText(_translate("Window", "Clear Current")) - self.GM_clear_update_dictionary_btn.setText(_translate("Window", "Clear Update Dictionary")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.GlobalModify), _translate("Window", "Global Modify")) - - # Time Shift Tab - self.TS_cdd_label.setText(_translate("Window", "Current Data Directories:")) - self.TS_textEdit.setText(_translate("Window", "" + DIRECTORY)) - self.TS_ec_label.setText(_translate("Window", "How to Treat Existing Corrections:")) - self.TS_add_to_rbtn.setText(_translate("Window", "Add To")) - self.TS__replace_rbtn.setText(_translate("Window", "Replace")) - self.TS_undo_tc_btn.setText(_translate("Window", "Undo Time Corrections")) - - self.TS_stat_loc_net.setText(_translate("Window", "Stat:Loc:Net")) - self.TS_for_traces_matching.setText(_translate("Window", "For Traces Matching:")) - self.TS_checkBox.setText(_translate("Window", "Wildcard Location Code")) - self.TS_time_shift.setText(_translate("Window", "Time Shift:")) - self.TS_start_time.setText(_translate("Window", "Start_Time")) - self.TS_end_time.setText(_translate("Window", "End_Time")) - self.TS_time_shift_sec.setText(_translate("Window", "Time_Shift_sec")) - self.TS_tt_questionable.setText(_translate("Window", "Time Tag is questionable:")) - self.TS_applied.setText(_translate("Window", "Applied")) - - self.TS_list_time_corrections_btn.setText(_translate("Window", "List Time Corrections")) - self.TS_apply_time_correction_btn.setText(_translate("Window", "Apply Time Correction")) - self.TS_time_set_btn.setText(_translate("Window", "Time Set")) - self.TS_recalc_start_end_btn.setText(_translate("Window", "Recalc Start/End")) - self.TS_clear_all_btn.setText(_translate("Window", "Clear All")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.TimeShift), _translate("Window", "Time Shift")) - - # Endianess Tab - self.tabWidget.setTabText(self.tabWidget.indexOf(self.Endianess), _translate("Window", "Endianess")) - self.E_cdd_textEdit.setText(_translate("Window", "" + DIRECTORY)) - self.E_cdd_label.setText(_translate("Window", "Current Data Directories:")) - self.E_little_label.setText(_translate("Window", "Little Endian Files Found:")) - self.E_big_label.setText(_translate("Window", "Big Endian Files Found:")) - self.E_little_textEdit.setText(_translate("Window", "0")) - self.E_big_textEdit.setText(_translate("Window", "0")) - self.E_ctb_btn.setText(_translate("Window", "Convert to Big")) - self.E_ctl_btn.setText(_translate("Window", "Convert to Little")) - - # Log Tab - self.L_print_update_dict_btn.setText(_translate("Window", "Print Update Dict")) - self.L_save_log_file_btn.setText(_translate("Window", "Save Log File")) - self.L_clear_logs_btn.setText(_translate("Window", "Clear Logs")) - self.L_display_messages_for_label.setText(_translate("Window", "Display messages for:")) - self.L_all_rbtn.setText(_translate("Window", "All")) - self.L_header_rbtn.setText(_translate("Window", "Header")) - self.L_timing_rbtn.setText(_translate("Window", "Timing")) - self.L_endian_rbtn.setText(_translate("Window", "Endian")) - self.L_textBrowser.setText(_translate("Window", "")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.Log), _translate("Window", "Log")) - - # Help Tab - self.H_template_format_btn.setText(_translate("Window", "Template Format")) - self.done_btn.setText(_translate("popup", "Done")) - - self.popup_textBrowser.setHtml(_translate("popup", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" -"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" -"p, li { white-space: pre-wrap; }\n" -"</style></head><body style=\" font-family:\'Fira Sans Semi-Light\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">The Template file consists of two lists: <span style=\" color:#a51d2d;\">hdrlist</span> and <span style=\" color:#a51d2d;\">timelist</span>. </p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">These lists are delimmited by \'{}\'. Comments are allowed in the template file and are denoted by a \'#\' in the first column.</p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For the <span style=\" color:#a51d2d;\">hdrlist</span> the columns are:</p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">stat:chan:loc:net:sps stat:chan:loc:net</p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For the <span style=\" color:#a51d2d;\">timelist</span> the columns are:</p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">sta:loc:net Start_time End_Time Shift(s) Time_Tag Corr_type</p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">sta:loc:net yyyy:ddd:hh:mm:ss yyyy:ddd:hh:mm:ss float/NA set/unset/Na add/replace/NA</p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">EXAMPLE:</p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # Header Changes</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # stat:chan:loc:net:sps stat:chan:loc:net</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> hdrlist{</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 01053:1C4::XX:40.0 SITE:BHZ::PI</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 01053:1C5::XX:40.0 SITE:BHN::PI</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 01053:1C6::XX:40.0 SITE:BHE::PI</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> }</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> </span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # Timing Corrections</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # sta:loc:net Start_Time End_Time Shifts(s) Time_Tag Corr_Type </span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # sta:loc:net yyyy:ddd:hh:mm:ss yyyy:ddd:hh:mm:ss float/NA set/unset/NA add/replace/Na</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> timelist{</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 9294::SS 2005:304:00:00:00 2005:305:22:15:10 0.56 set add</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> }</span></p></body></html>")) - - - self.H_textBrowser.setHtml(_translate("Window", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" -"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" -"p, li { white-space: pre-wrap; }\n" -"</style></head><body style=\" font-family:\'DejaVu Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">NAME</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">fixhdr - a GUI to modify mseed header fields (\'Station Name\', \'Channel\', \'Location Code\', and \'Network Code\'), to apply time shifts and to convert header endianess.</p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">VERSION</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">2022.1.0.0</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">SYNOPSIS</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr -#</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr -h</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr [-d DataDirs] [-m batch_file] [-t batch_file] [-e endianess]</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">OPTIONS</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-# returns version number</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-h returns usage</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-d DataDirs colon separated list of data directories [default: cwd]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-m batch_file correct mseed headers in batch mode using batch_file</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-t batch_file correct trace timing in batch mode using batch_file</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-e endianess convert trace headers to endianess [big or little]</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">NOTE: -m, -t, & -e are mutually exclusive. If you wish to do both timing and headers, run time corrections fist.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">DESCRIPTION</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr has seven notebooks: </span><span style=\" color:#26a269;\">[Trace Headers]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Global Modify]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Time Shift]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Endianess]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Log]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Help]</span><span style=\" color:#000000;\">, and </span><span style=\" color:#26a269;\">[MSEED format]</span><span style=\" color:#000000;\">. </span><span style=\" color:#26a269;\">[Trace Headers]</span><span style=\" color:#000000;\"> and </span><span style=\" color:#26a269;\">[Global Modify]</span><span style=\" color:#000000;\"> provide a means to read and modify mseed header fields (station, channel, location code, and network code) for files found beneath a specified directory list. </span><span style=\" color:#26a269;\">[Time Shift]</span><span style=\" color:#000000;\"> allows the user to apply a bulk time shift to traces that fall between a start and end time and to set a header flag indicating that the time tag is questionable. </span><span style=\" color:#26a269;\">[Endianess] </span><span style=\" color:#000000;\">converts traces between little and big, or big and little endian headers. The </span><span style=\" color:#26a269;\">[Log]</span><span style=\" color:#000000;\"> notebook maintains records of key events.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Root window]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Load Template></span><span style=\" color:#000000;\">: loads a previously saved or user created mapping of header and timing modification that then can be applied.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Save Template></span><span style=\" color:#000000;\">: saves a map of all header and timing modifications.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Exit></span><span style=\" color:#000000;\">: Exits fixhdr and will query if not all mappings in Update_Dictionary have been applied.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Trace Headers]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> specify/load directories for header investigation/modifications</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> manipulate/edit individual <sta><chn><loc><net> entries for loaded headers</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> modify trace headers as specified in the "New Value" column for _ALL_ loaded headers</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> store and recall header modification templates</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Build Trace db></span><span style=\" color:#000000;\">: Searches the directories listed in the "Data-Directories" entry box (a colon separated list) and builds a list of mseed files found indexing them on unique values of <sta><chn><loc><net><sps>. You can narrow your search by entering stations in the "Find Only Stations" entry box (a colon separated file).</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Find></span><span style=\" color:#000000;\">: Launches a file browser allowing the user to add directories to the "Data Directories" entry box. Double clicking selects the new directory.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear></span><span style=\" color:#000000;\">: Clears the "Data Directories" entry box.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><List Traces></span><span style=\" color:#000000;\">: Lists all traces for the selected Sta:Chan:Loc:Net:Sps.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Modify Headers></span><span style=\" color:#000000;\">: Applies all current values in the Update_Dictionary (that can be viewed in the [Log] notebook) to the current trace list that was built using </span><span style=\" color:#a51d2d;\"><Clear Current></span><span style=\" color:#000000;\">: clears all entries in the Update_Dictionary and display for the currently selected sta:chan:loc:net:sps that have not been applied.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear All></span><span style=\" color:#000000;\">: clears all entries in the Update_Dictionary that have not been applied.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Global Modify]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> specify header values in "For Headers Matching:" column, using drop-down menus. Wildcards are allowed and are the default.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> enter new header values in "Substitute Values:"</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Global Set></span><span style=\" color:#000000;\">: inserts the values in "Substitute Values" into the "Update_Dictionary using For Headers Matching" entries to determine which <sta><chn><loc><net><sps> to modify. This only creates entries in the dictionary and does NOT apply them to the mseed headers. You must use </span><span style=\" color:#26a269;\">[Trace Headers]</span><span style=\" color:#000000;\">-></span><span style=\" color:#a51d2d;\"><Modify Headers></span><span style=\" color:#000000;\"> to apply these updates. </span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear All></span><span style=\" color:#000000;\">: clears all current entries. This does not affect the Update_Dictionary.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Time Shift]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> specify header values in "For Traces Matching:" column, using drop-down menus. Once selected first and last sample times will be displayed. The start and end time can be changed.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> enter time in seconds to be added to the blockette start times in then "Time_Shift_sec" window.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>>"Time Tag is questionable" allows you to flip a bit in the Data Quality flags in the mseed file\'s Fixed Section of Data Header</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> "Applied" indicators notify a user when corrections have been applied in this instance of fixhdr. </span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><How to Treat Existing Correction></span><span style=\" color:#000000;\">: you can choose to either add to any correction listed in the Fixed Header or Replace any existing correction with the one entered.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Undo Time Corrections></span><span style=\" color:#000000;\">: Allows user to un-apply previously applied timing corrections. Note: Use with caution. This will only remove single and cumulative corrections. Review \'List Time Corrections\' to better understand corrections already applied to trace headers.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><List Time Corrections></span><span style=\" color:#000000;\">: Displays time corrections doe traces matching the selected Stat:Loc:Net key.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Apply Time Correction></span><span style=\" color:#000000;\">: Applies updates from <List Time Corrections>.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Time Set></span><span style=\" color:#000000;\">: Allows user to build a dictionary of timing corrections to be applied with the "Apply Time Corrections" button. ie. timing corrections for multiple Stat:Loc:Net selections can be set prior to applying in a single instance.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Recalc Start/End></span><span style=\" color:#000000;\">: resets the start and end times from the trace headers. The first time a trace is read in the start and end times are cached for future use. If you change these times, this button is used to update the cache and display.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear All></span><span style=\" color:#000000;\">: clears all current entries.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Endianess]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> displays the number of big and little endian files found. Allows user to convert between big and little endian headers.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Convert to Big></span><span style=\" color:#000000;\">: Converts header from little to big endian</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Convert to Little></span><span style=\" color:#000000;\">: Converts headers from big to little endian</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Log]</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:<br />>> displays key events (e.g. "Build Trace db", "Modify Headers", etc). Radio buttons allow you to select all log messages or window only those messages related to Header events, Time events, or changes in endianess.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Dump UpdateHdrDict></span><span style=\" color:#000000;\">: Dumps the current values in the Update_Dictionary and indicates whether or not they have been applied (i.e. <Modify Headers> has been run).</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Save Log File></span><span style=\" color:#000000;\">: Saves text window to an output file.</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear Log File></span><span style=\" color:#000000;\">: Clears text window and flushes buffer.</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">KEYWORDS</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">mseed; header information; header modification</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">SEE ALSO</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">mseedhdr & SEED manual</span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">AUTHOR</span></p>\n" -"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Bruce Beaudoin <bruce@passcal.nmt.edu></span></p>\n" -"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>")) - self.H_textBrowser.setPlaceholderText(_translate("Window", "Testing")) - - self.tabWidget.setTabText(self.tabWidget.indexOf(self.Help), _translate("Window", "Help")) - - # MSEED format Tab - self.M_textBrowser.setText(_translate("Window", """ - Appendix A From "SEED Reference Manual, v2.3, Feb. 1993: - Channel Naming - Contributed by Scott Halbert - - - Seismologists have used many conventions for naming channels. - Usually, these conventions are designed to meet the particular - needs of one network. But general recording systems - such as the - various Global Seismographic Network (GSN) systems that can - record many channels at high sample rates - create a need for a - standard to handle the variety of instruments that can be - recorded. Modern instrumentation and the need for conformity - among cooperating networks have greatly complicated the problem. - Sensors are available in narrow band and broadband configurations - with pass bands in very different parts of the spectrum of - interest. Each sensor may have several different outputs with - different spectral shaping. In addition, station processors often - derive several data streams from one sensor channel by digital - filtering. These possibilities require a comprehensive - convention. The desire to combine data from cooperating networks - and to search for like channels automatically requires - standardization. The SEED format uses three letters to name - seismic channels, and three letters to name weather or - environmental channels. In the following convention, each letter - describes one aspect of the instrumentation and its digitization. - SEED does not require this convention, but we recommend it as a - usage standard for Federation members to facilitate data - exchange. - - Band Code - The first letter specifies the general sampling rate and the - response band of the instrument. (The "A" code is reserved for - administrative functions such as miscellaneous state of health.) - Band code Band type Sample rate (Hz) Corner period (sec) - E Extremely Short Period >= 80 < 10 sec - S Short Period >= 10 to < 80 < 10 sec - H High Broad Band >= 80 >= 10 sec - B Broad Band >= 10 to < 80 >= 10 sec - M Mid Period > 1 to < 10 - L Long Period ~ 1 - V Very Long Period ~ 0.1 - U Ultra Long Period ~ 0.01 - R Extremely Long Period ~ 0.001 - A Administrative - W Weather/Environmental - X Experimental - - - Instrument Code and Orientation Code - The second letter specifies the family to which the sensor - belongs. The third letter specifies the physical configuration of - the members of a multiple axis instrument package or other - parameters as specified for each instrument. - - Seismometer: Measures displacement/velocity/acceleration along a - line defined by the dip and azimuth. - Instrument Code - H High Gain Seismometer - L Low Gain Seismometer - G Gravimeter - M Mass Position Seismometer - N* Accelerometer - *historically some channels from accelerometers have used - instrumentation codes of L and G. The use of N is the FDSN - convention as defined in August 2000. - Orientation Code - Z N E Traditional (Vertical, North-South, East-West) - A B C Triaxial (Along the edges of a cube turned up on a corner) - T R For formed beams (Transverse, Radial) - 1 2 3 Orthogonal components but non traditional orientations - U V W Optional components - Dip/Azimuth: Ground motion vector (reverse dip/azimuth - if signal polarity incorrect) - Signal Units: M, M/S, M/S**2, (for G & M) M/S**2 (usually) - Channel Flags: G - - Tilt Meter: Measures tilt from the horizontal plane. Azimuth is - typically N/S or E/W. - Instrument Code - A - Orientation Code - N E Traditional - Dip/Azimuth: Ground motion vector (reverse dip/azimuth - if signal polarity incorrect) - Signal Units: Radians - Channel Flags: G - - Creep Meter: Measures the absolute movement between two sides of - a fault by means of fixing a metal beam on one side of the fault - and measuring its position on the other side. This is also done - with light beams. - The orientation and therefore the dip and azimuth would be - perpendicular to the measuring beam (light or metal), which would - be along the average travel vector for the fault. - Positive/Negative travel would be arbitrary, but would be noted - in the dip/azimuth. Another type of Creep Meter involves using a - wire that is stretched across the fault. Changes in wire length - are triangulated to form movement vector. - Instrument Code - B - Orientation Code - Unknown - Dip/Azimuth: Along the fault or wire vector - Signal Units: M - Channel Flags: G - - Calibration Input: Usually only used for seismometers or other - magnetic coil instruments. This signal monitors the input signal - to the coil to be used in response evaluation. Usually tied to a - specific instrument. Sometimes all instruments are calibrated - together, sometimes horizontals are done separately from - verticals. - Instrument Code - C - Orientation Code - A B C D... for when there are only a few cal sources for many devices. - Blank if there is only one calibrator at a time or, Match - Calibrated Channel (i.s. Z, N or E) - - Pressure: A barometer, or microbarometer measures pressure. Used - to measure the weather pressure or sometimes for state of health - monitoring down hole. This includes infrasonic and hydrophone - measurements. - Instrument Code - D - Orientation Code - O Outside - I Inside - D Down Hole - F Infrasound - H Hydrophone - U Underground - Dip/Azimuth: Not applicable - Should be zero. - Signal Units: Pa (Pascals) - Channel Flags: W or H - - Electronic Test Point: Used to monitor circuitry inside recording - system, local power or seismometer. Usually for power supply - voltages, or line voltages. - Instrument Code - E - Orientation code - Designate as desired, make mnemonic as possible, use numbers - for test points, etc. - Dip/Azimuth: Not applicableSignal Units: V, A, Hz, Etc. - Channel Flags: H - - Magnetometer: Measures the magnetic field where the instrument is - sitting. They measure the part of the field vector which is - aligned with the measurement coil. Many magnetometers are three - axis. The instrument will typically be oriented to local magnetic - north. The dip and azimuth should describe this in terms of the - geographic north. Example: Local magnetic north is 13 degrees - east of north in Albuquerque. So if the magnetometer is pointed - to magnetic north, the azimuth would be + 103 for the E channel. - Some magnetometers do not record any vector quantity associated - with the signal, but record the total intensity. So, these would - not have any dip/azimuth. - Instrument Code - F - Orientation Code - Z N E Magnetic - Signal Units: T - Teslas - Channel Flags: G - - Humidity: Absolute/Relative measurements of the humidity. - Temperature recordings may also be essential for meaningful - results. - Instrument Code - I - Orientation Code - O Outside Environment - I Inside Building - D Down Hole - 1 2 3 4 Cabinet Sources - All other letters available for mnemonic source types. - Dip/Azimuth: Not applicable - Should be zero. - Signal Units: % - Channel Flags: W - - Temperature: Measurement of the temperature at some location. - Typically used for measuring: - 1. Weather - Outside Temperature - 2. State of Health - Inside recording building - - Down hole - - Inside electronics - Instrument Code - K - Orientation Code - O Outside Environment - I Inside Building - D Down Hole - 1 2 3 4 Cabinet sources - All other letters available for mnemonic types. - Dip Azimuth: Not applicable - Should be zero. - Signal Units: deg C or deg K - Channel Flags: W or H - - Water Current: This measurement measures the velocity of water in - a given direction. The measurement may be at depth, within a - borehole, or a variety of other locations. - Instrument Code - O - Orientation Code - Unknown - Dip/Azimuth: Along current direction - Signal Units: M/S - Channel Flags: G - - Geophone: Very short period seismometer, with natural frequency 5 - - 10 Hz or higher. - Instrument Code - P - Orientation Code - Z N E Traditional - Dip/Azimuth: Ground Motion Vector (Reverse dip/azimuth - if signal polarity incorrect) - Signal Units: M, M/S, M/S - Channel Flags: G - - Electric Potential: Measures the Electric Potential between two - points. This is normally done using a high impedance voltmeter - connected to two electrodes driven into the ground. In the case - of magnetotelleuric work, this is one parameter that must be - measured. - Instrument Code - Q - Orientation Code - Unknown - Signal Units: V - Volts - Channel Flags: G - - Rainfall: Measures total rainfall, or an amount per sampling - interval. - Instrument Code - R - Orientation Code - Unknown - Dip/Azimuth: Not applicable - Should be zero. - Signal Units: M, M/S - Channel Flags: W - - Linear Strain: One typical application is to build a very - sensitive displacement measuring device, typically a long quartz - rod. One end is affixed to a wall. On the free end, a pylon from - the floor reaches up to the rod where something measures the - position of the pylon on the rod (like a large LVDT). There are - also some interferometry projects which measure distance with - lasers. Dip/Azimuth are the line of the movement being measured. - Positive values are obtained when stress/distance increases, - negative, when they decrease. - Instrument Code - S - Orientation Code - Z N E Vertical, North-South, East-West - Dip/Azimuth: Along axis of instrument - Signal Units: M/M - Channel Flags: G - - Tide : Not to be confused with lunar tidal filters or gravimeter - output. Tide instruments measure the depth of the water at the - monitoring site. - Instrument Code - T - Orientation Code - Z Always vertical - Dip/Azimuth: Always vertical - Signal Units: M - Relative to sea level or local ocean depth - Channel Flags: G - - Bolometer: Infrared instrument used to evaluate average cloud - cover. Used in astronomy to determine observability of sky. - Instrument Code - U - Orientation Code - Unknown - Dip/Azimuth: Not applicable - Should be zero. - . Signal Units: Unknown - Channel Flags: W - - Volumetric Strain: Unknown - Instrument Code - V - Orientation Code - Unknown - Dip/Azimuth: Not Applicable - Should be zero. - Signal Units: M**3/M**3 - Channel Flags: G - - Wind: Measures the wind vector or velocity. Normal notion of dip - and azimuth does not apply. - Instrument Code - W - Orientation Code - S Wind speed - D Wind Direction Vector - Relative to geographic North - Dip/Azimuth: Not Applicable - Should be zero. - Channel Flags: W - - Synthesized Beams: This is used when forming beams from - individual elements of an array. Refer to blockettes 35, 400, & - 405. - Instrument Code - Z - Orientation Code - I Incoherent Beam - C Coherent Beam - F FK Beam - O Origin Beam - Dip/Azimuth: Ground motion vector (reverse dip/azimuth - if signal polarity incorrect) - Signal Units: M, M/S, M/S**2, (for G & M) M/S**2 (usually) - Channel Flags: G - - - Channel Code - We suggest that two sequences be reserved for special channels - the "LOG" channel for the console log, and the "SOH" channel for - the main state of health channel. Subsidiary logs and state of - health channels should begin with the "A" code; the source and - orientation fields can then be used in any way. - - Here are some typical channel arrangements used by a GSN system: - Channel Description - EHZ/EHN/EHE Short Period 100 sps - BHZ/BHN/BHE Broad Band 20 sps - LHZ/LHN/LHE Long Period 1 sps - VHZ/VHN/VHE Very Long Period 0.1 sps - BCI Broad Band Calibration Signal - ECI Short Period Cal - LOG Console Log - - NOTE: Log Records: Log records has a channel identifier code of - "LOG" and a sample rate of zero. The number of samples field is - the number of characters in the record (including the carriage - return and line feed that terminates each line). Log messages are - packed into records until a message falls into a new minute. Log - records have no blockettes, so the strings start at offset - 48. - """)) - - self.tabWidget.setTabText(self.tabWidget.indexOf(self.MSEEDformat), _translate("Window", "MSEED format")) - - # PopUp Help Checkbox - self.checkBox.setText(_translate("Window", "PopUp Help")) - - -############################################################################################################# - - # function for quit button - def click_quit(self): - quit() - - - - # function for what happens when PopUp Help is checked/unchecked - def click_help_popup(self): - toggle = self.checkBox.isChecked() - - # if checked, tool tips are visible - if toggle == True: - - self.load_template_btn.setToolTip("Import saved header &\n" - "timing corrections file") - self.save_template_btn.setToolTip("Export saved header & timing corrections to file") - self.exit_btn.setToolTip("Exit program") - self.TH_data_directories_label.setToolTip("Search path(s) for finding mseed files.\n" - "Colon separate multiple entries.") - self.TH_build_trace_btn.setToolTip("Build a trace db using\n" - "'Data Directories' as\n" - "top level directories") - self.TH_find_btn.setToolTip("Dialogue window to\n" - "select Data Directories") - self.TH_clear_btn.setToolTip("Clears 'Data Directories' entry") - self.TH_clear_2_btn.setToolTip("Clear station filter") - self.fos_textEdit.setToolTip("Filter trace search\n" - "for these stations") - self.TH_list_traces_btn.setToolTip("List traces for selected Stat:Chan:Loc:Net:Sps") - self.TH_clear_update_dictionary_btn.setToolTip("Clear all updates in 'Update Dictionary'") - self.TH_clear_current_btn.setToolTip("Clears entries in 'Update Dictionary' for selected Stat:Chan:Loc:Net:Sps") - self.TH_modify_headers_btn.setToolTip("Modifies headers using current entries and all entries in 'Update Dictionary'") - self.GM_cdd_label.setToolTip("Traces located beneath these directories") - self.GM_global_set_btn.setToolTip("Add current entries to 'Update Dictionary'") - self.GM_clear_current_btn.setToolTip("Clears all current entries") - self.GM_clear_update_dictionary_btn.setToolTip("Clear all entries in 'Update Dictionary'") - self.TS_cdd_label.setToolTip("Traces located beneath these\n" - "directories") - self.TS_ec_label.setToolTip("When applying time corrections:\n" - "Add to existing or\n" - "Zero and replace existing") - self.TS_undo_tc_btn.setToolTip("Reverse applied time corrections") - self.TS_list_time_corrections_btn.setToolTip("List time corrections currently in trace headers for for select Stat:Loc:Net") - self.TS_apply_time_correction_btn.setToolTip("Modifies trace times using using current entries and all entries in 'Update Dictionary'") - self.TS_time_set_btn.setToolTip("Add current entries to 'Update Dictionary'") - self.TS_recalc_start_end_btn.setToolTip("Recalculate start and end times for selected traces") - self.TS_clear_all_btn.setToolTip("Clears all current entries") - self.E_cdd_label.setToolTip("Traces located beneath these directories") - self.E_ctb_btn.setToolTip("Convert all little endian files\n" - "to big endian") - self.E_ctl_btn.setToolTip("Convert all big endian files\n" - "to little endian") - self.L_print_update_dict_btn.setToolTip("Print 'Update Dictionary' to log message window") - self.L_save_log_file_btn.setToolTip("Save log messages to file") - self.L_clear_logs_btn.setToolTip("Delete all log messages") - self.L_display_messages_for_label.setToolTip("Filter log messages") - self.H_template_format_btn.setToolTip("Display example format for 'Template' file") - self.checkBox.setToolTip("Toggles 'PopUp Help' on and off") + ############################################################################################################# - # if unchecked, tool tips are invisible - if toggle == False: - - self.load_template_btn.setToolTip("") - self.save_template_btn.setToolTip("") - self.exit_btn.setToolTip("") - self.TH_data_directories_label.setToolTip("") - self.TH_build_trace_btn.setToolTip("") - self.TH_find_btn.setToolTip("") - self.TH_clear_btn.setToolTip("") - self.TH_clear_2_btn.setToolTip("") - self.fos_textEdit.setToolTip("") - self.TH_list_traces_btn.setToolTip("") - self.TH_clear_update_dictionary_btn.setToolTip("") - self.TH_clear_current_btn.setToolTip("") - self.TH_modify_headers_btn.setToolTip("") - self.GM_cdd_label.setToolTip("") - self.GM_global_set_btn.setToolTip("") - self.GM_clear_current_btn.setToolTip("") - self.GM_clear_update_dictionary_btn.setToolTip("") - self.TS_cdd_label.setToolTip("") - self.TS_ec_label.setToolTip("") - self.TS_undo_tc_btn.setToolTip("") - self.TS_list_time_corrections_btn.setToolTip("") - self.TS_apply_time_correction_btn.setToolTip("") - self.TS_time_set_btn.setToolTip("") - self.TS_recalc_start_end_btn.setToolTip("") - self.TS_clear_all_btn.setToolTip("") - self.E_cdd_label.setToolTip("") - self.E_ctb_btn.setToolTip("") - self.E_ctl_btn.setToolTip("") - self.L_print_update_dict_btn.setToolTip("") - self.L_save_log_file_btn.setToolTip("") - self.L_clear_logs_btn.setToolTip("") - self.L_display_messages_for_label.setToolTip("") - self.H_template_format_btn.setToolTip("") - self.checkBox.setToolTip("") - - - - # function for clear button in TRACE HEADERS - def click_TH_clear(self): - _translate = QtCore.QCoreApplication.translate - # clears all directory textEdits in TRACE HEADERS, - # GLOBAL MODIFY, TIME SHIFT, and ENDIANESS - self.textEdit.setText(_translate("Window", "")) - self.GM_cdd_textEdit.setText(_translate("Window", "")) - self.TS_textEdit.setText(_translate("Window", "")) - self.E_cdd_textEdit.setText(_translate("Window", "")) - - - - # function for 2nd clear button in TRACE HEADERS - def click_TH_clear_2(self): - _translate = QtCore.QCoreApplication.translate - # clears stations - self.fos_textEdit.setText(_translate("Window", "")) - - - - # function for pop up Template Format window in HELP - def template_format_window(self): - self.popup.show() - - - - # function for file dialogue/choosing directory to search for mseed files - def file_dialogue(self): - - # set timezone to UTC - os.environ['TZ'] = 'GMT' - time.tzname = ('GMT', 'GMT') - time.timezone = 0 - - # TODO: MAKE IT LIST MULTIPLE DIRECTORIES - self.search = QtWidgets.QFileDialog.getExistingDirectory() - - # if the user doesn't cancel the file directory popup: - # updates directory in Trace Headers, Global Modify, Time Shift, - # and Endianess - if (self.search != ""): + def retranslateUi(self, Window): _translate = QtCore.QCoreApplication.translate - - # adds newly selected directory to Trace Headers - self.textEdit.setText(_translate("Window", "" + self.search)) - # updates the other textEdits in Global Modify, Time Shift, and Endianess - self.GM_cdd_textEdit.setText(_translate("Window", "" + self.search)) - self.TS_textEdit.setText(_translate("Window", "" + self.search)) - self.E_cdd_textEdit.setText(_translate("Window", "" + self.search)) - - # scans chosen directory for mseed files - # NOTE: it's set to identify an mseed file if it ends in '.312' - # I'm not sure if this is true -- fix if false - dir = os.scandir(self.search) - for entry in dir: - if entry.is_file(): - if entry.name.endswith('.312'): - print(entry.name) - - - - - - # function for what happens when the button List Traces - # is clicked in TRACE HEADERS - def click_list_traces(self): - self.TH_popup.show() - - - - # function for what happens when the button Build Traces - # is clicked in TRACE HEADERS - def click_build_trace(self): - self.frame.show() - self.stat_chan.show() - self.stat_name.show() - self.channel.show() - self.loc_code.show() - self.net_code.show() - self.smpl_rt.show() - self.new_val.show() - self.textEdit1.show() - self.textEdit2.show() - self.textEdit3.show() - self.textEdit4.show() - self.textEdit5.show() - self.textEdit6.show() - self.new_val.show() - self.nv_textEdit1.show() - self.nv_textEdit2.show() - self.nv_textEdit3.show() - self.nv_textEdit4.show() - self.applied.show() - self.GM_h_frame.show() - self.GM_for_headers_matching.show() - self.GM_sub_values.show() - self.GM_stat_name.show() - self.GM_channel.show() - self.GM_loc_code.show() - self.GM_net_code.show() - self.GM_smpl_rt.show() - self.GM_textEdit1.show() - self.GM_textEdit2.show() - self.GM_textEdit3.show() - self.GM_textEdit4.show() - self.GM_textEdit5.show() - self.GM_textEdit6.show() - self.GM_textEdit7.show() - self.GM_textEdit8.show() - self.GM_textEdit9.show() - self.TS_frame.show() - self.TS_stat_loc_net.show() - self.TS_for_traces_matching.show() - self.TS_textEdit1.show() - self.TS_checkBox.show() - self.TS_time_shift.show() - self.TS_start_time.show() - self.TS_end_time.show() - self.TS_time_shift_sec.show() - self.TS_tt_questionable.show() - self.TS_textEdit2.show() - self.TS_textEdit3.show() - self.TS_textEdit4.show() - self.TS_textEdit5.show() - self.TS_applied.show() - - - -############################################################################################################# + Window.setWindowTitle(_translate("Window", "fixhdr " + VERSION)) + + # Global buttons + self.load_template_btn.setText(_translate("Window", "Load Template")) + self.save_template_btn.setText(_translate("Window", "Save Template")) + self.exit_btn.setText(_translate("Window", "Exit")) + + # Trace Headers Tab + self.stat_chan.setText(_translate("Window", "Stat:Chan:Loc:Net:Sps:")) + self.stat_name.setText(_translate("Window", "Station_Name")) + self.channel.setText(_translate("Window", "Channel")) + self.loc_code.setText(_translate("Window", "Location_Code")) + self.net_code.setText(_translate("Window", "Network_Code")) + self.smpl_rt.setText(_translate("Window", "Sample_Rate")) + self.new_val.setText(_translate("Window", "New Values")) + self.applied.setText(_translate("Window", "Applied")) + self.TH_list_traces_btn.setText(_translate("Window", "List Traces")) + self.TH_dismiss_btn.setText(_translate("TH_popup", "Dismiss")) + self.TH_clear_update_dictionary_btn.setText(_translate("Window", "Clear Update Dictionary")) + self.TH_clear_current_btn.setText(_translate("Window", "Clear Current")) + self.TH_modify_headers_btn.setText(_translate("Window", "Modify Headers")) + self.TH_data_directories_label.setText(_translate("Window", "Data Directories:")) + self.textEdit.setText(_translate("Window", "" + DIRECTORY)) + self.TH_fos_label.setText(_translate("Window", "Find only stations (colon separated list):")) + self.TH_build_trace_btn.setText(_translate("Window", "Build Trace db")) + self.TH_find_btn.setText(_translate("Window", "Find")) + self.TH_clear_btn.setText(_translate("Window", "Clear")) + self.TH_clear_2_btn.setText(_translate("Window", "Clear")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.TraceHeaders), _translate("Window", "Trace Headers")) + + # Global Modify Tab + self.GM_cdd_label.setText(_translate("Window", "Current Data Directories:")) + self.GM_cdd_textEdit.setText(_translate("Window", "" + DIRECTORY)) + self.GM_for_headers_matching.setText(_translate("Window", "For Headers Matching:")) + self.GM_sub_values.setText(_translate("Window", "Substitute Values:")) + self.GM_stat_name.setText(_translate("Window", "Station_Name")) + self.GM_channel.setText(_translate("Window", "Channel")) + self.GM_loc_code.setText(_translate("Window", "Location_Code")) + self.GM_net_code.setText(_translate("Window", "Network_Code")) + self.GM_smpl_rt.setText(_translate("Window", "Sample_Rate")) + self.GM_global_set_btn.setText(_translate("Window", "Global Set")) + self.GM_clear_current_btn.setText(_translate("Window", "Clear Current")) + self.GM_clear_update_dictionary_btn.setText(_translate("Window", "Clear Update Dictionary")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.GlobalModify), _translate("Window", "Global Modify")) + + # Time Shift Tab + self.TS_cdd_label.setText(_translate("Window", "Current Data Directories:")) + self.TS_textEdit.setText(_translate("Window", "" + DIRECTORY)) + self.TS_ec_label.setText(_translate("Window", "How to Treat Existing Corrections:")) + self.TS_add_to_rbtn.setText(_translate("Window", "Add To")) + self.TS__replace_rbtn.setText(_translate("Window", "Replace")) + self.TS_undo_tc_btn.setText(_translate("Window", "Undo Time Corrections")) + + self.TS_stat_loc_net.setText(_translate("Window", "Stat:Loc:Net")) + self.TS_for_traces_matching.setText(_translate("Window", "For Traces Matching:")) + self.TS_checkBox.setText(_translate("Window", "Wildcard Location Code")) + self.TS_time_shift.setText(_translate("Window", "Time Shift:")) + self.TS_start_time.setText(_translate("Window", "Start_Time")) + self.TS_end_time.setText(_translate("Window", "End_Time")) + self.TS_time_shift_sec.setText(_translate("Window", "Time_Shift_sec")) + self.TS_tt_questionable.setText(_translate("Window", "Time Tag is questionable:")) + self.TS_applied.setText(_translate("Window", "Applied")) + + self.TS_list_time_corrections_btn.setText(_translate("Window", "List Time Corrections")) + self.TS_apply_time_correction_btn.setText(_translate("Window", "Apply Time Correction")) + self.TS_time_set_btn.setText(_translate("Window", "Time Set")) + self.TS_recalc_start_end_btn.setText(_translate("Window", "Recalc Start/End")) + self.TS_clear_all_btn.setText(_translate("Window", "Clear All")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.TimeShift), _translate("Window", "Time Shift")) + + # Endianess Tab + self.tabWidget.setTabText(self.tabWidget.indexOf(self.Endianess), _translate("Window", "Endianess")) + self.E_cdd_textEdit.setText(_translate("Window", "" + DIRECTORY)) + self.E_cdd_label.setText(_translate("Window", "Current Data Directories:")) + self.E_little_label.setText(_translate("Window", "Little Endian Files Found:")) + self.E_big_label.setText(_translate("Window", "Big Endian Files Found:")) + self.E_little_textEdit.setText(_translate("Window", "0")) + self.E_big_textEdit.setText(_translate("Window", "0")) + self.E_ctb_btn.setText(_translate("Window", "Convert to Big")) + self.E_ctl_btn.setText(_translate("Window", "Convert to Little")) + + # Log Tab + self.L_print_update_dict_btn.setText(_translate("Window", "Print Update Dict")) + self.L_save_log_file_btn.setText(_translate("Window", "Save Log File")) + self.L_clear_logs_btn.setText(_translate("Window", "Clear Logs")) + self.L_display_messages_for_label.setText(_translate("Window", "Display messages for:")) + self.L_all_rbtn.setText(_translate("Window", "All")) + self.L_header_rbtn.setText(_translate("Window", "Header")) + self.L_timing_rbtn.setText(_translate("Window", "Timing")) + self.L_endian_rbtn.setText(_translate("Window", "Endian")) + self.L_textBrowser.setText(_translate("Window", "")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.Log), _translate("Window", "Log")) + + # Help Tab + self.H_template_format_btn.setText(_translate("Window", "Template Format")) + self.done_btn.setText(_translate("popup", "Done")) + + self.popup_textBrowser.setHtml(_translate("popup", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" + "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" + "p, li { white-space: pre-wrap; }\n" + "</style></head><body style=\" font-family:\'Fira Sans Semi-Light\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">The Template file consists of two lists: <span style=\" color:#a51d2d;\">hdrlist</span> and <span style=\" color:#a51d2d;\">timelist</span>. </p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">These lists are delimmited by \'{}\'. Comments are allowed in the template file and are denoted by a \'#\' in the first column.</p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For the <span style=\" color:#a51d2d;\">hdrlist</span> the columns are:</p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">stat:chan:loc:net:sps stat:chan:loc:net</p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For the <span style=\" color:#a51d2d;\">timelist</span> the columns are:</p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">sta:loc:net Start_time End_Time Shift(s) Time_Tag Corr_type</p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">sta:loc:net yyyy:ddd:hh:mm:ss yyyy:ddd:hh:mm:ss float/NA set/unset/Na add/replace/NA</p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">EXAMPLE:</p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # Header Changes</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # stat:chan:loc:net:sps stat:chan:loc:net</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> hdrlist{</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 01053:1C4::XX:40.0 SITE:BHZ::PI</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 01053:1C5::XX:40.0 SITE:BHN::PI</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 01053:1C6::XX:40.0 SITE:BHE::PI</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> }</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # Timing Corrections</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # sta:loc:net Start_Time End_Time Shifts(s) Time_Tag Corr_Type </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> # sta:loc:net yyyy:ddd:hh:mm:ss yyyy:ddd:hh:mm:ss float/NA set/unset/NA add/replace/Na</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> timelist{</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> 9294::SS 2005:304:00:00:00 2005:305:22:15:10 0.56 set add</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1a5fb4;\"> }</span></p></body></html>")) + + + self.H_textBrowser.setHtml(_translate("Window", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" + "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" + "p, li { white-space: pre-wrap; }\n" + "</style></head><body style=\" font-family:\'DejaVu Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">NAME</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">fixhdr - a GUI to modify mseed header fields (\'Station Name\', \'Channel\', \'Location Code\', and \'Network Code\'), to apply time shifts and to convert header endianess.</p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">VERSION</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">2022.1.0.0</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">SYNOPSIS</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr -#</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr -h</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr [-d DataDirs] [-m batch_file] [-t batch_file] [-e endianess]</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">OPTIONS</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-# returns version number</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-h returns usage</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-d DataDirs colon separated list of data directories [default: cwd]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-m batch_file correct mseed headers in batch mode using batch_file</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-t batch_file correct trace timing in batch mode using batch_file</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">-e endianess convert trace headers to endianess [big or little]</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">NOTE: -m, -t, & -e are mutually exclusive. If you wish to do both timing and headers, run time corrections fist.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">DESCRIPTION</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">fixhdr has seven notebooks: </span><span style=\" color:#26a269;\">[Trace Headers]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Global Modify]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Time Shift]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Endianess]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Log]</span><span style=\" color:#000000;\">, </span><span style=\" color:#26a269;\">[Help]</span><span style=\" color:#000000;\">, and </span><span style=\" color:#26a269;\">[MSEED format]</span><span style=\" color:#000000;\">. </span><span style=\" color:#26a269;\">[Trace Headers]</span><span style=\" color:#000000;\"> and </span><span style=\" color:#26a269;\">[Global Modify]</span><span style=\" color:#000000;\"> provide a means to read and modify mseed header fields (station, channel, location code, and network code) for files found beneath a specified directory list. </span><span style=\" color:#26a269;\">[Time Shift]</span><span style=\" color:#000000;\"> allows the user to apply a bulk time shift to traces that fall between a start and end time and to set a header flag indicating that the time tag is questionable. </span><span style=\" color:#26a269;\">[Endianess] </span><span style=\" color:#000000;\">converts traces between little and big, or big and little endian headers. The </span><span style=\" color:#26a269;\">[Log]</span><span style=\" color:#000000;\"> notebook maintains records of key events.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Root window]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Load Template></span><span style=\" color:#000000;\">: loads a previously saved or user created mapping of header and timing modification that then can be applied.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Save Template></span><span style=\" color:#000000;\">: saves a map of all header and timing modifications.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Exit></span><span style=\" color:#000000;\">: Exits fixhdr and will query if not all mappings in Update_Dictionary have been applied.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Trace Headers]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> specify/load directories for header investigation/modifications</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> manipulate/edit individual <sta><chn><loc><net> entries for loaded headers</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> modify trace headers as specified in the "New Value" column for _ALL_ loaded headers</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> store and recall header modification templates</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Build Trace db></span><span style=\" color:#000000;\">: Searches the directories listed in the "Data-Directories" entry box (a colon separated list) and builds a list of mseed files found indexing them on unique values of <sta><chn><loc><net><sps>. You can narrow your search by entering stations in the "Find Only Stations" entry box (a colon separated file).</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Find></span><span style=\" color:#000000;\">: Launches a file browser allowing the user to add directories to the "Data Directories" entry box. Double clicking selects the new directory.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear></span><span style=\" color:#000000;\">: Clears the "Data Directories" entry box.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><List Traces></span><span style=\" color:#000000;\">: Lists all traces for the selected Sta:Chan:Loc:Net:Sps.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Modify Headers></span><span style=\" color:#000000;\">: Applies all current values in the Update_Dictionary (that can be viewed in the [Log] notebook) to the current trace list that was built using </span><span style=\" color:#a51d2d;\"><Clear Current></span><span style=\" color:#000000;\">: clears all entries in the Update_Dictionary and display for the currently selected sta:chan:loc:net:sps that have not been applied.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear All></span><span style=\" color:#000000;\">: clears all entries in the Update_Dictionary that have not been applied.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Global Modify]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> specify header values in "For Headers Matching:" column, using drop-down menus. Wildcards are allowed and are the default.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> enter new header values in "Substitute Values:"</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Global Set></span><span style=\" color:#000000;\">: inserts the values in "Substitute Values" into the "Update_Dictionary using For Headers Matching" entries to determine which <sta><chn><loc><net><sps> to modify. This only creates entries in the dictionary and does NOT apply them to the mseed headers. You must use </span><span style=\" color:#26a269;\">[Trace Headers]</span><span style=\" color:#000000;\">-></span><span style=\" color:#a51d2d;\"><Modify Headers></span><span style=\" color:#000000;\"> to apply these updates. </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear All></span><span style=\" color:#000000;\">: clears all current entries. This does not affect the Update_Dictionary.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Time Shift]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> specify header values in "For Traces Matching:" column, using drop-down menus. Once selected first and last sample times will be displayed. The start and end time can be changed.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> enter time in seconds to be added to the blockette start times in then "Time_Shift_sec" window.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>>"Time Tag is questionable" allows you to flip a bit in the Data Quality flags in the mseed file\'s Fixed Section of Data Header</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> "Applied" indicators notify a user when corrections have been applied in this instance of fixhdr. </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><How to Treat Existing Correction></span><span style=\" color:#000000;\">: you can choose to either add to any correction listed in the Fixed Header or Replace any existing correction with the one entered.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Undo Time Corrections></span><span style=\" color:#000000;\">: Allows user to un-apply previously applied timing corrections. Note: Use with caution. This will only remove single and cumulative corrections. Review \'List Time Corrections\' to better understand corrections already applied to trace headers.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><List Time Corrections></span><span style=\" color:#000000;\">: Displays time corrections doe traces matching the selected Stat:Loc:Net key.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Apply Time Correction></span><span style=\" color:#000000;\">: Applies updates from <List Time Corrections>.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Time Set></span><span style=\" color:#000000;\">: Allows user to build a dictionary of timing corrections to be applied with the "Apply Time Corrections" button. ie. timing corrections for multiple Stat:Loc:Net selections can be set prior to applying in a single instance.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Recalc Start/End></span><span style=\" color:#000000;\">: resets the start and end times from the trace headers. The first time a trace is read in the start and end times are cached for future use. If you change these times, this button is used to update the cache and display.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear All></span><span style=\" color:#000000;\">: clears all current entries.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Endianess]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">>> displays the number of big and little endian files found. Allows user to convert between big and little endian headers.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Convert to Big></span><span style=\" color:#000000;\">: Converts header from little to big endian</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Convert to Little></span><span style=\" color:#000000;\">: Converts headers from big to little endian</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#26a269;\">[Log]</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">General:<br />>> displays key events (e.g. "Build Trace db", "Modify Headers", etc). Radio buttons allow you to select all log messages or window only those messages related to Header events, Time events, or changes in endianess.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Buttons:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Dump UpdateHdrDict></span><span style=\" color:#000000;\">: Dumps the current values in the Update_Dictionary and indicates whether or not they have been applied (i.e. <Modify Headers> has been run).</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Save Log File></span><span style=\" color:#000000;\">: Saves text window to an output file.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#a51d2d;\"><Clear Log File></span><span style=\" color:#000000;\">: Clears text window and flushes buffer.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">KEYWORDS</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">mseed; header information; header modification</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">SEE ALSO</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">mseedhdr & SEED manual</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#1c71d8;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#1c71d8;\">AUTHOR</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#000000;\">Bruce Beaudoin <bruce@passcal.nmt.edu></span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>")) + self.H_textBrowser.setPlaceholderText(_translate("Window", "Testing")) + + self.tabWidget.setTabText(self.tabWidget.indexOf(self.Help), _translate("Window", "Help")) + + # MSEED format Tab + self.M_textBrowser.setText(_translate("Window", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" + "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" + "p, li { white-space: pre-wrap; }\n" + "</style></head><body style=\" font-family:\'Fira Sans Semi-Light\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Appendix A From "SEED Reference Manual, v2.3, Feb 1993:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Naming</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Contributed by Scott Halbert</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Seismologists have used many conventions for naming channels.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Usually, these conventions are designed to meet the particular</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> needs of one network. But general recording systems - such as the</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> various Global Seismographic Network (GSN) systems that can</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> record many channels at high sample rates - create a need for a</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> standard to handle the variety of instruments that can be</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> recorded. Modern instrumentation and the need for conformity</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> among cooperating networks have greatly complicated the problem.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Sensors are available in narrow band and broadband configurations</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> with pass bands in very different parts of the spectrum of</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> interest. Each sensor may have several different outputs with</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> different spectral shaping. In addition, station processors often</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> derive several data streams from one sensor channel by digital</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> filtering. These possibilities require a comprehensive</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> convention. The desire to combine data from cooperating networks</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> and to search for like channels automatically requires</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> standardization. The SEED format uses three letters to name</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> seismic channels, and three letters to name weather or</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> environmental channels. In the following convention, each letter</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> describes one aspect of the instrumentation and its digitization.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> SEED does not require this convention, but we recommend it as a</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> usage standard for Federation members to facilitate data</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> exchange.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Band Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> The first letter specifies the general sampling rate and the</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> response band of the instrument. (The "A" code is reserved for</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> administrative functions such as miscellaneous state of health.)</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Band code Band type Sample rate (Hz) Corner period (sec)</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> E Extremely Short Period >= 80 < 10 sec</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> S Short Period >= 10 to < 80 < 10 sec</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> H High Broad Band >= 80 >= 10 sec</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> B Broad Band >= 10 to < 80 >= 10 sec</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> M Mid Period > 1 to < 10</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> L Long Period ~ 1</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> V Very Long Period ~ 0.1</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> U Ultra Long Period ~ 0.01</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> R Extremely Long Period ~ 0.001</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> A Administrative</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> W Weather/Environmental</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> X Experimental</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code and Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> The second letter specifies the family to which the sensor</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> belongs. The third letter specifies the physical configuration of</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> the members of a multiple axis instrument package or other</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> parameters as specified for each instrument.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Seismometer: Measures displacement/velocity/acceleration along a</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> line defined by the dip and azimuth.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> H High Gain Seismometer</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> L Low Gain Seismometer</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> G Gravimeter</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> M Mass Position Seismometer</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> N* Accelerometer</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> *historically some channels from accelerometers have used</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> instrumentation codes of L and G. The use of N is the FDSN</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> convention as defined in August 2000.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Z N E Traditional (Vertical, North-South, East-West)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> A B C Triaxial (Along the edges of a cube turned up on a corner)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> T R For formed beams (Transverse, Radial)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 1 2 3 Orthogonal components but non traditional orientations</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> U V W Optional components</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Ground motion vector (reverse dip/azimuth if signal polarity </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> correct)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M, M/S, M/S**2, (for G & M) M/S**2 (usually)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Tilt Meter: Measures tilt from the horizontal plane. Azimuth is typically N/S or E/W.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> A</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> N E Traditional</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Ground motion vector (reverse dip/azimuth if signal polarity </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> incorrect)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: Radians</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Creep Meter: Measures the absolute movement between two sides of</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> a fault by means of fixing a metal beam on one side of the fault</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> and measuring its position on the other side. This is also done</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> with light beams.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> The orientation and therefore the dip and azimuth would be</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> perpendicular to the measuring beam (light or metal), which would</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> be along the average travel vector for the fault.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Positive/Negative travel would be arbitrary, but would be noted</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> in the dip/azimuth. Another type of Creep Meter involves using a</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> wire that is stretched across the fault. Changes in wire length</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> are triangulated to form movement vector.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> B</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Along the fault or wire vector</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Calibration Input: Usually only used for seismometers or other</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> magnetic coil instruments. This signal monitors the input signal</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> to the coil to be used in response evaluation. Usually tied to a</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> specific instrument. Sometimes all instruments are calibrated</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> together, sometimes horizontals are done separately from</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> verticals.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> C</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> A B C D... for when there are only a few cal sources for many devices.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Blank if there is only one calibrator at a time or, Match</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Calibrated Channel (i.s. Z, N or E)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Pressure: A barometer, or microbarometer measures pressure. Used</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> to measure the weather pressure or sometimes for state of health</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> monitoring down hole. This includes infrasonic and hydrophone</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> measurements.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> D</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> O Outside</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> I Inside</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> D Down Hole</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> F Infrasound</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> H Hydrophone</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> U Underground</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: Pa (Pascals)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: W or H</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Electronic Test Point: Used to monitor circuitry inside recording</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> system, local power or seismometer. Usually for power supply</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> voltages, or line voltages.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> E</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Designate as desired, make mnemonic as possible, use numbers for test points, </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> etc.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not applicableSignal Units: V, A, Hz, Etc.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: H</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Magnetometer: Measures the magnetic field where the instrument is</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> sitting. They measure the part of the field vector which is</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> aligned with the measurement coil. Many magnetometers are three</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> axis. The instrument will typically be oriented to local magnetic</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> north. The dip and azimuth should describe this in terms of the</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> geographic north. Example: Local magnetic north is 13 degrees</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> east of north in Albuquerque. So if the magnetometer is pointed</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> to magnetic north, the azimuth would be + 103 for the E channel.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Some magnetometers do not record any vector quantity associated</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> with the signal, but record the total intensity. So, these would</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> not have any dip/azimuth.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> F</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Z N E Magnetic</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: T - Teslas</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Humidity: Absolute/Relative measurements of the humidity.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Temperature recordings may also be essential for meaningful</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> results.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> I</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> O Outside Environment</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> I Inside Building</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> D Down Hole</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 1 2 3 4 Cabinet Sources</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> All other letters available for mnemonic source types.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: %</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: W</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Temperature: Measurement of the temperature at some location.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Typically used for measuring:</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 1. Weather - Outside Temperature</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 2. State of Health - Inside recording building</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> - Down hole</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> - Inside electronics</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> K</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> O Outside Environment</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> I Inside Building</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> D Down Hole</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 1 2 3 4 Cabinet sources</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> All other letters available for mnemonic types.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip Azimuth: Not applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: deg C or deg K</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: W or H</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Water Current: This measurement measures the velocity of water in</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> a given direction. The measurement may be at depth, within a</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> borehole, or a variety of other locations.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> O</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Along current direction</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M/S</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Geophone: Very short period seismometer, with natural frequency 5</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> - 10 Hz or higher.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> P</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Z N E Traditional</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Ground Motion Vector (Reverse dip/azimuth if signal </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> polarity incorrect)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M, M/S, M/S</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Electric Potential: Measures the Electric Potential between two</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> points. This is normally done using a high impedance voltmeter</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> connected to two electrodes driven into the ground. In the case</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> of magnetotelleuric work, this is one parameter that must be</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> measured.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Q</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: V - Volts</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Rainfall: Measures total rainfall, or an amount per sampling</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> interval.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> R</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M, M/S</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: W</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Linear Strain: One typical application is to build a very</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> sensitive displacement measuring device, typically a long quartz</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> rod. One end is affixed to a wall. On the free end, a pylon from</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> the floor reaches up to the rod where something measures the</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> position of the pylon on the rod (like a large LVDT). There are</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> also some interferometry projects which measure distance with</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> lasers. Dip/Azimuth are the line of the movement being measured.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Positive values are obtained when stress/distance increases,</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> negative, when they decrease.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> S</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Z N E Vertical, North-South, East-West</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Along axis of instrument</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M/M</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Tide : Not to be confused with lunar tidal filters or gravimeter</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> output. Tide instruments measure the depth of the water at the</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> monitoring site.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> T</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Z Always vertical</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Always vertical</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M - Relative to sea level or local ocean depth</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Bolometer: Infrared instrument used to evaluate average cloud</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> cover. Used in astronomy to determine observability of sky.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> U</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> . Signal Units: Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: W</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Volumetric Strain: Unknown</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> V</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Unknown</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not Applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M**3/M**3</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Wind: Measures the wind vector or velocity. Normal notion of dip</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> and azimuth does not apply.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> W</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> S Wind speed</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> D Wind Direction Vector - Relative to geographic North</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Not Applicable - Should be zero.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: W</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Synthesized Beams: This is used when forming beams from</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> individual elements of an array. Refer to blockettes 35, 400, &</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 405.</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Instrument Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Z</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Orientation Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> I Incoherent Beam</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> C Coherent Beam</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> F FK Beam</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> O Origin Beam</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Dip/Azimuth: Ground motion vector (reverse dip/azimuth if signal polarity </span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> incorrect)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Signal Units: M, M/S, M/S**2, (for G & M) M/S**2 (usually)</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Flags: G</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Code</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> We suggest that two sequences be reserved for special channels</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> the "LOG" channel for the console log, and the "SOH" channel for</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> the main state of health channel. Subsidiary logs and state of</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> health channels should begin with the "A" code; the source and</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> orientation fields can then be used in any way.</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Here are some typical channel arrangements used by a GSN system:</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> Channel Description</span></p>\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> EHZ/EHN/EHE Short Period 100 sps</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> BHZ/BHN/BHE Broad Band 20 sps</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> LHZ/LHN/LHE Long Period 1 sps</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> VHZ/VHN/VHE Very Long Period 0.1 sps</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> BCI Broad Band Calibration Signal</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> ECI Short Period Cal</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> LOG Console Log</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"><br /></span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> NOTE: Log Records: Log records has a channel identifier code of</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> "LOG" and a sample rate of zero. The number of samples field is</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> the number of characters in the record (including the carriage</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> return and line feed that terminates each line). Log messages are</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> packed into records until a message falls into a new minute. Log</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> records have no blockettes, so the strings start at offset</span></p>\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Droid Sans Mono\',\'monospace\',\'monospace\'; font-size:14px; color:#000000;\"> 48.</span></p></body></html>")) + + + self.tabWidget.setTabText(self.tabWidget.indexOf(self.MSEEDformat), _translate("Window", "MSEED format")) + + # PopUp Help Checkbox + self.checkBox.setText(_translate("Window", "PopUp Help")) + + ############################################################################################################# + + # function for quit button + def click_quit(self): + quit() + + # function for what happens when PopUp Help is checked/unchecked + def click_help_popup(self): + toggle = self.checkBox.isChecked() + + # if checked, tool tips are visible + if toggle == True: + + self.load_template_btn.setToolTip("Import saved header &\n" + "timing corrections file") + self.save_template_btn.setToolTip("Export saved header & timing corrections to file") + self.exit_btn.setToolTip("Exit program") + self.TH_data_directories_label.setToolTip("Search path(s) for finding mseed files.\n" + "Colon separate multiple entries.") + self.TH_build_trace_btn.setToolTip("Build a trace db using\n" + "'Data Directories' as\n" + "top level directories") + self.TH_find_btn.setToolTip("Dialogue window to\n" + "select Data Directories") + self.TH_clear_btn.setToolTip("Clears 'Data Directories' entry") + self.TH_clear_2_btn.setToolTip("Clear station filter") + self.fos_textEdit.setToolTip("Filter trace search\n" + "for these stations") + self.TH_list_traces_btn.setToolTip("List traces for selected Stat:Chan:Loc:Net:Sps") + self.TH_clear_update_dictionary_btn.setToolTip("Clear all updates in 'Update Dictionary'") + self.TH_clear_current_btn.setToolTip("Clears entries in 'Update Dictionary' for selected Stat:Chan:Loc:Net:Sps") + self.TH_modify_headers_btn.setToolTip("Modifies headers using current entries and all entries in 'Update Dictionary'") + self.GM_cdd_label.setToolTip("Traces located beneath these directories") + self.GM_global_set_btn.setToolTip("Add current entries to 'Update Dictionary'") + self.GM_clear_current_btn.setToolTip("Clears all current entries") + self.GM_clear_update_dictionary_btn.setToolTip("Clear all entries in 'Update Dictionary'") + self.TS_cdd_label.setToolTip("Traces located beneath these\n" + "directories") + self.TS_ec_label.setToolTip("When applying time corrections:\n" + "Add to existing or\n" + "Zero and replace existing") + self.TS_undo_tc_btn.setToolTip("Reverse applied time corrections") + self.TS_list_time_corrections_btn.setToolTip("List time corrections currently in trace headers for for select Stat:Loc:Net") + self.TS_apply_time_correction_btn.setToolTip("Modifies trace times using using current entries and all entries in 'Update Dictionary'") + self.TS_time_set_btn.setToolTip("Add current entries to 'Update Dictionary'") + self.TS_recalc_start_end_btn.setToolTip("Recalculate start and end times for selected traces") + self.TS_clear_all_btn.setToolTip("Clears all current entries") + self.E_cdd_label.setToolTip("Traces located beneath these directories") + self.E_ctb_btn.setToolTip("Convert all little endian files\n" + "to big endian") + self.E_ctl_btn.setToolTip("Convert all big endian files\n" + "to little endian") + self.L_print_update_dict_btn.setToolTip("Print 'Update Dictionary' to log message window") + self.L_save_log_file_btn.setToolTip("Save log messages to file") + self.L_clear_logs_btn.setToolTip("Delete all log messages") + self.L_display_messages_for_label.setToolTip("Filter log messages") + self.H_template_format_btn.setToolTip("Display example format for 'Template' file") + self.checkBox.setToolTip("Toggles 'PopUp Help' on and off") + + # if unchecked, tool tips are invisible + if toggle == False: + + self.load_template_btn.setToolTip("") + self.save_template_btn.setToolTip("") + self.exit_btn.setToolTip("") + self.TH_data_directories_label.setToolTip("") + self.TH_build_trace_btn.setToolTip("") + self.TH_find_btn.setToolTip("") + self.TH_clear_btn.setToolTip("") + self.TH_clear_2_btn.setToolTip("") + self.fos_textEdit.setToolTip("") + self.TH_list_traces_btn.setToolTip("") + self.TH_clear_update_dictionary_btn.setToolTip("") + self.TH_clear_current_btn.setToolTip("") + self.TH_modify_headers_btn.setToolTip("") + self.GM_cdd_label.setToolTip("") + self.GM_global_set_btn.setToolTip("") + self.GM_clear_current_btn.setToolTip("") + self.GM_clear_update_dictionary_btn.setToolTip("") + self.TS_cdd_label.setToolTip("") + self.TS_ec_label.setToolTip("") + self.TS_undo_tc_btn.setToolTip("") + self.TS_list_time_corrections_btn.setToolTip("") + self.TS_apply_time_correction_btn.setToolTip("") + self.TS_time_set_btn.setToolTip("") + self.TS_recalc_start_end_btn.setToolTip("") + self.TS_clear_all_btn.setToolTip("") + self.E_cdd_label.setToolTip("") + self.E_ctb_btn.setToolTip("") + self.E_ctl_btn.setToolTip("") + self.L_print_update_dict_btn.setToolTip("") + self.L_save_log_file_btn.setToolTip("") + self.L_clear_logs_btn.setToolTip("") + self.L_display_messages_for_label.setToolTip("") + self.H_template_format_btn.setToolTip("") + self.checkBox.setToolTip("") + + + # function for clear button in TRACE HEADERS + def click_TH_clear(self): + _translate = QtCore.QCoreApplication.translate + # clears all directory textEdits in TRACE HEADERS, + # GLOBAL MODIFY, TIME SHIFT, and ENDIANESS + self.textEdit.setText(_translate("Window", "")) + self.GM_cdd_textEdit.setText(_translate("Window", "")) + self.TS_textEdit.setText(_translate("Window", "")) + self.E_cdd_textEdit.setText(_translate("Window", "")) + # function for 2nd clear button in TRACE HEADERS + def click_TH_clear_2(self): + _translate = QtCore.QCoreApplication.translate + # clears stations + self.fos_textEdit.setText(_translate("Window", "")) + + + # function for pop up Template Format window in HELP + def template_format_window(self): + self.popup.show() + + + # function for file dialogue/choosing directory to search for mseed files + def file_dialogue(self): + + # set timezone to UTC + os.environ['TZ'] = 'GMT' + time.tzname = ('GMT', 'GMT') + time.timezone = 0 + + # TODO: MAKE IT LIST MULTIPLE DIRECTORIES + self.search = QtWidgets.QFileDialog.getExistingDirectory() + + # if the user doesn't cancel the file directory popup: + # updates directory in Trace Headers, Global Modify, Time Shift, + # and Endianess + if (self.search != ""): + _translate = QtCore.QCoreApplication.translate + + # adds newly selected directory to Trace Headers + self.textEdit.setText(_translate("Window", "" + self.search)) + # updates the other textEdits in Global Modify, Time Shift, and Endianess + self.GM_cdd_textEdit.setText(_translate("Window", "" + self.search)) + self.TS_textEdit.setText(_translate("Window", "" + self.search)) + self.E_cdd_textEdit.setText(_translate("Window", "" + self.search)) + + # scans chosen directory for mseed files + # NOTE: it's set to identify an mseed file if it ends in '.312' + # I'm not sure if this is true -- fix if false + dir = os.scandir(self.search) + for entry in dir: + if entry.is_file(): + if entry.name.endswith('.312'): + print(entry.name) + + + # function for what happens when the button List Traces + # is clicked in TRACE HEADERS + def click_list_traces(self): + self.TH_popup.show() + + + # function for what happens when the button Build Traces + # is clicked in TRACE HEADERS + def click_build_trace(self): + + # TODO: fix error so audio can play + self.sound = QtMultimedia.QSoundEffect() + self.sound.setSource(("click.wav")) + self.sound.play() + + self.frame.show() + self.stat_chan.show() + self.stat_name.show() + self.channel.show() + self.loc_code.show() + self.net_code.show() + self.smpl_rt.show() + self.new_val.show() + self.textEdit1.show() + self.textEdit2.show() + self.textEdit3.show() + self.textEdit4.show() + self.textEdit5.show() + self.textEdit6.show() + self.new_val.show() + self.nv_textEdit1.show() + self.nv_textEdit2.show() + self.nv_textEdit3.show() + self.nv_textEdit4.show() + self.applied.show() + self.GM_h_frame.show() + self.GM_for_headers_matching.show() + self.GM_sub_values.show() + self.GM_stat_name.show() + self.GM_channel.show() + self.GM_loc_code.show() + self.GM_net_code.show() + self.GM_smpl_rt.show() + self.GM_textEdit1.show() + self.GM_textEdit2.show() + self.GM_textEdit3.show() + self.GM_textEdit4.show() + self.GM_textEdit5.show() + self.GM_textEdit6.show() + self.GM_textEdit7.show() + self.GM_textEdit8.show() + self.GM_textEdit9.show() + self.TS_frame.show() + self.TS_stat_loc_net.show() + self.TS_for_traces_matching.show() + self.TS_textEdit1.show() + self.TS_checkBox.show() + self.TS_time_shift.show() + self.TS_start_time.show() + self.TS_end_time.show() + self.TS_time_shift_sec.show() + self.TS_tt_questionable.show() + self.TS_textEdit2.show() + self.TS_textEdit3.show() + self.TS_textEdit4.show() + self.TS_textEdit5.show() + self.TS_applied.show() + + ############################################################################################################# if __name__ == "__main__": - app = QtWidgets.QApplication(sys.argv) - Window = QtWidgets.QWidget() - ui = Ui_Window() - ui.setupUi(Window) - Window.show() - sys.exit(app.exec()) + app = QtWidgets.QApplication(sys.argv) + Window = QtWidgets.QWidget() + ui = Ui_Window() + ui.setupUi(Window) + Window.show() + sys.exit(app.exec()) \ No newline at end of file