[major] getting rid of unused/unnecessary "rootpath" and "database" structure. Testing required.

This commit is contained in:
Marcel Paffrath 2024-08-27 17:45:15 +02:00
parent 3f97097bf6
commit 7a13288c85
13 changed files with 90 additions and 111 deletions

View File

@ -83,7 +83,7 @@ from pylot.core.util.event import Event
from pylot.core.io.location import create_creation_info, create_event from pylot.core.io.location import create_creation_info, create_event
from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \ from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \
PylotCanvas, WaveformWidgetPG, PropertiesDlg, HelpForm, createAction, PickDlg, \ PylotCanvas, WaveformWidgetPG, PropertiesDlg, HelpForm, createAction, PickDlg, \
ComparisonWidget, TuneAutopicker, PylotParaBox, AutoPickDlg, CanvasWidget, AutoPickWidget, \ ComparisonWidget, TuneAutopicker, PylotParameterWidget, AutoPickDlg, CanvasWidget, AutoPickWidget, \
CompareEventsWidget, ProgressBarWidget, AddMetadataWidget, SingleTextLineDialog, LogWidget, PickQualitiesFromXml, \ CompareEventsWidget, ProgressBarWidget, AddMetadataWidget, SingleTextLineDialog, LogWidget, PickQualitiesFromXml, \
SpectrogramTab, SearchFileByExtensionDialog SpectrogramTab, SearchFileByExtensionDialog
from pylot.core.util.array_map import Array_map from pylot.core.util.array_map import Array_map
@ -136,7 +136,7 @@ class MainWindow(QMainWindow):
self.project.parameter = self._inputs self.project.parameter = self._inputs
self.tap = None self.tap = None
self.apw = None self.apw = None
self.paraBox = None self.parameterWidget = None
self.array_map = None self.array_map = None
self._metadata = Metadata(verbosity=0) self._metadata = Metadata(verbosity=0)
self._eventChanged = [False, False] self._eventChanged = [False, False]
@ -188,7 +188,6 @@ class MainWindow(QMainWindow):
self.table_headers = ['', 'Event', 'Time', 'Lat', 'Lon', 'Depth', 'Ml', 'Mw', '[N] MP', '[N] AP', 'Tuning Set', self.table_headers = ['', 'Event', 'Time', 'Lat', 'Lon', 'Depth', 'Ml', 'Mw', '[N] MP', '[N] AP', 'Tuning Set',
'Test Set', 'Notes'] 'Test Set', 'Notes']
# TODO: refactor rootpath to datapath
while True: while True:
try: try:
if settings.value("user/FullName", None) is None: if settings.value("user/FullName", None) is None:
@ -1210,7 +1209,7 @@ class MainWindow(QMainWindow):
with open(eventlist_file, 'r') as infile: with open(eventlist_file, 'r') as infile:
eventlist_subset = [os.path.join(basepath, filename.split('\n')[0]) for filename in eventlist_subset = [os.path.join(basepath, filename.split('\n')[0]) for filename in
infile.readlines()] infile.readlines()]
msg = 'Found file "eventlist.txt" in database path. WILL ONLY USE SELECTED EVENTS out of {} events ' \ msg = 'Found file "eventlist.txt" in datapath. WILL ONLY USE SELECTED EVENTS out of {} events ' \
'contained in this subset' 'contained in this subset'
print(msg.format(len(eventlist_subset))) print(msg.format(len(eventlist_subset)))
eventlist = [eventname for eventname in eventlist if eventname in eventlist_subset] eventlist = [eventname for eventname in eventlist if eventname in eventlist_subset]
@ -1235,49 +1234,34 @@ class MainWindow(QMainWindow):
# get path from first event in list and split them # get path from first event in list and split them
path = eventlist[0] path = eventlist[0]
try: try:
system_name = platform.system() datapath = os.path.split(path)[0]
if system_name in ["Linux", "Darwin"]: dirs = {
dirs = { 'datapath': datapath,
'database': path.split('/')[-2], }
'datapath': os.path.split(path)[0], # path.split('/')[-3],
'rootpath': '/' + os.path.join(*path.split('/')[:-3])
}
elif system_name == "Windows":
rootpath = path.split('/')[:-3]
rootpath[0] += '/'
dirs = {
# TODO: Arrange path to meet Win standards
'database': path.split('/')[-2],
'datapath': path.split('/')[-3],
'rootpath': os.path.join(*rootpath)
}
except Exception as e: except Exception as e:
dirs = { dirs = {
'database': '',
'datapath': '', 'datapath': '',
'rootpath': ''
} }
print('Warning: Could not automatically init folder structure. ({})'.format(e)) print('Warning: Could not automatically init folder structure. ({})'.format(e))
settings = QSettings() settings = QSettings()
settings.setValue("data/dataRoot", dirs['datapath']) # d irs['rootpath']) settings.setValue("data/dataRoot", dirs['datapath'])
settings.sync() settings.sync()
if not self.project.eventlist: if not self.project.eventlist:
# init parameter object # init parameter object
self.setParameter(show=False) self.setParameter(show=False)
# hide all parameter (show all needed parameter later) # hide all parameter (show all needed parameter later)
self.paraBox.hide_parameter() self.parameterWidget.hide_parameter()
for directory in dirs.keys(): for directory in dirs.keys():
# set parameter # set parameter
box = self.paraBox.boxes[directory] box = self.parameterWidget.boxes[directory]
self.paraBox.setValue(box, dirs[directory]) self.parameterWidget.setValue(box, dirs[directory])
# show needed parameter in box # show needed parameter in box
self.paraBox.show_parameter(directory) self.parameterWidget.show_parameter(directory)
dirs_box = self.paraBox.get_groupbox_dialog('Directories') dirs_box = self.parameterWidget.get_groupbox_dialog('Directories')
if not dirs_box.exec_(): if not dirs_box.exec_():
return return
self.project.rootpath = dirs['rootpath']
self.project.datapath = dirs['datapath'] self.project.datapath = dirs['datapath']
else: else:
if hasattr(self.project, 'datapath'): if hasattr(self.project, 'datapath'):
@ -1286,7 +1270,6 @@ class MainWindow(QMainWindow):
'Datapath missmatch to current project!') 'Datapath missmatch to current project!')
return return
else: else:
self.project.rootpath = dirs['rootpath']
self.project.datapath = dirs['datapath'] self.project.datapath = dirs['datapath']
self.project.add_eventlist(eventlist) self.project.add_eventlist(eventlist)
@ -1374,11 +1357,10 @@ class MainWindow(QMainWindow):
return True return True
def modify_project_path(self, new_rootpath): def modify_project_path(self, new_rootpath):
# TODO: change root to datapath self.project.datapath = new_rootpath
self.project.rootpath = new_rootpath
for event in self.project.eventlist: for event in self.project.eventlist:
event.rootpath = new_rootpath event.datapath = new_rootpath
event.path = os.path.join(event.rootpath, event.datapath, event.database, event.pylot_id) event.path = os.path.join(event.datapath, event.pylot_id)
event.path = event.path.replace('\\', '/') event.path = event.path.replace('\\', '/')
event.path = event.path.replace('//', '/') event.path = event.path.replace('//', '/')
@ -1572,7 +1554,7 @@ class MainWindow(QMainWindow):
self.set_fname(self.get_data().getEventFileName(), type) self.set_fname(self.get_data().getEventFileName(), type)
return self.get_fnames(type) return self.get_fnames(type)
def saveData(self, event=None, directory=None, outformats=['.xml', '.cnv', '.obs', '_focmec.in', '.pha']): def saveData(self, event=None, directory=None, outformats=None):
''' '''
Save event data to directory with specified output formats. Save event data to directory with specified output formats.
:param event: PyLoT Event, if not set current event will be used :param event: PyLoT Event, if not set current event will be used
@ -1580,6 +1562,8 @@ class MainWindow(QMainWindow):
:param outformats: str/list of output formats :param outformats: str/list of output formats
:return: :return:
''' '''
if outformats is None:
outformats = ['.xml', '.cnv', '.obs', '_focmec.in', '.pha']
if not event: if not event:
event = self.get_current_event() event = self.get_current_event()
if not type(outformats) == list: if not type(outformats) == list:
@ -1715,7 +1699,7 @@ class MainWindow(QMainWindow):
# WIP JG # WIP JG
def eventlistXml(self): def eventlistXml(self):
path = self._inputs['rootpath'] + '/' + self._inputs['datapath'] + '/' + self._inputs['database'] path = self._inputs['datapath']
outpath = self.project.location[:self.project.location.rfind('/')] outpath = self.project.location[:self.project.location.rfind('/')]
geteventlistfromxml(path, outpath) geteventlistfromxml(path, outpath)
return return
@ -2441,7 +2425,7 @@ class MainWindow(QMainWindow):
filterS = filteroptions['S'] filterS = filteroptions['S']
minP, maxP = filterP.getFreq() minP, maxP = filterP.getFreq()
minS, maxS = filterS.getFreq() minS, maxS = filterS.getFreq()
self.paraBox.params_to_gui() self.parameterWidget.params_to_gui()
def getFilterOptions(self): def getFilterOptions(self):
return self.filteroptions return self.filteroptions
@ -3190,8 +3174,8 @@ class MainWindow(QMainWindow):
ttt = parameter['ttpatter'] ttt = parameter['ttpatter']
outfile = parameter['outpatter'] outfile = parameter['outpatter']
eventname = self.get_current_event_name() eventname = self.get_current_event_name()
obsdir = os.path.join(self._inputs['rootpath'], self._inputs['datapath'], self._inputs['database'], eventname) obsdir = os.path.join(self._inputs['datapath'], eventname)
self.saveData(event=self.get_current_event(), directory=obsdir, outformats='.obs') self.saveData(event=self.get_current_event(), directory=obsdir, outformats=['.obs'])
filename = 'PyLoT_' + eventname filename = 'PyLoT_' + eventname
locpath = os.path.join(locroot, 'loc', filename) locpath = os.path.join(locroot, 'loc', filename)
phasefile = os.path.join(obsdir, filename + '.obs') phasefile = os.path.join(obsdir, filename + '.obs')
@ -3748,6 +3732,7 @@ class MainWindow(QMainWindow):
if self.project.parameter: if self.project.parameter:
# do this step to update default parameter on older PyLoT projects # do this step to update default parameter on older PyLoT projects
self.project.parameter.reinit_default_parameters() self.project.parameter.reinit_default_parameters()
PylotParameter.check_deprecated_parameters(self.project.parameter)
self._inputs = self.project.parameter self._inputs = self.project.parameter
self.updateFilteroptions() self.updateFilteroptions()
@ -3865,13 +3850,13 @@ class MainWindow(QMainWindow):
def setParameter(self, checked=0, show=True): def setParameter(self, checked=0, show=True):
if checked: pass # dummy argument to receive trigger signal (checked) if called by QAction if checked: pass # dummy argument to receive trigger signal (checked) if called by QAction
if not self.paraBox: if not self.parameterWidget:
self.paraBox = PylotParaBox(self._inputs, parent=self, windowflag=Qt.Window) self.parameterWidget = PylotParameterWidget(self._inputs, parent=self, windowflag=Qt.Window)
self.paraBox.accepted.connect(self._setDirty) self.parameterWidget.accepted.connect(self._setDirty)
self.paraBox.accepted.connect(self.filterOptionsFromParameter) self.parameterWidget.accepted.connect(self.filterOptionsFromParameter)
if show: if show:
self.paraBox.params_to_gui() self.parameterWidget.params_to_gui()
self.paraBox.show() self.parameterWidget.show()
def deleteAllAutopicks(self): def deleteAllAutopicks(self):
qmb = QMessageBox(self, icon=QMessageBox.Question, qmb = QMessageBox(self, icon=QMessageBox.Question,
@ -3918,16 +3903,18 @@ class Project(object):
Pickable class containing information of a PyLoT project, like event lists and file locations. Pickable class containing information of a PyLoT project, like event lists and file locations.
''' '''
# TODO: remove rootpath
def __init__(self): def __init__(self):
self.eventlist = [] self.eventlist = []
self.location = None self.location = None
self.rootpath = None
self.datapath = None self.datapath = None
self.dirty = False self.dirty = False
self.parameter = None self.parameter = None
self._table = None self._table = None
@property
def rootpath(self):
return self.datapath
def add_eventlist(self, eventlist): def add_eventlist(self, eventlist):
''' '''
Add events from an eventlist containing paths to event directories. Add events from an eventlist containing paths to event directories.
@ -3937,8 +3924,6 @@ class Project(object):
return return
for item in eventlist: for item in eventlist:
event = Event(item) event = Event(item)
event.rootpath = self.parameter['rootpath']
event.database = self.parameter['database']
event.datapath = self.parameter['datapath'] event.datapath = self.parameter['datapath']
if not event.path in self.getPaths(): if not event.path in self.getPaths():
self.eventlist.append(event) self.eventlist.append(event)

View File

@ -136,11 +136,9 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
if parameter.hasParam('datastructure'): if parameter.hasParam('datastructure'):
# getting information on data structure # getting information on data structure
datastructure = DATASTRUCTURE[parameter.get('datastructure')]() datastructure = DATASTRUCTURE[parameter.get('datastructure')]()
dsfields = {'root': parameter.get('rootpath'), dsfields = {'dpath': parameter.get('datapath'),}
'dpath': parameter.get('datapath'),
'dbase': parameter.get('database')}
exf = ['root', 'dpath', 'dbase'] exf = ['dpath']
if parameter['eventID'] != '*' and fnames == 'None': if parameter['eventID'] != '*' and fnames == 'None':
dsfields['eventID'] = parameter['eventID'] dsfields['eventID'] = parameter['eventID']
@ -206,12 +204,10 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
locflag = 2 locflag = 2
else: else:
# started in tune or interactive mode # started in tune or interactive mode
datapath = os.path.join(parameter['rootpath'], datapath = parameter['datapath']
parameter['datapath'])
events = [] events = []
for eventID in eventid: for eventID in eventid:
events.append(os.path.join(datapath, events.append(os.path.join(datapath,
parameter['database'],
eventID)) eventID))
if not events: if not events:

View File

@ -203,8 +203,6 @@ The meaning of the header entries is:
PyLoT GUI starts with an empty project. To add events, use the add event data button. Select one or multiple folders PyLoT GUI starts with an empty project. To add events, use the add event data button. Select one or multiple folders
containing events. containing events.
[//]: <> (TODO: explain _Directories: Root path, Data path, Database path_)
### Saving projects ### Saving projects
Save the current project from the menu with File->Save project or File->Save project as. PyLoT uses ``.plp`` files to Save the current project from the menu with File->Save project or File->Save project as. PyLoT uses ``.plp`` files to

View File

@ -4,10 +4,8 @@
%Parameters are optimized for %extent data sets! %Parameters are optimized for %extent data sets!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#main settings# #main settings#
#rootpath# %project path #datapath# %data path
#datapath# %data path #eventID# %event ID for single event processing (* for all events found in datapath)
#database# %name of data base
#eventID# %event ID for single event processing (* for all events found in database)
#invdir# %full path to inventory or dataless-seed file #invdir# %full path to inventory or dataless-seed file
PILOT #datastructure# %choose data structure PILOT #datastructure# %choose data structure
True #apverbose# %choose 'True' or 'False' for terminal output True #apverbose# %choose 'True' or 'False' for terminal output

View File

@ -4,10 +4,8 @@
%Parameters are optimized for %extent data sets! %Parameters are optimized for %extent data sets!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#main settings# #main settings#
/DATA/Insheim #rootpath# %project path /DATA/Insheim/EVENT_DATA/LOCAL/2018.02_Insheim #datapath# %data path
EVENT_DATA/LOCAL #datapath# %data path e0006.038.18 #eventID# %event ID for single event processing (* for all events found in datapath)
2018.02_Insheim #database# %name of data base
e0006.038.18 #eventID# %event ID for single event processing (* for all events found in database)
/DATA/Insheim/STAT_INFO #invdir# %full path to inventory or dataless-seed file /DATA/Insheim/STAT_INFO #invdir# %full path to inventory or dataless-seed file
PILOT #datastructure# %choose data structure PILOT #datastructure# %choose data structure
True #apverbose# %choose 'True' or 'False' for terminal output True #apverbose# %choose 'True' or 'False' for terminal output

View File

@ -4,10 +4,8 @@
%Parameters are optimized for %extent data sets! %Parameters are optimized for %extent data sets!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#main settings# #main settings#
#rootpath# %project path #datapath# %data path
#datapath# %data path #eventID# %event ID for single event processing (* for all events found in datapath)
#database# %name of data base
#eventID# %event ID for single event processing (* for all events found in database)
#invdir# %full path to inventory or dataless-seed file #invdir# %full path to inventory or dataless-seed file
PILOT #datastructure# %choose data structure PILOT #datastructure# %choose data structure
True #apverbose# %choose 'True' or 'False' for terminal output True #apverbose# %choose 'True' or 'False' for terminal output

View File

@ -6,24 +6,14 @@ import numpy as np
Default parameters used for picking Default parameters used for picking
""" """
defaults = {'rootpath': {'type': str, defaults = {'datapath': {'type': str,
'tooltip': 'project path', 'tooltip': 'path to eventfolders',
'value': '',
'namestring': 'Root path'},
'datapath': {'type': str,
'tooltip': 'data path',
'value': '', 'value': '',
'namestring': 'Data path'}, 'namestring': 'Data path'},
'database': {'type': str,
'tooltip': 'name of data base',
'value': '',
'namestring': 'Database path'},
'eventID': {'type': str, 'eventID': {'type': str,
'tooltip': 'event ID for single event processing (* for all events found in database)', 'tooltip': 'event ID for single event processing (* for all events found in datapath)',
'value': '', 'value': '*',
'namestring': 'Event ID'}, 'namestring': 'Event ID'},
'extent': {'type': str, 'extent': {'type': str,
@ -522,9 +512,7 @@ defaults = {'rootpath': {'type': str,
settings_main = { settings_main = {
'dirs': [ 'dirs': [
'rootpath',
'datapath', 'datapath',
'database',
'eventID', 'eventID',
'invdir', 'invdir',
'datastructure', 'datastructure',

View File

@ -1,5 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import logging
import os
from pylot.core.io import default_parameters from pylot.core.io import default_parameters
from pylot.core.util.errors import ParameterError from pylot.core.util.errors import ParameterError
@ -88,10 +90,10 @@ class PylotParameter(object):
return bool(self.__parameter) return bool(self.__parameter)
def __getitem__(self, key): def __getitem__(self, key):
try: if key in self.__parameter:
return self.__parameter[key] return self.__parameter[key]
except: else:
return None logging.warning(f'{key} not found in PylotParameter')
def __setitem__(self, key, value): def __setitem__(self, key, value):
try: try:
@ -418,6 +420,28 @@ class PylotParameter(object):
line = value + name + ttip line = value + name + ttip
fid.write(line) fid.write(line)
@staticmethod
def check_deprecated_parameters(parameters):
if parameters.hasParam('database') and parameters.hasParam('rootpath'):
parameters['datapath'] = os.path.join(parameters['rootpath'], parameters['datapath'],
parameters['database'])
logging.warning(
f'Parameters database and rootpath are deprecated. '
f'Tried to merge them to now path: {parameters["datapath"]}.'
)
remove_keys = []
for key in parameters:
if not key in default_parameters.defaults.keys():
remove_keys.append(key)
logging.warning(f'Removing deprecated parameter: {key}')
for key in remove_keys:
del parameters[key]
parameters._settings_main = default_parameters.settings_main
parameters._settings_special_pick = default_parameters.settings_special_pick
class FilterOptions(object): class FilterOptions(object):
''' '''

View File

@ -512,7 +512,7 @@ def writephases(arrivals, fformat, filename, parameter=None, eventinfo=None):
fid = open("%s" % filename, 'w') fid = open("%s" % filename, 'w')
# write header # write header
fid.write('# EQEVENT: %s Label: EQ%s Loc: X 0.00 Y 0.00 Z 10.00 OT 0.00 \n' % fid.write('# EQEVENT: %s Label: EQ%s Loc: X 0.00 Y 0.00 Z 10.00 OT 0.00 \n' %
(parameter.get('database'), parameter.get('eventID'))) (parameter.get('datapath'), parameter.get('eventID')))
arrivals = chooseArrivals(arrivals) # MP MP what is chooseArrivals? It is not defined anywhere arrivals = chooseArrivals(arrivals) # MP MP what is chooseArrivals? It is not defined anywhere
for key in arrivals: for key in arrivals:
# P onsets # P onsets
@ -665,7 +665,7 @@ def writephases(arrivals, fformat, filename, parameter=None, eventinfo=None):
print("Writing phases to %s for HYPOSAT" % filename) print("Writing phases to %s for HYPOSAT" % filename)
fid = open("%s" % filename, 'w') fid = open("%s" % filename, 'w')
# write header # write header
fid.write('%s, event %s \n' % (parameter.get('database'), parameter.get('eventID'))) fid.write('%s, event %s \n' % (parameter.get('datapath'), parameter.get('eventID')))
arrivals = chooseArrivals(arrivals) # MP MP what is chooseArrivals? It is not defined anywhere arrivals = chooseArrivals(arrivals) # MP MP what is chooseArrivals? It is not defined anywhere
for key in arrivals: for key in arrivals:
# P onsets # P onsets

View File

@ -22,14 +22,11 @@ class Event(ObsPyEvent):
:param path: path to event directory :param path: path to event directory
:type path: str :type path: str
""" """
# TODO: remove rootpath and database
self.pylot_id = path.split('/')[-1] self.pylot_id = path.split('/')[-1]
# initialize super class # initialize super class
super(Event, self).__init__(resource_id=ResourceIdentifier('smi:local/' + self.pylot_id)) super(Event, self).__init__(resource_id=ResourceIdentifier('smi:local/' + self.pylot_id))
self.path = path self.path = path
self.database = path.split('/')[-2]
self.datapath = os.path.split(path)[0] # path.split('/')[-3] self.datapath = os.path.split(path)[0] # path.split('/')[-3]
self.rootpath = '/' + os.path.join(*path.split('/')[:-3])
self.pylot_autopicks = {} self.pylot_autopicks = {}
self.pylot_picks = {} self.pylot_picks = {}
self.notes = '' self.notes = ''

View File

@ -8,6 +8,7 @@ import copy
import datetime import datetime
import getpass import getpass
import glob import glob
import logging
import multiprocessing import multiprocessing
import os import os
import subprocess import subprocess
@ -3835,7 +3836,7 @@ class TuneAutopicker(QWidget):
self.stb_names = ['aicARHfig', 'refSpick', 'el_S1pick', 'el_S2pick'] self.stb_names = ['aicARHfig', 'refSpick', 'el_S1pick', 'el_S2pick']
def add_parameters(self): def add_parameters(self):
self.paraBox = PylotParaBox(self.parameter, parent=self, windowflag=Qt.Widget) self.paraBox = PylotParameterWidget(self.parameter, parent=self, windowflag=Qt.Widget)
self.paraBox.set_tune_mode(True) self.paraBox.set_tune_mode(True)
self.update_eventID() self.update_eventID()
self.parameter_layout.addWidget(self.paraBox) self.parameter_layout.addWidget(self.paraBox)
@ -4202,7 +4203,7 @@ class TuneAutopicker(QWidget):
self.qmb.show() self.qmb.show()
class PylotParaBox(QtWidgets.QWidget): class PylotParameterWidget(QtWidgets.QWidget):
accepted = QtCore.Signal(str) accepted = QtCore.Signal(str)
rejected = QtCore.Signal(str) rejected = QtCore.Signal(str)
@ -4316,6 +4317,11 @@ class PylotParaBox(QtWidgets.QWidget):
grid = QtWidgets.QGridLayout() grid = QtWidgets.QGridLayout()
for index1, name in enumerate(parameter_names): for index1, name in enumerate(parameter_names):
if name in ['rootpath', 'database']:
logging.warning(
f'Deprecated parameter loaded: {name}. Check if datapath is still correct in parameter widget.'
)
continue
default_item = self.parameter.get_defaults()[name] default_item = self.parameter.get_defaults()[name]
tooltip = default_item['tooltip'] tooltip = default_item['tooltip']
tooltip += ' | type: {}'.format(default_item['type']) tooltip += ' | type: {}'.format(default_item['type'])
@ -4885,7 +4891,7 @@ class PropTab(QWidget):
def getValues(self): def getValues(self):
return None return None
def resetValues(self, infile=None): def resetValues(self, infile):
return None return None
@ -4982,12 +4988,7 @@ class InputsTab(PropTab):
else: else:
index = 2 index = 2
datapath = para.get('datapath') if not para.get('datapath') is None else '' datapath = para.get('datapath') if not para.get('datapath') is None else ''
rootpath = para.get('rootpath') if not para.get('rootpath') is None else '' values = {"data/dataRoot": self.dataDirEdit.setText("%s" % datapath),
database = para.get('database') if not para.get('database') is None else ''
if isinstance(database, int):
database = str(database)
path = os.path.join(os.path.expanduser('~'), rootpath, datapath, database)
values = {"data/dataRoot": self.dataDirEdit.setText("%s" % path),
"user/FullName": self.fullNameEdit.text(), "user/FullName": self.fullNameEdit.text(),
"data/Structure": self.structureSelect.setCurrentIndex(index), "data/Structure": self.structureSelect.setCurrentIndex(index),
"tstart": self.tstartBox.setValue(0), "tstart": self.tstartBox.setValue(0),

View File

@ -4,10 +4,8 @@
%Parameters are optimized for %extent data sets! %Parameters are optimized for %extent data sets!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#main settings# #main settings#
/home/darius #rootpath# %project path /home/darius/alparray/waveforms_used #datapath# %data path
alparray #datapath# %data path e0093.173.16 #eventID# %event ID for single event processing (* for all events found in datapath)
waveforms_used #database# %name of data base
e0093.173.16 #eventID# %event ID for single event processing (* for all events found in database)
/home/darius/alparray/metadata #invdir# %full path to inventory or dataless-seed file /home/darius/alparray/metadata #invdir# %full path to inventory or dataless-seed file
PILOT #datastructure# %choose data structure PILOT #datastructure# %choose data structure
True #apverbose# %choose 'True' or 'False' for terminal output True #apverbose# %choose 'True' or 'False' for terminal output

View File

@ -4,10 +4,8 @@
%Parameters are optimized for %extent data sets! %Parameters are optimized for %extent data sets!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#main settings# #main settings#
/home/darius #rootpath# %project path /home/darius/alparray/waveforms_used #datapath# %data path
alparray #datapath# %data path e0093.173.16 #eventID# %event ID for single event processing (* for all events found in datapath)
waveforms_used #database# %name of data base
e0093.173.16 #eventID# %event ID for single event processing (* for all events found in database)
/home/darius/alparray/metadata #invdir# %full path to inventory or dataless-seed file /home/darius/alparray/metadata #invdir# %full path to inventory or dataless-seed file
PILOT #datastructure# %choose data structure PILOT #datastructure# %choose data structure
True #apverbose# %choose 'True' or 'False' for terminal output True #apverbose# %choose 'True' or 'False' for terminal output