reformat code
This commit is contained in:
parent
6597c881a6
commit
038caf4d54
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
import matplotlib.pyplot as plt
|
|
||||||
from obspy.xseed import Parser
|
from obspy.xseed import Parser
|
||||||
from obspy.core import read, Stream, UTCDateTime
|
from obspy.core import read, Stream, UTCDateTime
|
||||||
from obspy import readEvents, read_inventory
|
from obspy import readEvents, read_inventory
|
||||||
@ -57,31 +56,61 @@ class Data(object):
|
|||||||
return str(self.wfdata)
|
return str(self.wfdata)
|
||||||
|
|
||||||
def getParent(self):
|
def getParent(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self._parent
|
return self._parent
|
||||||
|
|
||||||
def isNew(self):
|
def isNew(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.newevent
|
return self.newevent
|
||||||
|
|
||||||
def getCutTimes(self):
|
def getCutTimes(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
if self.cuttimes is None:
|
if self.cuttimes is None:
|
||||||
self.updateCutTimes()
|
self.updateCutTimes()
|
||||||
return self.cuttimes
|
return self.cuttimes
|
||||||
|
|
||||||
def updateCutTimes(self):
|
def updateCutTimes(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
self.cuttimes = getGlobalTimes(self.getWFData())
|
self.cuttimes = getGlobalTimes(self.getWFData())
|
||||||
|
|
||||||
def getEventFileName(self):
|
def getEventFileName(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
ID = self.getID()
|
ID = self.getID()
|
||||||
# handle forbidden filenames especially on windows systems
|
# handle forbidden filenames especially on windows systems
|
||||||
return fnConstructor(str(ID))
|
return fnConstructor(str(ID))
|
||||||
|
|
||||||
def exportEvent(self, fnout, fnext='.xml'):
|
def exportEvent(self, fnout, fnext='.xml'):
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param fnout:
|
||||||
|
:param fnext:
|
||||||
|
:raise KeyError:
|
||||||
|
"""
|
||||||
from pylot.core.util.defaults import OUTPUTFORMATS
|
from pylot.core.util.defaults import OUTPUTFORMATS
|
||||||
|
|
||||||
try:
|
try:
|
||||||
evtformat = OUTPUTFORMATS[fnext]
|
evtformat = OUTPUTFORMATS[fnext]
|
||||||
except KeyError, e:
|
except KeyError as e:
|
||||||
errmsg = '{0}; selected file extension {1} not ' \
|
errmsg = '{0}; selected file extension {1} not ' \
|
||||||
'supported'.format(e, fnext)
|
'supported'.format(e, fnext)
|
||||||
raise FormatError(errmsg)
|
raise FormatError(errmsg)
|
||||||
@ -89,24 +118,42 @@ class Data(object):
|
|||||||
# try exporting event via ObsPy
|
# try exporting event via ObsPy
|
||||||
try:
|
try:
|
||||||
self.getEvtData().write(fnout + fnext, format=evtformat)
|
self.getEvtData().write(fnout + fnext, format=evtformat)
|
||||||
except KeyError, e:
|
except KeyError as e:
|
||||||
raise KeyError('''{0} export format
|
raise KeyError('''{0} export format
|
||||||
not implemented: {1}'''.format(evtformat, e))
|
not implemented: {1}'''.format(evtformat, e))
|
||||||
|
|
||||||
def getComp(self):
|
def getComp(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.comp
|
return self.comp
|
||||||
|
|
||||||
def getID(self):
|
def getID(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
return self.evtdata.get('resource_id').id
|
return self.evtdata.get('resource_id').id
|
||||||
except:
|
except:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def filterWFData(self, kwargs):
|
def filterWFData(self, kwargs):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param kwargs:
|
||||||
|
"""
|
||||||
self.getWFData().filter(**kwargs)
|
self.getWFData().filter(**kwargs)
|
||||||
self.dirty = True
|
self.dirty = True
|
||||||
|
|
||||||
def setWFData(self, fnames):
|
def setWFData(self, fnames):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param fnames:
|
||||||
|
"""
|
||||||
self.wfdata = Stream()
|
self.wfdata = Stream()
|
||||||
self.wforiginal = None
|
self.wforiginal = None
|
||||||
if fnames is not None:
|
if fnames is not None:
|
||||||
@ -115,6 +162,10 @@ class Data(object):
|
|||||||
self.dirty = False
|
self.dirty = False
|
||||||
|
|
||||||
def appendWFData(self, fnames):
|
def appendWFData(self, fnames):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param fnames:
|
||||||
|
"""
|
||||||
assert isinstance(fnames, list), "input parameter 'fnames' is " \
|
assert isinstance(fnames, list), "input parameter 'fnames' is " \
|
||||||
"supposed to be of type 'list' " \
|
"supposed to be of type 'list' " \
|
||||||
"but is actually {0}".format(type(
|
"but is actually {0}".format(type(
|
||||||
@ -129,27 +180,51 @@ class Data(object):
|
|||||||
except TypeError:
|
except TypeError:
|
||||||
try:
|
try:
|
||||||
self.wfdata += read(fname, format='GSE2')
|
self.wfdata += read(fname, format='GSE2')
|
||||||
except Exception, e:
|
except Exception as e:
|
||||||
warnmsg += '{0}\n{1}\n'.format(fname, e)
|
warnmsg += '{0}\n{1}\n'.format(fname, e)
|
||||||
if warnmsg:
|
if warnmsg:
|
||||||
warnmsg = 'WARNING: unable to read\n' + warnmsg
|
warnmsg = 'WARNING: unable to read\n' + warnmsg
|
||||||
print warnmsg
|
print(warnmsg)
|
||||||
|
|
||||||
def getWFData(self):
|
def getWFData(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.wfdata
|
return self.wfdata
|
||||||
|
|
||||||
def getOriginalWFData(self):
|
def getOriginalWFData(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.wforiginal
|
return self.wforiginal
|
||||||
|
|
||||||
def resetWFData(self):
|
def resetWFData(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
self.wfdata = self.getOriginalWFData().copy()
|
self.wfdata = self.getOriginalWFData().copy()
|
||||||
self.dirty = False
|
self.dirty = False
|
||||||
|
|
||||||
def resetPicks(self):
|
def resetPicks(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
self.getEvtData().picks = []
|
self.getEvtData().picks = []
|
||||||
|
|
||||||
def restituteWFData(self, invdlpath, streams=None):
|
def restituteWFData(self, invdlpath, streams=None):
|
||||||
if streams == None:
|
"""
|
||||||
|
|
||||||
|
:param invdlpath:
|
||||||
|
:param streams:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
if streams is None:
|
||||||
st = self.getWFData()
|
st = self.getWFData()
|
||||||
else:
|
else:
|
||||||
st = streams
|
st = streams
|
||||||
@ -157,7 +232,7 @@ class Data(object):
|
|||||||
for tr in st:
|
for tr in st:
|
||||||
# remove underscores
|
# remove underscores
|
||||||
if tr.stats.station[3] == '_':
|
if tr.stats.station[3] == '_':
|
||||||
tr.stats.station = tr.stats.station[0:3]
|
tr.stats.station = tr.stats.station[0:3]
|
||||||
dlp = '%s/*.dless' % invdlpath
|
dlp = '%s/*.dless' % invdlpath
|
||||||
invp = '%s/*.xml' % invdlpath
|
invp = '%s/*.xml' % invdlpath
|
||||||
respp = '%s/*.resp' % invdlpath
|
respp = '%s/*.resp' % invdlpath
|
||||||
@ -167,47 +242,52 @@ class Data(object):
|
|||||||
|
|
||||||
# check for dataless-SEED file
|
# check for dataless-SEED file
|
||||||
if len(dlfile) >= 1:
|
if len(dlfile) >= 1:
|
||||||
print "Found dataless-SEED file(s)!"
|
print("Found dataless-SEED file(s)!")
|
||||||
print "Reading meta data information ..."
|
print("Reading meta data information ...")
|
||||||
for j in range(len(dlfile)):
|
for j in range(len(dlfile)):
|
||||||
print "Found dataless-SEED file %s" % dlfile[j]
|
print("Found dataless-SEED file %s" % dlfile[j])
|
||||||
parser = Parser('%s' % dlfile[j])
|
parser = Parser('%s' % dlfile[j])
|
||||||
for i in range(len(st)):
|
for i in range(len(st)):
|
||||||
# check, whether this trace has already been corrected
|
# check, whether this trace has already been corrected
|
||||||
try:
|
try:
|
||||||
st[i].stats.processing
|
st[i].stats.processing
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
print "Correcting %s, %s for instrument response ..." \
|
print(
|
||||||
% (st[i].stats.station, st[i].stats.channel)
|
"Correcting %s, %s for instrument response ..." \
|
||||||
|
% (st[i].stats.station, st[i].stats.channel))
|
||||||
# get corner frequencies for pre-filtering
|
# get corner frequencies for pre-filtering
|
||||||
fny = st[i].stats.sampling_rate / 2
|
fny = st[i].stats.sampling_rate / 2
|
||||||
fc21 = fny - (fny * 0.05)
|
fc21 = fny - (fny * 0.05)
|
||||||
fc22 = fny - (fny * 0.02)
|
fc22 = fny - (fny * 0.02)
|
||||||
prefilt = [0.5, 0.9, fc21, fc22]
|
prefilt = [0.5, 0.9, fc21, fc22]
|
||||||
# instrument correction
|
# instrument correction
|
||||||
st[i].simulate(pre_filt=prefilt, seedresp={'filename': parser, \
|
st[i].simulate(pre_filt=prefilt,
|
||||||
'date': st[i].stats.starttime, 'units': "VEL"})
|
seedresp={'filename': parser, \
|
||||||
except ValueError, e:
|
'date': st[
|
||||||
vmsg = '{0}'.format(e)
|
i].stats.starttime,
|
||||||
print vmsg
|
'units': "VEL"})
|
||||||
|
except ValueError as e:
|
||||||
|
vmsg = '{0}'.format(e)
|
||||||
|
print(vmsg)
|
||||||
else:
|
else:
|
||||||
print "Trace has already been corrected!"
|
print("Trace has already been corrected!")
|
||||||
# check for inventory-xml file
|
# check for inventory-xml file
|
||||||
if len(invfile) >= 1:
|
if len(invfile) >= 1:
|
||||||
print "Found inventory-xml file(s)!"
|
print("Found inventory-xml file(s)!")
|
||||||
print "Reading meta data information ..."
|
print("Reading meta data information ...")
|
||||||
for j in range(len(invfile)):
|
for j in range(len(invfile)):
|
||||||
print "Found inventory-xml file %s" % invfile[j]
|
print("Found inventory-xml file %s" % invfile[j])
|
||||||
inv = read_inventory(invfile[j], format="STATIONXML")
|
inv = read_inventory(invfile[j], format="STATIONXML")
|
||||||
for i in range(len(st)):
|
for i in range(len(st)):
|
||||||
# check, whether this trace has already been corrected
|
# check, whether this trace has already been corrected
|
||||||
try:
|
try:
|
||||||
st[i].stats.processing
|
st[i].stats.processing
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
print "Correcting %s, %s for instrument response ..." \
|
print(
|
||||||
% (st[i].stats.station, st[i].stats.channel)
|
"Correcting %s, %s for instrument response ..." \
|
||||||
|
% (st[i].stats.station, st[i].stats.channel))
|
||||||
# get corner frequencies for pre-filtering
|
# get corner frequencies for pre-filtering
|
||||||
fny = st[i].stats.sampling_rate / 2
|
fny = st[i].stats.sampling_rate / 2
|
||||||
fc21 = fny - (fny * 0.05)
|
fc21 = fny - (fny * 0.05)
|
||||||
@ -216,57 +296,78 @@ class Data(object):
|
|||||||
# instrument correction
|
# instrument correction
|
||||||
st[i].attach_response(inv)
|
st[i].attach_response(inv)
|
||||||
st[i].remove_response(output='VEL', pre_filt=prefilt)
|
st[i].remove_response(output='VEL', pre_filt=prefilt)
|
||||||
except ValueError, e:
|
except ValueError as e:
|
||||||
vmsg = '{0}'.format(e)
|
vmsg = '{0}'.format(e)
|
||||||
print vmsg
|
print(vmsg)
|
||||||
else:
|
else:
|
||||||
print "Trace has already been corrected!"
|
print("Trace has already been corrected!")
|
||||||
# check for RESP-file
|
# check for RESP-file
|
||||||
if len(respfile) >= 1:
|
if len(respfile) >= 1:
|
||||||
print "Found response file(s)!"
|
print("Found response file(s)!")
|
||||||
print "Reading meta data information ..."
|
print("Reading meta data information ...")
|
||||||
for j in range(len(respfile)):
|
for j in range(len(respfile)):
|
||||||
print "Found RESP-file %s" % respfile[j]
|
print("Found RESP-file %s" % respfile[j])
|
||||||
for i in range(len(st)):
|
for i in range(len(st)):
|
||||||
# check, whether this trace has already been corrected
|
# check, whether this trace has already been corrected
|
||||||
try:
|
try:
|
||||||
st[i].stats.processing
|
st[i].stats.processing
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
print "Correcting %s, %s for instrument response ..." \
|
print(
|
||||||
% (st[i].stats.station, st[i].stats.channel)
|
"Correcting %s, %s for instrument response ..." \
|
||||||
|
% (st[i].stats.station, st[i].stats.channel))
|
||||||
# get corner frequencies for pre-filtering
|
# get corner frequencies for pre-filtering
|
||||||
fny = st[i].stats.sampling_rate / 2
|
fny = st[i].stats.sampling_rate / 2
|
||||||
fc21 = fny - (fny * 0.05)
|
fc21 = fny - (fny * 0.05)
|
||||||
fc22 = fny - (fny * 0.02)
|
fc22 = fny - (fny * 0.02)
|
||||||
prefilt = [0.5, 0.9, fc21, fc22]
|
prefilt = [0.5, 0.9, fc21, fc22]
|
||||||
# instrument correction
|
# instrument correction
|
||||||
seedresp={'filename': respfile[0], 'date': st[0].stats.starttime, \
|
seedresp={'filename': respfile[0], 'date': st[0].stats.starttime, \
|
||||||
'units': "VEL"}
|
'units': "VEL"}
|
||||||
st[i].simulate(paz_remove=None, pre_filt=prefilt, seedresp=seedresp)
|
st[i].simulate(paz_remove=None, pre_filt=prefilt, seedresp=seedresp)
|
||||||
except ValueError, e:
|
except ValueError as e:
|
||||||
vmsg = '{0}'.format(e)
|
vmsg = '{0}'.format(e)
|
||||||
print vmsg
|
print(vmsg)
|
||||||
else:
|
else:
|
||||||
print "Trace has already been corrected!"
|
print("Trace has already been corrected!")
|
||||||
|
|
||||||
if len(respfile) < 1 and len(invfile) < 1 and len(dlfile) < 1:
|
if len(respfile) < 1 and len(invfile) < 1 and len(dlfile) < 1:
|
||||||
print "No dataless-SEED file,inventory-xml file nor RESP-file found!"
|
print(
|
||||||
print "Go on processing data without source parameter determination!"
|
"No dataless-SEED file,inventory-xml file nor RESP-file found!")
|
||||||
|
print(
|
||||||
|
"Go on processing data without source parameter determination!")
|
||||||
|
|
||||||
return st
|
return st
|
||||||
|
|
||||||
def getEvtData(self):
|
def getEvtData(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.evtdata
|
return self.evtdata
|
||||||
|
|
||||||
def applyEVTData(self, data, type='pick', authority_id='rub'):
|
def applyEVTData(self, data, type='pick', authority_id='rub'):
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param data:
|
||||||
|
:param type:
|
||||||
|
:param authority_id:
|
||||||
|
:raise OverwriteError:
|
||||||
|
"""
|
||||||
|
|
||||||
def applyPicks(picks):
|
def applyPicks(picks):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param picks:
|
||||||
|
:raise OverwriteError:
|
||||||
|
"""
|
||||||
firstonset = None
|
firstonset = None
|
||||||
if self.getEvtData().picks:
|
if self.getEvtData().picks:
|
||||||
raise OverwriteError('Actual picks would be overwritten!')
|
raise OverwriteError('Actual picks would be overwritten!')
|
||||||
for station, onsets in picks.items():
|
for station, onsets in picks.items():
|
||||||
print 'Reading picks on station %s' % station
|
print('Reading picks on station %s' % station)
|
||||||
for label, phase in onsets.items():
|
for label, phase in onsets.items():
|
||||||
onset = phase['mpp']
|
onset = phase['mpp']
|
||||||
epp = phase['epp']
|
epp = phase['epp']
|
||||||
@ -282,8 +383,8 @@ class Data(object):
|
|||||||
self.getEvtData().picks.append(pick)
|
self.getEvtData().picks.append(pick)
|
||||||
try:
|
try:
|
||||||
polarity = phase['fm']
|
polarity = phase['fm']
|
||||||
except KeyError, e:
|
except KeyError as e:
|
||||||
print 'No polarity information found for %s' % phase
|
print('No polarity information found for %s' % phase)
|
||||||
if firstonset is None or firstonset > onset:
|
if firstonset is None or firstonset > onset:
|
||||||
firstonset = onset
|
firstonset = onset
|
||||||
|
|
||||||
@ -294,9 +395,17 @@ class Data(object):
|
|||||||
self.getEvtData().resource_id = ID
|
self.getEvtData().resource_id = ID
|
||||||
|
|
||||||
def applyArrivals(arrivals):
|
def applyArrivals(arrivals):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param arrivals:
|
||||||
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def applyEvent(event):
|
def applyEvent(event):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param event:
|
||||||
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
applydata = {'pick': applyPicks,
|
applydata = {'pick': applyPicks,
|
||||||
@ -322,6 +431,10 @@ class GenericDataStructure(object):
|
|||||||
|
|
||||||
def modifyFields(self, **kwargs):
|
def modifyFields(self, **kwargs):
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param kwargs:
|
||||||
|
"""
|
||||||
assert isinstance(kwargs, dict), 'dictionary type object expected'
|
assert isinstance(kwargs, dict), 'dictionary type object expected'
|
||||||
|
|
||||||
if not self.extraAllowed():
|
if not self.extraAllowed():
|
||||||
@ -337,37 +450,67 @@ class GenericDataStructure(object):
|
|||||||
value = str(value)
|
value = str(value)
|
||||||
try:
|
try:
|
||||||
self.setFieldValue(key, value)
|
self.setFieldValue(key, value)
|
||||||
except KeyError, e:
|
except KeyError as e:
|
||||||
errmsg = ''
|
errmsg = ''
|
||||||
errmsg += 'WARNING:\n'
|
errmsg += 'WARNING:\n'
|
||||||
errmsg += 'unable to set values for datastructure fields\n'
|
errmsg += 'unable to set values for datastructure fields\n'
|
||||||
errmsg += '%s; desired value was: %s\n' % (e, value)
|
errmsg += '%s; desired value was: %s\n' % (e, value)
|
||||||
print errmsg
|
print(errmsg)
|
||||||
|
|
||||||
def isField(self, key):
|
def isField(self, key):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param key:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return key in self.getFields().keys()
|
return key in self.getFields().keys()
|
||||||
|
|
||||||
def getFieldValue(self, key):
|
def getFieldValue(self, key):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param key:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
if self.isField(key):
|
if self.isField(key):
|
||||||
return self.getFields()[key]
|
return self.getFields()[key]
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
def setFieldValue(self, key, value):
|
def setFieldValue(self, key, value):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param key:
|
||||||
|
:param value:
|
||||||
|
:raise KeyError:
|
||||||
|
"""
|
||||||
if not self.extraAllowed() and key not in self.getAllowed():
|
if not self.extraAllowed() and key not in self.getAllowed():
|
||||||
raise KeyError
|
raise KeyError
|
||||||
else:
|
else:
|
||||||
if not self.isField(key):
|
if not self.isField(key):
|
||||||
print 'creating new field "%s"' % key
|
print('creating new field "%s"' % key)
|
||||||
self.getFields()[key] = value
|
self.getFields()[key] = value
|
||||||
|
|
||||||
def getFields(self):
|
def getFields(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.dsFields
|
return self.dsFields
|
||||||
|
|
||||||
def getExpandFields(self):
|
def getExpandFields(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.expandFields
|
return self.expandFields
|
||||||
|
|
||||||
def setExpandFields(self, keys):
|
def setExpandFields(self, keys):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param keys:
|
||||||
|
"""
|
||||||
expandFields = []
|
expandFields = []
|
||||||
for key in keys:
|
for key in keys:
|
||||||
if self.isField(key):
|
if self.isField(key):
|
||||||
@ -375,18 +518,38 @@ class GenericDataStructure(object):
|
|||||||
self.expandFields = expandFields
|
self.expandFields = expandFields
|
||||||
|
|
||||||
def getAllowed(self):
|
def getAllowed(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.allowedFields
|
return self.allowedFields
|
||||||
|
|
||||||
def extraAllowed(self):
|
def extraAllowed(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return not self.allowedFields
|
return not self.allowedFields
|
||||||
|
|
||||||
def updateNotAllowed(self, kwargs):
|
def updateNotAllowed(self, kwargs):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param kwargs:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
for key in kwargs:
|
for key in kwargs:
|
||||||
if key not in self.getAllowed():
|
if key not in self.getAllowed():
|
||||||
kwargs.__delitem__(key)
|
kwargs.__delitem__(key)
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
def hasSuffix(self):
|
def hasSuffix(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
self.getFieldValue('suffix')
|
self.getFieldValue('suffix')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@ -397,6 +560,11 @@ class GenericDataStructure(object):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def expandDataPath(self):
|
def expandDataPath(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
expandList = []
|
expandList = []
|
||||||
for item in self.getExpandFields():
|
for item in self.getExpandFields():
|
||||||
expandList.append(self.getFieldValue(item))
|
expandList.append(self.getFieldValue(item))
|
||||||
@ -405,6 +573,11 @@ class GenericDataStructure(object):
|
|||||||
return os.path.join(*expandList)
|
return os.path.join(*expandList)
|
||||||
|
|
||||||
def getCatalogName(self):
|
def getCatalogName(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return os.path.join(self.getFieldValue('root'), 'catalog.qml')
|
return os.path.join(self.getFieldValue('root'), 'catalog.qml')
|
||||||
|
|
||||||
|
|
||||||
@ -463,6 +636,10 @@ class SeiscompDataStructure(GenericDataStructure):
|
|||||||
self.modifiyFields(**kwargs)
|
self.modifiyFields(**kwargs)
|
||||||
|
|
||||||
def modifiyFields(self, **kwargs):
|
def modifiyFields(self, **kwargs):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param kwargs:
|
||||||
|
"""
|
||||||
if kwargs and isinstance(kwargs, dict):
|
if kwargs and isinstance(kwargs, dict):
|
||||||
for key, value in kwargs.iteritems():
|
for key, value in kwargs.iteritems():
|
||||||
key = str(key)
|
key = str(key)
|
||||||
@ -473,14 +650,19 @@ class SeiscompDataStructure(GenericDataStructure):
|
|||||||
value = str(value)
|
value = str(value)
|
||||||
try:
|
try:
|
||||||
self.setField(key, value)
|
self.setField(key, value)
|
||||||
except KeyError, e:
|
except KeyError as e:
|
||||||
errmsg = ''
|
errmsg = ''
|
||||||
errmsg += 'WARNING:\n'
|
errmsg += 'WARNING:\n'
|
||||||
errmsg += 'unable to set values for SDS fields\n'
|
errmsg += 'unable to set values for SDS fields\n'
|
||||||
errmsg += '%s; desired value was: %s\n' % (e, value)
|
errmsg += '%s; desired value was: %s\n' % (e, value)
|
||||||
print errmsg
|
print(errmsg)
|
||||||
|
|
||||||
def setFieldValue(self, key, value):
|
def setFieldValue(self, key, value):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param key:
|
||||||
|
:param value:
|
||||||
|
"""
|
||||||
if self.isField(key):
|
if self.isField(key):
|
||||||
self.getFields()[key] = value
|
self.getFields()[key] = value
|
||||||
else:
|
else:
|
||||||
@ -488,12 +670,27 @@ class SeiscompDataStructure(GenericDataStructure):
|
|||||||
'{field}'.format(field=key))
|
'{field}'.format(field=key))
|
||||||
|
|
||||||
def getFields(self):
|
def getFields(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.__sdsFields
|
return self.__sdsFields
|
||||||
|
|
||||||
def getName(self):
|
def getName(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.__name
|
return self.__name
|
||||||
|
|
||||||
def expandDataPath(self):
|
def expandDataPath(self):
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
fullChan = '{0}.{1}'.format(self.getFields()['CHAN'], self.getType())
|
fullChan = '{0}.{1}'.format(self.getFields()['CHAN'], self.getType())
|
||||||
dataPath = os.path.join(self.getFields()['SDSdir'],
|
dataPath = os.path.join(self.getFields()['SDSdir'],
|
||||||
self.getFields()['YEAR'],
|
self.getFields()['YEAR'],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user