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