Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7dd0d6c65 |
Binary file not shown.
Binary file not shown.
+8
-98
@@ -40,7 +40,7 @@ import seiscomp.logging
|
|||||||
import seiscomp.client
|
import seiscomp.client
|
||||||
import seiscomp.system
|
import seiscomp.system
|
||||||
|
|
||||||
from seiscomp.math import WGS84_KM_OF_DEGREE
|
from seiscomp.math import KM_OF_DEGREE
|
||||||
|
|
||||||
from seiscomp.fdsnws.utils import isRestricted, u_str, b_str
|
from seiscomp.fdsnws.utils import isRestricted, u_str, b_str
|
||||||
from seiscomp.fdsnws.dataselect import (
|
from seiscomp.fdsnws.dataselect import (
|
||||||
@@ -72,14 +72,6 @@ from seiscomp.fdsnws.http import (
|
|||||||
)
|
)
|
||||||
from seiscomp.fdsnws.log import Log
|
from seiscomp.fdsnws.log import Log
|
||||||
|
|
||||||
try:
|
|
||||||
from seiscomp.fdsnws.jwt import JWT
|
|
||||||
|
|
||||||
_jwtSupported = True
|
|
||||||
|
|
||||||
except ImportError:
|
|
||||||
_jwtSupported = False
|
|
||||||
|
|
||||||
|
|
||||||
def logSC3(entry):
|
def logSC3(entry):
|
||||||
try:
|
try:
|
||||||
@@ -419,14 +411,6 @@ class FDSNWS(seiscomp.client.Application):
|
|||||||
self._access = None
|
self._access = None
|
||||||
self._checker = None
|
self._checker = None
|
||||||
|
|
||||||
self._jwtEnabled = False
|
|
||||||
self._jwtIssuers = ["https://geofon.gfz.de/eas2", "https://login.earthscope.org/"]
|
|
||||||
self._jwtAudience = ["eas", "fdsn"]
|
|
||||||
self._jwtAlgorithms = ["RS256"]
|
|
||||||
self._jwtUpdateMin = 300
|
|
||||||
self._jwtUpdateMax = 86400
|
|
||||||
self._jwt = None
|
|
||||||
|
|
||||||
self._requestLog = None
|
self._requestLog = None
|
||||||
self.__reloadRequested = False
|
self.__reloadRequested = False
|
||||||
self.__timeInventoryLoaded = None
|
self.__timeInventoryLoaded = None
|
||||||
@@ -761,42 +745,6 @@ class FDSNWS(seiscomp.client.Application):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# enable JWT extension?
|
|
||||||
try:
|
|
||||||
self._jwtEnabled = self.configGetBool("jwt.enable")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# JWT issuers
|
|
||||||
try:
|
|
||||||
self._jwtIssuers = self.configGetStrings("jwt.issuers")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# JWT audience
|
|
||||||
try:
|
|
||||||
self._jwtAudience = self.configGetStrings("jwt.audience")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# JWT algorithms
|
|
||||||
try:
|
|
||||||
self._jwtAlgorithms = self.configGetStrings("jwt.algorithms")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# JWT minimum update period
|
|
||||||
try:
|
|
||||||
self._jwtUpdateMin = self.configGetStrings("jwt.updateMinSeconds")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# JWT maximum update period
|
|
||||||
try:
|
|
||||||
self._jwtUpdateMax = self.configGetStrings("jwt.updateMaxSeconds")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# If the database connection is passed via command line or
|
# If the database connection is passed via command line or
|
||||||
# configuration file then messaging is disabled. Messaging is only used
|
# configuration file then messaging is disabled. Messaging is only used
|
||||||
# to get the configured database connection URI.
|
# to get the configured database connection URI.
|
||||||
@@ -930,7 +878,7 @@ Execute on command line with debug output
|
|||||||
if self._invCoordinatePrecision is not None:
|
if self._invCoordinatePrecision is not None:
|
||||||
invCoordinatePrecisionStr = (
|
invCoordinatePrecisionStr = (
|
||||||
f"{self._invCoordinatePrecision} decimal places (≅"
|
f"{self._invCoordinatePrecision} decimal places (≅"
|
||||||
f"{int(WGS84_KM_OF_DEGREE * 1000 / 10**self._invCoordinatePrecision)}m)"
|
f"{int(KM_OF_DEGREE * 1000 / 10**self._invCoordinatePrecision)}m)"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
invCoordinatePrecisionStr = "unlimited"
|
invCoordinatePrecisionStr = "unlimited"
|
||||||
@@ -978,13 +926,6 @@ configuration read:
|
|||||||
auth
|
auth
|
||||||
enabled : {self._authEnabled}
|
enabled : {self._authEnabled}
|
||||||
gnupgHome : {self._authGnupgHome}
|
gnupgHome : {self._authGnupgHome}
|
||||||
JWT
|
|
||||||
enabled : {self._jwtEnabled}
|
|
||||||
issuers : {self._jwtIssuers}
|
|
||||||
audience : {self._jwtAudience}
|
|
||||||
algorithms : {self._jwtAlgorithms}
|
|
||||||
updateMinSeconds : {self._jwtUpdateMin}
|
|
||||||
updateMaxSeconds : {self._jwtUpdateMax}
|
|
||||||
requestLog : {self._requestLogFile}"""
|
requestLog : {self._requestLogFile}"""
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -996,17 +937,6 @@ configuration read:
|
|||||||
seiscomp.logging.error("all services disabled through configuration")
|
seiscomp.logging.error("all services disabled through configuration")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if self._jwtEnabled:
|
|
||||||
if not _jwtSupported:
|
|
||||||
seiscomp.logging.error(
|
|
||||||
"JWT is not supported due to missing dependencies"
|
|
||||||
)
|
|
||||||
return None
|
|
||||||
|
|
||||||
self._jwt = JWT(
|
|
||||||
self._jwtIssuers, self._jwtAudience, self._jwtAlgorithms, self._jwtUpdateMin, self._jwtUpdateMax
|
|
||||||
)
|
|
||||||
|
|
||||||
# access logger if requested
|
# access logger if requested
|
||||||
if self._accessLogFile:
|
if self._accessLogFile:
|
||||||
self._accessLog = Log(self._accessLogFile)
|
self._accessLog = Log(self._accessLogFile)
|
||||||
@@ -1089,16 +1019,9 @@ configuration read:
|
|||||||
dataselect.putChild(b"1", dataselect1)
|
dataselect.putChild(b"1", dataselect1)
|
||||||
|
|
||||||
# query
|
# query
|
||||||
if self._jwtEnabled:
|
dataselect1.putChild(
|
||||||
authSession = self._jwt.getAuthSessionWrapper(
|
b"query", FDSNDataSelect(dataSelectInv, self._recordBulkSize)
|
||||||
FDSNDataSelect, dataSelectInv, self._recordBulkSize, self._access
|
)
|
||||||
)
|
|
||||||
dataselect1.putChild(b"query", authSession)
|
|
||||||
|
|
||||||
else:
|
|
||||||
dataselect1.putChild(
|
|
||||||
b"query", FDSNDataSelect(dataSelectInv, self._recordBulkSize)
|
|
||||||
)
|
|
||||||
|
|
||||||
# queryauth
|
# queryauth
|
||||||
if self._authEnabled:
|
if self._authEnabled:
|
||||||
@@ -1127,8 +1050,7 @@ configuration read:
|
|||||||
dataselect1.putChild(b"builder", fileRes)
|
dataselect1.putChild(b"builder", fileRes)
|
||||||
|
|
||||||
if self._authEnabled:
|
if self._authEnabled:
|
||||||
from seiscomp.fdsnws.authresource import AuthResource
|
from seiscomp.fdsnws.http import AuthResource
|
||||||
|
|
||||||
dataselect1.putChild(
|
dataselect1.putChild(
|
||||||
b"auth",
|
b"auth",
|
||||||
AuthResource(DataSelectVersion, self._authGnupgHome, self._userdb),
|
AuthResource(DataSelectVersion, self._authGnupgHome, self._userdb),
|
||||||
@@ -1258,13 +1180,7 @@ configuration read:
|
|||||||
availability.putChild(b"1", availability1)
|
availability.putChild(b"1", availability1)
|
||||||
|
|
||||||
# query
|
# query
|
||||||
if self._jwtEnabled:
|
availability1.putChild(b"query", FDSNAvailabilityQuery())
|
||||||
authSession = self._jwt.getAuthSessionWrapper(
|
|
||||||
FDSNAvailabilityQuery, self._access
|
|
||||||
)
|
|
||||||
availability1.putChild(b"query", authSession)
|
|
||||||
else:
|
|
||||||
availability1.putChild(b"query", FDSNAvailabilityQuery())
|
|
||||||
|
|
||||||
# queryauth
|
# queryauth
|
||||||
if self._authEnabled:
|
if self._authEnabled:
|
||||||
@@ -1276,13 +1192,7 @@ configuration read:
|
|||||||
availability1.putChild(b"queryauth", authSession)
|
availability1.putChild(b"queryauth", authSession)
|
||||||
|
|
||||||
# extent
|
# extent
|
||||||
if self._jwtEnabled:
|
availability1.putChild(b"extent", FDSNAvailabilityExtent())
|
||||||
authSession = self._jwt.getAuthSessionWrapper(
|
|
||||||
FDSNAvailabilityExtent, self._access
|
|
||||||
)
|
|
||||||
availability1.putChild(b"extent", authSession)
|
|
||||||
else:
|
|
||||||
availability1.putChild(b"extent", FDSNAvailabilityExtent())
|
|
||||||
|
|
||||||
# extentauth
|
# extentauth
|
||||||
if self._authEnabled:
|
if self._authEnabled:
|
||||||
|
|||||||
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+12
-13
@@ -107,19 +107,19 @@ def rt_simul(f, speed=1.0, jump=0.0, delaydict=None):
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
def usage():
|
def usage():
|
||||||
print(
|
print(
|
||||||
f"""Usage:
|
"""Usage:
|
||||||
{os.path.basename(__file__)} [options] file
|
msrtsimul [options] file
|
||||||
|
|
||||||
miniSEED real-time playback and simulation
|
miniSEED real-time playback and simulation
|
||||||
|
|
||||||
{os.path.basename(__file__)} reads sorted (and possibly multiplexed) miniSEED files and
|
msrtsimul reads sorted (and possibly multiplexed) miniSEED files and writes
|
||||||
writes individual records in pseudo-real-time. This is useful e.g. for testing and
|
individual records in pseudo-real-time. This is useful e.g. for testing and
|
||||||
simulating data acquisition. Output is
|
simulating data acquisition. Output is
|
||||||
$SEISCOMP_ROOT/var/run/seedlink/mseedfifo unless --seedlink or -c is used.
|
$SEISCOMP_ROOT/var/run/seedlink/mseedfifo unless --seedlink or -c is used.
|
||||||
|
|
||||||
Verbosity:
|
Verbosity:
|
||||||
-h, --help Display this help message.
|
-h, --help Display this help message
|
||||||
-v, --verbose Verbose mode.
|
-v, --verbose Verbose mode
|
||||||
|
|
||||||
Playback:
|
Playback:
|
||||||
-j, --jump Minutes to skip (float).
|
-j, --jump Minutes to skip (float).
|
||||||
@@ -131,15 +131,14 @@ Playback:
|
|||||||
-m --mode Choose between 'realtime' and 'historic'.
|
-m --mode Choose between 'realtime' and 'historic'.
|
||||||
-s, --speed Speed factor (float).
|
-s, --speed Speed factor (float).
|
||||||
--test Test mode.
|
--test Test mode.
|
||||||
-u, --unlimited Allow miniSEED records which are not 512 bytes. By default
|
-u, --unlimited Allow miniSEED records which are not 512 bytes
|
||||||
seedlink supports 512 bytes only.
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
Play back miniSEED waveforms in real time with verbose output
|
Play back miniSEED waveforms in real time with verbose output
|
||||||
{os.path.basename(__file__)} -v data.mseed
|
msrtsimul -v data.mseed
|
||||||
|
|
||||||
Play back miniSEED waveforms in real time skipping the first 1.5 minutes
|
Play back miniSEED waveforms in real time skipping the first 1.5 minutes
|
||||||
{os.path.basename(__file__)} -j 1.5 data.mseed
|
msrtsimul -j 1.5 data.mseed
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -171,7 +170,7 @@ def main():
|
|||||||
"help",
|
"help",
|
||||||
"mode=",
|
"mode=",
|
||||||
"seedlink=",
|
"seedlink=",
|
||||||
"unlimited",
|
"unlimited"
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
except GetoptError:
|
except GetoptError:
|
||||||
@@ -279,7 +278,7 @@ Check if SeedLink is running and configured for real-time playback.
|
|||||||
|
|
||||||
time_diff = None
|
time_diff = None
|
||||||
print(
|
print(
|
||||||
f"Starting msrtsimul at {datetime.datetime.now(datetime.UTC)}",
|
f"Starting msrtsimul at {datetime.datetime.utcnow()}",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
for rec in inp:
|
for rec in inp:
|
||||||
@@ -293,7 +292,7 @@ starting on {str(rec.begin_time)}: length != 512 Bytes.",
|
|||||||
if time_diff is None:
|
if time_diff is None:
|
||||||
ms = 1000000.0 * (rec.nsamp / rec.fsamp)
|
ms = 1000000.0 * (rec.nsamp / rec.fsamp)
|
||||||
time_diff = (
|
time_diff = (
|
||||||
datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
|
datetime.datetime.utcnow()
|
||||||
- rec.begin_time
|
- rec.begin_time
|
||||||
- datetime.timedelta(microseconds=ms)
|
- datetime.timedelta(microseconds=ms)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ def main():
|
|||||||
|
|
||||||
resp = seiscomp.datamodel.ResponsePAZ_Create()
|
resp = seiscomp.datamodel.ResponsePAZ_Create()
|
||||||
resp.setType("A")
|
resp.setType("A")
|
||||||
resp.setGain(args.gain / header["dataScale"])
|
resp.setGain(args.gain * header["sensitivities"][0]["factor"] / header["dataScale"])
|
||||||
resp.setGainFrequency(0)
|
resp.setGainFrequency(0)
|
||||||
resp.setNormalizationFactor(1)
|
resp.setNormalizationFactor(1)
|
||||||
resp.setNormalizationFrequency(0)
|
resp.setNormalizationFrequency(0)
|
||||||
@@ -93,9 +93,9 @@ def main():
|
|||||||
inv.add(resp)
|
inv.add(resp)
|
||||||
|
|
||||||
sensor = seiscomp.datamodel.Sensor_Create()
|
sensor = seiscomp.datamodel.Sensor_Create()
|
||||||
sensor.setName(header["experiment"])
|
sensor.setName(header["instrument"])
|
||||||
sensor.setDescription(header["measurement"])
|
sensor.setDescription(header["instrument"])
|
||||||
sensor.setUnit(header["unit"])
|
sensor.setUnit(header["sensitivities"][0]["unit"])
|
||||||
sensor.setResponse(resp.publicID())
|
sensor.setResponse(resp.publicID())
|
||||||
inv.add(sensor)
|
inv.add(sensor)
|
||||||
|
|
||||||
@@ -131,8 +131,8 @@ def main():
|
|||||||
cha = seiscomp.datamodel.Stream_Create()
|
cha = seiscomp.datamodel.Stream_Create()
|
||||||
cha.setCode(args.channel)
|
cha.setCode(args.channel)
|
||||||
cha.setStart(net.start())
|
cha.setStart(net.start())
|
||||||
cha.setGain(args.gain / header["dataScale"])
|
cha.setGain(args.gain * header["sensitivities"][0]["factor"] / header["dataScale"])
|
||||||
cha.setGainUnit(header["unit"])
|
cha.setGainUnit(header["sensitivities"][0]["unit"])
|
||||||
cha.setGainFrequency(0)
|
cha.setGainFrequency(0)
|
||||||
cha.setSensor(sensor.publicID())
|
cha.setSensor(sensor.publicID())
|
||||||
cha.setDatalogger(datalogger.publicID())
|
cha.setDatalogger(datalogger.publicID())
|
||||||
|
|||||||
Binary file not shown.
@@ -13,14 +13,11 @@
|
|||||||
# https://www.gnu.org/licenses/agpl-3.0.html. #
|
# https://www.gnu.org/licenses/agpl-3.0.html. #
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
import time
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import time
|
||||||
import seiscomp.core
|
import seiscomp.core, seiscomp.client, seiscomp.datamodel, seiscomp.logging
|
||||||
import seiscomp.client
|
|
||||||
import seiscomp.datamodel
|
|
||||||
import seiscomp.logging
|
|
||||||
|
|
||||||
from seiscomp.scbulletin import Bulletin, stationCount
|
from seiscomp.scbulletin import Bulletin, stationCount
|
||||||
|
|
||||||
|
|
||||||
@@ -43,8 +40,8 @@ class ProcAlert(seiscomp.client.Application):
|
|||||||
self.minPickCount = 25
|
self.minPickCount = 25
|
||||||
|
|
||||||
self.procAlertScript = ""
|
self.procAlertScript = ""
|
||||||
self.bulletin = None
|
|
||||||
self.cache = None
|
ep = seiscomp.datamodel.EventParameters()
|
||||||
|
|
||||||
def createCommandLineDescription(self):
|
def createCommandLineDescription(self):
|
||||||
try:
|
try:
|
||||||
@@ -64,8 +61,7 @@ class ProcAlert(seiscomp.client.Application):
|
|||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Publishing",
|
"Publishing",
|
||||||
"procalert-script",
|
"procalert-script",
|
||||||
"Specify the script to publish an event. The ProcAlert file and the "
|
"Specify the script to publish an event. The ProcAlert file and the event id are passed as parameter $1 and $2",
|
||||||
"event id are passed as parameter $1 and $2",
|
|
||||||
)
|
)
|
||||||
self.commandline().addOption(
|
self.commandline().addOption(
|
||||||
"Publishing", "test", "Test mode, no messages are sent"
|
"Publishing", "test", "Test mode, no messages are sent"
|
||||||
@@ -178,14 +174,13 @@ class ProcAlert(seiscomp.client.Application):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def send_procalert(self, txt, evid):
|
def send_procalert(self, txt, evid):
|
||||||
if not self.procAlertScript:
|
if self.procAlertScript:
|
||||||
return
|
tmp = f"/tmp/yyy{evid.replace('/', '_').replace(':', '-')}"
|
||||||
|
f = file(tmp, "w")
|
||||||
|
f.write(f"{txt}")
|
||||||
|
f.close()
|
||||||
|
|
||||||
file = f"/tmp/yyy{evid.replace('/', '_').replace(':', '-')}"
|
os.system(self.procAlertScript + " " + tmp + " " + evid)
|
||||||
with open(file, "w", encoding="utf8") as f:
|
|
||||||
print(txt, file=f)
|
|
||||||
|
|
||||||
os.system(self.procAlertScript + " " + file + " " + evid)
|
|
||||||
|
|
||||||
def coordinates(self, org):
|
def coordinates(self, org):
|
||||||
return org.latitude().value(), org.longitude().value(), org.depth().value()
|
return org.latitude().value(), org.longitude().value(), org.depth().value()
|
||||||
@@ -199,7 +194,7 @@ class ProcAlert(seiscomp.client.Application):
|
|||||||
seiscomp.logging.error("suspicious region/depth - ignored")
|
seiscomp.logging.error("suspicious region/depth - ignored")
|
||||||
publish = False
|
publish = False
|
||||||
|
|
||||||
if stationCount(org, 0.5) < self.minPickCount:
|
if stationCount(org) < self.minPickCount:
|
||||||
seiscomp.logging.error("too few picks - ignored")
|
seiscomp.logging.error("too few picks - ignored")
|
||||||
publish = False
|
publish = False
|
||||||
|
|
||||||
|
|||||||
+24
-36
@@ -39,8 +39,6 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
self.addMessagingSubscription("EVENT")
|
self.addMessagingSubscription("EVENT")
|
||||||
self.addMessagingSubscription("LOCATION")
|
self.addMessagingSubscription("LOCATION")
|
||||||
self.addMessagingSubscription("MAGNITUDE")
|
self.addMessagingSubscription("MAGNITUDE")
|
||||||
self.addMessagingSubscription("AMPLITUDE")
|
|
||||||
self.addMessagingSubscription("PICK")
|
|
||||||
|
|
||||||
self.setAutoApplyNotifierEnabled(True)
|
self.setAutoApplyNotifierEnabled(True)
|
||||||
self.setInterpretNotifierEnabled(True)
|
self.setInterpretNotifierEnabled(True)
|
||||||
@@ -78,57 +76,50 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
self.commandline().addOption(
|
self.commandline().addOption(
|
||||||
"Generic",
|
"Generic",
|
||||||
"first-new",
|
"first-new",
|
||||||
"Calls an event a new event when it is seen the first time.",
|
"calls an event a new event when it is seen the first time",
|
||||||
)
|
)
|
||||||
self.commandline().addGroup("Alert")
|
self.commandline().addGroup("Alert")
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert", "amp-type", "amplitude type to listen to", self._ampType
|
||||||
"amp-type",
|
|
||||||
"Amplitude type to listen to.",
|
|
||||||
self._ampType,
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"pick-script",
|
"pick-script",
|
||||||
"Script to be called when a pick arrived, network-, station code pick "
|
"script to be called when a pick arrived, network-, station code pick "
|
||||||
"publicID are passed as parameters $1, $2, $3 and $4.",
|
"publicID are passed as parameters $1, $2, $3 and $4",
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"amp-script",
|
"amp-script",
|
||||||
"Script to be called when a station amplitude arrived, network-, station "
|
"script to be called when a station amplitude arrived, network-, station "
|
||||||
"code, amplitude and amplitude publicID are passed as parameters $1, $2, "
|
"code, amplitude and amplitude publicID are passed as parameters $1, $2, $3 and $4",
|
||||||
"$3 and $4.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"alert-script",
|
"alert-script",
|
||||||
"Script to be called when a preliminary origin arrived, latitude and "
|
"script to be called when a preliminary origin arrived, latitude and "
|
||||||
"longitude are passed as parameters $1 and $2.",
|
"longitude are passed as parameters $1 and $2",
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"event-script",
|
"event-script",
|
||||||
"Script to be called when an event has been declared; the message string, "
|
"script to be called when an event has been declared; the message string, a "
|
||||||
"a flag (1=new event, 0=update event), the EventID, the arrival count and "
|
"flag (1=new event, 0=update event), the EventID, the arrival count and the "
|
||||||
"the magnitude (optional when set) are passed as parameter $1, $2, $3, $4 "
|
"magnitude (optional when set) are passed as parameter $1, $2, $3, $4 and $5",
|
||||||
"and $5.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addGroup("Cities")
|
self.commandline().addGroup("Cities")
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Cities",
|
"Cities",
|
||||||
"max-dist",
|
"max-dist",
|
||||||
"Maximum distance for using the distance from a city to the earthquake.",
|
"maximum distance for using the distance from a city to the earthquake",
|
||||||
str(self._citiesMaxDist),
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Cities",
|
"Cities",
|
||||||
"min-population",
|
"min-population",
|
||||||
"Minimum population for a city to become a point of interest.",
|
"minimum population for a city to become a point of interest",
|
||||||
str(self._citiesMinPopulation),
|
|
||||||
)
|
)
|
||||||
self.commandline().addGroup("Debug")
|
self.commandline().addGroup("Debug")
|
||||||
self.commandline().addStringOption("Debug", "eventid,E", "Specify event ID.")
|
self.commandline().addStringOption("Debug", "eventid,E", "specify Event ID")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def init(self):
|
def init(self):
|
||||||
@@ -183,7 +174,7 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
phaseStreams = self.configGetStrings("constraints.phaseStreams")
|
phaseStreams = self.configGetStrings("constraints.phaseStreams")
|
||||||
for item in phaseStreams:
|
for item in phaseStreams:
|
||||||
rule = item.strip()
|
rule = item.strip()
|
||||||
# allowned: NET.STA.LOC.CHA and the special charactes ? * | ( )
|
# rule is NET.STA.LOC.CHA and the special charactes ? * | ( ) are allowed
|
||||||
if not re.fullmatch(r"[A-Z|a-z|0-9|\?|\*|\||\(|\)|\.]+", rule):
|
if not re.fullmatch(r"[A-Z|a-z|0-9|\?|\*|\||\(|\)|\.]+", rule):
|
||||||
seiscomp.logging.error(
|
seiscomp.logging.error(
|
||||||
f"Wrong stream ID format in `constraints.phaseStreams`: {item}"
|
f"Wrong stream ID format in `constraints.phaseStreams`: {item}"
|
||||||
@@ -568,8 +559,7 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
break
|
break
|
||||||
if not matched:
|
if not matched:
|
||||||
seiscomp.logging.debug(
|
seiscomp.logging.debug(
|
||||||
f" + stream ID {waveformID} does not match "
|
f" + stream ID {waveformID} does not match constraints.phaseStreams rules"
|
||||||
"constraints.phaseStreams rules"
|
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -578,8 +568,7 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
self.notifyPick(obj)
|
self.notifyPick(obj)
|
||||||
else:
|
else:
|
||||||
seiscomp.logging.debug(
|
seiscomp.logging.debug(
|
||||||
f" + phase hint {phaseHint} does not match "
|
f" + phase hint {phaseHint} does not match '{self._phaseHints}'"
|
||||||
f"'{self._phaseHints}'"
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
seiscomp.logging.debug(
|
seiscomp.logging.debug(
|
||||||
@@ -750,11 +739,6 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
|
|
||||||
seiscomp.logging.debug(f"desc: {dsc}")
|
seiscomp.logging.debug(f"desc: {dsc}")
|
||||||
|
|
||||||
try:
|
|
||||||
evType = seiscomp.datamodel.EEventTypeNames.name(evt.type())
|
|
||||||
except Exception:
|
|
||||||
evType = "earthquake"
|
|
||||||
|
|
||||||
dep = org.depth().value()
|
dep = org.depth().value()
|
||||||
now = seiscomp.core.Time.GMT()
|
now = seiscomp.core.Time.GMT()
|
||||||
otm = org.time().value()
|
otm = org.time().value()
|
||||||
@@ -772,10 +756,14 @@ class ObjectAlert(seiscomp.client.Application):
|
|||||||
dt = f"{int(dt)} seconds ago"
|
dt = f"{int(dt)} seconds ago"
|
||||||
|
|
||||||
if preliminary:
|
if preliminary:
|
||||||
message = f"{evType}, XXL, preliminary, {dt}, {dsc}"
|
message = f"earthquake, XXL, preliminary, {dt}, {dsc}"
|
||||||
else:
|
else:
|
||||||
message = f"{evType}, {dt}, {dsc}, {mag}, depth {int(dep + 0.5)} kilometers"
|
message = "earthquake, %s, %s, %s, depth %d kilometers" % (
|
||||||
|
dt,
|
||||||
|
dsc,
|
||||||
|
mag,
|
||||||
|
int(dep + 0.5),
|
||||||
|
)
|
||||||
seiscomp.logging.info(message)
|
seiscomp.logging.info(message)
|
||||||
|
|
||||||
if not self._eventScript:
|
if not self._eventScript:
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -300,15 +300,10 @@ class StreamIterator:
|
|||||||
self.file = workdir + file
|
self.file = workdir + file
|
||||||
# print "Starting at file %s" % self.file
|
# print "Starting at file %s" % self.file
|
||||||
|
|
||||||
while begin < end:
|
self.record, self.index = ar.findIndex(begin, end, self.file)
|
||||||
self.record, self.index = ar.findIndex(begin, end, self.file)
|
if self.record:
|
||||||
if self.record:
|
self.current = self.record.startTime()
|
||||||
self.current = self.record.startTime()
|
self.currentEnd = self.record.endTime()
|
||||||
self.currentEnd = self.record.endTime()
|
|
||||||
break
|
|
||||||
begin = self.archive.stepTime(begin)
|
|
||||||
workdir, file = ar.location(begin, net, sta, loc, cha)
|
|
||||||
self.file = workdir + file
|
|
||||||
|
|
||||||
def __next__(self):
|
def __next__(self):
|
||||||
while True:
|
while True:
|
||||||
@@ -463,8 +458,7 @@ class RecordRenamer:
|
|||||||
def printRules(self):
|
def printRules(self):
|
||||||
for r in self.renameRules:
|
for r in self.renameRules:
|
||||||
print(
|
print(
|
||||||
"Renaming "
|
f"Renaming {(r.pattern.pattern if r.pattern is not None else '*.*.*.*')} "
|
||||||
f"{(r.pattern.pattern if r.pattern is not None else '*.*.*.*')} "
|
|
||||||
f"to {r.newNet}.{r.newSta}.{r.newLoc}.{r.newCha}",
|
f"to {r.newNet}.{r.newSta}.{r.newLoc}.{r.newCha}",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
@@ -811,9 +805,10 @@ Usage:
|
|||||||
{os.path.basename(__file__)} -d [options] [archive]
|
{os.path.basename(__file__)} -d [options] [archive]
|
||||||
{os.path.basename(__file__)} --check [options] [archive]
|
{os.path.basename(__file__)} --check [options] [archive]
|
||||||
|
|
||||||
Import or export miniSEED waveforms into/from an SDS structure. Also check files and
|
Import miniSEED waveforms or dump records from an SDS structure, sort them,
|
||||||
archives. Data streams can be selected in three ways using the combinations of options:
|
modify the time and replay them. Also check files and archives.
|
||||||
-n -c -t or --nslc -t or --list.
|
For Import and Dump mode the data streams can be selected in three ways
|
||||||
|
using the combinations of options: -n -c -t or --nslc -t or --list
|
||||||
|
|
||||||
Verbosity:
|
Verbosity:
|
||||||
-h, --help Display this help message.
|
-h, --help Display this help message.
|
||||||
@@ -848,7 +843,7 @@ Processing:
|
|||||||
2007-03-28 15:48;2007-03-28 16:18;GE.LAST.*.*
|
2007-03-28 15:48;2007-03-28 16:18;GE.LAST.*.*
|
||||||
2007-03-28 15:48;2007-03-28 16:18;GE.PMBI..BH?
|
2007-03-28 15:48;2007-03-28 16:18;GE.PMBI..BH?
|
||||||
-m, --modify Dump mode: Modify the record time for real time playback
|
-m, --modify Dump mode: Modify the record time for real time playback
|
||||||
when dumping. Implicitly sets the speed parameter to 1.
|
when dumping.
|
||||||
-n arg Import, dump mode: Data stream selection as a comma separated
|
-n arg Import, dump mode: Data stream selection as a comma separated
|
||||||
list "stream1,stream2,streamX" where each stream can be NET or
|
list "stream1,stream2,streamX" where each stream can be NET or
|
||||||
NET.STA or NET.STA.LOC or NET.STA.LOC.CHA. If CHA is omitted,
|
NET.STA or NET.STA.LOC or NET.STA.LOC.CHA. If CHA is omitted,
|
||||||
@@ -863,18 +858,16 @@ Processing:
|
|||||||
A rule is "[match-stream:]rename-stream" and match-stream
|
A rule is "[match-stream:]rename-stream" and match-stream
|
||||||
is optional. match-stream and rename-stream are in the
|
is optional. match-stream and rename-stream are in the
|
||||||
"NET.STA.LOC.CHA" format. match-stream supports special
|
"NET.STA.LOC.CHA" format. match-stream supports special
|
||||||
characters "?" "*" "|" "(" ")". rename-stream supports the
|
charactes "?" "*" "|" "(" ")". rename-stream supports the
|
||||||
special character "-" that can be used in place of NET, STA,
|
special character "-" that can be used in place of NET, STA,
|
||||||
LOC, CHA codes with the meaning of not renaming those.
|
LOC, CHA codes with the meaning of not renaming those.
|
||||||
"-" can also be used as the last character in CHA code.
|
"-" can also be used as the last character in CHA code.
|
||||||
Multiple rules can be provided as a comma separated list
|
Multiple rules can be provided as a comma separated list
|
||||||
or by providing multiple --rename options.
|
or by providing multiple --rename options.
|
||||||
-s, --sort Dump mode: Sort records.
|
-s, --sort Dump mode: Sort records.
|
||||||
--speed arg Dump mode: Specify the speed to dump the records as a
|
--speed arg Dump mode: Specify the speed to dump the records. A value
|
||||||
multiplier of the real time difference between the records.
|
of 0 means no delay. Otherwise speed is a multiplier of
|
||||||
A value > 1 will speed up the playback while a value > 0
|
the real time difference between the records.
|
||||||
and < 1 will slow the playback down. This option implies
|
|
||||||
sorting of the records.
|
|
||||||
-t, --time-window t1~t2
|
-t, --time-window t1~t2
|
||||||
Import, dump mode: UTC time window filter to be applied to
|
Import, dump mode: UTC time window filter to be applied to
|
||||||
the data streams. Format: "StartTime~EndTime". Example:
|
the data streams. Format: "StartTime~EndTime". Example:
|
||||||
@@ -893,7 +886,7 @@ Output:
|
|||||||
--print-streams.
|
--print-streams.
|
||||||
--with-filecheck Import mode: Check all accessed files after import. Unsorted
|
--with-filecheck Import mode: Check all accessed files after import. Unsorted
|
||||||
or unreadable files are reported to stderr. Checks are only
|
or unreadable files are reported to stderr. Checks are only
|
||||||
complete for files containing exactly one stream. More
|
complete for files containing exactly one stream. More
|
||||||
complete checks are made with scmssort.
|
complete checks are made with scmssort.
|
||||||
--with-filename Import mode: Print all accessed files to sterr after import.
|
--with-filename Import mode: Print all accessed files to sterr after import.
|
||||||
|
|
||||||
@@ -908,16 +901,11 @@ Import miniSEED data into a SDS archive, check all modified files for errors
|
|||||||
{os.path.basename(__file__)} -I file.mseed --with-filecheck $SEISCOMP_ROOT/var/lib/archive
|
{os.path.basename(__file__)} -I file.mseed --with-filecheck $SEISCOMP_ROOT/var/lib/archive
|
||||||
|
|
||||||
Import miniSEED data from FDSNWS into a SDS archive for specific time range and streams
|
Import miniSEED data from FDSNWS into a SDS archive for specific time range and streams
|
||||||
{os.path.basename(__file__)} -I fdsnws://geofon.gfz.de \
|
{os.path.basename(__file__)} -I fdsnws://geofon.gfz-potsdam.de \
|
||||||
-t 2022-03-28T15:48~2022-03-28T16:18 --nslc list.file $SEISCOMP_ROOT/var/lib/archive
|
-t 2022-03-28T15:48~2022-03-28T16:18 --nslc list.file $SEISCOMP_ROOT/var/lib/archive
|
||||||
|
|
||||||
Check an archive for files with out-of-order records
|
Check an archive for files with out-of-order records
|
||||||
{os.path.basename(__file__)} --check /archive
|
{os.path.basename(__file__)} --check /archive
|
||||||
|
|
||||||
Play back miniSEED data from archive at normal speed as in real time and pipe \
|
|
||||||
them into another application, here scrttv
|
|
||||||
|
|
||||||
{os.path.basename(__file__)} -dmv -t 2026-05-01~2026-05-02 /archive | scrttv -I - --offline --no-inventory
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@@ -976,7 +964,7 @@ def main():
|
|||||||
# default = stdin
|
# default = stdin
|
||||||
recordURL = "file://-"
|
recordURL = "file://-"
|
||||||
|
|
||||||
speed = None
|
speed = 0
|
||||||
stdout = False
|
stdout = False
|
||||||
outputFile = None
|
outputFile = None
|
||||||
ignoreRecords = False
|
ignoreRecords = False
|
||||||
@@ -1050,23 +1038,7 @@ def main():
|
|||||||
else:
|
else:
|
||||||
usage(exitcode=1)
|
usage(exitcode=1)
|
||||||
|
|
||||||
if dump:
|
if not dump and not checkSDS and not importMode:
|
||||||
if modifyTime and speed is None:
|
|
||||||
speed = 1
|
|
||||||
sort = True
|
|
||||||
elif speed is not None:
|
|
||||||
if speed <= 0:
|
|
||||||
print("'--speed' must be greater than 0", file=sys.stderr)
|
|
||||||
return -1
|
|
||||||
|
|
||||||
sort = True
|
|
||||||
if modifyTime and speed != 1:
|
|
||||||
print(
|
|
||||||
"Modify time requested with '--speed' value other than 1. Gaps "
|
|
||||||
"or overlaps will be created.",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
elif not checkSDS and not importMode:
|
|
||||||
importMode = True
|
importMode = True
|
||||||
|
|
||||||
if files:
|
if files:
|
||||||
@@ -1144,21 +1116,18 @@ def main():
|
|||||||
print(f"Stream file: '{nslcFile}'", file=sys.stderr)
|
print(f"Stream file: '{nslcFile}'", file=sys.stderr)
|
||||||
|
|
||||||
if dump:
|
if dump:
|
||||||
flags = []
|
if not sort and not modifyTime:
|
||||||
if speed:
|
print("Mode: DUMP", file=sys.stderr)
|
||||||
flags.append(f"speed={speed}")
|
elif sort and not modifyTime:
|
||||||
if sort:
|
print("Mode: DUMP & SORT", file=sys.stderr)
|
||||||
flags.append("sort")
|
elif not sort and modifyTime:
|
||||||
if modifyTime:
|
print("Mode: DUMP & MODIFY_TIME", file=sys.stderr)
|
||||||
flags.append("modify time")
|
elif sort and modifyTime:
|
||||||
flagStr = ""
|
print("Mode: DUMP & SORT & MODIFY_TIME", file=sys.stderr)
|
||||||
if flags:
|
|
||||||
flagStr = f" ({', '.join(flags)})"
|
|
||||||
print(f"Mode: DUMP{flagStr}", file=sys.stderr)
|
|
||||||
print(f"Archive: {archiveDirectory}", file=sys.stderr)
|
print(f"Archive: {archiveDirectory}", file=sys.stderr)
|
||||||
|
|
||||||
if checkSDS:
|
if checkSDS:
|
||||||
print("Mode: CHECK", file=sys.stderr)
|
print("Mode: Check", file=sys.stderr)
|
||||||
|
|
||||||
if importMode:
|
if importMode:
|
||||||
print("Mode: IMPORT", file=sys.stderr)
|
print("Mode: IMPORT", file=sys.stderr)
|
||||||
@@ -1188,7 +1157,7 @@ def main():
|
|||||||
else:
|
else:
|
||||||
out = sys.stdout.buffer
|
out = sys.stdout.buffer
|
||||||
|
|
||||||
# list file with times takes priority over nslc list
|
# list file witht times takes priority over nslc list
|
||||||
if listFile:
|
if listFile:
|
||||||
nslcFile = None
|
nslcFile = None
|
||||||
|
|
||||||
@@ -1205,8 +1174,7 @@ def main():
|
|||||||
for stream in streamFilter:
|
for stream in streamFilter:
|
||||||
if stream.tmin >= stream.tmax:
|
if stream.tmin >= stream.tmax:
|
||||||
print(
|
print(
|
||||||
"Info: "
|
f"Info: ignoring {stream.net}.{stream.sta}.{stream.loc}.{stream.cha} - "
|
||||||
f"ignoring {stream.net}.{stream.sta}.{stream.loc}.{stream.cha} - "
|
|
||||||
f"start {stream.tmin} after end {stream.tmax}",
|
f"start {stream.tmin} after end {stream.tmax}",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
@@ -1260,9 +1228,8 @@ def main():
|
|||||||
f"{stream.cha} {stream.tmin} - {stream.tmax}",
|
f"{stream.cha} {stream.tmin} - {stream.tmax}",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
|
stime = None
|
||||||
firstRecordEndTime = None
|
realTime = seiscomp.core.Time.GMT()
|
||||||
startTime = seiscomp.core.Time.UTC()
|
|
||||||
|
|
||||||
if sort:
|
if sort:
|
||||||
records = Sorter(archiveIterator)
|
records = Sorter(archiveIterator)
|
||||||
@@ -1278,34 +1245,36 @@ def main():
|
|||||||
if ignoreRecords:
|
if ignoreRecords:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
etime = rec.endTime()
|
etime = seiscomp.core.Time(rec.endTime())
|
||||||
|
|
||||||
if not firstRecordEndTime:
|
if stime is None:
|
||||||
firstRecordEndTime = seiscomp.core.Time(etime)
|
stime = etime
|
||||||
if verbose:
|
if verbose:
|
||||||
print(
|
print(f"First record: {stime.iso()}", file=sys.stderr)
|
||||||
f"First record end time: {firstRecordEndTime.iso()}",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
|
|
||||||
if speed:
|
dt = etime - stime
|
||||||
dt = (etime - firstRecordEndTime).length()
|
|
||||||
playTime = startTime + seiscomp.core.TimeSpan(dt / speed)
|
|
||||||
|
|
||||||
if modifyTime:
|
now = seiscomp.core.Time.GMT()
|
||||||
recLength = etime - rec.startTime()
|
|
||||||
rec.setStartTime(seiscomp.core.Time(playTime) - recLength)
|
|
||||||
|
|
||||||
sleepSeconds = (playTime - seiscomp.core.Time.UTC()).length()
|
if speed > 0:
|
||||||
if sleepSeconds > 0:
|
playTime = (realTime + dt).toDouble() / speed
|
||||||
time.sleep(sleepSeconds)
|
else:
|
||||||
|
playTime = now.toDouble()
|
||||||
|
|
||||||
|
sleepTime = playTime - now.toDouble()
|
||||||
|
if sleepTime > 0:
|
||||||
|
time.sleep(sleepTime)
|
||||||
|
|
||||||
|
if modifyTime:
|
||||||
|
recLength = etime - rec.startTime()
|
||||||
|
rec.setStartTime(seiscomp.core.Time(playTime) - recLength)
|
||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
|
etime = rec.endTime()
|
||||||
print(
|
print(
|
||||||
f"{rec.streamID()} "
|
f"{rec.streamID()} time current: "
|
||||||
f"current time: {seiscomp.core.Time.LocalTime().iso()}"
|
f"{seiscomp.core.Time.LocalTime().iso()} start: "
|
||||||
f", rec start: {rec.startTime().iso()}"
|
f"{rec.startTime().iso()} end: {etime.iso()}",
|
||||||
f", rec end: {rec.startTime().iso()}",
|
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1560,8 +1529,7 @@ def main():
|
|||||||
f = open(archiveDirectory + file, "ab")
|
f = open(archiveDirectory + file, "ab")
|
||||||
except BaseException:
|
except BaseException:
|
||||||
print(
|
print(
|
||||||
f"File {archiveDirectory + file} could not be opened "
|
f"File {archiveDirectory + file} could not be opened for writing",
|
||||||
f"for writing",
|
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
return -1
|
return -1
|
||||||
@@ -1637,8 +1605,8 @@ def main():
|
|||||||
print(fileName, file=sys.stderr)
|
print(fileName, file=sys.stderr)
|
||||||
|
|
||||||
if printStreams and streamDict:
|
if printStreams and streamDict:
|
||||||
minTime = None
|
minTime = seiscomp.core.Time.GMT()
|
||||||
maxTime = None
|
maxTime = str2time("1970-01-01 00:00:00")
|
||||||
totalRecs = 0
|
totalRecs = 0
|
||||||
totalSamples = 0
|
totalSamples = 0
|
||||||
totalChans = set()
|
totalChans = set()
|
||||||
@@ -1656,12 +1624,8 @@ def main():
|
|||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
|
|
||||||
if minTime:
|
maxTime = max(maxTime, str2time(end))
|
||||||
minTime = min(minTime, str2time(start))
|
minTime = min(minTime, str2time(start))
|
||||||
maxTime = max(maxTime, str2time(end))
|
|
||||||
else:
|
|
||||||
minTime = str2time(start)
|
|
||||||
maxTime = str2time(end)
|
|
||||||
|
|
||||||
totalChans.add(key)
|
totalChans.add(key)
|
||||||
totalNetworks.add(key.split(".")[0])
|
totalNetworks.add(key.split(".")[0])
|
||||||
@@ -1673,17 +1637,28 @@ def main():
|
|||||||
"# Summary",
|
"# Summary",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
if minTime and maxTime:
|
|
||||||
print(
|
|
||||||
f"# time range: {minTime.iso()} - {maxTime.iso()}",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
print(
|
print(
|
||||||
f""""# networks: {len(totalNetworks)}
|
f"# time range: {minTime.iso()} - {maxTime.iso()}",
|
||||||
# stations: {len(totalStations)}
|
file=sys.stderr,
|
||||||
# streams: {len(totalChans)}
|
)
|
||||||
# records: {totalRecs}
|
print(
|
||||||
# samples: {totalSamples}""",
|
f"# networks: {len(totalNetworks)}",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
f"# stations: {len(totalStations)}",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
f"# streams: {len(totalChans)}",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
f"# records: {totalRecs}",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
f"# samples: {totalSamples}",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+44
-102
@@ -81,20 +81,25 @@ class MySQLDB(QueryInterface):
|
|||||||
return tmp_tables
|
return tmp_tables
|
||||||
|
|
||||||
def deleteObjectQuery(self, *v):
|
def deleteObjectQuery(self, *v):
|
||||||
q = (
|
if v[0]:
|
||||||
"delete "
|
q = (
|
||||||
+ v[0]
|
"delete "
|
||||||
+ " from "
|
+ v[0]
|
||||||
+ ", ".join(v)
|
+ " from "
|
||||||
+ " where "
|
+ ", ".join(v)
|
||||||
+ v[0]
|
+ " where "
|
||||||
+ "._oid="
|
+ v[0]
|
||||||
+ v[1]
|
+ "._oid="
|
||||||
+ "._oid"
|
+ v[1]
|
||||||
)
|
+ "._oid and "
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
q = "delete " + v[1] + " from " + ", ".join(v[1:]) + " where "
|
||||||
|
|
||||||
for i in range(1, len(v) - 1):
|
for i in range(1, len(v) - 1):
|
||||||
q += " and " + v[i] + "._oid=" + v[i + 1] + "._oid"
|
if i > 1:
|
||||||
|
q += " and "
|
||||||
|
q += v[i] + "._oid=" + v[i + 1] + "._oid"
|
||||||
|
|
||||||
return q
|
return q
|
||||||
|
|
||||||
@@ -206,20 +211,25 @@ class PostgresDB(QueryInterface):
|
|||||||
return tmp_tables
|
return tmp_tables
|
||||||
|
|
||||||
def deleteObjectQuery(self, *v):
|
def deleteObjectQuery(self, *v):
|
||||||
q = (
|
if v[0]:
|
||||||
"delete from "
|
q = (
|
||||||
+ v[0]
|
"delete from "
|
||||||
+ " using "
|
+ v[0]
|
||||||
+ ", ".join(v[1:])
|
+ " using "
|
||||||
+ " where "
|
+ ", ".join(v[1:])
|
||||||
+ v[0]
|
+ " where "
|
||||||
+ "._oid="
|
+ v[0]
|
||||||
+ v[1]
|
+ "._oid="
|
||||||
+ "._oid"
|
+ v[1]
|
||||||
)
|
+ "._oid and "
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
q = "delete from " + v[1] + " using " + ", ".join(v[2:]) + " where "
|
||||||
|
|
||||||
for i in range(1, len(v) - 1):
|
for i in range(1, len(v) - 1):
|
||||||
q += " and " + v[i] + "._oid=" + v[i + 1] + "._oid"
|
if i > 1:
|
||||||
|
q += " and "
|
||||||
|
q += v[i] + "._oid=" + v[i + 1] + "._oid"
|
||||||
|
|
||||||
return q
|
return q
|
||||||
|
|
||||||
@@ -323,8 +333,6 @@ class DBCleaner(seiscomp.client.Application):
|
|||||||
self._invertMode = False
|
self._invertMode = False
|
||||||
self._stripEP = True
|
self._stripEP = True
|
||||||
self._stripQC = True
|
self._stripQC = True
|
||||||
self._keepModes = [] # Array with modes to keep
|
|
||||||
self._keepStatus = [] # Array with status to keep
|
|
||||||
|
|
||||||
self._steps = 0
|
self._steps = 0
|
||||||
self._currentStep = 0
|
self._currentStep = 0
|
||||||
@@ -360,18 +368,6 @@ class DBCleaner(seiscomp.client.Application):
|
|||||||
"Event-IDs to keep in the database. Combining with 'qc-only' "
|
"Event-IDs to keep in the database. Combining with 'qc-only' "
|
||||||
"is invalid.",
|
"is invalid.",
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
|
||||||
"Objects",
|
|
||||||
"keep-event-modes",
|
|
||||||
"Keep all events where is evaluation mode of the preferred origin is "
|
|
||||||
"one of the given modes."
|
|
||||||
)
|
|
||||||
self.commandline().addStringOption(
|
|
||||||
"Objects",
|
|
||||||
"keep-event-status",
|
|
||||||
"Keep all events where is evaluation status of the preferred origin is "
|
|
||||||
"one of the given status."
|
|
||||||
)
|
|
||||||
self.commandline().addOption(
|
self.commandline().addOption(
|
||||||
"Objects",
|
"Objects",
|
||||||
"qc-only,Q",
|
"qc-only,Q",
|
||||||
@@ -477,7 +473,7 @@ class DBCleaner(seiscomp.client.Application):
|
|||||||
f"""Usage:
|
f"""Usage:
|
||||||
{os.path.basename(__file__)} [options]
|
{os.path.basename(__file__)} [options]
|
||||||
|
|
||||||
Remove event and waveform quality parameters from the database in a timespan. Use
|
Remove event and waveform quality parameters from the database in a timespan. Use
|
||||||
scardac for removing data availability parameters."""
|
scardac for removing data availability parameters."""
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -547,19 +543,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
|
||||||
status = self.commandline().optionString("keep-event-status")
|
|
||||||
self._keepStatus = [s.strip() for s in status.split(",")]
|
|
||||||
print(status, self._keepStatus)
|
|
||||||
except RuntimeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
try:
|
|
||||||
modes = self.commandline().optionString("keep-event-modes")
|
|
||||||
self._keepModes = [m.strip() for m in modes.split(",")]
|
|
||||||
except RuntimeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
dateTime = self.commandline().optionString("datetime")
|
dateTime = self.commandline().optionString("datetime")
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
@@ -711,11 +694,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
self.beginMessage("Search objects")
|
self.beginMessage("Search objects")
|
||||||
if not self.runCommand(tmp_object):
|
if not self.runCommand(tmp_object):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
tmp_object = "create index idx_oid on tmp_object(_oid)"
|
|
||||||
if not self.runCommand(tmp_object):
|
|
||||||
return False
|
|
||||||
|
|
||||||
self.endMessage(self.globalCount("tmp_object"))
|
self.endMessage(self.globalCount("tmp_object"))
|
||||||
|
|
||||||
for table in tables:
|
for table in tables:
|
||||||
@@ -805,7 +783,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
self.beginMessage("Deleting waveform quality parameters")
|
self.beginMessage("Deleting waveform quality parameters")
|
||||||
if not self.runCommand(
|
if not self.runCommand(
|
||||||
self._query.deleteObjectQuery("Object", "WaveformQuality")
|
self._query.deleteObjectQuery("Object", "WaveformQuality")
|
||||||
+ " and "
|
|
||||||
+ timeRangeSelection(f"WaveformQuality.{self.cnvCol('end')}")
|
+ timeRangeSelection(f"WaveformQuality.{self.cnvCol('end')}")
|
||||||
):
|
):
|
||||||
return False
|
return False
|
||||||
@@ -845,28 +822,9 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
+ " not in ('%s')" % "','".join(self._keepEvents)
|
+ " not in ('%s')" % "','".join(self._keepEvents)
|
||||||
)
|
)
|
||||||
|
|
||||||
if len(self._keepModes) > 0:
|
|
||||||
old_events += (
|
|
||||||
" and Origin."
|
|
||||||
+ self.cnvCol("evaluationMode")
|
|
||||||
+ " not in ('%s')" % "','".join(self._keepModes)
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(self._keepStatus) > 0:
|
|
||||||
old_events += (
|
|
||||||
" and Origin."
|
|
||||||
+ self.cnvCol("evaluationStatus")
|
|
||||||
+ " not in ('%s')" % "','".join(self._keepStatus)
|
|
||||||
)
|
|
||||||
|
|
||||||
self.beginMessage("Find old events")
|
self.beginMessage("Find old events")
|
||||||
if not self.runCommand(old_events):
|
if not self.runCommand(old_events):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
old_events = "create index idx_oid on old_events(_oid)"
|
|
||||||
if not self.runCommand(old_events):
|
|
||||||
return False
|
|
||||||
|
|
||||||
self.endMessage(self.globalCount("old_events"))
|
self.endMessage(self.globalCount("old_events"))
|
||||||
|
|
||||||
# Delete OriginReferences of old events
|
# Delete OriginReferences of old events
|
||||||
@@ -921,10 +879,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
|
|
||||||
self.beginMessage("Find unassociated focal mechanisms")
|
self.beginMessage("Find unassociated focal mechanisms")
|
||||||
|
|
||||||
if not self.runCommand(tmp_fm):
|
|
||||||
return False
|
|
||||||
|
|
||||||
tmp_fm = "create index idx_oid on tmp_fm(_oid)"
|
|
||||||
if not self.runCommand(tmp_fm):
|
if not self.runCommand(tmp_fm):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -1036,10 +990,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
|
|
||||||
self.beginMessage("Find unassociated origins")
|
self.beginMessage("Find unassociated origins")
|
||||||
|
|
||||||
if not self.runCommand(tmp_origin):
|
|
||||||
return False
|
|
||||||
|
|
||||||
tmp_origin = "create index idx_oid on tmp_origin(_oid)"
|
|
||||||
if not self.runCommand(tmp_origin):
|
if not self.runCommand(tmp_origin):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -1048,7 +998,7 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
update tmp_origin set used=1 \
|
update tmp_origin set used=1 \
|
||||||
where ("
|
where ("
|
||||||
+ self.cnvCol("publicID")
|
+ self.cnvCol("publicID")
|
||||||
+ " in (select "
|
+ " in (select distinct "
|
||||||
+ self.cnvCol("originID")
|
+ self.cnvCol("originID")
|
||||||
+ " from OriginReference)) \
|
+ " from OriginReference)) \
|
||||||
or ("
|
or ("
|
||||||
@@ -1143,10 +1093,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if not self.runCommand(tmp_pick):
|
|
||||||
return False
|
|
||||||
|
|
||||||
tmp_pick = "create index idx_oid on tmp_pick(_oid)"
|
|
||||||
if not self.runCommand(tmp_pick):
|
if not self.runCommand(tmp_pick):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -1199,10 +1145,6 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if not self.runCommand(tmp_amp):
|
|
||||||
return False
|
|
||||||
|
|
||||||
tmp_amp = "create index idx_oid on tmp_amp(_oid)"
|
|
||||||
if not self.runCommand(tmp_amp):
|
if not self.runCommand(tmp_amp):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -1345,27 +1287,27 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
|
|||||||
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
|
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
|
||||||
)
|
)
|
||||||
self.runCommand(
|
self.runCommand(
|
||||||
self._query.deleteObjectQuery("Object", *v) + " and used=0"
|
self._query.deleteObjectQuery(None, "Object", *v) + " and used=0"
|
||||||
)
|
)
|
||||||
self.runCommand(
|
self.runCommand(
|
||||||
self._query.deleteObjectQuery("PublicObject", *v) + " and used=0"
|
self._query.deleteObjectQuery(None, "PublicObject", *v) + " and used=0"
|
||||||
)
|
)
|
||||||
|
|
||||||
def deleteObjects(self, *v):
|
def deleteObjects(self, *v):
|
||||||
self.runCommand(self._query.deleteJournalQuery("PublicObject", *v))
|
self.runCommand(self._query.deleteJournalQuery("PublicObject", *v))
|
||||||
self.runCommand(self._query.deleteObjectQuery(*v))
|
self.runCommand(self._query.deleteObjectQuery("Object", *v))
|
||||||
self.runCommand(self._query.deleteObjectQuery("PublicObject", *v[1:]))
|
self.runCommand(self._query.deleteObjectQuery("PublicObject", *v))
|
||||||
self.runCommand(self._query.deleteObjectQuery("Object", *v[1:]))
|
self.runCommand(self._query.deleteObjectQuery(None, *v))
|
||||||
|
|
||||||
def deleteUnusedObjects(self, *v):
|
def deleteUnusedObjects(self, *v):
|
||||||
self.runCommand(
|
self.runCommand(
|
||||||
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
|
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
|
||||||
)
|
)
|
||||||
self.runCommand(self._query.deleteObjectQuery(*v) + " and used=0")
|
self.runCommand(self._query.deleteObjectQuery("Object", *v) + " and used=0")
|
||||||
self.runCommand(
|
self.runCommand(
|
||||||
self._query.deleteObjectQuery("PublicObject", *v[1:]) + " and used=0"
|
self._query.deleteObjectQuery("PublicObject", *v) + " and used=0"
|
||||||
)
|
)
|
||||||
self.runCommand(self._query.deleteObjectQuery("Object", *v[1:]) + " and used=0")
|
self.runCommand(self._query.deleteObjectQuery(None, *v) + " and used=0")
|
||||||
|
|
||||||
def delete(self, message, func, *v):
|
def delete(self, message, func, *v):
|
||||||
self.beginMessage(message)
|
self.beginMessage(message)
|
||||||
|
|||||||
Binary file not shown.
BIN
Binary file not shown.
+5
-11
@@ -53,7 +53,7 @@ def readXML(self):
|
|||||||
|
|
||||||
if self._eventType:
|
if self._eventType:
|
||||||
try:
|
try:
|
||||||
eventType = seiscomp.datamodel.EEventTypeNames.name(evt.type())
|
eventType = seiscomp.datamodel.EEventTypeNames_name(evt.type())
|
||||||
if eventType != self._eventType:
|
if eventType != self._eventType:
|
||||||
continue
|
continue
|
||||||
except ValueError:
|
except ValueError:
|
||||||
@@ -108,16 +108,10 @@ class EventList(seiscomp.client.Application):
|
|||||||
)
|
)
|
||||||
self.commandline().addGroup("Events")
|
self.commandline().addGroup("Events")
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Events",
|
"Events", "begin", "Specify the lower bound of the time interval."
|
||||||
"begin",
|
|
||||||
"Specify the lower bound of the time interval. Uses 1900-01-01T00:00:00 "
|
|
||||||
"unless given.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Events",
|
"Events", "end", "Specify the upper bound of the time interval."
|
||||||
"end",
|
|
||||||
"Specify the upper bound of the time interval Uses 2500-01-01T00:00:00 "
|
|
||||||
"unless given.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Events",
|
"Events",
|
||||||
@@ -272,7 +266,7 @@ List event IDs available in a given time range and print to stdout."""
|
|||||||
f"""Examples:
|
f"""Examples:
|
||||||
Print all event IDs from year 2022 and thereafter
|
Print all event IDs from year 2022 and thereafter
|
||||||
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \
|
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \
|
||||||
--begin 2022-01-01T00:00:00
|
--begin "2022-01-01 00:00:00"
|
||||||
|
|
||||||
Print all event IDs with event type 'quarry blast'
|
Print all event IDs with event type 'quarry blast'
|
||||||
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp --event-type 'quarry blast'
|
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp --event-type 'quarry blast'
|
||||||
@@ -309,7 +303,7 @@ Print IDs of all events in XML file
|
|||||||
|
|
||||||
if self._eventType:
|
if self._eventType:
|
||||||
try:
|
try:
|
||||||
eventType = seiscomp.datamodel.EEventTypeNames.name(evt.type())
|
eventType = seiscomp.datamodel.EEventTypeNames_name(evt.type())
|
||||||
if eventType != self._eventType:
|
if eventType != self._eventType:
|
||||||
continue
|
continue
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|||||||
+11
-39
@@ -295,7 +295,7 @@ class EventStreams(client.Application):
|
|||||||
"""Usage:
|
"""Usage:
|
||||||
scevtstreams [options]
|
scevtstreams [options]
|
||||||
|
|
||||||
Extract stream information and time windows from picks of an event or solitary picks."""
|
Extract stream information and time windows from an event"""
|
||||||
)
|
)
|
||||||
|
|
||||||
client.Application.printUsage(self)
|
client.Application.printUsage(self)
|
||||||
@@ -305,8 +305,8 @@ Extract stream information and time windows from picks of an event or solitary p
|
|||||||
Get the time windows for an event in the database:
|
Get the time windows for an event in the database:
|
||||||
scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp
|
scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp
|
||||||
|
|
||||||
Get the time windows for all picks given in an XML file without origins and events:
|
Create lists compatible with fdsnws:
|
||||||
scevtstreams -i picks.xml -m 120,500
|
scevtstreams -E gfz2012abcd -i event.xml -m 120,500 --fdsnws
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -314,14 +314,10 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
resolveWildcards = self.commandline().hasOption("resolve-wildcards")
|
resolveWildcards = self.commandline().hasOption("resolve-wildcards")
|
||||||
|
|
||||||
picks = []
|
picks = []
|
||||||
|
|
||||||
# read picks from input file
|
# read picks from input file
|
||||||
if self.inputFile:
|
if self.inputFile:
|
||||||
try:
|
picks = self.readXML()
|
||||||
picks = self.readXML()
|
|
||||||
except IOError as e:
|
|
||||||
print(f"Error: {e}", file=sys.stderr)
|
|
||||||
return False
|
|
||||||
|
|
||||||
if not picks:
|
if not picks:
|
||||||
raise ValueError("Could not find picks in input file")
|
raise ValueError("Could not find picks in input file")
|
||||||
|
|
||||||
@@ -331,7 +327,6 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
pick = datamodel.Pick.Cast(obj)
|
pick = datamodel.Pick.Cast(obj)
|
||||||
if pick is None:
|
if pick is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
picks.append(pick)
|
picks.append(pick)
|
||||||
|
|
||||||
if not picks:
|
if not picks:
|
||||||
@@ -507,18 +502,11 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
|
|
||||||
ep = datamodel.EventParameters.Cast(obj)
|
ep = datamodel.EventParameters.Cast(obj)
|
||||||
if ep is None:
|
if ep is None:
|
||||||
# pick may be provided as base object, only one can be read
|
raise ValueError("no event parameters found in input file")
|
||||||
pick = datamodel.Pick.Cast(obj)
|
|
||||||
if pick is None:
|
|
||||||
raise ValueError(
|
|
||||||
"Neither event parameters nor pick found in input file"
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
return [pick]
|
|
||||||
|
|
||||||
# we require at least one origin which references to picks via arrivals
|
# we require at least one origin which references to picks via arrivals
|
||||||
if ep.originCount() == 0 and ep.pickCount() == 0:
|
if ep.originCount() == 0:
|
||||||
raise ValueError("No origin found in input file")
|
raise ValueError("no origin found in input file")
|
||||||
|
|
||||||
originIDs = []
|
originIDs = []
|
||||||
|
|
||||||
@@ -536,7 +524,7 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
# use first event/origin if no id was specified
|
# use first event/origin if no id was specified
|
||||||
else:
|
else:
|
||||||
# no event, use first available origin
|
# no event, use first available origin
|
||||||
if ep.eventCount() == 0 and ep.originCount() > 0:
|
if ep.eventCount() == 0:
|
||||||
if ep.originCount() > 1:
|
if ep.originCount() > 1:
|
||||||
print(
|
print(
|
||||||
"WARNING: Input file contains no event but more than "
|
"WARNING: Input file contains no event but more than "
|
||||||
@@ -546,7 +534,7 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
originIDs.append(ep.origin(0).publicID())
|
originIDs.append(ep.origin(0).publicID())
|
||||||
|
|
||||||
# use origin references of first available event
|
# use origin references of first available event
|
||||||
elif ep.eventCount() > 0 and ep.originCount() > 0:
|
else:
|
||||||
if ep.eventCount() > 1:
|
if ep.eventCount() > 1:
|
||||||
print(
|
print(
|
||||||
"WARNING: Input file contains more than 1 event. "
|
"WARNING: Input file contains more than 1 event. "
|
||||||
@@ -558,18 +546,10 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
ev.originReference(i).originID()
|
ev.originReference(i).originID()
|
||||||
for i in range(ev.originReferenceCount())
|
for i in range(ev.originReferenceCount())
|
||||||
]
|
]
|
||||||
else:
|
|
||||||
print("Found no origins, trying to continue with picks only.")
|
|
||||||
|
|
||||||
if originIDs:
|
|
||||||
print(
|
|
||||||
f"Considering all arrivals from {len(originIDs)} origin(s).",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
# collect pickIDs
|
||||||
pickIDs = set()
|
pickIDs = set()
|
||||||
for oID in originIDs:
|
for oID in originIDs:
|
||||||
# collect pickIDs from origins
|
|
||||||
o = datamodel.Origin.Find(oID)
|
o = datamodel.Origin.Find(oID)
|
||||||
if o is None:
|
if o is None:
|
||||||
continue
|
continue
|
||||||
@@ -577,11 +557,6 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
for i in range(o.arrivalCount()):
|
for i in range(o.arrivalCount()):
|
||||||
pickIDs.add(o.arrival(i).pickID())
|
pickIDs.add(o.arrival(i).pickID())
|
||||||
|
|
||||||
if len(pickIDs) == 0:
|
|
||||||
# try reading picks only
|
|
||||||
for i in range(ep.pickCount()):
|
|
||||||
pickIDs.add(ep.pick(i).publicID())
|
|
||||||
|
|
||||||
# lookup picks
|
# lookup picks
|
||||||
picks = []
|
picks = []
|
||||||
for pickID in pickIDs:
|
for pickID in pickIDs:
|
||||||
@@ -589,9 +564,6 @@ Get the time windows for all picks given in an XML file without origins and even
|
|||||||
if pick:
|
if pick:
|
||||||
picks.append(pick)
|
picks.append(pick)
|
||||||
|
|
||||||
if len(pickIDs) == 0:
|
|
||||||
print("Found no picks.", file=sys.stderr)
|
|
||||||
|
|
||||||
return picks
|
return picks
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-144
@@ -1,144 +0,0 @@
|
|||||||
#!/usr/bin/env seiscomp-python
|
|
||||||
|
|
||||||
############################################################################
|
|
||||||
# Copyright (C) gempa GmbH #
|
|
||||||
# All rights reserved. #
|
|
||||||
# Contact: gempa GmbH (seiscomp-dev@gempa.de) #
|
|
||||||
# #
|
|
||||||
# GNU Affero General Public License Usage #
|
|
||||||
# This file may be used under the terms of the GNU Affero #
|
|
||||||
# Public License version 3.0 as published by the Free Software Foundation #
|
|
||||||
# and appearing in the file LICENSE included in the packaging of this #
|
|
||||||
# file. Please review the following information to ensure the GNU Affero #
|
|
||||||
# Public License version 3.0 requirements will be met: #
|
|
||||||
# https://www.gnu.org/licenses/agpl-3.0.html. #
|
|
||||||
# #
|
|
||||||
# Other Usage #
|
|
||||||
# Alternatively, this file may be used in accordance with the terms and #
|
|
||||||
# conditions contained in a signed written agreement between you and #
|
|
||||||
# gempa GmbH. #
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from getopt import gnu_getopt, GetoptError
|
|
||||||
from seiscomp import mseedlite as mseed
|
|
||||||
|
|
||||||
|
|
||||||
def usage():
|
|
||||||
print(
|
|
||||||
f"""Usage:
|
|
||||||
{os.path.basename(__file__)} source
|
|
||||||
|
|
||||||
Demultiplex all miniSEED records found in the given source by stream code writing them
|
|
||||||
into separate new files. The source can be files or stdin. One file per stream is
|
|
||||||
generated. File names are derived from stream codes and the begin time of the records.
|
|
||||||
|
|
||||||
Verbosity:
|
|
||||||
-h, --help Display this help message.
|
|
||||||
-v, --verbose Verbose mode.
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
Demultiplex the miniSEED records contained in data.mseed and additionally print the
|
|
||||||
names of created files to stderr
|
|
||||||
{os.path.basename(__file__)} -v data.mseed
|
|
||||||
|
|
||||||
Demultiplex the miniSEED records received from stdin
|
|
||||||
scmssort -u -E data.mseed | {os.path.basename(__file__)} -
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
try:
|
|
||||||
opts, args = gnu_getopt(
|
|
||||||
sys.argv[1:],
|
|
||||||
"hv",
|
|
||||||
[
|
|
||||||
"help",
|
|
||||||
"verbose",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
except GetoptError:
|
|
||||||
print(
|
|
||||||
f"{os.path.basename(__file__)}: Unknown option",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
usage()
|
|
||||||
return False
|
|
||||||
|
|
||||||
verbosity = False
|
|
||||||
for flag, arg in opts:
|
|
||||||
if flag in ("-h", "--help"):
|
|
||||||
usage()
|
|
||||||
return True
|
|
||||||
|
|
||||||
if flag in ("-v", "--verbose"):
|
|
||||||
verbosity = True
|
|
||||||
|
|
||||||
inFile = sys.stdin.buffer
|
|
||||||
try:
|
|
||||||
if len(args[0]) > 0:
|
|
||||||
openFiles = {}
|
|
||||||
except Exception:
|
|
||||||
print(
|
|
||||||
f"{os.path.basename(__file__)}: Missing source",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
usage()
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
if len(args) == 1:
|
|
||||||
if args[0] != "-":
|
|
||||||
try:
|
|
||||||
inFile = open(args[0], "rb")
|
|
||||||
except IOError as e:
|
|
||||||
print(
|
|
||||||
f"Could not open input file '{args[0]}' for reading: {e}",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
print(
|
|
||||||
"Waiting for miniSEED records on stdin. Use Ctrl + C to interrupt.",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
elif len(args) != 0:
|
|
||||||
usage()
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
try:
|
|
||||||
for rec in mseed.Input(inFile):
|
|
||||||
oName = "%s.%s.%s.%s" % (rec.sta, rec.net, rec.loc, rec.cha)
|
|
||||||
|
|
||||||
if oName not in openFiles:
|
|
||||||
postfix = ".D.%04d.%03d.%02d%02d" % (
|
|
||||||
rec.begin_time.year,
|
|
||||||
rec.begin_time.timetuple()[7],
|
|
||||||
rec.begin_time.hour,
|
|
||||||
rec.begin_time.minute,
|
|
||||||
)
|
|
||||||
|
|
||||||
openFiles[oName] = open(oName + postfix, "ab")
|
|
||||||
|
|
||||||
oFile = openFiles[oName]
|
|
||||||
oFile.write(rec.header + rec.data)
|
|
||||||
|
|
||||||
if verbosity:
|
|
||||||
print("Generated output files:", file=sys.stderr)
|
|
||||||
|
|
||||||
for oName in openFiles:
|
|
||||||
if verbosity:
|
|
||||||
print(f" {oName}", file=sys.stderr)
|
|
||||||
|
|
||||||
openFiles[oName].close()
|
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
return True
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
||||||
Binary file not shown.
+3
-5
@@ -89,14 +89,12 @@ class OriginList(seiscomp.client.Application):
|
|||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Origins",
|
"Origins",
|
||||||
"begin",
|
"begin",
|
||||||
"The lower bound of the time interval. Uses 1900-01-01T00:00:00 unless "
|
"The lower bound of the time interval. Format: '1970-01-01 00:00:00'.",
|
||||||
"given.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Origins",
|
"Origins",
|
||||||
"end",
|
"end",
|
||||||
"The upper bound of the time interval. Format: 1970-01-01T00:00:00. Uses "
|
"The upper bound of the time interval. Format: '1970-01-01 00:00:00'.",
|
||||||
"2500-01-01T00:00:00 unless given.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Origins", "author", "The author of the origins."
|
"Origins", "author", "The author of the origins."
|
||||||
@@ -181,7 +179,7 @@ List origin IDs available in a given time range and print to stdout."""
|
|||||||
f"""Examples:
|
f"""Examples:
|
||||||
Print all origin IDs from year 2022 and thereafter
|
Print all origin IDs from year 2022 and thereafter
|
||||||
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \
|
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \
|
||||||
--begin 2022-01-01T00:00:00
|
--begin "2022-01-01 00:00:00"
|
||||||
|
|
||||||
Print IDs of all events in XML file
|
Print IDs of all events in XML file
|
||||||
{os.path.basename(__file__)} -i origins.xml
|
{os.path.basename(__file__)} -i origins.xml
|
||||||
|
|||||||
BIN
Binary file not shown.
+22
-23
@@ -13,25 +13,19 @@
|
|||||||
# https://www.gnu.org/licenses/agpl-3.0.html. #
|
# https://www.gnu.org/licenses/agpl-3.0.html. #
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
import os
|
import time, sys, os, traceback
|
||||||
import sys
|
import seiscomp.core, seiscomp.client, seiscomp.datamodel
|
||||||
import traceback
|
import seiscomp.logging, seiscomp.system
|
||||||
|
|
||||||
import seiscomp.core
|
|
||||||
import seiscomp.client
|
|
||||||
import seiscomp.datamodel
|
|
||||||
import seiscomp.logging
|
|
||||||
import seiscomp.system
|
|
||||||
|
|
||||||
|
|
||||||
def createDirectory(directory):
|
def createDirectory(dir):
|
||||||
if os.access(directory, os.W_OK):
|
if os.access(dir, os.W_OK):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.makedirs(directory)
|
os.makedirs(dir)
|
||||||
return True
|
return True
|
||||||
except OSError:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@@ -52,8 +46,8 @@ def timeSpanToString(ts):
|
|||||||
|
|
||||||
if neg:
|
if neg:
|
||||||
return "-%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs)
|
return "-%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs)
|
||||||
|
else:
|
||||||
return "%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs)
|
return "%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs)
|
||||||
|
|
||||||
|
|
||||||
class ProcLatency(seiscomp.client.Application):
|
class ProcLatency(seiscomp.client.Application):
|
||||||
@@ -141,6 +135,8 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
|
|
||||||
def logObject(self, parentID, obj, update):
|
def logObject(self, parentID, obj, update):
|
||||||
now = seiscomp.core.Time.GMT()
|
now = seiscomp.core.Time.GMT()
|
||||||
|
time = None
|
||||||
|
|
||||||
pick = seiscomp.datamodel.Pick.Cast(obj)
|
pick = seiscomp.datamodel.Pick.Cast(obj)
|
||||||
if pick:
|
if pick:
|
||||||
phase = ""
|
phase = ""
|
||||||
@@ -203,7 +199,7 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
status = seiscomp.datamodel.EEvaluationStatusNames.name(org.status())
|
status = seiscomp.datamodel.EOriginStatusNames.name(org.status())
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -290,7 +286,7 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
sys.stdout.write(f"{timeToString(received)};{logEntry}\n")
|
sys.stdout.write(f"{timeToString(received)};{logEntry}\n")
|
||||||
|
|
||||||
if nowDirectory != self._nowDirectory:
|
if nowDirectory != self._nowDirectory:
|
||||||
if not createDirectory(nowDirectory):
|
if createDirectory(nowDirectory) == False:
|
||||||
seiscomp.logging.error(f"Unable to create directory {nowDirectory}")
|
seiscomp.logging.error(f"Unable to create directory {nowDirectory}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -302,7 +298,7 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if triggeredDirectory != self._triggeredDirectory:
|
if triggeredDirectory != self._triggeredDirectory:
|
||||||
if not createDirectory(triggeredDirectory):
|
if createDirectory(triggeredDirectory) == False:
|
||||||
seiscomp.logging.error(
|
seiscomp.logging.error(
|
||||||
f"Unable to create directory {triggeredDirectory}"
|
f"Unable to create directory {triggeredDirectory}"
|
||||||
)
|
)
|
||||||
@@ -325,7 +321,7 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
# logEntry = timeToString(received)
|
# logEntry = timeToString(received)
|
||||||
logEntry = ""
|
logEntry = ""
|
||||||
|
|
||||||
if triggered is not None:
|
if not triggered is None:
|
||||||
aTriggered = triggered.get()
|
aTriggered = triggered.get()
|
||||||
triggeredDirectory = (
|
triggeredDirectory = (
|
||||||
self._directory + "/".join(["%.2d" % i for i in aTriggered[1:4]]) + "/"
|
self._directory + "/".join(["%.2d" % i for i in aTriggered[1:4]]) + "/"
|
||||||
@@ -345,7 +341,7 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
sys.stdout.write(f"{timeToString(received)};{logEntry}\n")
|
sys.stdout.write(f"{timeToString(received)};{logEntry}\n")
|
||||||
|
|
||||||
if nowDirectory != self._nowDirectory:
|
if nowDirectory != self._nowDirectory:
|
||||||
if not createDirectory(nowDirectory):
|
if createDirectory(nowDirectory) == False:
|
||||||
seiscomp.logging.error(f"Unable to create directory {nowDirectory}")
|
seiscomp.logging.error(f"Unable to create directory {nowDirectory}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -357,7 +353,7 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
|
|
||||||
if triggeredDirectory:
|
if triggeredDirectory:
|
||||||
if triggeredDirectory != self._triggeredDirectory:
|
if triggeredDirectory != self._triggeredDirectory:
|
||||||
if not createDirectory(triggeredDirectory):
|
if createDirectory(triggeredDirectory) == False:
|
||||||
seiscomp.logging.error(
|
seiscomp.logging.error(
|
||||||
f"Unable to create directory {triggeredDirectory}"
|
f"Unable to create directory {triggeredDirectory}"
|
||||||
)
|
)
|
||||||
@@ -373,8 +369,11 @@ class ProcLatency(seiscomp.client.Application):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def writeLog(self, file, text):
|
def writeLog(self, file, text):
|
||||||
with open(file, "a", encoding="utf8") as of:
|
of = open(file, "a")
|
||||||
of.print(text, file=of)
|
if of:
|
||||||
|
of.write(text)
|
||||||
|
of.write("\n")
|
||||||
|
of.close()
|
||||||
|
|
||||||
|
|
||||||
app = ProcLatency(len(sys.argv), sys.argv)
|
app = ProcLatency(len(sys.argv), sys.argv)
|
||||||
|
|||||||
BIN
Binary file not shown.
+5
-9
@@ -105,14 +105,10 @@ class WfqQuery(seiscomp.client.Application):
|
|||||||
|
|
||||||
self.commandline().addGroup("Query")
|
self.commandline().addGroup("Query")
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Query",
|
"Query", "begin,b", "Begin time of query: 'YYYY-MM-DD hh:mm:ss'"
|
||||||
"begin,b",
|
|
||||||
"Begin time of query. Uses 1900-01-01T00:00:00 unless given.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Query",
|
"Query", "end,e", "End time of query: 'YYYY-MM-DD hh:mm:ss'"
|
||||||
"end,e",
|
|
||||||
"End time of query. Uses current time unless given.",
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Query",
|
"Query",
|
||||||
@@ -120,7 +116,7 @@ class WfqQuery(seiscomp.client.Application):
|
|||||||
"Waveform stream ID to search for QC parameters: net.sta.loc.cha -"
|
"Waveform stream ID to search for QC parameters: net.sta.loc.cha -"
|
||||||
" [networkCode].[stationCode].[sensorLocationCode].[channelCode]. "
|
" [networkCode].[stationCode].[sensorLocationCode].[channelCode]. "
|
||||||
"Provide a single ID or a comma-separated list. Overrides "
|
"Provide a single ID or a comma-separated list. Overrides "
|
||||||
"--streams-from-inventory.",
|
"--streams-from-inventory",
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Query",
|
"Query",
|
||||||
@@ -155,8 +151,8 @@ Query a database for waveform quality control (QC) parameters.""",
|
|||||||
print(
|
print(
|
||||||
f"""Examples:
|
f"""Examples:
|
||||||
Query rms and delay values for streams 'AU.AS18..SHZ' and 'AU.AS19..SHZ' from \
|
Query rms and delay values for streams 'AU.AS18..SHZ' and 'AU.AS19..SHZ' from \
|
||||||
2021-11-20 00:00:00 until current
|
'2021-11-20 00:00:00' until current
|
||||||
{os.path.basename(__file__)} -d localhost -b 2021-11-20T00:00:00 -p rms,delay \
|
{os.path.basename(__file__)} -d localhost -b '2021-11-20 00:00:00' -p rms,delay \
|
||||||
-i AU.AS18..SHZ,AU.AS19..SHZ""",
|
-i AU.AS18..SHZ,AU.AS19..SHZ""",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
|
|||||||
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
+3
-3
@@ -69,8 +69,8 @@ class SendOrigin(seiscomp.client.Application):
|
|||||||
"Parameters", "coord", "Latitude,longitude,depth of origin"
|
"Parameters", "coord", "Latitude,longitude,depth of origin"
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption("Parameters", "time", "time of origin")
|
self.commandline().addStringOption("Parameters", "time", "time of origin")
|
||||||
except Exception:
|
except:
|
||||||
seiscomp.logging.warning(f"Caught unexpected error {sys.exc_info()}")
|
seiscomp.logging.warning(f"caught unexpected error {sys.exc_info()}")
|
||||||
|
|
||||||
def printUsage(self):
|
def printUsage(self):
|
||||||
print(
|
print(
|
||||||
@@ -85,7 +85,7 @@ Create an artificial origin and send to the messaging"""
|
|||||||
print(
|
print(
|
||||||
"""Examples:
|
"""Examples:
|
||||||
Send an artificial origin with hypocenter parameters to the messaging
|
Send an artificial origin with hypocenter parameters to the messaging
|
||||||
scsendorigin --time 2022-05-01T10:00:00 --coord 52,12,10
|
scsendorigin --time "2022-05-01 10:00:00" --coord 52,12,10
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
+3
-1
@@ -359,7 +359,9 @@ Create an output XML file every 60 seconds and execute a custom script to proces
|
|||||||
try:
|
try:
|
||||||
f = open(self._outputFile, "w")
|
f = open(self._outputFile, "w")
|
||||||
except:
|
except:
|
||||||
seiscomp.logging.error(f"Unable to create output file: {self._outputFile}")
|
seiscomp.logging.error(
|
||||||
|
f"Unable to create output file: {self._outputFile}"
|
||||||
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
self.toXML(f)
|
self.toXML(f)
|
||||||
|
|||||||
+11
-13
@@ -62,52 +62,50 @@ class VoiceAlert(client.Application):
|
|||||||
self.commandline().addOption(
|
self.commandline().addOption(
|
||||||
"Generic",
|
"Generic",
|
||||||
"first-new",
|
"first-new",
|
||||||
"Calls an event a new event when it is seen the first time.",
|
"calls an event a new event when it is " "seen the first time",
|
||||||
)
|
)
|
||||||
self.commandline().addGroup("Alert")
|
self.commandline().addGroup("Alert")
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"amp-type",
|
"amp-type",
|
||||||
"Specify the amplitude type to listen to.",
|
"specify the amplitude type to listen to",
|
||||||
self._ampType,
|
self._ampType,
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"amp-script",
|
"amp-script",
|
||||||
"Specify the script to be called when a "
|
"specify the script to be called when a "
|
||||||
"stationamplitude arrived, network-, stationcode and amplitude are "
|
"stationamplitude arrived, network-, stationcode and amplitude are "
|
||||||
"passed as parameters $1, $2 and $3.",
|
"passed as parameters $1, $2 and $3",
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"alert-script",
|
"alert-script",
|
||||||
"Specify the script to be called when a "
|
"specify the script to be called when a "
|
||||||
"preliminary origin arrived, latitude and longitude are passed as "
|
"preliminary origin arrived, latitude and longitude are passed as "
|
||||||
"parameters $1 and $2.",
|
"parameters $1 and $2",
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Alert",
|
"Alert",
|
||||||
"event-script",
|
"event-script",
|
||||||
"Specify the script to be called when an "
|
"specify the script to be called when an "
|
||||||
"event has been declared; the message string, a flag (1=new event, "
|
"event has been declared; the message string, a flag (1=new event, "
|
||||||
"0=update event), the EventID, the arrival count and the magnitude "
|
"0=update event), the EventID, the arrival count and the magnitude "
|
||||||
"(optional when set) are passed as parameter $1, $2, $3, $4 and $5.",
|
"(optional when set) are passed as parameter $1, $2, $3, $4 and $5",
|
||||||
)
|
)
|
||||||
self.commandline().addGroup("Cities")
|
self.commandline().addGroup("Cities")
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Cities",
|
"Cities",
|
||||||
"max-dist",
|
"max-dist",
|
||||||
"Maximum distance for using the distance from a city to the earthquake.",
|
"maximum distance for using the distance " "from a city to the earthquake",
|
||||||
str(self._citiesMaxDist),
|
|
||||||
)
|
)
|
||||||
self.commandline().addStringOption(
|
self.commandline().addStringOption(
|
||||||
"Cities",
|
"Cities",
|
||||||
"min-population",
|
"min-population",
|
||||||
"Minimum population for a city to become a point of interest.",
|
"minimum population for a city to " "become a point of interest",
|
||||||
str(self._citiesMinPopulation),
|
|
||||||
)
|
)
|
||||||
self.commandline().addGroup("Debug")
|
self.commandline().addGroup("Debug")
|
||||||
self.commandline().addStringOption("Debug", "eventid,E", "Specify event ID.")
|
self.commandline().addStringOption("Debug", "eventid,E", "specify Event ID")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def init(self):
|
def init(self):
|
||||||
|
|||||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -722,8 +722,8 @@ def on_status(args, _):
|
|||||||
if env.isModuleEnabled(mod.name) or isinstance(
|
if env.isModuleEnabled(mod.name) or isinstance(
|
||||||
mod, seiscomp.kernel.CoreModule
|
mod, seiscomp.kernel.CoreModule
|
||||||
):
|
):
|
||||||
if mod.status(shouldModuleRun(mod.name)) == 0:
|
mod.status(shouldModuleRun(mod.name))
|
||||||
found += 1
|
found += 1
|
||||||
|
|
||||||
if not useCSV:
|
if not useCSV:
|
||||||
print(f"Summary: {found} modules enabled")
|
print(f"Summary: {found} modules enabled")
|
||||||
@@ -733,8 +733,8 @@ def on_status(args, _):
|
|||||||
if len(args) > 0 and args[0] == "started":
|
if len(args) > 0 and args[0] == "started":
|
||||||
for mod in mods:
|
for mod in mods:
|
||||||
if shouldModuleRun(mod.name):
|
if shouldModuleRun(mod.name):
|
||||||
if mod.status(shouldModuleRun(mod.name)) == 0:
|
mod.status(shouldModuleRun(mod.name))
|
||||||
found += 1
|
found += 1
|
||||||
|
|
||||||
if not useCSV:
|
if not useCSV:
|
||||||
print(f"Summary: {found} modules started")
|
print(f"Summary: {found} modules started")
|
||||||
@@ -743,8 +743,8 @@ def on_status(args, _):
|
|||||||
|
|
||||||
for mod in mods:
|
for mod in mods:
|
||||||
if mod.name in args or len(args) == 0:
|
if mod.name in args or len(args) == 0:
|
||||||
if mod.status(shouldModuleRun(mod.name)) == 0:
|
mod.status(shouldModuleRun(mod.name))
|
||||||
found += 1
|
found += 1
|
||||||
|
|
||||||
if not useCSV:
|
if not useCSV:
|
||||||
print(f"Summary: {found} modules reported")
|
print(f"Summary: {found} modules reported")
|
||||||
|
|||||||
+5
-5
@@ -86,7 +86,7 @@ class SH2Proc(seiscomp.client.Application):
|
|||||||
"""Usage:
|
"""Usage:
|
||||||
sh2proc [options]
|
sh2proc [options]
|
||||||
|
|
||||||
Convert Seismic Handler event data to SeisComP XML format which is sent to stdout."""
|
Convert Seismic Handler event data to SeisComP XML format"""
|
||||||
)
|
)
|
||||||
|
|
||||||
seiscomp.client.Application.printUsage(self)
|
seiscomp.client.Application.printUsage(self)
|
||||||
@@ -95,10 +95,10 @@ Convert Seismic Handler event data to SeisComP XML format which is sent to stdou
|
|||||||
"""Examples:
|
"""Examples:
|
||||||
Convert the Seismic Handler file shm.evt to SCML. Receive the database
|
Convert the Seismic Handler file shm.evt to SCML. Receive the database
|
||||||
connection to read inventory and configuration information from messaging
|
connection to read inventory and configuration information from messaging
|
||||||
sh2proc shm.evt > event.xml
|
sh2proc shm.evt
|
||||||
|
|
||||||
Read Seismic Handler data from stdin. Provide inventory and configuration in XML
|
Read Seismic Handler data from stdin. Provide inventory and configuration in XML
|
||||||
cat shm.evt | sh2proc --inventory-db=inventory.xml --config-db=config.xml > event.xml
|
cat shm.evt | sh2proc --inventory-db=inventory.xml --config-db=config.xml
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -489,7 +489,7 @@ Read Seismic Handler data from stdin. Provide inventory and configuration in XML
|
|||||||
seiscomp.datamodel.IMPULSIVE,
|
seiscomp.datamodel.IMPULSIVE,
|
||||||
seiscomp.datamodel.QUESTIONABLE,
|
seiscomp.datamodel.QUESTIONABLE,
|
||||||
]:
|
]:
|
||||||
if value == seiscomp.datamodel.EPickOnsetNames.name(onset):
|
if value == seiscomp.datamodel.EPickOnsetNames_name(onset):
|
||||||
pick.setOnset(onset)
|
pick.setOnset(onset)
|
||||||
found = True
|
found = True
|
||||||
break
|
break
|
||||||
@@ -524,7 +524,7 @@ Read Seismic Handler data from stdin. Provide inventory and configuration in XML
|
|||||||
seiscomp.datamodel.AUTOMATIC,
|
seiscomp.datamodel.AUTOMATIC,
|
||||||
seiscomp.datamodel.MANUAL,
|
seiscomp.datamodel.MANUAL,
|
||||||
]:
|
]:
|
||||||
if value == seiscomp.datamodel.EEvaluationModeNames.name(mode):
|
if value == seiscomp.datamodel.EEvaluationModeNames_name(mode):
|
||||||
pick.setEvaluationMode(mode)
|
pick.setEvaluationMode(mode)
|
||||||
found = True
|
found = True
|
||||||
break
|
break
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
-3673
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+5
-87
@@ -8,97 +8,15 @@ connection.subscriptions = EVENT
|
|||||||
# Number of seconds to fetch missed updates on start up.
|
# Number of seconds to fetch missed updates on start up.
|
||||||
backLog = 1800
|
backLog = 1800
|
||||||
|
|
||||||
|
# Number of public objects to cache.
|
||||||
|
cacheSize = 5000
|
||||||
|
|
||||||
# Maximum number of notifiers to batch in one message. If set to 0 no size
|
# Maximum number of notifiers to batch in one message. If set to 0 no size
|
||||||
# limit is enforced. Make sure to not hit the overall message size limited of
|
# limit is enforced. Make sure to not hit the overall message size limited of
|
||||||
# 16MiB which is enforced by the messaging system.
|
# 16MiB which is enforced by the messaging system.
|
||||||
batchSize = 2000
|
batchSize = 2000
|
||||||
|
|
||||||
# If event synchronisation is enabled and an incoming origin is not yet
|
# If event synchronisation is enabled and an incoming origin is not yet
|
||||||
# associated with an event on the target machine, then this timeout defines the
|
# associated with an event on the target machine then this timeout defines
|
||||||
# maximum number of seconds to wait for an association.
|
# the maximum number of seconds to wait for an association.
|
||||||
eventAssociationTimeout = 10
|
eventAssociationTimeout = 10
|
||||||
|
|
||||||
# Registration of the host profiles defining the connection parameters to the
|
|
||||||
# QuakeLink hosts.
|
|
||||||
#hosts = local
|
|
||||||
|
|
||||||
# URL of the QuakeLink service, the scheme 'qls' enables SSL.
|
|
||||||
# Format: [ql[s]://][user:pwd@][host][:port].
|
|
||||||
# If set to an empty string the application will run without any QuakeLink
|
|
||||||
# connection attempt.
|
|
||||||
#host.local.url = ql://localhost:18010
|
|
||||||
|
|
||||||
# Enable/disable GZip (GNU zip) compression.
|
|
||||||
#host.local.gzip = false
|
|
||||||
|
|
||||||
# Request native data instead of XML format. Native data export may be disabled
|
|
||||||
# on some hosts.
|
|
||||||
#host.local.native = true
|
|
||||||
|
|
||||||
# Try to update the event attributes of the target event with the attributes of
|
|
||||||
# the source event which includes event type and event certainty. It will not
|
|
||||||
# import events but tries to find the associated event of the input preferred
|
|
||||||
# origin at the target system and will update the event attributes via
|
|
||||||
# journaling.
|
|
||||||
#host.local.syncEventAttributes = true
|
|
||||||
|
|
||||||
# Synchronize the preferred origin and preferred magnitude selection if
|
|
||||||
# different from the imported selection. ql2sc will wait for the event
|
|
||||||
# association of an imported origin and check if the preferred origin or
|
|
||||||
# preferred magnitude is different from the imported Quakelink event. If so it
|
|
||||||
# will send a journal to force selection of the preferred origin and selection
|
|
||||||
# of the preferred magnitude type. These are the same operations as within
|
|
||||||
# scolv to fix an origin and a particular magnitude type.
|
|
||||||
#host.local.syncPreferred = false
|
|
||||||
|
|
||||||
# Delays the synchronization of event attributes in seconds if set to a value
|
|
||||||
# greater than zero.
|
|
||||||
#host.local.syncEventDelay = 0
|
|
||||||
|
|
||||||
# Request server to send keep alive message every 30s to prevent connection
|
|
||||||
# reset by firewalls on long idle periods. If activated the client will reset
|
|
||||||
# the connection if no alive message is received within 60s.
|
|
||||||
#host.local.keepAlive = true
|
|
||||||
|
|
||||||
# Server-side SQL like WHERE clause to filter the result set. The actual
|
|
||||||
# available parameters depend on the QuakeLink server version. Use 'telnet host
|
|
||||||
# port' followed by 'help select' to connect to a QuakeLink server an request
|
|
||||||
# available parameters.
|
|
||||||
# clause := condition[ AND|OR [(]clause[)]] condition :=
|
|
||||||
# MAG|DEPTH|LAT|LON|PHASES|DIST(lat,lon) op {float} | DIST(lat,lon) IN
|
|
||||||
# [{float}, {float}] | UPDATED|OTIME op time |
|
|
||||||
# AGENCY|AUTHOR|STATUS|ESTATUS|EMODE|TYPE|CTYPE|DTYPE|REGION|MAG_T op 'string'
|
|
||||||
# | MAG|DEPTH|LAT|LON|PHASES|OTIME|UPDATED IS [NOT] NULL FELT|NOT FELT op :=
|
|
||||||
# =|!=|>|>=|<|<=|eq|gt|ge|lt|ge time := %Y,%m,%d[,%H,%M,%S[,%f]]
|
|
||||||
#host.local.filter = ""
|
|
||||||
|
|
||||||
# Map datamodel class names to messaging groups. For unmapped objects the
|
|
||||||
# mapping of their parent objects is evaluated recursively. Objects may be
|
|
||||||
# excluded by mapping them to 'NULL'.
|
|
||||||
#host.local.routingTable = Pick:IMPORT_GROUP, Amplitude:IMPORT_GROUP, FocalMechanism:EVENT, Origin:EVENT
|
|
||||||
|
|
||||||
# Include picks
|
|
||||||
#host.local.data.picks = true
|
|
||||||
|
|
||||||
# Include amplitudes
|
|
||||||
#host.local.data.amplitudes = true
|
|
||||||
|
|
||||||
# Include origin arrivals
|
|
||||||
#host.local.data.arrivals = true
|
|
||||||
|
|
||||||
# Include origin station magnitudes
|
|
||||||
#host.local.data.staMags = true
|
|
||||||
|
|
||||||
# Include moment tensor station contributions and phase settings
|
|
||||||
#host.local.data.staMts = true
|
|
||||||
|
|
||||||
# Include only preferred origin and magnitude information
|
|
||||||
#host.local.data.preferred = false
|
|
||||||
|
|
||||||
# Defines a blacklist of publicID prefixes that are not allowed for processing.
|
|
||||||
# Separate items by comma.
|
|
||||||
#processing.blacklist.publicIDs = ""
|
|
||||||
|
|
||||||
# Defines a whitelist of publicID prefixes that are allowed for processing.
|
|
||||||
# Separate items by comma.
|
|
||||||
#processing.whitelist.publicIDs = ""
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Defines a list of message groups to subscribe to. The default is usually
|
# Defines a list of message groups to subscribe to. The default is usually
|
||||||
# given by the application and does not need to be changed.
|
# given by the application and does not need to be changed.
|
||||||
connection.subscriptions = EVENT, LOCATION, MAGNITUDE, AMPLITUDE, PICK
|
connection.subscriptions = EVENT, LOCATION, MAGNITUDE
|
||||||
|
|||||||
@@ -264,6 +264,9 @@ range.above = 0, 999
|
|||||||
# A color defined by the color definitions below.
|
# A color defined by the color definitions below.
|
||||||
range.above.color = green
|
range.above.color = green
|
||||||
|
|
||||||
|
# Possible values: enableStream, disableStream
|
||||||
|
range.above.action = enableStream
|
||||||
|
|
||||||
#
|
#
|
||||||
range.below = -99, -11
|
range.below = -99, -11
|
||||||
|
|
||||||
@@ -274,6 +277,9 @@ range.below.count = 0
|
|||||||
# A color defined by the color definitions below.
|
# A color defined by the color definitions below.
|
||||||
range.below.color = grey
|
range.below.color = grey
|
||||||
|
|
||||||
|
# Possible values: enableStream, disableStream
|
||||||
|
range.below.action = disableStream
|
||||||
|
|
||||||
#
|
#
|
||||||
range.timing = -200, -100
|
range.timing = -200, -100
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ resortAutomatically = true
|
|||||||
showPicks = true
|
showPicks = true
|
||||||
|
|
||||||
# Defines the filters to be used when filtering is activated.
|
# Defines the filters to be used when filtering is activated.
|
||||||
filters = "BW 0.5 - 8.0 Hz;RMHP(2)>>ITAPER(5)>>BW(3, 0.5, 8.0)","HP 3.0 Hz;RMHP(2)>>ITAPER(5)>>BW_HP(3, 3)"
|
filters = "RMHP(2)>>ITAPER(5)>>BW(3, 0.5, 8.0)","RMHP(2)>>ITAPER(5)>>BW_HP(3, 3)"
|
||||||
|
|
||||||
# Activates the first filter of the configured filter list after startup. This
|
# Activates the first filter of the configured filter list after startup. This
|
||||||
# is equivalent to pressing 'f'.
|
# is equivalent to pressing 'f'.
|
||||||
|
|||||||
+12
-48
@@ -72,11 +72,10 @@
|
|||||||
<parameter name="realtimeGap" type="int" unit="s">
|
<parameter name="realtimeGap" type="int" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Restrict end time of requests to current time - realtimeGap
|
Restrict end time of requests to current time - realtimeGap
|
||||||
seconds. Negative values are allowed. Used in fdsnws-dataselect.
|
seconds. Negative values allowed. Used in fdsnws-dataselect.
|
||||||
|
WARNING: If this value is unset and a realtime recordsource
|
||||||
WARNING: If this value is unset and a real-time RecordStream
|
(e.g. slink) is used, requests may block if end time in future
|
||||||
(e.g. slink) is used, requests may block if end times in the
|
is requested.
|
||||||
future are requested.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="samplesM" type="float">
|
<parameter name="samplesM" type="float">
|
||||||
@@ -91,7 +90,7 @@
|
|||||||
Set the number of bytes to buffer for each chunk of waveform data
|
Set the number of bytes to buffer for each chunk of waveform data
|
||||||
served to the client. The lower the buffer the higher the overhead
|
served to the client. The lower the buffer the higher the overhead
|
||||||
of Python Twisted. The higher the buffer the higher the memory
|
of Python Twisted. The higher the buffer the higher the memory
|
||||||
usage per request. 100 kB seems to be a good trade-off.
|
usage per request. 100kB seems to be a good trade-off.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="htpasswd" type="string" default="@CONFIGDIR@/fdsnws.htpasswd">
|
<parameter name="htpasswd" type="string" default="@CONFIGDIR@/fdsnws.htpasswd">
|
||||||
@@ -104,12 +103,12 @@
|
|||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="accessLog" type="string">
|
<parameter name="accessLog" type="string">
|
||||||
<description>
|
<description>
|
||||||
Path to access log file. If unset, no access log is created.
|
Path to access log file. If unset no access log is created.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="requestLog" type="string">
|
<parameter name="requestLog" type="string">
|
||||||
<description>
|
<description>
|
||||||
Path to request log file. If unset, no request log is created.
|
Path to request log file. If unset no request log is created.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="userSalt" type="string">
|
<parameter name="userSalt" type="string">
|
||||||
@@ -122,10 +121,7 @@
|
|||||||
List of domain names Cross-Origin Resource Sharing (CORS)
|
List of domain names Cross-Origin Resource Sharing (CORS)
|
||||||
request may originate from. A value of '*' allows any web page
|
request may originate from. A value of '*' allows any web page
|
||||||
to embed your service. An empty value will switch of CORS
|
to embed your service. An empty value will switch of CORS
|
||||||
requests entirely.
|
requests entirely. An example of multiple domains might be:
|
||||||
|
|
||||||
Example of multiple domains:
|
|
||||||
|
|
||||||
'https://test.domain.de, https://production.domain.de'.
|
'https://test.domain.de, https://production.domain.de'.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
@@ -158,7 +154,7 @@
|
|||||||
If enabled, event comment elements are no longer accessible.
|
If enabled, event comment elements are no longer accessible.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="evaluationMode" type="string" values=",automatic,manual">
|
<parameter name="evaluationMode" type="string">
|
||||||
<description>
|
<description>
|
||||||
If set, the event service will only return events having a
|
If set, the event service will only return events having a
|
||||||
preferred origin with a matching evaluationMode property.
|
preferred origin with a matching evaluationMode property.
|
||||||
@@ -172,7 +168,7 @@
|
|||||||
<description>List of disabled event types</description>
|
<description>List of disabled event types</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<parameter name="eventFormats" type="list:string" values="csv,qml,qml-rt,sc3ml,text,xml">
|
<parameter name="eventFormats" type="list:string">
|
||||||
<description>
|
<description>
|
||||||
List of enabled event formats. If unspecified, all supported
|
List of enabled event formats. If unspecified, all supported
|
||||||
formats are enabled.
|
formats are enabled.
|
||||||
@@ -199,12 +195,12 @@
|
|||||||
standard FDSNWS extension served under fdsnws/ext/availability.
|
standard FDSNWS extension served under fdsnws/ext/availability.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="stationFilter" type="file" options="read">
|
<parameter name="stationFilter" type="string">
|
||||||
<description>
|
<description>
|
||||||
Path to station inventory filter file.
|
Path to station inventory filter file.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="dataSelectFilter" type="file" options="read">
|
<parameter name="dataSelectFilter" type="string">
|
||||||
<description>
|
<description>
|
||||||
Path to dataselect inventory filter file.
|
Path to dataselect inventory filter file.
|
||||||
</description>
|
</description>
|
||||||
@@ -292,38 +288,6 @@
|
|||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<group name="jwt">
|
|
||||||
<parameter name="enable" type="boolean" default="false">
|
|
||||||
<description>
|
|
||||||
Enable JWT extension.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="issuers" type="list:string" default="https://geofon.gfz.de/eas2,https://login.earthscope.org/">
|
|
||||||
<description>
|
|
||||||
List of issuer URLs.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="audience" type="list:string" default="eas,fdsn">
|
|
||||||
<description>
|
|
||||||
List of valid audience.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="algorithms" type="list:string" default="RS256">
|
|
||||||
<description>
|
|
||||||
List of allowed algorithms.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="updateMinSeconds" type="int" default="300">
|
|
||||||
<description>
|
|
||||||
Minimum time to wait between requesting updated keys from a key server.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="updateMaxSeconds" type="int" default="86400">
|
|
||||||
<description>
|
|
||||||
Maximum time to cache received keys.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
</group>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</module>
|
</module>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
+64
-272
@@ -34,7 +34,7 @@
|
|||||||
comma. Add ${plugins} to consider all previously read values.
|
comma. Add ${plugins} to consider all previously read values.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="cityXML" type="file" values="*.xml" options="read">
|
<parameter name="cityXML" type="string">
|
||||||
<description>
|
<description>
|
||||||
Path to the cities XML file. If undefined, the data is read
|
Path to the cities XML file. If undefined, the data is read
|
||||||
from "@CONFIGDIR@/cities.xml" or
|
from "@CONFIGDIR@/cities.xml" or
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
are written to log files per modules as
|
are written to log files per modules as
|
||||||
"@CONFIGDIR@/log/[module].log".
|
"@CONFIGDIR@/log/[module].log".
|
||||||
</description>
|
</description>
|
||||||
<parameter name="level" type="int" default="2" values="1,2,3,4">
|
<parameter name="level" type="int" default="2" values="1,2,3,4´">
|
||||||
<description>
|
<description>
|
||||||
Set the logging level between 1 and 4 where 1=ERROR,
|
Set the logging level between 1 and 4 where 1=ERROR,
|
||||||
2=WARNING, 3=INFO and 4=DEBUG.
|
2=WARNING, 3=INFO and 4=DEBUG.
|
||||||
@@ -269,14 +269,14 @@
|
|||||||
is established. Override these values only if you know what you
|
is established. Override these values only if you know what you
|
||||||
are doing.
|
are doing.
|
||||||
</description>
|
</description>
|
||||||
<parameter name="inventory" type="file" options="read" values="*.xml">
|
<parameter name="inventory" type="string">
|
||||||
<description>
|
<description>
|
||||||
Load the inventory database from a given XML file if set.
|
Load the inventory database from a given XML file if set.
|
||||||
This overrides the inventory definitions loaded from the
|
This overrides the inventory definitions loaded from the
|
||||||
database backend.
|
database backend.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="config" type="file" options="read" values="*.xml">
|
<parameter name="config" type="string">
|
||||||
<description>
|
<description>
|
||||||
Load the configuration database from a given XML file if set.
|
Load the configuration database from a given XML file if set.
|
||||||
This overrides the configuration definitions loaded from the
|
This overrides the configuration definitions loaded from the
|
||||||
@@ -344,7 +344,7 @@
|
|||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group name="scripts">
|
<group name="scripts">
|
||||||
<parameter name="crashHandler" type="file" options="read">
|
<parameter name="crashHandler" type="path">
|
||||||
<description>
|
<description>
|
||||||
Path to crash handler script.
|
Path to crash handler script.
|
||||||
</description>
|
</description>
|
||||||
@@ -453,17 +453,9 @@
|
|||||||
e.g. "signalBegin". This can be overridden per
|
e.g. "signalBegin". This can be overridden per
|
||||||
station in its bindings.
|
station in its bindings.
|
||||||
</description>
|
</description>
|
||||||
<parameter name="interface" type="string" default="LOCSAT" values="libtau,LOCSAT,homogeneous">
|
<parameter name="interface" type="string" default="libtau">
|
||||||
<description>
|
|
||||||
The name of the travel-time interface to use. The list
|
|
||||||
can be extended by plugins.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="model" type="string" default="iasp91">
|
<parameter name="model" type="string" default="iasp91">
|
||||||
<description>
|
|
||||||
The name of the travel-time interface (velocity) model
|
|
||||||
to use.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<group name="WoodAnderson">
|
<group name="WoodAnderson">
|
||||||
@@ -491,25 +483,10 @@
|
|||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<struct type="GlobalAmplitudeProfile" title="Amplitude-type profile" aliases="config:amplitudes.aliases">
|
<struct type="GlobalAmplitudeProfile" title="Amplitude-type profile" aliases="config:amplitudes.aliases">
|
||||||
<parameter name="regionalize" type="boolean" default="true">
|
|
||||||
<description>
|
|
||||||
Control if the amplitude calculation should be
|
|
||||||
regionalized or not. The regions and their configuration
|
|
||||||
are taken from the corresponding magnitude profiles. If
|
|
||||||
regionalization is activate, then e.g. modules without
|
|
||||||
origin information will not be able to compute an
|
|
||||||
amplitude as the origin is required to determine the
|
|
||||||
effective settings.
|
|
||||||
|
|
||||||
If amplitudes for this particular type shall be computed
|
|
||||||
regardless of any defined regions, set this parameter to
|
|
||||||
false.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="considerUnusedArrivals" type="boolean" default="false">
|
<parameter name="considerUnusedArrivals" type="boolean" default="false">
|
||||||
<description>
|
<description>
|
||||||
If enabled, then also stations with unused (disabled)
|
If enabled then also stations with unused (disabled)
|
||||||
arrivals are considered for amplitude and implicitly
|
arrivals are considerd for amplitude and implicitly
|
||||||
magnitude computations, e.g. by scamp, scmag and scolv.
|
magnitude computations, e.g. by scamp, scmag and scolv.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
@@ -561,7 +538,7 @@
|
|||||||
interpolated but not extrapolated.
|
interpolated but not extrapolated.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="regionFile" type="file" options="read">
|
<parameter name="regionFile" type="path">
|
||||||
<description>
|
<description>
|
||||||
Path to a geofeature file, e.g. in BNA or GeoJSON format,
|
Path to a geofeature file, e.g. in BNA or GeoJSON format,
|
||||||
with one or more polygons defining geographic regions.
|
with one or more polygons defining geographic regions.
|
||||||
@@ -588,72 +565,40 @@
|
|||||||
Enable the region or not.
|
Enable the region or not.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minDist" type="string" unit="deg">
|
<parameter name="minDist" type="double" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
The minimum distance required to compute a
|
The minimum distance required to compute a
|
||||||
magnitude. This settings has no effect with e.g.
|
magnitude. This settings has no effect with e.g.
|
||||||
scautopick as there is no information about the
|
scautopick as there is no information about the
|
||||||
source of the event to compute the distance.
|
source of the event to compute the distance.
|
||||||
The default value depends on magnitude type.
|
The default value is implementation specific.
|
||||||
|
|
||||||
Although the default unit is 'deg', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
minDist = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxDist" type="string" unit="deg">
|
<parameter name="maxDist" type="double" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
The maximum distance allowed to compute a magnitude.
|
The maximum distance allowed to compute a magnitude.
|
||||||
This settings has no effect with e.g. scautopick
|
This settings has no effect with e.g. scautopick
|
||||||
as there is no information about the source of
|
as there is no information about the source of
|
||||||
the event to compute the distance. The default
|
the event to compute the distance. The default
|
||||||
value depends on magnitude type.
|
value is implementation specific.
|
||||||
|
|
||||||
Although the default unit is 'deg', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
maxDist = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minDepth" type="string" unit="km">
|
<parameter name="minDepth" type="double" unit="km">
|
||||||
<description>
|
<description>
|
||||||
The minimum depth required to compute a magnitude.
|
The minimum depth required to compute a magnitude.
|
||||||
This settings has no effect with e.g. scautopick
|
This settings has no effect with e.g. scautopick
|
||||||
as there is no information about the source of
|
as there is no information about the source of
|
||||||
the event to retrieve the depth. The default
|
the event to retrieve the depth. The default
|
||||||
value depends on magnitude type.
|
value is implementation specific.
|
||||||
|
|
||||||
Although the default unit is 'km', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
minDepth = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxDepth" type="string" unit="km">
|
<parameter name="maxDepth" type="double" unit="km">
|
||||||
<description>
|
<description>
|
||||||
The maximum depth allowed to compute a magnitude.
|
The maximum depth allowed to compute a magnitude.
|
||||||
This settings has no effect with e.g. scautopick
|
This settings has no effect with e.g. scautopick
|
||||||
as there is no information about the source of
|
as there is no information about the source of
|
||||||
the event to retrieve the depth. The default
|
the event to retrieve the depth. The default
|
||||||
value depends on magnitude type.
|
value is implementation specific.
|
||||||
|
|
||||||
Although the default unit is 'km', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
maxDepth = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="check" type="string" default="source">
|
<parameter name="check" type="string" default="source">
|
||||||
@@ -917,12 +862,12 @@
|
|||||||
|
|
||||||
<option flag="I" long-flag="record-url" argument="arg" default="" publicID="records#record-url">
|
<option flag="I" long-flag="record-url" argument="arg" default="" publicID="records#record-url">
|
||||||
<description>
|
<description>
|
||||||
The RecordStream source URL. Format:
|
The recordstream source URL, format:
|
||||||
[service://]location[#type].
|
[service://]location[#type].
|
||||||
"service" is the name of the RecordStream driver
|
"service" is the name of the recordstream driver
|
||||||
which can be queried with "--record-driver-list".
|
which can be queried with "--record-driver-list".
|
||||||
If "service" is not given, "file://" is
|
If "service" is not given, "file://" is
|
||||||
used and simply the name of a miniSEED file can be given.
|
used.
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
|
|
||||||
@@ -938,7 +883,7 @@
|
|||||||
</group>
|
</group>
|
||||||
|
|
||||||
<group name="Cities" publicID="cities">
|
<group name="Cities" publicID="cities">
|
||||||
<option long-flag="city-xml" argument="arg" default="" publicID="cities#city-xml" type="file" options="read" values="*.xml">
|
<option long-flag="city-xml" argument="arg" default="" publicID="cities#city-xml">
|
||||||
<description>
|
<description>
|
||||||
The path to the cities XML file. This overrides the default
|
The path to the cities XML file. This overrides the default
|
||||||
paths. Compare with the global parameter "citiesXML".
|
paths. Compare with the global parameter "citiesXML".
|
||||||
@@ -991,8 +936,6 @@
|
|||||||
Create amplitude type profiles to define the time windows,
|
Create amplitude type profiles to define the time windows,
|
||||||
minimum signal-to-noise ratio, amplitude thresholds and
|
minimum signal-to-noise ratio, amplitude thresholds and
|
||||||
restitution for measuring amplitudes of a certain type.
|
restitution for measuring amplitudes of a certain type.
|
||||||
|
|
||||||
Standard amplitude types supported in SeisComP: Md,Mjma,ML,MLc,MLh,MLr,MLv,MN,mb,mB,Mwp,Ms_20,Ms(BB).
|
|
||||||
</description>
|
</description>
|
||||||
<parameter name="saturationThreshold" type="string" default="false" unit="counts; %">
|
<parameter name="saturationThreshold" type="string" default="false" unit="counts; %">
|
||||||
<description>
|
<description>
|
||||||
@@ -1034,14 +977,14 @@
|
|||||||
The parameters of this group will be overridden by type
|
The parameters of this group will be overridden by type
|
||||||
specific settings if given (see GlobalAmplitudeProfile).
|
specific settings if given (see GlobalAmplitudeProfile).
|
||||||
</description>
|
</description>
|
||||||
<parameter name="taper" default="5" unit="s" type="double">
|
<parameter name="taper" default="5" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Define the length of the taper at either side of the
|
Define the length of the taper at either side of the
|
||||||
waveform. The length will be added to the data
|
waveform. The length will be added to the data
|
||||||
request: start - taper and end + taper.
|
request: start - taper and end + taper.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minFreq" default="0.00833333" unit="Hz" type="double">
|
<parameter name="minFreq" default="0.00833333" unit="Hz">
|
||||||
<description>
|
<description>
|
||||||
The minimum frequency of the considered spectrum.
|
The minimum frequency of the considered spectrum.
|
||||||
|
|
||||||
@@ -1052,7 +995,7 @@
|
|||||||
that taper.
|
that taper.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxFreq" default="0" unit="Hz" type="double">
|
<parameter name="maxFreq" default="0" unit="Hz">
|
||||||
<description>
|
<description>
|
||||||
The maximum frequency of the considered spectrum.
|
The maximum frequency of the considered spectrum.
|
||||||
|
|
||||||
@@ -1071,17 +1014,9 @@
|
|||||||
noise time window specifications,
|
noise time window specifications,
|
||||||
e.g. "signalBegin".
|
e.g. "signalBegin".
|
||||||
</description>
|
</description>
|
||||||
<parameter name="interface" type="string" default="LOCSAT" values="libtau,LOCSAT,homogeneous">
|
<parameter name="interface" type="string" default="libtau">
|
||||||
<description>
|
|
||||||
The name of the travel-time interface to use. The list
|
|
||||||
can be extended by plugins.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="model" type="string" default="iasp91">
|
<parameter name="model" type="string" default="iasp91">
|
||||||
<description>
|
|
||||||
The name of the travel-time interface (velocity) model
|
|
||||||
to use.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<group name="WoodAnderson">
|
<group name="WoodAnderson">
|
||||||
@@ -1108,7 +1043,7 @@
|
|||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<struct type="GlobalBindingsAmplitudeProfile" title="Amplitude type profile: Use name of amplitude type" aliases="config:amplitudes.aliases">
|
<struct type="GlobalAmplitudeProfile" title="Amplitude type profile">
|
||||||
<description>
|
<description>
|
||||||
An amplitude profile configures global parameters for a
|
An amplitude profile configures global parameters for a
|
||||||
particular amplitude type. The available amplitude types
|
particular amplitude type. The available amplitude types
|
||||||
@@ -1148,38 +1083,14 @@
|
|||||||
will be used instead.
|
will be used instead.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minSNR" type="double" default="3">
|
<parameter name="minSNR" type="double">
|
||||||
<description>
|
<description>
|
||||||
Define the minimum SNR to be reached to compute the
|
Define the minimum SNR to be reached to compute the
|
||||||
amplitudes. This value is amplitude type specific and
|
amplitudes. This value is amplitude type specific and
|
||||||
has no global default value.
|
has no global default value.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minPeriod" type="double" unit="s">
|
<parameter name="noiseBegin" type="double" unit="s">
|
||||||
<description>
|
|
||||||
Define the minimum period of the measured amplitude. If
|
|
||||||
the period is below this value, the amplitude will not be emitted.
|
|
||||||
This value is specific to amplitude type and has no global
|
|
||||||
default value. A value lower or equal than 0 will disable
|
|
||||||
this check.
|
|
||||||
|
|
||||||
Caution: If a value is set but the amplitude does not
|
|
||||||
provide the period, no amplitude is sent.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="maxPeriod" type="double" unit="s">
|
|
||||||
<description>
|
|
||||||
Define the maximum period of the measured amplitude. If
|
|
||||||
the period is above this value, the amplitude will not be emitted.
|
|
||||||
This value is specific to amplitude type and has no global
|
|
||||||
default value. A value lower or equal than 0 will disable
|
|
||||||
this check.
|
|
||||||
|
|
||||||
Caution: If a value is set but the amplitude does not
|
|
||||||
provide the period, no amplitude is sent.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="noiseBegin" type="string" unit="time grammar" default="-35">
|
|
||||||
<description>
|
<description>
|
||||||
Override the default time (relative to the trigger
|
Override the default time (relative to the trigger
|
||||||
time) of the begin of the noise window used to compute
|
time) of the begin of the noise window used to compute
|
||||||
@@ -1188,7 +1099,7 @@
|
|||||||
should only be changed if you know what you are doing.
|
should only be changed if you know what you are doing.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="noiseEnd" type="string" unit="time grammar" default="-5">
|
<parameter name="noiseEnd" type="double" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Override the default time (relative to the trigger
|
Override the default time (relative to the trigger
|
||||||
time) of the end of the noise window used to compute
|
time) of the end of the noise window used to compute
|
||||||
@@ -1197,7 +1108,7 @@
|
|||||||
should only be changed if you know what you are doing.
|
should only be changed if you know what you are doing.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="signalBegin" type="string" unit="time grammar" default="-5">
|
<parameter name="signalBegin" type="double" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Override the default time (relative to the trigger
|
Override the default time (relative to the trigger
|
||||||
time) of the begin of the signal window used to compute
|
time) of the begin of the signal window used to compute
|
||||||
@@ -1206,7 +1117,7 @@
|
|||||||
changed if you know what you are doing.
|
changed if you know what you are doing.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="signalEnd" type="string" unit="time grammar" default="30">
|
<parameter name="signalEnd" type="double" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Override the default time (relative to the trigger
|
Override the default time (relative to the trigger
|
||||||
time) of the end of the signal window used to compute
|
time) of the end of the signal window used to compute
|
||||||
@@ -1215,86 +1126,69 @@
|
|||||||
changed if you know what you are doing.
|
changed if you know what you are doing.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minDist" type="string" unit="deg" default="0">
|
<parameter name="minDist" type="double" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
The minimum distance required to compute an amplitude.
|
The minimum distance required to compute an amplitude.
|
||||||
This settings has no effect with e.g. scautopick as there
|
This settings has no effect with e.g. scautopick as there
|
||||||
is no information about the source of the event to compute
|
is no information about the source of the event to compute
|
||||||
the distance. The default value depends on
|
the distance. The default value is implementation
|
||||||
amplitude type.
|
specific.
|
||||||
|
|
||||||
Although the default unit is 'deg', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
minDist = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="180">
|
<parameter name="maxDist" type="double" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
The maximum distance allowed to compute an amplitude.
|
The maximum distance allowed to compute an amplitude.
|
||||||
This settings has no effect with e.g. scautopick as there
|
This settings has no effect with e.g. scautopick as there
|
||||||
is no information about the source of the event to compute
|
is no information about the source of the event to compute
|
||||||
the distance. The default value depends on
|
the distance. The default value is implementation
|
||||||
amplitude type.
|
specific.
|
||||||
|
|
||||||
Although the default unit is 'deg', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
maxDist = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minDepth" type="string" unit="km" default="-1000000">
|
<parameter name="minDepth" type="double" unit="km">
|
||||||
<description>
|
<description>
|
||||||
The minimum depth required to compute an amplitude.
|
The minimum depth required to compute an amplitude.
|
||||||
This settings has no effect with e.g. scautopick as there
|
This settings has no effect with e.g. scautopick as there
|
||||||
is no information about the source of the event to
|
is no information about the source of the event to
|
||||||
retrieve the depth. The default value depends on
|
retrieve the depth. The default value is implementation
|
||||||
amplitude type.
|
specific.
|
||||||
|
|
||||||
Although the default unit is 'km', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
minDepth = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="1000000">
|
<parameter name="maxDepth" type="double" unit="km">
|
||||||
<description>
|
<description>
|
||||||
The maximum depth allowed to compute an amplitude.
|
The maximum depth allowed to compute an amplitude.
|
||||||
This settings has no effect with e.g. scautopick as there
|
This settings has no effect with e.g. scautopick as there
|
||||||
is no information about the source of the event to
|
is no information about the source of the event to
|
||||||
retrieve the depth. The default value depends on
|
retrieve the depth. The default value is implementation
|
||||||
amplitude type.
|
specific.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="regionalize" type="boolean" default="true">
|
||||||
|
<description>
|
||||||
|
Control if the amplitude calculation should be
|
||||||
|
regionalized or not. The regions and their configuration
|
||||||
|
are taken from the corresponding magnitude profiles. If
|
||||||
|
regionalization is activate, then e.g. modules without
|
||||||
|
origin information will not be able to compute an
|
||||||
|
amplitude as the origin is required to determine the
|
||||||
|
effective settings.
|
||||||
|
|
||||||
Although the default unit is 'km', values can be
|
If amplitudes for this particular type shall be computed
|
||||||
given in any SI distance unit such km, m or cm
|
regardless of any defined regions, set this parameter to
|
||||||
by simply appending the unit to the value.
|
false.
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
maxDepth = 500km
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<group name="resp">
|
<group name="resp">
|
||||||
<description>
|
<description>
|
||||||
Several parameters if usage of full responses is enabled.
|
Several parameters if usage of full responses is enabled.
|
||||||
</description>
|
</description>
|
||||||
<parameter name="taper" default="5" unit="s" type="double">
|
<parameter name="taper" default="5" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Define the length of the taper at either side of the
|
Define the length of the taper at either side of the
|
||||||
waveform. The length will be added to the data
|
waveform. The length will be added to the data
|
||||||
request: start - taper and end + taper.
|
request: start - taper and end + taper.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minFreq" default="0.00833333" unit="Hz" type="double">
|
<parameter name="minFreq" default="0.00833333" unit="Hz">
|
||||||
<description>
|
<description>
|
||||||
After data are converted in to the frequency domain
|
After data are converted in to the frequency domain
|
||||||
that minimum frequency defines the end of the left-side
|
that minimum frequency defines the end of the left-side
|
||||||
@@ -1303,7 +1197,7 @@
|
|||||||
A value of 0 or lower disables that taper.
|
A value of 0 or lower disables that taper.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxFreq" default="0" unit="Hz" type="double">
|
<parameter name="maxFreq" default="0" unit="Hz">
|
||||||
<description>
|
<description>
|
||||||
After data are converted in to the frequency domain
|
After data are converted in to the frequency domain
|
||||||
that maximum frequency defines the start of the right-side
|
that maximum frequency defines the start of the right-side
|
||||||
@@ -1317,13 +1211,11 @@
|
|||||||
</group>
|
</group>
|
||||||
<group name="magnitudes">
|
<group name="magnitudes">
|
||||||
<description>
|
<description>
|
||||||
Define the calibration parameters and constraints for computing
|
Define magnitude parameters independent of amplitude-type profiles.
|
||||||
magnitudes from measured amplitudes including static corrections.
|
For magnitude correction parameters, e.g., network of station
|
||||||
The parameters are independent of amplitude-type profiles.
|
corrections, create a magnitude type profile.
|
||||||
|
|
||||||
Standard magnitude types supported in SeisComP: Md,Mjma,ML,MLc,MLh,MLr,MLv,MN,mb,mB,Mwp,Ms_20,Ms(BB).
|
|
||||||
</description>
|
</description>
|
||||||
<struct type="GlobalBindingsMagnitudeProfile" title="Magnitude type profile: Use name of magnitude type" aliases="config:magnitudes.aliases">
|
<struct type="GlobalBindingsMagnitudeTypeProfile" title="Magnitude type profile">
|
||||||
<description>
|
<description>
|
||||||
A magnitude profile configures global parameters for a
|
A magnitude profile configures global parameters for a
|
||||||
particular magnitude type. The available magnitude types
|
particular magnitude type. The available magnitude types
|
||||||
@@ -1351,106 +1243,6 @@
|
|||||||
Example: "0.0, regionA: -0.1, regionB: 0.2".
|
Example: "0.0, regionA: -0.1, regionB: 0.2".
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="minDist" type="string" unit="deg">
|
|
||||||
<description>
|
|
||||||
The minimum distance in degree required to compute a
|
|
||||||
magnitude. This settings has no effect with e.g.
|
|
||||||
scautopick as there is no information about the
|
|
||||||
source of the event to compute the distance.
|
|
||||||
The default value depends on magnitude type.
|
|
||||||
|
|
||||||
Although the default unit is 'deg', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
minDist = 500km
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg">
|
|
||||||
<description>
|
|
||||||
The maximum distance in degree allowed to compute a magnitude.
|
|
||||||
This settings has no effect with e.g. scautopick
|
|
||||||
as there is no information about the source of
|
|
||||||
the event to compute the distance. The default
|
|
||||||
value depends on magnitude type.
|
|
||||||
|
|
||||||
Although the default unit is 'deg', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="minDepth" type="string" unit="km">
|
|
||||||
<description>
|
|
||||||
The minimum depth required to compute a magnitude.
|
|
||||||
This settings has no effect with e.g. scautopick
|
|
||||||
as there is no information about the source of
|
|
||||||
the event to retrieve the depth. The default
|
|
||||||
value depends on magnitude type.
|
|
||||||
|
|
||||||
Although the default unit is 'km', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
minDepth = 500km
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km">
|
|
||||||
<description>
|
|
||||||
The maximum depth allowed to compute a magnitude.
|
|
||||||
This settings has no effect with e.g. scautopick
|
|
||||||
as there is no information about the source of
|
|
||||||
the event to retrieve the depth. The default
|
|
||||||
value depends on magnitude type.
|
|
||||||
|
|
||||||
Although the default unit is 'km', values can be
|
|
||||||
given in any SI distance unit such km, m or cm
|
|
||||||
by simply appending the unit to the value.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
maxDepth = 500km
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="minSNR" type="double">
|
|
||||||
<description>
|
|
||||||
The minimum SNR required for a magnitude to pass
|
|
||||||
the QC check. The station magnitude will be computed
|
|
||||||
anyway but if the SNR is below this threshold it will
|
|
||||||
be associated with weight zero and will not contribute
|
|
||||||
to the network magnitude. If this value is set then it
|
|
||||||
overrides the regionalized setting.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="minPeriod" type="double" unit="s">
|
|
||||||
<description>
|
|
||||||
The minimum period required for a magnitude to pass
|
|
||||||
the QC check. The station magnitude will be computed
|
|
||||||
anyway but if the period is below this threshold it will
|
|
||||||
be associated with weight zero and will not contribute
|
|
||||||
to the network magnitude. If this value is set, then it
|
|
||||||
overrides the regionalized setting.
|
|
||||||
|
|
||||||
Caution: If a value is set but the amplitude does not
|
|
||||||
provide the period, no magnitude is computed.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="maxPeriod" type="double" unit="s">
|
|
||||||
<description>
|
|
||||||
The maximum period allowed for a magnitude to pass
|
|
||||||
the QC check. The station magnitude will be computed
|
|
||||||
anyway but if the period is above this threshold it will
|
|
||||||
be associated with weight zero and will not contribute
|
|
||||||
to the network magnitude. If this value is set, then it
|
|
||||||
overrides the regionalized setting.
|
|
||||||
|
|
||||||
Caution: If a value is set but the amplitude does not
|
|
||||||
provide the period, no magnitude is computed.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
</struct>
|
</struct>
|
||||||
</group>
|
</group>
|
||||||
<group name="picker">
|
<group name="picker">
|
||||||
|
|||||||
@@ -17,30 +17,6 @@
|
|||||||
documentation for the required interface name.
|
documentation for the required interface name.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="lat" type="double">
|
|
||||||
<description>
|
|
||||||
The fixed latitude to use. If not set then this
|
|
||||||
value is read from the input origin.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="lon" type="double">
|
|
||||||
<description>
|
|
||||||
The fixed longitude to use. If not set then this
|
|
||||||
value is read from the input origin.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="depth" type="double">
|
|
||||||
<description>
|
|
||||||
The fixed depth to use. If not set then this
|
|
||||||
value is read from the input origin.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="time" type="string">
|
|
||||||
<description>
|
|
||||||
The fixed time to use. If not set then this
|
|
||||||
value is read from the input origin.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="usePickUncertainties" type="boolean" default="false">
|
<parameter name="usePickUncertainties" type="boolean" default="false">
|
||||||
<description>
|
<description>
|
||||||
Whether to use pick time uncertainties rather than a fixed
|
Whether to use pick time uncertainties rather than a fixed
|
||||||
|
|||||||
+221
-393
File diff suppressed because it is too large
Load Diff
@@ -10,32 +10,30 @@
|
|||||||
<description>
|
<description>
|
||||||
Locator parameters: Hypo71
|
Locator parameters: Hypo71
|
||||||
</description>
|
</description>
|
||||||
<parameter name="logFile" type="file" default="@LOGDIR@/HYPO71.LOG" options="write">
|
<parameter name="logFile" type="string" default="@LOGDIR@/HYPO71.LOG">
|
||||||
<description>
|
<description>
|
||||||
Temporary file used by Hypo71 to store calculation logs.
|
Temporary file used by Hypo71 to store calculation logs.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="inputFile" type="file" default="@DATADIR@/hypo71/HYPO71.INP" options="write">
|
<parameter name="inputFile" type="string" default="@DATADIR@/hypo71/HYPO71.INP">
|
||||||
<description>
|
<description>
|
||||||
Temporary file to write Hypo71 input data to.
|
Temporary file to write Hypo71 input data to.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="outputFile" type="file" default="@DATADIR@/hypo71/HYPO71.PRT" options="write">
|
<parameter name="outputFile" type="string" default="@DATADIR@/hypo71/HYPO71.PRT">
|
||||||
<description>
|
<description>
|
||||||
Temporary output file to read Hypo71 location data from.
|
Temporary output file to read Hypo71 location data from.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="defaultControlFile" type="file" default="@DATADIR@/hypo71/profiles/default.hypo71.conf" options="read">
|
<parameter name="defaultControlFile" type="string" default="@DATADIR@/hypo71/profiles/default.hypo71.conf">
|
||||||
<description>
|
<description>
|
||||||
Hypo71 default profile. If no custom profile is specified,
|
Hypo71 default profile.
|
||||||
this profile will be used by the plugin when proceeding to a
|
If no custom profile is specified, this profile will be used by the plugin when proceeding to a localization.
|
||||||
localization.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="hypo71ScriptFile" type="file" default="@DATADIR@/hypo71/run.sh" options="execute">
|
<parameter name="hypo71ScriptFile" type="string" default="@DATADIR@/hypo71/run.sh">
|
||||||
<description>
|
<description>
|
||||||
Bash script executed when calling the Hypo71 locator plugin
|
Bash script executed when calling the Hypo71 locator plugin for locating the earthquake.
|
||||||
for locating the earthquake.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="profiles" type="list:string">
|
<parameter name="profiles" type="list:string">
|
||||||
@@ -47,8 +45,7 @@
|
|||||||
</parameter>
|
</parameter>
|
||||||
<group name="profile">
|
<group name="profile">
|
||||||
<description>
|
<description>
|
||||||
Profiles containing the profile-specific velocity model and
|
Profiles containing the profile-specific velocity model and the Hypo71 parameters.
|
||||||
the Hypo71 parameters.
|
|
||||||
</description>
|
</description>
|
||||||
<struct type="Hypo71 profile" link = "hypo71.profiles">
|
<struct type="Hypo71 profile" link = "hypo71.profiles">
|
||||||
<parameter name="earthModelID" type="string">
|
<parameter name="earthModelID" type="string">
|
||||||
@@ -62,7 +59,7 @@
|
|||||||
It is generally the locator's name (Hypo71).
|
It is generally the locator's name (Hypo71).
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="controlFile" type="file" options="read">
|
<parameter name="controlFile" type="string">
|
||||||
<description>
|
<description>
|
||||||
File containing the profile parameters.
|
File containing the profile parameters.
|
||||||
</description>
|
</description>
|
||||||
@@ -79,15 +76,10 @@
|
|||||||
</struct>
|
</struct>
|
||||||
</group>
|
</group>
|
||||||
<parameter name="publicID" type="string">
|
<parameter name="publicID" type="string">
|
||||||
<description>
|
<description>Custom patternID to use when generating origin publicID</description>
|
||||||
Custom patternID to use when generating origin publicID.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="useHypo71PatternID" type="boolean">
|
<parameter name="useHypo71PatternID" type="boolean">
|
||||||
<description>
|
<description>Specifies if the given publicD should be used for generating origin publicID</description>
|
||||||
Specifies if the given public ID shall be used for
|
|
||||||
generating origin publicID.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -3,16 +3,16 @@
|
|||||||
<plugin name="iLoc">
|
<plugin name="iLoc">
|
||||||
<extends>global</extends>
|
<extends>global</extends>
|
||||||
<description>
|
<description>
|
||||||
Locator in SeisComP implemented by the plugin lociloc.
|
Locator in SeisComP implemented by the plugin lociloc.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<group name="iLoc">
|
<group name="iLoc">
|
||||||
<description>
|
<description>
|
||||||
Locator parameters: iLoc
|
Locator parameters: iLoc
|
||||||
</description>
|
</description>
|
||||||
<parameter name="auxDir" type="directory" default="@DATADIR@/iloc/iLocAuxDir" options="read">
|
<parameter name="auxDir" type="string" default="@DATADIR@/iloc/iLocAuxDir">
|
||||||
<description>
|
<description>
|
||||||
iLoc directory for auxiliary files and directories. Some
|
iLoc directory for auxialiary files and directories. Some
|
||||||
of them must be provided from the iLoc website. Read the
|
of them must be provided from the iLoc website. Read the
|
||||||
documentation for their installation.
|
documentation for their installation.
|
||||||
</description>
|
</description>
|
||||||
@@ -32,9 +32,9 @@
|
|||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="profiles" type="list:string" default="iasp91,ak135">
|
<parameter name="profiles" type="list:string" default="iasp91,ak135">
|
||||||
<description>
|
<description>
|
||||||
List of iLoc profile name(s). Separate multiple names by comma.
|
iLoc profile name.
|
||||||
Each profile can have different velocity or parameters. The
|
Multiples names may be set separated by comma.
|
||||||
must be defined separate by iLoc profiles.
|
Each profile can have different velocity or parameters.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<group name="profile">
|
<group name="profile">
|
||||||
@@ -60,17 +60,17 @@
|
|||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="UseRSTT" type="boolean" default="false">
|
<parameter name="UseRSTT" type="boolean" default="false">
|
||||||
<description>
|
<description>
|
||||||
Use regional seismic travel-time tables.
|
Use regional seismic travel-time tables
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="UseRSTTPnSn" type="boolean" default="true">
|
<parameter name="UseRSTTPnSn" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Use regional seismic travel-time tables for Pn and Sn.
|
Use regional seismic travel-time tables for Pn and Sn
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="UseRSTTPgLg" type="boolean" default="true">
|
<parameter name="UseRSTTPgLg" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Use regional seismic travel-time tables for Pg and Lg.
|
Use regional seismic travel-time tables for Pg and Lg
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="UseLocalTT" type="boolean" default="false">
|
<parameter name="UseLocalTT" type="boolean" default="false">
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
Use local velocity model if defined in LocalVmodel.
|
Use local velocity model if defined in LocalVmodel.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="LocalVmodel" type="file" default="" options="read">
|
<parameter name="LocalVmodel" type="string" default="">
|
||||||
<description>
|
<description>
|
||||||
Full path to a file containing the local velocity model.
|
Full path to a file containing the local velocity model.
|
||||||
Requires: UseLocalTT = true. Empty string or unset or
|
Requires: UseLocalTT = true. Empty string or unset or
|
||||||
@@ -98,125 +98,124 @@
|
|||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="DoGridSearch" type="boolean" default="true">
|
<parameter name="DoGridSearch" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Perform neighbourhood algorithm.
|
Perform neighbourhood algorithm
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAsearchRadius" type="float" default="5" unit="deg">
|
<parameter name="NAsearchRadius" type="float" default="5" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Search radius around initial
|
Neighbourhood Algorithm: Search radius around initial
|
||||||
epicentre.
|
epicentre
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAsearchDepth" type="float" default="300" unit="km">
|
<parameter name="NAsearchDepth" type="float" default="300" unit="km">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Search radius around initial
|
Neighbourhood Algorithm: Search radius around initial
|
||||||
depth.
|
depth
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAsearchOT" type="float" default="30" unit="s">
|
<parameter name="NAsearchOT" type="float" default="30" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Search radius around initial
|
Neighbourhood Algorithm: Search radius around initial
|
||||||
origin time.
|
origin time
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAlpNorm" type="float" default="1" range="1:2">
|
<parameter name="NAlpNorm" type="float" default="1">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: p-value for norm to compute
|
Neighbourhood Algorithm: p-value for norm to compute
|
||||||
misfit.
|
misfit [1,2]
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAiterMax" type="int" default="5">
|
<parameter name="NAiterMax" type="integer" default="5">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Maximum number of iterations.
|
Neighbourhood Algorithm: Maximum number of iterations
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAcells" type="int" default="25">
|
<parameter name="NAcells" type="integer" default="25">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Number of cells to be resampled
|
Neighbourhood Algorithm: Number of cells to be resampled
|
||||||
at each iteration.
|
at each iteration
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAinitialSample" type="int" default="1000" unit="">
|
<parameter name="NAinitialSample" type="integer" default="1000" unit="">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Size of initial sample.
|
Neighbourhood Algorithm: Size of initial sample
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="NAnextSample" type="int" default="100" unit="">
|
<parameter name="NAnextSample" type="integer" default="100" unit="">
|
||||||
<description>
|
<description>
|
||||||
Neighbourhood Algorithm: Size of subsequent samples.
|
Neighbourhood Algorithm: Size of subsequent samples
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="MinDepthPhases" type="int" default="3" unit="">
|
<parameter name="MinDepthPhases" type="integer" default="3" unit="">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Minimum number of depth phases.
|
Depth resolution: Minimum number of depth phases for depdp
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MaxLocalDistDeg" type="float" default="0.2" unit="deg">
|
<parameter name="MaxLocalDistDeg" type="float" default="0.2" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Maximum local distance.
|
Depth resolution: Maximum local distance
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MinLocalStations" type="int" default="1">
|
<parameter name="MinLocalStations" type="integer" default="1">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Minimum number of local defining stations.
|
Depth resolution: Minimum number of local defining stations
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MaxSPDistDeg" type="float" default="2.0" unit="deg">
|
<parameter name="MaxSPDistDeg" type="float" default="2.0" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Maximum epicentral distance for
|
Depth resolution: Maximum distance for using S-P travel-time differences.
|
||||||
using S-P travel-time differences.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MinSPpairs" type="int" default="3">
|
<parameter name="MinSPpairs" type="integer" default="3">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Minimum number of defining S-P phase pairs.
|
Depth resolution: Minimum number of defining S-P phase pairs
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MinCorePhases" type="int" default="3">
|
<parameter name="MinCorePhases" type="integer" default="3">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Minimum number of defining core reflection phases
|
Depth resolution: Minimum number of defining core reflection phases
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MaxShallowDepthError" type="float" default="30.0" unit="km">
|
<parameter name="MaxShallowDepthError" type="float" default="30.0" unit="km">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Maximum depth error for crustal free-depth.
|
Depth resolution: Maximum depth error for crustal free-depth
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MaxDeepDepthError" type="float" default="60.0" unit="km">
|
<parameter name="MaxDeepDepthError" type="float" default="60.0" unit="km">
|
||||||
<description>
|
<description>
|
||||||
Depth resolution: Maximum depth error for deep free-depth.
|
Depth resolution: Maximum depth error for deep free-depth
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="DoCorrelatedErrors" type="boolean" default="true">
|
<parameter name="DoCorrelatedErrors" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Linearized inversion: Account for correlated errors.
|
Linearized inversion: Account for correlated errors
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="SigmaThreshold" type="float" default="6.0" unit="s">
|
<parameter name="SigmaThreshold" type="float" default="6.0" unit="s">
|
||||||
<description>
|
<description>
|
||||||
Linearized inversion: Used to exclude big residuals from solution.
|
Linearized inversion: Used to exclude big residuals from solution
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="AllowDamping" type="boolean" default="true">
|
<parameter name="AllowDamping" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Linearized inversion: Allow damping of model vector.
|
Linearized inversion: Allow damping of model vector
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MinIterations" type="int" default="4">
|
<parameter name="MinIterations" type="integer" default="4">
|
||||||
<description>
|
<description>
|
||||||
Linearized inversion: Minimum number of iterations.
|
Linearized inversion: Minimum number of iterations
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MaxIterations" type="int" default="20">
|
<parameter name="MaxIterations" type="integer" default="20">
|
||||||
<description>
|
<description>
|
||||||
Linearized inversion: Maximum number of iterations.
|
Linearized inversion: Maximum number of iterations
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="MinNdefPhases" type="int" default="4">
|
<parameter name="MinNdefPhases" type="integer" default="4">
|
||||||
<description>
|
<description>
|
||||||
Linearized inversion: Minimum number of defining phases.
|
Linearized inversion: Minimum number of defining phases
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="DoNotRenamePhases" type="boolean" default="false">
|
<parameter name="DoNotRenamePhases" type="boolean" default="false">
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
Locator parameters: Router. This locator requires the plugin
|
Locator parameters: Router. This locator requires the plugin
|
||||||
"locrouter" to be loaded.
|
"locrouter" to be loaded.
|
||||||
</description>
|
</description>
|
||||||
<parameter name="regions" type="file" options="read">
|
<parameter name="regions" type="string">
|
||||||
<description>
|
<description>
|
||||||
A GeoJSON or BNA file defining locator profiles by region.
|
A GeoJSON or BNA file defining locator profiles by region.
|
||||||
Supported polygon attributes:
|
Supported polygon attributes:
|
||||||
|
|||||||
@@ -11,23 +11,25 @@
|
|||||||
Body wave magnitude at teleseismic distances measured at 1 s period.
|
Body wave magnitude at teleseismic distances measured at 1 s period.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="mb">
|
<group name="magnitudes">
|
||||||
<description>
|
<group name="mb">
|
||||||
Parameters for computing mb magnitudes from mb amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="minDist" type="double" unit="deg" default="5">
|
|
||||||
<description>
|
<description>
|
||||||
Minimum epicentral distance for computing mb. Note: According
|
Parameters for computing mb magnitudes from mb amplitudes.
|
||||||
to the IASPEI recommendations in 2013, the minimum distance
|
|
||||||
should be 20 deg.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="minDist" type="double" unit="deg" default="5">
|
||||||
<parameter name="maxDist" type="double" unit="deg" default="105">
|
<description>
|
||||||
<description>
|
Minimum epicentral distance for computing mb. Note: According
|
||||||
Maximum epicentral distance for computing mb.
|
to the IASPEI recommendations in 2013, the minimum distance
|
||||||
</description>
|
should be 20 deg.
|
||||||
</parameter>
|
</description>
|
||||||
</extend-struct>
|
</parameter>
|
||||||
|
<parameter name="maxDist" type="double" unit="deg" default="105">
|
||||||
|
<description>
|
||||||
|
Maximum epicentral distance for computing mb.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -11,23 +11,25 @@
|
|||||||
The body wave magnitude at teleseismic distances similar to mb.
|
The body wave magnitude at teleseismic distances similar to mb.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="mB">
|
<group name="magnitudes">
|
||||||
<description>
|
<group name="mB">
|
||||||
Parameters for computing mB magnitudes from mB amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="minDist" type="double" unit="deg" default="5">
|
|
||||||
<description>
|
<description>
|
||||||
Minimum epicentral distance for computing mB. Note: According
|
Parameters for computing mB magnitudes from mB amplitudes.
|
||||||
to the IASPEI recommendations in 2013, the minimum distance
|
|
||||||
should be 20 deg.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="minDist" type="double" unit="deg" default="5">
|
||||||
<parameter name="maxDist" type="double" unit="deg" default="105">
|
<description>
|
||||||
<description>
|
Minimum epicentral distance for computing mB. Note: According
|
||||||
Maximum epicentral distance for computing mB.
|
to the IASPEI recommendations in 2013, the minimum distance
|
||||||
</description>
|
should be 20 deg.
|
||||||
</parameter>
|
</description>
|
||||||
</extend-struct>
|
</parameter>
|
||||||
|
<parameter name="maxDist" type="double" unit="deg" default="105">
|
||||||
|
<description>
|
||||||
|
Maximum epicentral distance for computing mB.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -17,17 +17,19 @@
|
|||||||
from the event.
|
from the event.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="mb(IDC)">
|
<group name="magnitudes">
|
||||||
<parameter name="Q" type="path">
|
<group name="mb(IDC)">
|
||||||
<description>
|
<parameter name="Q" type="path">
|
||||||
Location of the station specific Q table. If not
|
<description>
|
||||||
specified then @DATADIR@/magnitudes/IDC/qfvc.ml will be
|
Location of the station specific Q table. If not
|
||||||
used as fallback. {net}, {sta} and {loc} are placeholders
|
specified then @DATADIR@/magnitudes/IDC/qfvc.ml will be
|
||||||
which will be replaced with the concrete network code,
|
used as fallback. {net}, {sta} and {loc} are placeholders
|
||||||
station code and location code.
|
which will be replaced with the concrete network code,
|
||||||
</description>
|
station code and location code.
|
||||||
</parameter>
|
</description>
|
||||||
</extend-struct>
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
+104
-102
@@ -1,113 +1,115 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<seiscomp>
|
<seiscomp>
|
||||||
<plugin name="Md">
|
<plugin name="Md">
|
||||||
<extends>global</extends>
|
<extends>global</extends>
|
||||||
<description>
|
<description>
|
||||||
Duration magnitude plugin
|
Duration magnitude plugin
|
||||||
</description>
|
</description>
|
||||||
</plugin>
|
</plugin>
|
||||||
<binding name="Md" module="global">
|
<binding name="Md" module="global">
|
||||||
<description>
|
<description>
|
||||||
Duration magnitude plugin
|
Duration magnitude plugin
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="md">
|
<group name="magnitudes">
|
||||||
<parameter name="seismo" type="int" default="9">
|
<group name="md">
|
||||||
<description>
|
<parameter name="seismo" type="int" default="9">
|
||||||
Default filter type to use before processing and after deconvolution. It's possible to set :
|
<description>
|
||||||
1 for a Wood-Anderson seismometer
|
Default filter type to use before processing and after deconvolution. It's possible to set :
|
||||||
2 for a 5sec generic Seismometer
|
1 for a Wood-Anderson seismometer
|
||||||
3 for a WWSSN LP seismometer
|
2 for a 5sec generic Seismometer
|
||||||
4 for a WSSN SP seismometer
|
3 for a WWSSN LP seismometer
|
||||||
5 for a Generic Seismometer
|
4 for a WSSN SP seismometer
|
||||||
6 for a Butterworth Low pass filter
|
5 for a Generic Seismometer
|
||||||
7 for a Butterworth High pass filter
|
6 for a Butterworth Low pass filter
|
||||||
8 for a Butterworth Band pass filter
|
7 for a Butterworth High pass filter
|
||||||
9 for a 1Hz eigen-frequency L4C seismometer
|
8 for a Butterworth Band pass filter
|
||||||
</description>
|
9 for a 1Hz eigen-frequency L4C seismometer
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="taper" type="double" default="5" unit="s">
|
</parameter>
|
||||||
<description>
|
<parameter name="taper" type="double" default="5" unit="s">
|
||||||
taper applied to the signal
|
<description>
|
||||||
</description>
|
taper applied to the signal
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="signal_length" type="double" default="150" unit="s">
|
</parameter>
|
||||||
<description>
|
<parameter name="signal_length" type="double" default="150" unit="s">
|
||||||
signal length used to compute the duration magnitude
|
<description>
|
||||||
</description>
|
signal length used to compute the duration magnitude
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="butterworth" type="string" default=""3,1.5"">
|
</parameter>
|
||||||
<description>
|
<parameter name="butterworth" type="string" default=""3,1.5"">
|
||||||
Butterworth filter parameter applied to the signal
|
<description>
|
||||||
</description>
|
Butterworth filter parameter applied to the signal
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="depthmax" type="double" default="200" unit="km">
|
</parameter>
|
||||||
<description>
|
<parameter name="depthmax" type="double" default="200" unit="km">
|
||||||
Maximum depth at which duration magnitude is valid
|
<description>
|
||||||
</description>
|
Maximum depth at which duration magnitude is valid
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="deltamax" type="double" default="400" unit="km">
|
</parameter>
|
||||||
<description>
|
<parameter name="deltamax" type="double" default="400" unit="km">
|
||||||
Maximum distance between earthquake and station at which duration magnitude is valid
|
<description>
|
||||||
</description>
|
Maximum distance between earthquake and station at which duration magnitude is valid
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="snrmin" type="double" default="1.2">
|
</parameter>
|
||||||
<description>
|
<parameter name="snrmin" type="double" default="1.2">
|
||||||
Signal to noise ratio below which the coda is reached
|
<description>
|
||||||
</description>
|
Signal to noise ratio below which the coda is reached
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="mdmax" type="double" default="5.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="mdmax" type="double" default="5.0">
|
||||||
Maximum expected duration magnitude value
|
<description>
|
||||||
This is used to find how much data should be loaded for a given station by reversing the formula
|
Maximum expected duration magnitude value
|
||||||
</description>
|
This is used to find how much data should be loaded for a given station by reversing the formula
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="fma" type="double" default="-0.87">
|
</parameter>
|
||||||
<description>
|
<parameter name="fma" type="double" default="-0.87">
|
||||||
FMA regional coefficient
|
<description>
|
||||||
See Hypo2000 manual
|
FMA regional coefficient
|
||||||
</description>
|
See Hypo2000 manual
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="fmb" type="double" default="2.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="fmb" type="double" default="2.0">
|
||||||
FMB regional coefficient
|
<description>
|
||||||
See Hypo2000 manual
|
FMB regional coefficient
|
||||||
</description>
|
See Hypo2000 manual
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="fmd" type="double" default="0.0035">
|
</parameter>
|
||||||
<description>
|
<parameter name="fmd" type="double" default="0.0035">
|
||||||
FMD regional coefficient
|
<description>
|
||||||
See Hypo2000 manual
|
FMD regional coefficient
|
||||||
</description>
|
See Hypo2000 manual
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="fmf" type="double" default="0.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="fmf" type="double" default="0.0">
|
||||||
FMF regional coefficient
|
<description>
|
||||||
See Hypo2000 manual
|
FMF regional coefficient
|
||||||
</description>
|
See Hypo2000 manual
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="fmz" type="double" default="0.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="fmz" type="double" default="0.0">
|
||||||
FMZ regional coefficient
|
<description>
|
||||||
See Hypo2000 manual
|
FMZ regional coefficient
|
||||||
</description>
|
See Hypo2000 manual
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="linearcorrection" type="double" default="1.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="linearcorrection" type="double" default="1.0">
|
||||||
Linear correction
|
<description>
|
||||||
</description>
|
Linear correction
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="offset" type="double" default="0.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="offset" type="double" default="0.0">
|
||||||
Offset
|
<description>
|
||||||
</description>
|
Offset
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="stacor" type="double" default="0.0">
|
</parameter>
|
||||||
<description>
|
<parameter name="stacor" type="double" default="0.0">
|
||||||
Station correction
|
<description>
|
||||||
</description>
|
Station correction
|
||||||
</parameter>
|
</description>
|
||||||
</extend-struct>
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -25,76 +25,74 @@
|
|||||||
Standard local (Richter) magnitude
|
Standard local (Richter) magnitude
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsAmplitudeProfile" match-name="ML">
|
<group name="amplitudes">
|
||||||
<description>
|
<group name="ML">
|
||||||
Parameters for measuring ML amplitudes. Add more parameters
|
|
||||||
by adding an amplitude type profile 'ML',
|
|
||||||
</description>
|
|
||||||
<parameter name="minSNR" type="double" default="0"/>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="8"/>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="80"/>
|
|
||||||
<parameter name="signalEnd" type="string" unit="time grammar" default="min(R / 3 + 30, 150)"/>
|
|
||||||
<parameter name="preFilter" type="string" default="">
|
|
||||||
<description>
|
<description>
|
||||||
The filter applied to raw records before applying
|
Parameters for measuring ML amplitudes. Add more parameters
|
||||||
Wood-Anderson simulation. Default: no pre-filtering.
|
by adding an amplitude type profile 'ML',
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="preFilter" type="string" default="">
|
||||||
<parameter name="applyWoodAnderson" type="boolean" default="true">
|
<description>
|
||||||
<description>
|
The filter applied to raw records before applying
|
||||||
Applying Wood-Anderson simulation. To achieve displacement
|
Wood-Anderson simulation. Default: no pre-filtering.
|
||||||
records without WA simulation, an integration filter can
|
</description>
|
||||||
be applied with the pre-filter.
|
</parameter>
|
||||||
</description>
|
<parameter name="measureType" type="string" default="AbsMax">
|
||||||
</parameter>
|
<description>
|
||||||
<parameter name="measureType" type="string" default="AbsMax">
|
This parameter allows to set how the amplitude is measured.
|
||||||
<description>
|
Either by finding the absolute maximum of the demeaned
|
||||||
This parameter allows to set how the amplitude is measured.
|
trace (AbsMax), the difference of maximum and minimum of
|
||||||
Either by finding the absolute maximum of the demeaned
|
the signal window (MinMax) or the maximum peak-trough
|
||||||
trace (AbsMax), the difference of maximum and minimum of
|
of one cycle (PeakTrough).
|
||||||
the signal window (MinMax) or the maximum peak-trough
|
|
||||||
of one cycle (PeakTrough).
|
|
||||||
|
|
||||||
Note that if absMax is already explicitly configured, this
|
Note that if absMax is already explicitly configured, this
|
||||||
parameter has no effect.
|
parameter has no effect.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="combiner" type="string" default="average">
|
<parameter name="combiner" type="string" default="average">
|
||||||
|
<description>
|
||||||
|
Defines the combiner operation for the amplitudes measured
|
||||||
|
on either both horizontal component. The default is to
|
||||||
|
use the average. Allowed values are: "average",
|
||||||
|
"min", "max" and "geometric_mean".
|
||||||
|
"geometric_mean" corresponds to averaging single-trace
|
||||||
|
magnitudes instead of their amplitudes.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<group name="magnitudes">
|
||||||
|
<group name="ML">
|
||||||
<description>
|
<description>
|
||||||
Defines the combiner operation for the amplitudes measured
|
Parameters for computing ML magnitudes from ML amplitudes.
|
||||||
on either both horizontal component. The default is to
|
|
||||||
use the average. Allowed values are: "average",
|
|
||||||
"min", "max" and "geometric_mean".
|
|
||||||
"geometric_mean" corresponds to averaging single-trace
|
|
||||||
magnitudes instead of their amplitudes.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
|
||||||
</extend-struct>
|
<description>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="ML">
|
The calibration function log10(A0).
|
||||||
<description>
|
|
||||||
Parameters for computing ML magnitudes from ML amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="8"/>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="80"/>
|
|
||||||
<parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
|
|
||||||
<description>
|
|
||||||
The calibration function log10(A0).
|
|
||||||
|
|
||||||
Format: any list of distance-value pairs separated by
|
Format: any list of distance-value pairs separated by
|
||||||
comma. Values within pairs are separated by colon.
|
comma. Values within pairs are separated by colon.
|
||||||
|
|
||||||
Example: "0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85"
|
Example: "0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85"
|
||||||
specifies 4 distance intervals from
|
specifies 4 distance intervals from
|
||||||
0...60, 60...100, 100...400 and 400...1000 km distance.
|
0...60, 60...100, 100...400 and 400...1000 km distance.
|
||||||
Within these intervals log10(A0) is interpolated linearly
|
Within these intervals log10(A0) is interpolated linearly
|
||||||
between -1.3...-2.8, -2.8...-3.0, -3.0...-4.5 and -4.5...-5.8,
|
between -1.3...-2.8, -2.8...-3.0, -3.0...-4.5 and -4.5...-5.8,
|
||||||
respectively.
|
respectively.
|
||||||
|
|
||||||
Note: The first and last distance samples limit the
|
Note: The first and last distance samples limit the
|
||||||
maximum distance range for computing ML.
|
maximum distance range for computing ML.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</extend-struct>
|
<parameter name="maxDistanceKm" type="double" unit="km" default="-1.0">
|
||||||
|
<description>
|
||||||
|
Maximum epicentral distance for computing ML.
|
||||||
|
No distance limitation for maxDistanceKm = -1.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -11,17 +11,19 @@
|
|||||||
CTBTO/IDC local magnitude.
|
CTBTO/IDC local magnitude.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="ML(IDC)">
|
<group name="magnitudes">
|
||||||
<parameter name="A" type="path">
|
<group name="ML(IDC)">
|
||||||
<description>
|
<parameter name="A" type="path">
|
||||||
Location of the station specific attenuation table. If not
|
<description>
|
||||||
specified then @DATADIR@/magnitudes/IDC/global.ml will be
|
Location of the station specific attenuation table. If not
|
||||||
used as fallback. {net}, {sta} and {loc} are placeholders
|
specified then @DATADIR@/magnitudes/IDC/global.ml will be
|
||||||
which will be replaced with the concrete network code,
|
used as fallback. {net}, {sta} and {loc} are placeholders
|
||||||
station code and location code.
|
which will be replaced with the concrete network code,
|
||||||
</description>
|
station code and location code.
|
||||||
</parameter>
|
</description>
|
||||||
</extend-struct>
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
+151
-182
@@ -101,219 +101,188 @@
|
|||||||
Custom magnitude for local events measured on horizontal components
|
Custom magnitude for local events measured on horizontal components
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MLc">
|
<group name="amplitudes">
|
||||||
<description>
|
<group name="MLc">
|
||||||
Parameters for measuring MLc amplitudes. Add more parameters
|
|
||||||
by adding an amplitude type profile 'MLc',
|
|
||||||
</description>
|
|
||||||
<parameter name="minSNR" type="double" default="0"/>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="8"/>
|
|
||||||
<parameter name="minDepth" type="string" unit="km" default="-10"/>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="80"/>
|
|
||||||
<parameter name="signalEnd" type="string" unit="time grammar" default="min(R / 3 + 30, 150)"/>
|
|
||||||
<parameter name="preFilter" type="string" default="BW(3,0.5,12)">
|
|
||||||
<description>
|
<description>
|
||||||
The filter applied to raw records before applying
|
Parameters for measuring MLc amplitudes. Add more parameters
|
||||||
Wood-Anderson simulation.
|
by adding an amplitude type profile 'MLc',
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="preFilter" type="string" default="BW(3,0.5,12)">
|
||||||
<parameter name="applyWoodAnderson" type="boolean" default="true">
|
|
||||||
<description>
|
|
||||||
Applying Wood-Anderson simulation. To achieve displacement
|
|
||||||
records without WA simulation, an integration filter can
|
|
||||||
be applied with the pre-filter.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="amplitudeScale" type="string" default="1.0">
|
|
||||||
<description>
|
|
||||||
Scaling value multiplied to the measured amplitudes to
|
|
||||||
match the amplitude units expected by the magnitude
|
|
||||||
calibration function.
|
|
||||||
|
|
||||||
Expected amplitudes are
|
|
||||||
in units of mym but actual amplitudes provided from
|
|
||||||
Wood-Anderson-corrected seismograms are in units of mm:
|
|
||||||
amplitudeScale = 1000.
|
|
||||||
|
|
||||||
If data are not corrected for WA, measured amplitudes
|
|
||||||
take the unit of gain-corrected data considering the
|
|
||||||
preFilter:
|
|
||||||
amplitudeScale converts between units of measured and
|
|
||||||
excpected amplitude.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="measureType" type="string" default="AbsMax" values="AbsMax,MinMax,PeakTrough">
|
|
||||||
<description>
|
|
||||||
Type for measuring amplitudes.
|
|
||||||
|
|
||||||
AbsMax: absolute maximum
|
|
||||||
|
|
||||||
MinMax: half difference between absolute maximum and minimum
|
|
||||||
|
|
||||||
PeakTrough: half difference between maximum and minimum
|
|
||||||
on a half cycle
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="combiner" type="string" default="max" values="min,max,average,geometric_mean">
|
|
||||||
<description>
|
|
||||||
Define how to combine the amplitudes measured on both
|
|
||||||
horizontals components:
|
|
||||||
|
|
||||||
min: take the minimum
|
|
||||||
|
|
||||||
max: take the maxium
|
|
||||||
|
|
||||||
avgerage: form the average
|
|
||||||
|
|
||||||
geometric_mean: form the geometric mean
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
</extend-struct>
|
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLc">
|
|
||||||
<description>
|
|
||||||
Parameters for computing MLc magnitudes from MLc amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="8"/>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="80"/>
|
|
||||||
<parameter name="distMode" type="string" default="hypocentral" values="hypocentral,epicentral">
|
|
||||||
<description>
|
|
||||||
Considered distance measure between source and receiver.
|
|
||||||
|
|
||||||
hypocentral: hypocentral distance
|
|
||||||
|
|
||||||
epicentral: epicentral distance
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="minDist" type="double" default="-1.0" unit="deg">
|
|
||||||
<description>
|
|
||||||
The minimum distance for computing magnitudes from amplitudes.
|
|
||||||
Negative values deactivate the check.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="maxDist" type="double" default="8" unit="deg">
|
|
||||||
<description>
|
|
||||||
The maximum distance for computing magnitudes from amplitudes.
|
|
||||||
Negative values deactivate the check.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="minDepth" type="double" default="-10" unit="km">
|
|
||||||
<description>
|
|
||||||
The minimum source depth below which magnitudes are computed.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="maxDepth" type="double" default="80" unit="km">
|
|
||||||
<description>
|
|
||||||
The maximum source depth up to which magnitudes are computed.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<parameter name="calibrationType" type="string" default=""parametric"" unit="" values="parametric,A0">
|
|
||||||
<description>
|
|
||||||
Type of magnitude calibration formula to be considered.
|
|
||||||
The calibration parameters are considered accordingly.
|
|
||||||
|
|
||||||
"parametric": consider parameters of parametric
|
|
||||||
configuration in parametric section
|
|
||||||
|
|
||||||
"A0": consider parameters of non-parametric
|
|
||||||
configuration in A0 section.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
<group name="A0">
|
|
||||||
<description>
|
|
||||||
Parameters for A0, non-parametric magnitude calibration.
|
|
||||||
Considered if magnitude.MLc.calibrationType = "A0".
|
|
||||||
</description>
|
|
||||||
<parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
|
|
||||||
<description>
|
<description>
|
||||||
The non-parametric calibration function log10(A0).
|
The filter applied to raw records before applying
|
||||||
|
Wood-Anderson simulation.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="applyWoodAnderson" type="boolean" default="true">
|
||||||
|
<description>
|
||||||
|
Applying Wood-Anderson simulation. To achieve displacement
|
||||||
|
records without WA simulation, an integration filter can
|
||||||
|
be applied with the pre-filter.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="amplitudeScale" type="string" default="1.0">
|
||||||
|
<description>
|
||||||
|
Scaling value multiplied to the measured amplitudes to
|
||||||
|
match the amplitude units expected by the magnitude
|
||||||
|
calibration function.
|
||||||
|
|
||||||
Format: any list of distance-value pairs separated by
|
Expected amplitudes are
|
||||||
comma. Values within pairs are separated by colon.
|
in units of mym but actual amplitudes provided from
|
||||||
|
Wood-Anderson-corrected seismograms are in units of mm:
|
||||||
|
amplitudeScale = 1000.
|
||||||
|
|
||||||
Example: "0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85"
|
If data are not corrected for WA, measured amplitudes
|
||||||
specifies 4 distance intervals from
|
take the unit of gain-corrected data considering the
|
||||||
0...60, 60...100, 100...400 and 400...1000 km distance.
|
preFilter:
|
||||||
Within these intervals log10(A0) is interpolated linearly
|
amplitudeScale converts between units of measured and
|
||||||
between -1.3...-2.8, -2.8...-3.0, -3.0...-4.5 and -4.5...-5.8,
|
excpected amplitude.
|
||||||
respectively.
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="measureType" type="string" default="AbsMax">
|
||||||
|
<description>
|
||||||
|
Type for measuring amplitudes. Available:
|
||||||
|
|
||||||
Note: The first and last distance samples limit the
|
AbsMax: absolute maximum
|
||||||
maximum distance range for computing MLv.
|
|
||||||
|
MinMax: half difference between absolute maximum and minimum
|
||||||
|
|
||||||
|
PeakTrough: half difference between maximum and minimum
|
||||||
|
on a half cycle
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="combiner" type="string" default="max">
|
||||||
|
<description>
|
||||||
|
Define how to combine the amplitudes measured on both
|
||||||
|
horizontals components:
|
||||||
|
|
||||||
|
min: take the minimum
|
||||||
|
|
||||||
|
max: take the maxium
|
||||||
|
|
||||||
|
avgerage: form the average
|
||||||
|
|
||||||
|
geometric_mean: form the geometric mean
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</group>
|
</group>
|
||||||
<group name="parametric">
|
</group>
|
||||||
|
<group name="magnitudes">
|
||||||
|
<group name="MLc">
|
||||||
<description>
|
<description>
|
||||||
Parameters for parametric magnitude calibration:
|
Parameters for computing MLc magnitudes from MLc amplitudes.
|
||||||
MLc = log10(A) + c7 * e^(c8 * r) + c6 * h + c3 * log10(r / c5) + c2 * (r + c4) + c1 + c0(station)
|
|
||||||
|
|
||||||
Considered if magnitude.MLc.calibrationType = "parametric".
|
|
||||||
</description>
|
</description>
|
||||||
<parameter name="c0" type="double" default="0.0">
|
<parameter name="distMode" type="string" default="hypocentral">
|
||||||
<description>
|
<description>
|
||||||
Station correction. This is the calibration value 'c0'
|
Considered distance measure between source and receiver.
|
||||||
applied in the
|
Possible values are
|
||||||
parametric magnitude calibration formula.
|
|
||||||
|
hypocentral: hypocentral distance
|
||||||
|
|
||||||
|
epicentral: epicentral distance
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="c1" type="double" default="0.69">
|
<parameter name="minDist" type="double" default="-1.0" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c1' applied in the
|
The minimum distance for computing magnitudes from amplitudes.
|
||||||
parametric magnitude calibration formula.
|
Negative values deactivate the check.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="c2" type="double" default="0.00095">
|
<parameter name="maxDist" type="double" default="8" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c2' applied in the
|
The maximum distance for computing magnitudes from amplitudes.
|
||||||
magnitude calibration formula
|
Negative values deactivate the check.
|
||||||
parametric magnitude calibration formula.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="c3" type="double" default="1.11">
|
<parameter name="maxDepth" type="double" default="80" unit="km">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c3' applied in the
|
The maximum source depth up to which magnitudes are computed.
|
||||||
parametric magnitude calibration formula.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="c4" type="double" default="0.0">
|
<parameter name="calibrationType" type="string" default=""parametric"" unit="">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c4' applied in the
|
Type of magnitude calibration formula to be considered.
|
||||||
parametric magnitude calibration formula.
|
The calibration parameters are considered accordingly.
|
||||||
|
Currently supported are
|
||||||
|
|
||||||
|
"parametric": consider parameters of parametric
|
||||||
|
configuration in parametric section
|
||||||
|
|
||||||
|
"A0": consider parameters of non-parametric
|
||||||
|
configuration in A0 section.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="c5" type="double" default="1.0">
|
<group name="A0">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c5' applied in the
|
Parameters for A0, non-parametric magnitude calibration.
|
||||||
parametric magnitude calibration formula.
|
Considered if magnitude.MLc.calibrationType = "A0".
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
|
||||||
<parameter name="c6" type="double" default="0.0">
|
<description>
|
||||||
|
The non-parametric calibration function log10(A0).
|
||||||
|
|
||||||
|
Format: any list of distance-value pairs separated by
|
||||||
|
comma. Values within pairs are separated by colon.
|
||||||
|
|
||||||
|
Example: "0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85"
|
||||||
|
specifies 4 distance intervals from
|
||||||
|
0...60, 60...100, 100...400 and 400...1000 km distance.
|
||||||
|
Within these intervals log10(A0) is interpolated linearly
|
||||||
|
between -1.3...-2.8, -2.8...-3.0, -3.0...-4.5 and -4.5...-5.8,
|
||||||
|
respectively.
|
||||||
|
|
||||||
|
Note: The first and last distance samples limit the
|
||||||
|
maximum distance range for computing MLv.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
<group name="parametric">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c6' applied in the
|
Parameters for parametric magnitude calibration:
|
||||||
parametric magnitude calibration formula.
|
MLc = log10(A) + c3 * log10(r/c5) + c2 * (r + c4) + c1 + c0(station)
|
||||||
|
|
||||||
|
Considered if magnitude.MLc.calibrationType = "parametric".
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="c0" type="double" default="0.0">
|
||||||
<parameter name="c7" type="double" default="0.0">
|
<description>
|
||||||
<description>
|
Station correction. This is the calibration value 'c0'
|
||||||
The calibration value 'c7' applied in the
|
applied in the
|
||||||
parametric magnitude calibration formula.
|
parametric magnitude calibration formula.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="c8" type="double" default="0.0">
|
<parameter name="c1" type="double" default="0.69">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'c8' applied in the
|
The calibration value 'c1' applied in the
|
||||||
parametric magnitude calibration formula.
|
parametric magnitude calibration formula.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="H" type="double" default="40" unit="km">
|
<parameter name="c2" type="double" default="0.00095">
|
||||||
<description>
|
<description>
|
||||||
The calibration value 'H' applied in the
|
The calibration value 'c2' applied in the
|
||||||
parametric magnitude calibration formula for forming
|
magnitude calibration formula
|
||||||
h. Read the documentation.
|
parametric magnitude calibration formula.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
<parameter name="c3" type="double" default="1.11">
|
||||||
|
<description>
|
||||||
|
The calibration value 'c3' applied in the
|
||||||
|
parametric magnitude calibration formula.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="c4" type="double" default="0.0">
|
||||||
|
<description>
|
||||||
|
The calibration value 'c4' applied in the
|
||||||
|
parametric magnitude calibration formula.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="c5" type="double" default="1.0">
|
||||||
|
<description>
|
||||||
|
The calibration value 'c5' applied in the
|
||||||
|
parametric magnitude calibration formula.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
</group>
|
</group>
|
||||||
</extend-struct>
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -16,38 +16,42 @@
|
|||||||
at the Liverpool developer meeting.
|
at the Liverpool developer meeting.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MLh">
|
<group name="amplitudes">
|
||||||
<parameter name="maxavg" type="string" default="max">
|
<group name="MLh">
|
||||||
<description>
|
<parameter name="maxavg" type="string" default="max">
|
||||||
Define combiner operation for both horizontals (min, max, avg).
|
<description>
|
||||||
</description>
|
Define combiner operation for both horizontals (min, max, avg).
|
||||||
</parameter>
|
</description>
|
||||||
<parameter name="ClippingThreshold" type="double">
|
</parameter>
|
||||||
<description>
|
<parameter name="ClippingThreshold" type="double">
|
||||||
MLh clipping level, in raw counts, eg. 80% of 2^23 = 6710886.
|
<description>
|
||||||
</description>
|
MLh clipping level, in raw counts, eg. 80% of 2^23 = 6710886.
|
||||||
</parameter>
|
</description>
|
||||||
</extend-struct>
|
</parameter>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLh">
|
</group>
|
||||||
<parameter name="params" type="string">
|
</group>
|
||||||
<description>
|
<group name="magnitudes">
|
||||||
Defines attenuation parameters for MLh.
|
<group name="MLh">
|
||||||
Format: "UpToKilometers A B; UpToNextKilometers A B;".
|
<parameter name="params" type="string">
|
||||||
Example: "30 nomag; 60 0.018 2.17; 700 0.0038 3.02".
|
<description>
|
||||||
The first parameter set "30 nomag" means that up to 30km
|
Defines attenuation parameters for MLh.
|
||||||
from the sensor the magnitude should not be calculated.
|
Format: "UpToKilometers A B; UpToNextKilometers A B;".
|
||||||
|
Example: "30 nomag; 60 0.018 2.17; 700 0.0038 3.02".
|
||||||
|
The first parameter set "30 nomag" means that up to 30km
|
||||||
|
from the sensor the magnitude should not be calculated.
|
||||||
|
|
||||||
Note: No MLh computation if params is empty.
|
Note: No MLh computation if params is empty.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="maxDepth" type="double" unit="km" default="80" >
|
<parameter name="maxDepth" type="double" unit="km" default="80" >
|
||||||
<description>
|
<description>
|
||||||
Maximum depth allowed to compute the magnitude. Make sure to
|
Maximum depth allowed to compute the magnitude. Make sure to
|
||||||
also update the MLh amplitude bindings accordingly to this
|
also update the MLh amplitude bindings accordingly to this
|
||||||
value. maxDepth should not be greater than 80km.
|
value. maxDepth should not be greater than 80km.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</extend-struct>
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -8,24 +8,26 @@
|
|||||||
</plugin>
|
</plugin>
|
||||||
<binding name="MLr" module="global">
|
<binding name="MLr" module="global">
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLr">
|
<group name="magnitudes">
|
||||||
<description>
|
<group name="MLr">
|
||||||
Parameter for computing MLr magnitudes for GNS/Geonet from MLv amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="params" type="string">
|
|
||||||
<description>
|
<description>
|
||||||
Defines Stations Corrections parameters for MLr (GNS/Geonet Local magnitude).
|
Parameter for computing MLr magnitudes for GNS/Geonet from MLv amplitudes.
|
||||||
Format: "UpToKilometers A ; UpToNextKilometers A ;".
|
|
||||||
Example: "30 nomag; 60 0.018 ; 700 0.0038 ".
|
|
||||||
The first parameter set "30 nomag" means that up to 30km
|
|
||||||
from the sensor the magnitude should not be calculated.
|
|
||||||
A is used as station correction.
|
|
||||||
"nomag" is used to disable station magnitudes.
|
|
||||||
|
|
||||||
Note: No MLr computation if params is empty.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="params" type="string">
|
||||||
</extend-struct>
|
<description>
|
||||||
|
Defines Stations Corrections parameters for MLr (GNS/Geonet Local magnitude).
|
||||||
|
Format: "UpToKilometers A ; UpToNextKilometers A ;".
|
||||||
|
Example: "30 nomag; 60 0.018 ; 700 0.0038 ".
|
||||||
|
The first parameter set "30 nomag" means that up to 30km
|
||||||
|
from the sensor the magnitude should not be calculated.
|
||||||
|
A is used as station correction.
|
||||||
|
"nomag" is used to disable station magnitudes.
|
||||||
|
|
||||||
|
Note: No MLr computation if params is empty.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -25,67 +25,64 @@
|
|||||||
Local (Richter) magnitude measured on the vertical component
|
Local (Richter) magnitude measured on the vertical component
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MLv">
|
<group name="amplitudes">
|
||||||
<description>
|
<group name="MLv">
|
||||||
Parameters for measuring MLv amplitudes. Add more parameters
|
|
||||||
by adding an amplitude type profile 'MLv',
|
|
||||||
</description>
|
|
||||||
<!-- Override defaults -->
|
|
||||||
<parameter name="minSNR" type="double" default="0"/>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="8"/>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="1000"/>
|
|
||||||
<parameter name="signalEnd" type="string" unit="time grammar" default="min(R / 3 + 30, 150)"/>
|
|
||||||
<parameter name="preFilter" type="string" default="">
|
|
||||||
<description>
|
<description>
|
||||||
The filter applied to raw records before applying
|
Parameters for measuring MLv amplitudes. Add more parameters
|
||||||
Wood-Anderson simulation. Default: no pre-filtering.
|
by adding an amplitude type profile 'MLv',
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="preFilter" type="string" default="">
|
||||||
<parameter name="applyWoodAnderson" type="boolean" default="true">
|
<description>
|
||||||
|
The filter applied to raw records before applying
|
||||||
|
Wood-Anderson simulation. Default: no pre-filtering.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="measureType" type="string" default="AbsMax">
|
||||||
|
<description>
|
||||||
|
This parameter allows to set how the amplitude is measured.
|
||||||
|
Either by finding the absolute maximum of the demeaned
|
||||||
|
trace (AbsMax), the difference of maximum and minimum of
|
||||||
|
the signal window (MinMax) or the maximum peak-trough
|
||||||
|
of one cycle (PeakTrough).
|
||||||
|
|
||||||
|
Note that if absMax is already explicitly configured, this
|
||||||
|
parameter has no effect.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<group name="magnitudes">
|
||||||
|
<group name="MLv">
|
||||||
<description>
|
<description>
|
||||||
Applying Wood-Anderson simulation. To achieve displacement
|
Parameters for computing MLv magnitudes from MLv amplitudes.
|
||||||
records without WA simulation, an integration filter can
|
|
||||||
be applied with the pre-filter.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
|
||||||
<parameter name="measureType" type="string" default="AbsMax">
|
<description>
|
||||||
<description>
|
The calibration function log10(A0).
|
||||||
This parameter allows to set how the amplitude is measured.
|
|
||||||
Either by finding the absolute maximum of the demeaned
|
|
||||||
trace (AbsMax), the difference of maximum and minimum of
|
|
||||||
the signal window (MinMax) or the maximum peak-trough
|
|
||||||
of one cycle (PeakTrough).
|
|
||||||
|
|
||||||
Note that if absMax is already explicitly configured, this
|
Format: any list of distance-value pairs separated by
|
||||||
parameter has no effect.
|
comma. Values within pairs are separated by colon.
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
</extend-struct>
|
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLv">
|
|
||||||
<description>
|
|
||||||
Parameters for computing MLv magnitudes from MLv amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="maxDist" type="string" unit="deg" default="8"/>
|
|
||||||
<parameter name="maxDepth" type="string" unit="km" default="1000"/>
|
|
||||||
<parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
|
|
||||||
<description>
|
|
||||||
The calibration function log10(A0).
|
|
||||||
|
|
||||||
Format: any list of distance-value pairs separated by
|
Example: "0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85"
|
||||||
comma. Values within pairs are separated by colon.
|
specifies 4 distance intervals from
|
||||||
|
0...60, 60...100, 100...400 and 400...1000 km distance.
|
||||||
|
Within these intervals log10(A0) is interpolated linearly
|
||||||
|
between -1.3...-2.8, -2.8...-3.0, -3.0...-4.5 and -4.5...-5.8,
|
||||||
|
respectively.
|
||||||
|
|
||||||
Example: "0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85"
|
Note: The first and last distance samples limit the
|
||||||
specifies 4 distance intervals from
|
maximum distance range for computing MLv.
|
||||||
0...60, 60...100, 100...400 and 400...1000 km distance.
|
</description>
|
||||||
Within these intervals log10(A0) is interpolated linearly
|
</parameter>
|
||||||
between -1.3...-2.8, -2.8...-3.0, -3.0...-4.5 and -4.5...-5.8,
|
<parameter name="maxDistanceKm" type="double" unit="km" default="-1.0">
|
||||||
respectively.
|
<description>
|
||||||
|
Maximum epicentral distance for computing MLv.
|
||||||
Note: The first and last distance samples limit the
|
No distance limitation for maxDistanceKm=-1
|
||||||
maximum distance range for computing MLv.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
</group>
|
||||||
</extend-struct>
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
+148
-140
@@ -6,163 +6,171 @@
|
|||||||
Nuttli magnitude for Canada and other Cratonic regions
|
Nuttli magnitude for Canada and other Cratonic regions
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalAmplitudeProfile" match-name="MN">
|
<group name="amplitudes">
|
||||||
<description>
|
<group name="MN">
|
||||||
Amplitude control parameters for MN (Nuttli magnitude).
|
|
||||||
</description>
|
|
||||||
<parameter name="velocityModel" type="string" default="iasp91">
|
|
||||||
<description>
|
<description>
|
||||||
The travel time table set compiled for LocSAT. The tables
|
Amplitude control parameters for MN (Nuttli magnitude).
|
||||||
are located in "share/locsat/tables/[vmodel].*".
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="velocityModel" type="string" default="iasp91">
|
||||||
</extend-struct>
|
<description>
|
||||||
<extend-struct type="GlobalMagnitudeProfile" match-name="MN">
|
The travel time table set compiled for LocSAT. The tables
|
||||||
<description>
|
are located in "share/locsat/tables/[vmodel].*".
|
||||||
Regionalization of MN (Nuttli magnitude).
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
<parameter name="region" type="path" default="@DATADIR@/magnitudes/MN/MN.bna">
|
</group>
|
||||||
|
</group>
|
||||||
|
<group name="magnitudes">
|
||||||
|
<group name="MN">
|
||||||
<description>
|
<description>
|
||||||
The path to the BNA file which defines the valid region
|
Regionalization of MN (Nuttli magnitude).
|
||||||
for the MN magnitude. Note that the entire path from
|
|
||||||
source to receiver must lie entirely within the polygon(s).
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="region" type="path" default="@DATADIR@/magnitudes/MN/MN.bna">
|
||||||
<parameter name="offsetMw" type="double">
|
<description>
|
||||||
<description>
|
The path to the BNA file which defines the valid region
|
||||||
The offset applied to the MN network magnitude to
|
for the MN magnitude. Note that the entire path from
|
||||||
estimate Mw(MN). If not configured then no Mw estimation
|
source to receiver must lie entirely within the polygon(s).
|
||||||
will be applied.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="offsetMw" type="double">
|
||||||
</extend-struct>
|
<description>
|
||||||
|
The offset applied to the MN network magnitude to
|
||||||
|
estimate Mw(MN). If not configured then no Mw estimation
|
||||||
|
will be applied.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<binding name="MN" module="global">
|
<binding name="MN" module="global">
|
||||||
<description>
|
<description>
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MN">
|
<group name="amplitudes">
|
||||||
<description>
|
<group name="MN">
|
||||||
Parameters for measuring AMN amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="rms" type="boolean" default="false">
|
|
||||||
<description>
|
<description>
|
||||||
Whether to use RMS ratio of signal and noise window for
|
Parameters for measuring AMN amplitudes.
|
||||||
SNR computation or the ration of the peak-trough
|
|
||||||
amplitudes of either window.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="rms" type="boolean" default="false">
|
||||||
<parameter name="filter" type="string">
|
<description>
|
||||||
<description>
|
Whether to use RMS ratio of signal and noise window for
|
||||||
The configurable filter such that the V measurement is
|
SNR computation or the ration of the peak-trough
|
||||||
made on a filtered trace. By default, filtering is not
|
amplitudes of either window.
|
||||||
enabled.
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="filter" type="string">
|
||||||
|
<description>
|
||||||
|
The configurable filter such that the V measurement is
|
||||||
|
made on a filtered trace. By default, filtering is not
|
||||||
|
enabled.
|
||||||
|
|
||||||
See https://docs.gempa.de/seiscomp/current/base/filter-grammar.html
|
See https://docs.gempa.de/seiscomp/current/base/filter-grammar.html
|
||||||
for how to specify the filter.
|
for how to specify the filter.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="Vmin" type="double" default="3.2" unit="km/s">
|
<parameter name="Vmin" type="double" default="3.2" unit="km/s">
|
||||||
<description>
|
<description>
|
||||||
The minimum phase velocity used to determine the signal
|
The minimum phase velocity used to determine the signal
|
||||||
window end.
|
window end.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="Vmax" type="double" default="3.6" unit="km/s">
|
<parameter name="Vmax" type="double" default="3.6" unit="km/s">
|
||||||
<description>
|
<description>
|
||||||
The maximum phase velocity used to determine the signal
|
The maximum phase velocity used to determine the signal
|
||||||
window start.
|
window start.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="snrWindowSeconds" type="double" default="10" unit="s">
|
<parameter name="snrWindowSeconds" type="double" default="10" unit="s">
|
||||||
<description>
|
<description>
|
||||||
The length of the SNR window.
|
The length of the SNR window.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="noiseWindowPreSeconds" type="double" default="0" unit="s">
|
<parameter name="noiseWindowPreSeconds" type="double" default="0" unit="s">
|
||||||
<description>
|
<description>
|
||||||
The offset of the noise window. A positive value will move
|
The offset of the noise window. A positive value will move
|
||||||
the computed noise window to the left on the time axis,
|
the computed noise window to the left on the time axis,
|
||||||
a negative value will move it to the right on the time axis.
|
a negative value will move it to the right on the time axis.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="signalStartPriorities" type="list:string" default="Lg,Sg,Sn,S,Vmax">
|
<parameter name="signalStartPriorities" type="list:string" default="Lg,Sg,Sn,S,Vmax">
|
||||||
<description>
|
<description>
|
||||||
The priority list of phase onsets to compute the signal
|
The priority list of phase onsets to compute the signal
|
||||||
start window. Except for Vmin and Vmax, associated phases
|
start window. Except for Vmin and Vmax, associated phases
|
||||||
(arrivals) must be present in the origin for this
|
(arrivals) must be present in the origin for this
|
||||||
particular phase. Picked phases are only considered if
|
particular phase. Picked phases are only considered if
|
||||||
the origin is a manual origin or the pick is a
|
the origin is a manual origin or the pick is a
|
||||||
manual pick. The first value in the list which can be
|
manual pick. The first value in the list which can be
|
||||||
retrieved or computed, is selected.
|
retrieved or computed, is selected.
|
||||||
|
|
||||||
Allowed tokens: Pg, Pn, P, Sg, Sn, S, Lg, Rg, Vmin, Vmax
|
Allowed tokens: Pg, Pn, P, Sg, Sn, S, Lg, Rg, Vmin, Vmax
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="signalEndPriorities" type="list:string" default="Rg,Vmin">
|
<parameter name="signalEndPriorities" type="list:string" default="Rg,Vmin">
|
||||||
<description>
|
<description>
|
||||||
The priority list of phase onsets to compute the signal
|
The priority list of phase onsets to compute the signal
|
||||||
end window. Except for Vmin and Vmax, associated phases
|
end window. Except for Vmin and Vmax, associated phases
|
||||||
(arrivals) must be present in the origin for this
|
(arrivals) must be present in the origin for this
|
||||||
particular phase. Picked phases are only considered if
|
particular phase. Picked phases are only considered if
|
||||||
the origin is a manual origin or the pick is a
|
the origin is a manual origin or the pick is a
|
||||||
manual pick. The first value in the list which can be
|
manual pick. The first value in the list which can be
|
||||||
retrieved or computed, is selected.
|
retrieved or computed, is selected.
|
||||||
|
|
||||||
Allowed tokens: Pg, Pn, P, Sg, Sn, S, Lg, Rg, Vmin, Vmax
|
Allowed tokens: Pg, Pn, P, Sg, Sn, S, Lg, Rg, Vmin, Vmax
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</extend-struct>
|
</group>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MN">
|
</group>
|
||||||
<description>
|
<group name="magnitudes">
|
||||||
Parameters for computing MN magnitudes from AMN amplitudes.
|
<group name="MN">
|
||||||
</description>
|
|
||||||
<parameter name="minSNR" type="double" default="2">
|
|
||||||
<description>
|
<description>
|
||||||
The minimum SNR required for a magnitude to pass
|
Parameters for computing MN magnitudes from AMN amplitudes.
|
||||||
the QC check. The station magnitude will be computed
|
|
||||||
anyway but if the SNR is below this threshold it will
|
|
||||||
be associated with weight zero and will not contribute
|
|
||||||
to the network magnitude.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="minSNR" type="double" default="2">
|
||||||
<parameter name="minPeriod" type="double" default="0.01" unit="s">
|
<description>
|
||||||
<description>
|
The minimum SNR required for a magnitude to pass
|
||||||
The minimum period required for a magnitude to pass
|
the QC check. The station magnitude will be computed
|
||||||
the QC check. The station magnitude will be computed
|
anyway but if the SNR is below this threshold it will
|
||||||
anyway but if the period is below this threshold it will
|
be associated with weight zero and will not contribute
|
||||||
be associated with weight zero and will not contribute
|
to the network magnitude.
|
||||||
to the network magnitude.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="minPeriod" type="double" default="0.01" unit="s">
|
||||||
<parameter name="maxPeriod" type="double" default="1.3" unit="s">
|
<description>
|
||||||
<description>
|
The minimum period required for a magnitude to pass
|
||||||
The maximum period allowed for a magnitude to pass
|
the QC check. The station magnitude will be computed
|
||||||
the QC check. The station magnitude will be computed
|
anyway but if the period is below this threshold it will
|
||||||
anyway but if the period is above this threshold it will
|
be associated with weight zero and will not contribute
|
||||||
be associated with weight zero and will not contribute
|
to the network magnitude.
|
||||||
to the network magnitude.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="maxPeriod" type="double" default="1.3" unit="s">
|
||||||
<parameter name="minDist" type="double" default="0.5" unit="deg">
|
<description>
|
||||||
<description>
|
The maximum period allowed for a magnitude to pass
|
||||||
The minimum distance required for a magnitude to pass
|
the QC check. The station magnitude will be computed
|
||||||
the QC check. The station magnitude will be computed
|
anyway but if the period is above this threshold it will
|
||||||
anyway but if the distance is below this threshold it
|
be associated with weight zero and will not contribute
|
||||||
will be associated with weight zero and will not contribute
|
to the network magnitude.
|
||||||
to the network magnitude.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="minDist" type="double" default="0.5" unit="deg">
|
||||||
<parameter name="maxDist" type="double" default="30" unit="deg">
|
<description>
|
||||||
<description>
|
The minimum distance required for a magnitude to pass
|
||||||
The maximum distance allowed for a magnitude to be
|
the QC check. The station magnitude will be computed
|
||||||
computed. If the distance exceeds this threshold then
|
anyway but if the distance is below this threshold it
|
||||||
the computation will be canceled and no station
|
will be associated with weight zero and will not contribute
|
||||||
magnitude will be available at all.
|
to the network magnitude.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</extend-struct>
|
<parameter name="maxDist" type="double" default="30" unit="deg">
|
||||||
|
<description>
|
||||||
|
The maximum distance allowed for a magnitude to be
|
||||||
|
computed. If the distance exceeds this threshold then
|
||||||
|
the computation will be canceled and no station
|
||||||
|
magnitude will be available at all.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -12,51 +12,55 @@
|
|||||||
at around 20 s period.
|
at around 20 s period.
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<extend-struct type="GlobalBindingsAmplitudeProfile" match-name="Ms_20">
|
<group name="amplitudes">
|
||||||
<description>
|
<group name="Ms_20">
|
||||||
Parameters for computing Ms_20 amplitudes.
|
|
||||||
</description>
|
|
||||||
<parameter name="minVelocity" type="double" unit="km/s" default="3">
|
|
||||||
<description>
|
<description>
|
||||||
Minimum group velocity used to compute signal time window.
|
Parameters for computing Ms_20 amplitudes.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="minVelocity" type="double" unit="km/s" default="3">
|
||||||
<parameter name="maxVelocity" type="double" unit="km/s" default="4">
|
<description>
|
||||||
|
Minimum group velocity used to compute signal time window.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="maxVelocity" type="double" unit="km/s" default="4">
|
||||||
|
<description>
|
||||||
|
Maximum group velocity used to compute signal time window.
|
||||||
|
</description>
|
||||||
|
</parameter>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
<group name="magnitudes">
|
||||||
|
<group name="Ms_20">
|
||||||
<description>
|
<description>
|
||||||
Maximum group velocity used to compute signal time window.
|
Parameters for computing Ms_20 magnitudes from Ms_20 amplitudes.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
<parameter name="lowerPeriod" type="double" unit="s" default="18">
|
||||||
</extend-struct>
|
<description>
|
||||||
<extend-struct type="GlobalBindingsMagnitudeProfile" match-name="Ms_20">
|
Lower period limit of the signal for computing Ms_20.
|
||||||
<description>
|
</description>
|
||||||
Parameters for computing Ms_20 magnitudes from Ms_20 amplitudes.
|
</parameter>
|
||||||
</description>
|
<parameter name="upperPeriod" type="double" unit="s" default="22">
|
||||||
<parameter name="lowerPeriod" type="double" unit="s" default="18">
|
<description>
|
||||||
<description>
|
Upper period limit of the signal for computing Ms_20.
|
||||||
Lower period limit of the signal for computing Ms_20.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="minDist" type="double" unit="deg" default="20">
|
||||||
<parameter name="upperPeriod" type="double" unit="s" default="22">
|
<description>
|
||||||
<description>
|
Minimum epicentral distance for computing Ms_20.
|
||||||
Upper period limit of the signal for computing Ms_20.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="maxDist" type="double" unit="deg" default="160">
|
||||||
<parameter name="minDist" type="double" unit="deg" default="20">
|
<description>
|
||||||
<description>
|
Maximum epicentral distance for computing Ms_20.
|
||||||
Minimum epicentral distance for computing Ms_20.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
<parameter name="maxDepth" type="double" unit="km" default="100">
|
||||||
<parameter name="maxDist" type="double" unit="deg" default="160">
|
<description>
|
||||||
<description>
|
Maximum depth for computing Ms_20.
|
||||||
Maximum epicentral distance for computing Ms_20.
|
</description>
|
||||||
</description>
|
</parameter>
|
||||||
</parameter>
|
</group>
|
||||||
<parameter name="maxDepth" type="double" unit="km" default="100">
|
</group>
|
||||||
<description>
|
|
||||||
Maximum depth for computing Ms_20.
|
|
||||||
</description>
|
|
||||||
</parameter>
|
|
||||||
</extend-struct>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</binding>
|
</binding>
|
||||||
</seiscomp>
|
</seiscomp>
|
||||||
|
|||||||
@@ -3,161 +3,148 @@
|
|||||||
<plugin name="NonLinLoc">
|
<plugin name="NonLinLoc">
|
||||||
<extends>global</extends>
|
<extends>global</extends>
|
||||||
<description>
|
<description>
|
||||||
NonLinLoc locator wrapper plugin for SeisComP.
|
NonLinLoc locator wrapper plugin for SeisComP.
|
||||||
NonLinLoc was written by Anthony Lomax (http://alomax.free.fr/nlloc).
|
NonLinLoc was written by Anthony Lomax (http://alomax.free.fr/nlloc).
|
||||||
</description>
|
</description>
|
||||||
<configuration>
|
<configuration>
|
||||||
<group name="NonLinLoc">
|
<group name="NonLinLoc">
|
||||||
<parameter name="publicID" type="string" default="NLL.@time/%Y%m%d%H%M%S.%f@.@id@">
|
<parameter name="publicID" type="string" default="NLL.@time/%Y%m%d%H%M%S.%f@.@id@">
|
||||||
<description>
|
<description>
|
||||||
PublicID creation pattern for an origin created by NonLinLoc.
|
PublicID creation pattern for an origin created by NonLinLoc.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="outputPath" type="directory" default="/tmp/sc3.nll" options="write">
|
<parameter name="outputPath" type="path" default="/tmp/sc3.nll">
|
||||||
<description>
|
<description>
|
||||||
Defines the output directory for all native NonLinLoc input and output files.
|
Defines the output path for all native NonLinLoc input and output files.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="saveInput" type="boolean" default="true">
|
<parameter name="saveInput" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Save input files *.obs in outputPath for later processing.
|
Save input files *.obs in outputPath for later processing.
|
||||||
Setting to false reduces file i/o and saves disk space.
|
Setting to false reduces file i/o and saves disk space.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="saveIntermediateOutput" type="boolean" default="true">
|
<parameter name="saveIntermediateOutput" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Save output files in outputPath for later processing or
|
Save output files in outputPath for later processing or
|
||||||
for viewing by the Seismicity Viewer.
|
for viewing by the Seismicity Viewer.
|
||||||
Setting to false reduces file i/o and saves disk space.
|
Setting to false reduces file i/o and saves disk space.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="controlFile" type="file" options="read">
|
<parameter name="controlFile" type="path">
|
||||||
<description>
|
<description>
|
||||||
The default NonLinLoc control file to use. Parameters
|
The default NonLinLoc control file to use.
|
||||||
therein are overridden per profile.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="defaultPickError" type="double" default="0.5" unit="s">
|
<parameter name="defaultPickError" type="double" default="0.5" unit="s">
|
||||||
<description>
|
<description>
|
||||||
The default pick error in seconds passed to NonLinLoc if a SeisComP pick
|
The default pick error in seconds passed to NonLinLoc if a SeisComP pick
|
||||||
object does not provide pick time uncertainties.
|
object does not provide pick time uncertainties.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="fixedDepthGridSpacing" type="double" default="0.1" unit="km">
|
<parameter name="fixedDepthGridSpacing" type="double" default="0.1" unit="km">
|
||||||
<description>
|
<description>
|
||||||
Since NLL does not support fixing the depth natively so this
|
Since NLL does not support fixing the depth natively so this
|
||||||
feature is emulated by settings the Z grid very tight around
|
feature is emulated by settings the Z grid very tight around
|
||||||
the depth to be fixed. This value sets the Z grid spacing.
|
the depth to be fixed. This value sets the Z grid spacing.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="allowMissingStations" type="boolean" default="true">
|
<parameter name="allowMissingStations" type="boolean" default="true">
|
||||||
<description>
|
<description>
|
||||||
Picks from stations with missing configuration will be
|
Picks from stations with missing configuration will be
|
||||||
ignored. The origin will be relocated without that pick
|
ignored. The origin will be relocated without that pick
|
||||||
if possible.
|
if possible.
|
||||||
|
|
||||||
If set to false, the plug-in throws
|
If set to false, the plug-in throws
|
||||||
an excepection without locating.
|
an excepection without locating.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<parameter name="profiles" type="list:string">
|
<parameter name="profiles" type="list:string">
|
||||||
<description>
|
<description>
|
||||||
Defines a list of active profiles to be used by the plugin.
|
Defines a list of active profiles to be used by the plugin.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
<group name="profile">
|
<group name="profile">
|
||||||
<struct type="NonLinLoc profile" link = "NonLinLoc.profiles">
|
<struct type="NonLinLoc profile" link = "NonLinLoc.profiles">
|
||||||
<description>
|
<description>
|
||||||
Defines a regional profile that is used if a prelocation falls
|
Defines a regional profile that is used if a prelocation falls
|
||||||
inside the configured region.
|
inside the configured region.
|
||||||
</description>
|
</description>
|
||||||
<parameter name="earthModelID" type="string">
|
<parameter name="earthModelID" type="string">
|
||||||
<description>
|
<description>
|
||||||
Earth model ID stored in the created origin.
|
earthModelID that is stored in the created origin.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="methodID" type="string" default="NonLinLoc">
|
<parameter name="methodID" type="string" default="NonLinLoc">
|
||||||
<description>
|
<description>
|
||||||
Method ID stored in the created origin.
|
methodID that is stored in the created origin.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="tablePath" type="path">
|
<parameter name="tablePath" type="path">
|
||||||
<description>
|
<description>
|
||||||
Path to travel time tables (grids) including the
|
Path to travel time tables (grids).
|
||||||
full path and the names of the table files before
|
|
||||||
the phase name.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
@DATADIR@/nonlinloc/iasp91/iasp91 for P and S tables
|
|
||||||
files
|
|
||||||
seiscomp/share/nonlinloc/iasp91/iasp91.[PS].*
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="stationNameFormat" type="string" default="@STA@">
|
<parameter name="stationNameFormat" type="string" default="@STA@">
|
||||||
<description>
|
<description>
|
||||||
Format of the station name used to select the right travel time table (grid) file
|
Format of the station name used to select the right travel time table (grid) file
|
||||||
for a station.
|
for a station.
|
||||||
By default only the station code is used (e.g. tablePath.P.@STA@.time.*), but
|
By default only the station code is used (e.g. tablePath.P.@STA@.time.*), but
|
||||||
that doesn't allow to distinguish between multiple network codes or location codes
|
that doesn't allow to distinguish between multiple network codes or location codes
|
||||||
that use the same station code.
|
that use the same station code.
|
||||||
To overcome this limitation this parameter could be set in a more general way, for
|
To overcome this limitation this parameter could be set in a more general way, for
|
||||||
example @NET@_@STA@_@LOC@. In this way NonLinLoc will look for
|
example @NET@_@STA@_@LOC@. In this way NonLinLoc will look for
|
||||||
travel time table (grid) files of the form: tablePath.P.@NET@_@STA@_@LOC@.time.*
|
travel time table (grid) files of the form: tablePath.P.@NET@_@STA@_@LOC@.time.*
|
||||||
Where @NET@ @STA@ @LOC@ are just placeholder for the actual codes.
|
Where @NET@ @STA@ @LOC@ are just placeholder for the actual codes
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="controlFile" type="file" options="read">
|
<parameter name="controlFile" type="path">
|
||||||
<description>
|
<description>
|
||||||
Control file of the current profile overriding
|
Control file of the current profile. If not set, the default
|
||||||
parameters of the default control file.
|
control file will be used instead.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="transform" type="string" default="GLOBAL">
|
<parameter name="transform" type="string" default="GLOBAL">
|
||||||
<description>
|
<description>
|
||||||
Transformation type of the configured region.
|
Transformation type of the configured region. Supported are
|
||||||
Supported are SIMPLE and GLOBAL.
|
SIMPLE and GLOBAL.
|
||||||
|
|
||||||
|
Default: GLOBAL is assumed.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="region" type="list:double">
|
<parameter name="region" type="list:double">
|
||||||
<description>
|
<description>
|
||||||
Defines the 4 corner values of the epicentral region for selecting the profile.
|
Defines the 4 corner values of the epicentral region for selecting the profile.
|
||||||
The original epicentre must be within the region.
|
The original epicentre must be within the region.
|
||||||
|
|
||||||
If transform is GLOBAL: min_lat, min_lon, max_lat, max_lon.
|
If transform is GLOBAL: min_lat, min_lon, max_lat, max_lon.
|
||||||
The values define the geographic corner coordinates.
|
The values define the geographic corner coordinates. Unit is degree.
|
||||||
Unit: degree.
|
|
||||||
|
|
||||||
If transform is SIMPLE: min_x, min_y, max_x, max_y.
|
If transform is SIMPLE: xmin, ymin, xmax, ymax.
|
||||||
The values define the region relative to the origin
|
The values define the region relative to the configured origin.
|
||||||
configured with "origin".
|
Unit is km.
|
||||||
Unit: km.
|
|
||||||
|
|
||||||
When this parameter is empty, the generated NonLinLoc
|
|
||||||
configuration is automatically overwritten with
|
|
||||||
TRANS GLOBAL.
|
|
||||||
Otherwise TRANS from "controlFile" applies.
|
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="origin" type="list:double" unit="deg">
|
<parameter name="origin" type="list:double" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
Only used for transformation SIMPLE. Expects 2 values: latitude, longitude.
|
Only used for transformation SIMPLE. Expects 2 values: latitude, longitude.
|
||||||
The value define the geographic origin of the area spanned by region.
|
The value define the geographic origin of the area spanned by region.
|
||||||
|
Unit is degree.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="rotation" type="double" unit="deg">
|
<parameter name="rotation" type="double" unit="deg">
|
||||||
<description>
|
<description>
|
||||||
Only used for transformation SIMPLE. Defines the
|
Only used for transformation SIMPLE. Defines the rotation around the
|
||||||
rotation around the origin of the defined region.
|
origin of the defined region.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
</struct>
|
</struct>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
applies.
|
applies.
|
||||||
</description>
|
</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="confLevel" type="double" default="0.9" range="0.5:1.0">
|
<parameter name="confLevel" type="double" default="0.9" range="0.5,1.0">
|
||||||
<description>
|
<description>
|
||||||
Confidence level, between 0.5 and 1.0, used in
|
Confidence level, between 0.5 and 1.0, used in
|
||||||
computing the hypocenter confidence ellipsoid.
|
computing the hypocenter confidence ellipsoid.
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<seiscomp>
|
<seiscomp>
|
||||||
<module name="invextr" category="Inventory">
|
<module name="invextr" category="Inventory">
|
||||||
<description>
|
<description>Extract channels from inventory.</description>
|
||||||
Extract and clean or remove streams from inventory.
|
|
||||||
</description>
|
|
||||||
|
|
||||||
<configuration>
|
<configuration>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -54,15 +52,11 @@
|
|||||||
</option>
|
</option>
|
||||||
<option flag="" long-flag="chans" argument="arg">
|
<option flag="" long-flag="chans" argument="arg">
|
||||||
<description>
|
<description>
|
||||||
A comma separated list of streams to extract or remove (--rm)
|
A comma separated list of channel IDs to extract
|
||||||
which can contain wildcards. Avoiding confusion with files
|
which can contain wildcards. Default: *.*.*.* meaning
|
||||||
names due to SHELL extension requires to enclose stream codes
|
all streams.
|
||||||
by quotes. Default: *.*.*.* meaning all streams. Unreferenced
|
|
||||||
sensors, data loggers and resonses are removed when extracting.
|
|
||||||
A comma separated list of channel IDs to extract which may
|
|
||||||
contain wildcards. Default: *.*.*.* meaning all streams.
|
|
||||||
|
|
||||||
Example: invextr --chans "GE.*.*.BHZ,GE.MORC.*.*" inventory.xml
|
Example: invextr --chans "GE.*.*.BHZ,GE.MORC.*.*" inv.xml
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
<option flag="" long-flag="nslc" argument="arg">
|
<option flag="" long-flag="nslc" argument="arg">
|
||||||
@@ -74,29 +68,19 @@
|
|||||||
<option flag="r" long-flag="region" argument="arg">
|
<option flag="r" long-flag="region" argument="arg">
|
||||||
<description>
|
<description>
|
||||||
Filter streams by geographic region given as
|
Filter streams by geographic region given as
|
||||||
"South,West,North,East". Region is unused by default.
|
"South, East, North, West". Region is unused by default.
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
<option flag="" long-flag="rm" argument="arg">
|
<option flag="" long-flag="rm" argument="arg">
|
||||||
<description>
|
<description>
|
||||||
Removes all channels given with '--chans' instead of
|
Removes all channels given with '--chans' instead of
|
||||||
extracting them.
|
extracting them.
|
||||||
|
|
||||||
Example: invextr --rm --chans "GE.*" inv.xml
|
Example: invextr --rm --chans "GE.*" inv.xml
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
</group>
|
|
||||||
<group name="Output">
|
|
||||||
<option flag="f" long-flag="formatted">
|
<option flag="f" long-flag="formatted">
|
||||||
<description>
|
<description>Enables formatted XML output.</description>
|
||||||
Enable formatted XML output.
|
|
||||||
</description>
|
|
||||||
</option>
|
|
||||||
<option flag="o" long-flag="output">
|
|
||||||
<description>
|
|
||||||
Name of output file. If not given or '-', output is sent to
|
|
||||||
stdout.
|
|
||||||
</description>
|
|
||||||
</option>
|
</option>
|
||||||
</group>
|
</group>
|
||||||
</command-line>
|
</command-line>
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<seiscomp>
|
<seiscomp>
|
||||||
<module name="msrtsimul" category="Acquisition" standalone="true">
|
<module name="msrtsimul" category="Acquisition">
|
||||||
<description>MiniSEED real time playback and simulation</description>
|
<description>MiniSEED real time playback and simulation</description>
|
||||||
<command-line>
|
<command-line>
|
||||||
<synopsis>
|
<synopsis>
|
||||||
msrtsimul [OPTION] miniSEED-file
|
msrtsimul [OPTION] miniSEED-file
|
||||||
</synopsis>
|
</synopsis>
|
||||||
<group name="Verbosity">
|
<group name="Verbosity">
|
||||||
<option flag="h" long-flag="help" argument="">
|
<option flag="h" long-flag="help" argument="" unit="">
|
||||||
<description>
|
<description>
|
||||||
Display this help message.
|
Display this help message.
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
<option flag="v" long-flag="verbose" argument="">
|
<option flag="v" long-flag="verbose" argument="" unit="">
|
||||||
<description>
|
<description>
|
||||||
Verbose mode.
|
Verbose mode.
|
||||||
</description>
|
</description>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
Minutes to skip at the beginning.
|
Minutes to skip at the beginning.
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
<option flag="m" long-flag="mode" argument="string" unit="" values="realtime,historic">
|
<option flag="m" long-flag="mode" argument="string" unit="">
|
||||||
<description>
|
<description>
|
||||||
Playback mode: choose between 'realtime' and 'historic'
|
Playback mode: choose between 'realtime' and 'historic'
|
||||||
</description>
|
</description>
|
||||||
@@ -59,8 +59,7 @@
|
|||||||
</option>
|
</option>
|
||||||
<option flag="u" long-flag="unlimited" argument="" unit="">
|
<option flag="u" long-flag="unlimited" argument="" unit="">
|
||||||
<description>
|
<description>
|
||||||
Allow miniSEED records which are not 512 bytes. By default
|
Allow miniSEED records which are not 512 bytes.
|
||||||
seedlink supports 512 bytes only.
|
|
||||||
</description>
|
</description>
|
||||||
</option>
|
</option>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user