Install SeisComP and scanloc ARM64 nightly packages

This commit is contained in:
Enrico Ellguth
2025-10-29 12:34:04 +00:00
parent 2ff097f9d1
commit 165b829fb7
606 changed files with 24438 additions and 16358 deletions

Binary file not shown.

Binary file not shown.

BIN
bin/ew2sc

Binary file not shown.

View File

@ -40,7 +40,7 @@ import seiscomp.logging
import seiscomp.client import seiscomp.client
import seiscomp.system 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.utils import isRestricted, u_str, b_str
from seiscomp.fdsnws.dataselect import ( from seiscomp.fdsnws.dataselect import (
@ -72,6 +72,14 @@ from seiscomp.fdsnws.http import (
) )
from seiscomp.fdsnws.log import Log from seiscomp.fdsnws.log import Log
try:
from seiscomp.fdsnws.jwt import JWT
_jwtSupported = True
except ImportError:
_jwtSupported = False
def logSC3(entry): def logSC3(entry):
try: try:
@ -411,6 +419,14 @@ class FDSNWS(seiscomp.client.Application):
self._access = None self._access = None
self._checker = None self._checker = None
self._jwtEnabled = False
self._jwtIssuers = ["https://geofon.gfz.de/eas2", "https://login.earthscope.org/"]
self._jwtAudience = ["eas", "fdsn"]
self._jwtAlgorithms = ["RS256"]
self._jwtUpdateMin = 300
self._jwtUpdateMax = 86400
self._jwt = None
self._requestLog = None self._requestLog = None
self.__reloadRequested = False self.__reloadRequested = False
self.__timeInventoryLoaded = None self.__timeInventoryLoaded = None
@ -745,6 +761,42 @@ class FDSNWS(seiscomp.client.Application):
except Exception: except Exception:
pass pass
# enable JWT extension?
try:
self._jwtEnabled = self.configGetBool("jwt.enable")
except Exception:
pass
# JWT issuers
try:
self._jwtIssuers = self.configGetStrings("jwt.issuers")
except Exception:
pass
# JWT audience
try:
self._jwtAudience = self.configGetStrings("jwt.audience")
except Exception:
pass
# JWT algorithms
try:
self._jwtAlgorithms = self.configGetStrings("jwt.algorithms")
except Exception:
pass
# JWT minimum update period
try:
self._jwtUpdateMin = self.configGetStrings("jwt.updateMinSeconds")
except Exception:
pass
# JWT maximum update period
try:
self._jwtUpdateMax = self.configGetStrings("jwt.updateMaxSeconds")
except Exception:
pass
# If the database connection is passed via command line or # If the database connection is passed via command line or
# configuration file then messaging is disabled. Messaging is only used # configuration file then messaging is disabled. Messaging is only used
# to get the configured database connection URI. # to get the configured database connection URI.
@ -878,7 +930,7 @@ Execute on command line with debug output
if self._invCoordinatePrecision is not None: if self._invCoordinatePrecision is not None:
invCoordinatePrecisionStr = ( invCoordinatePrecisionStr = (
f"{self._invCoordinatePrecision} decimal places (≅" f"{self._invCoordinatePrecision} decimal places (≅"
f"{int(KM_OF_DEGREE * 1000 / 10**self._invCoordinatePrecision)}m)" f"{int(WGS84_KM_OF_DEGREE * 1000 / 10**self._invCoordinatePrecision)}m)"
) )
else: else:
invCoordinatePrecisionStr = "unlimited" invCoordinatePrecisionStr = "unlimited"
@ -926,6 +978,13 @@ configuration read:
auth auth
enabled : {self._authEnabled} enabled : {self._authEnabled}
gnupgHome : {self._authGnupgHome} gnupgHome : {self._authGnupgHome}
JWT
enabled : {self._jwtEnabled}
issuers : {self._jwtIssuers}
audience : {self._jwtAudience}
algorithms : {self._jwtAlgorithms}
updateMinSeconds : {self._jwtUpdateMin}
updateMaxSeconds : {self._jwtUpdateMax}
requestLog : {self._requestLogFile}""" requestLog : {self._requestLogFile}"""
) )
@ -937,6 +996,17 @@ configuration read:
seiscomp.logging.error("all services disabled through configuration") seiscomp.logging.error("all services disabled through configuration")
return None return None
if self._jwtEnabled:
if not _jwtSupported:
seiscomp.logging.error(
"JWT is not supported due to missing dependencies"
)
return None
self._jwt = JWT(
self._jwtIssuers, self._jwtAudience, self._jwtAlgorithms, self._jwtUpdateMin, self._jwtUpdateMax
)
# access logger if requested # access logger if requested
if self._accessLogFile: if self._accessLogFile:
self._accessLog = Log(self._accessLogFile) self._accessLog = Log(self._accessLogFile)
@ -1019,6 +1089,13 @@ configuration read:
dataselect.putChild(b"1", dataselect1) dataselect.putChild(b"1", dataselect1)
# query # query
if self._jwtEnabled:
authSession = self._jwt.getAuthSessionWrapper(
FDSNDataSelect, dataSelectInv, self._recordBulkSize, self._access
)
dataselect1.putChild(b"query", authSession)
else:
dataselect1.putChild( dataselect1.putChild(
b"query", FDSNDataSelect(dataSelectInv, self._recordBulkSize) b"query", FDSNDataSelect(dataSelectInv, self._recordBulkSize)
) )
@ -1050,7 +1127,8 @@ configuration read:
dataselect1.putChild(b"builder", fileRes) dataselect1.putChild(b"builder", fileRes)
if self._authEnabled: if self._authEnabled:
from seiscomp.fdsnws.http import AuthResource from seiscomp.fdsnws.authresource import AuthResource
dataselect1.putChild( dataselect1.putChild(
b"auth", b"auth",
AuthResource(DataSelectVersion, self._authGnupgHome, self._userdb), AuthResource(DataSelectVersion, self._authGnupgHome, self._userdb),
@ -1180,6 +1258,12 @@ configuration read:
availability.putChild(b"1", availability1) availability.putChild(b"1", availability1)
# query # query
if self._jwtEnabled:
authSession = self._jwt.getAuthSessionWrapper(
FDSNAvailabilityQuery, self._access
)
availability1.putChild(b"query", authSession)
else:
availability1.putChild(b"query", FDSNAvailabilityQuery()) availability1.putChild(b"query", FDSNAvailabilityQuery())
# queryauth # queryauth
@ -1192,6 +1276,12 @@ configuration read:
availability1.putChild(b"queryauth", authSession) availability1.putChild(b"queryauth", authSession)
# extent # extent
if self._jwtEnabled:
authSession = self._jwt.getAuthSessionWrapper(
FDSNAvailabilityExtent, self._access
)
availability1.putChild(b"extent", authSession)
else:
availability1.putChild(b"extent", FDSNAvailabilityExtent()) availability1.putChild(b"extent", FDSNAvailabilityExtent())
# extentauth # extentauth

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -107,19 +107,19 @@ def rt_simul(f, speed=1.0, jump=0.0, delaydict=None):
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
def usage(): def usage():
print( print(
"""Usage: f"""Usage:
msrtsimul [options] file {os.path.basename(__file__)} [options] file
miniSEED real-time playback and simulation miniSEED real-time playback and simulation
msrtsimul reads sorted (and possibly multiplexed) miniSEED files and writes {os.path.basename(__file__)} reads sorted (and possibly multiplexed) miniSEED files and
individual records in pseudo-real-time. This is useful e.g. for testing and writes individual records in pseudo-real-time. This is useful e.g. for testing and
simulating data acquisition. Output is simulating data acquisition. Output is
$SEISCOMP_ROOT/var/run/seedlink/mseedfifo unless --seedlink or -c is used. $SEISCOMP_ROOT/var/run/seedlink/mseedfifo unless --seedlink or -c is used.
Verbosity: Verbosity:
-h, --help Display this help message -h, --help Display this help message.
-v, --verbose Verbose mode -v, --verbose Verbose mode.
Playback: Playback:
-j, --jump Minutes to skip (float). -j, --jump Minutes to skip (float).
@ -131,14 +131,15 @@ Playback:
-m --mode Choose between 'realtime' and 'historic'. -m --mode Choose between 'realtime' and 'historic'.
-s, --speed Speed factor (float). -s, --speed Speed factor (float).
--test Test mode. --test Test mode.
-u, --unlimited Allow miniSEED records which are not 512 bytes -u, --unlimited Allow miniSEED records which are not 512 bytes. By default
seedlink supports 512 bytes only.
Examples: Examples:
Play back miniSEED waveforms in real time with verbose output Play back miniSEED waveforms in real time with verbose output
msrtsimul -v data.mseed {os.path.basename(__file__)} -v data.mseed
Play back miniSEED waveforms in real time skipping the first 1.5 minutes Play back miniSEED waveforms in real time skipping the first 1.5 minutes
msrtsimul -j 1.5 data.mseed {os.path.basename(__file__)} -j 1.5 data.mseed
""" """
) )
@ -170,7 +171,7 @@ def main():
"help", "help",
"mode=", "mode=",
"seedlink=", "seedlink=",
"unlimited" "unlimited",
], ],
) )
except GetoptError: except GetoptError:
@ -278,7 +279,7 @@ Check if SeedLink is running and configured for real-time playback.
time_diff = None time_diff = None
print( print(
f"Starting msrtsimul at {datetime.datetime.utcnow()}", f"Starting msrtsimul at {datetime.datetime.now(datetime.UTC)}",
file=sys.stderr, file=sys.stderr,
) )
for rec in inp: for rec in inp:
@ -292,7 +293,7 @@ starting on {str(rec.begin_time)}: length != 512 Bytes.",
if time_diff is None: if time_diff is None:
ms = 1000000.0 * (rec.nsamp / rec.fsamp) ms = 1000000.0 * (rec.nsamp / rec.fsamp)
time_diff = ( time_diff = (
datetime.datetime.utcnow() datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
- rec.begin_time - rec.begin_time
- datetime.timedelta(microseconds=ms) - datetime.timedelta(microseconds=ms)
) )

View File

@ -84,7 +84,7 @@ def main():
resp = seiscomp.datamodel.ResponsePAZ_Create() resp = seiscomp.datamodel.ResponsePAZ_Create()
resp.setType("A") resp.setType("A")
resp.setGain(args.gain * header["sensitivities"][0]["factor"] / header["dataScale"]) resp.setGain(args.gain / header["dataScale"])
resp.setGainFrequency(0) resp.setGainFrequency(0)
resp.setNormalizationFactor(1) resp.setNormalizationFactor(1)
resp.setNormalizationFrequency(0) resp.setNormalizationFrequency(0)
@ -93,9 +93,9 @@ def main():
inv.add(resp) inv.add(resp)
sensor = seiscomp.datamodel.Sensor_Create() sensor = seiscomp.datamodel.Sensor_Create()
sensor.setName(header["instrument"]) sensor.setName(header["experiment"])
sensor.setDescription(header["instrument"]) sensor.setDescription(header["measurement"])
sensor.setUnit(header["sensitivities"][0]["unit"]) sensor.setUnit(header["unit"])
sensor.setResponse(resp.publicID()) sensor.setResponse(resp.publicID())
inv.add(sensor) inv.add(sensor)
@ -131,8 +131,8 @@ def main():
cha = seiscomp.datamodel.Stream_Create() cha = seiscomp.datamodel.Stream_Create()
cha.setCode(args.channel) cha.setCode(args.channel)
cha.setStart(net.start()) cha.setStart(net.start())
cha.setGain(args.gain * header["sensitivities"][0]["factor"] / header["dataScale"]) cha.setGain(args.gain / header["dataScale"])
cha.setGainUnit(header["sensitivities"][0]["unit"]) cha.setGainUnit(header["unit"])
cha.setGainFrequency(0) cha.setGainFrequency(0)
cha.setSensor(sensor.publicID()) cha.setSensor(sensor.publicID())
cha.setDatalogger(datalogger.publicID()) cha.setDatalogger(datalogger.publicID())

BIN
bin/ql2sc

Binary file not shown.

Binary file not shown.

View File

@ -13,11 +13,14 @@
# https://www.gnu.org/licenses/agpl-3.0.html. # # https://www.gnu.org/licenses/agpl-3.0.html. #
############################################################################ ############################################################################
import time
import sys import sys
import os import os
import time
import seiscomp.core, seiscomp.client, seiscomp.datamodel, seiscomp.logging import seiscomp.core
import seiscomp.client
import seiscomp.datamodel
import seiscomp.logging
from seiscomp.scbulletin import Bulletin, stationCount from seiscomp.scbulletin import Bulletin, stationCount
@ -40,8 +43,8 @@ class ProcAlert(seiscomp.client.Application):
self.minPickCount = 25 self.minPickCount = 25
self.procAlertScript = "" self.procAlertScript = ""
self.bulletin = None
ep = seiscomp.datamodel.EventParameters() self.cache = None
def createCommandLineDescription(self): def createCommandLineDescription(self):
try: try:
@ -61,7 +64,8 @@ class ProcAlert(seiscomp.client.Application):
self.commandline().addStringOption( self.commandline().addStringOption(
"Publishing", "Publishing",
"procalert-script", "procalert-script",
"Specify the script to publish an event. The ProcAlert file and the 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( self.commandline().addOption(
"Publishing", "test", "Test mode, no messages are sent" "Publishing", "test", "Test mode, no messages are sent"
@ -174,13 +178,14 @@ class ProcAlert(seiscomp.client.Application):
return False return False
def send_procalert(self, txt, evid): def send_procalert(self, txt, evid):
if self.procAlertScript: if not self.procAlertScript:
tmp = f"/tmp/yyy{evid.replace('/', '_').replace(':', '-')}" return
f = file(tmp, "w")
f.write(f"{txt}")
f.close()
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): def coordinates(self, org):
return org.latitude().value(), org.longitude().value(), org.depth().value() 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") seiscomp.logging.error("suspicious region/depth - ignored")
publish = False publish = False
if stationCount(org) < self.minPickCount: if stationCount(org, 0.5) < self.minPickCount:
seiscomp.logging.error("too few picks - ignored") seiscomp.logging.error("too few picks - ignored")
publish = False publish = False

View File

@ -39,6 +39,8 @@ class ObjectAlert(seiscomp.client.Application):
self.addMessagingSubscription("EVENT") self.addMessagingSubscription("EVENT")
self.addMessagingSubscription("LOCATION") self.addMessagingSubscription("LOCATION")
self.addMessagingSubscription("MAGNITUDE") self.addMessagingSubscription("MAGNITUDE")
self.addMessagingSubscription("AMPLITUDE")
self.addMessagingSubscription("PICK")
self.setAutoApplyNotifierEnabled(True) self.setAutoApplyNotifierEnabled(True)
self.setInterpretNotifierEnabled(True) self.setInterpretNotifierEnabled(True)
@ -76,50 +78,57 @@ class ObjectAlert(seiscomp.client.Application):
self.commandline().addOption( self.commandline().addOption(
"Generic", "Generic",
"first-new", "first-new",
"calls an event a new event when it is seen the first time", "Calls an event a new event when it is seen the first time.",
) )
self.commandline().addGroup("Alert") self.commandline().addGroup("Alert")
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "amp-type", "amplitude type to listen to", self._ampType "Alert",
"amp-type",
"Amplitude type to listen to.",
self._ampType,
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"pick-script", "pick-script",
"script to be called when a pick arrived, network-, station code pick " "Script to be called when a pick arrived, network-, station code pick "
"publicID are passed as parameters $1, $2, $3 and $4", "publicID are passed as parameters $1, $2, $3 and $4.",
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"amp-script", "amp-script",
"script to be called when a station amplitude arrived, network-, station " "Script to be called when a station amplitude arrived, network-, station "
"code, amplitude and amplitude publicID are passed as parameters $1, $2, $3 and $4", "code, amplitude and amplitude publicID are passed as parameters $1, $2, "
"$3 and $4.",
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"alert-script", "alert-script",
"script to be called when a preliminary origin arrived, latitude and " "Script to be called when a preliminary origin arrived, latitude and "
"longitude are passed as parameters $1 and $2", "longitude are passed as parameters $1 and $2.",
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"event-script", "event-script",
"script to be called when an event has been declared; the message string, a " "Script to be called when an event has been declared; the message string, "
"flag (1=new event, 0=update event), the EventID, the arrival count and the " "a flag (1=new event, 0=update event), the EventID, the arrival count and "
"magnitude (optional when set) are passed as parameter $1, $2, $3, $4 and $5", "the magnitude (optional when set) are passed as parameter $1, $2, $3, $4 "
"and $5.",
) )
self.commandline().addGroup("Cities") self.commandline().addGroup("Cities")
self.commandline().addStringOption( self.commandline().addStringOption(
"Cities", "Cities",
"max-dist", "max-dist",
"maximum distance for using the distance from a city to the earthquake", "Maximum distance for using the distance from a city to the earthquake.",
str(self._citiesMaxDist),
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Cities", "Cities",
"min-population", "min-population",
"minimum population for a city to become a point of interest", "Minimum population for a city to become a point of interest.",
str(self._citiesMinPopulation),
) )
self.commandline().addGroup("Debug") self.commandline().addGroup("Debug")
self.commandline().addStringOption("Debug", "eventid,E", "specify Event ID") self.commandline().addStringOption("Debug", "eventid,E", "Specify event ID.")
return True return True
def init(self): def init(self):
@ -174,7 +183,7 @@ class ObjectAlert(seiscomp.client.Application):
phaseStreams = self.configGetStrings("constraints.phaseStreams") phaseStreams = self.configGetStrings("constraints.phaseStreams")
for item in phaseStreams: for item in phaseStreams:
rule = item.strip() rule = item.strip()
# 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): if not re.fullmatch(r"[A-Z|a-z|0-9|\?|\*|\||\(|\)|\.]+", rule):
seiscomp.logging.error( seiscomp.logging.error(
f"Wrong stream ID format in `constraints.phaseStreams`: {item}" f"Wrong stream ID format in `constraints.phaseStreams`: {item}"
@ -559,7 +568,8 @@ class ObjectAlert(seiscomp.client.Application):
break break
if not matched: if not matched:
seiscomp.logging.debug( seiscomp.logging.debug(
f" + stream ID {waveformID} does not match constraints.phaseStreams rules" f" + stream ID {waveformID} does not match "
"constraints.phaseStreams rules"
) )
return return
@ -568,7 +578,8 @@ class ObjectAlert(seiscomp.client.Application):
self.notifyPick(obj) self.notifyPick(obj)
else: else:
seiscomp.logging.debug( seiscomp.logging.debug(
f" + phase hint {phaseHint} does not match '{self._phaseHints}'" f" + phase hint {phaseHint} does not match "
f"'{self._phaseHints}'"
) )
else: else:
seiscomp.logging.debug( seiscomp.logging.debug(
@ -739,6 +750,11 @@ class ObjectAlert(seiscomp.client.Application):
seiscomp.logging.debug(f"desc: {dsc}") seiscomp.logging.debug(f"desc: {dsc}")
try:
evType = seiscomp.datamodel.EEventTypeNames.name(evt.type())
except Exception:
evType = "earthquake"
dep = org.depth().value() dep = org.depth().value()
now = seiscomp.core.Time.GMT() now = seiscomp.core.Time.GMT()
otm = org.time().value() otm = org.time().value()
@ -756,14 +772,10 @@ class ObjectAlert(seiscomp.client.Application):
dt = f"{int(dt)} seconds ago" dt = f"{int(dt)} seconds ago"
if preliminary: if preliminary:
message = f"earthquake, XXL, preliminary, {dt}, {dsc}" message = f"{evType}, XXL, preliminary, {dt}, {dsc}"
else: else:
message = "earthquake, %s, %s, %s, depth %d kilometers" % ( message = f"{evType}, {dt}, {dsc}, {mag}, depth {int(dep + 0.5)} kilometers"
dt,
dsc,
mag,
int(dep + 0.5),
)
seiscomp.logging.info(message) seiscomp.logging.info(message)
if not self._eventScript: if not self._eventScript:

BIN
bin/scamp

Binary file not shown.

Binary file not shown.

Binary file not shown.

159
bin/scart
View File

@ -300,10 +300,15 @@ class StreamIterator:
self.file = workdir + file self.file = workdir + file
# print "Starting at file %s" % self.file # print "Starting at file %s" % self.file
while begin < end:
self.record, self.index = ar.findIndex(begin, end, self.file) self.record, self.index = ar.findIndex(begin, end, self.file)
if self.record: if self.record:
self.current = self.record.startTime() self.current = self.record.startTime()
self.currentEnd = self.record.endTime() self.currentEnd = self.record.endTime()
break
begin = self.archive.stepTime(begin)
workdir, file = ar.location(begin, net, sta, loc, cha)
self.file = workdir + file
def __next__(self): def __next__(self):
while True: while True:
@ -458,7 +463,8 @@ class RecordRenamer:
def printRules(self): def printRules(self):
for r in self.renameRules: for r in self.renameRules:
print( 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}", f"to {r.newNet}.{r.newSta}.{r.newLoc}.{r.newCha}",
file=sys.stderr, file=sys.stderr,
) )
@ -805,10 +811,9 @@ Usage:
{os.path.basename(__file__)} -d [options] [archive] {os.path.basename(__file__)} -d [options] [archive]
{os.path.basename(__file__)} --check [options] [archive] {os.path.basename(__file__)} --check [options] [archive]
Import miniSEED waveforms or dump records from an SDS structure, sort them, Import or export miniSEED waveforms into/from an SDS structure. Also check files and
modify the time and replay them. Also check files and archives. archives. Data streams can be selected in three ways using the combinations of options:
For Import and Dump mode the data streams can be selected in three ways -n -c -t or --nslc -t or --list.
using the combinations of options: -n -c -t or --nslc -t or --list
Verbosity: Verbosity:
-h, --help Display this help message. -h, --help Display this help message.
@ -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.LAST.*.*
2007-03-28 15:48;2007-03-28 16:18;GE.PMBI..BH? 2007-03-28 15:48;2007-03-28 16:18;GE.PMBI..BH?
-m, --modify Dump mode: Modify the record time for real time playback -m, --modify Dump mode: Modify the record time for real time playback
when dumping. when dumping. Implicitly sets the speed parameter to 1.
-n arg Import, dump mode: Data stream selection as a comma separated -n arg Import, dump mode: Data stream selection as a comma separated
list "stream1,stream2,streamX" where each stream can be NET or list "stream1,stream2,streamX" where each stream can be NET or
NET.STA or NET.STA.LOC or NET.STA.LOC.CHA. If CHA is omitted, NET.STA or NET.STA.LOC or NET.STA.LOC.CHA. If CHA is omitted,
@ -858,16 +863,18 @@ Processing:
A rule is "[match-stream:]rename-stream" and match-stream A rule is "[match-stream:]rename-stream" and match-stream
is optional. match-stream and rename-stream are in the is optional. match-stream and rename-stream are in the
"NET.STA.LOC.CHA" format. match-stream supports special "NET.STA.LOC.CHA" format. match-stream supports special
charactes "?" "*" "|" "(" ")". rename-stream supports the characters "?" "*" "|" "(" ")". rename-stream supports the
special character "-" that can be used in place of NET, STA, special character "-" that can be used in place of NET, STA,
LOC, CHA codes with the meaning of not renaming those. LOC, CHA codes with the meaning of not renaming those.
"-" can also be used as the last character in CHA code. "-" can also be used as the last character in CHA code.
Multiple rules can be provided as a comma separated list Multiple rules can be provided as a comma separated list
or by providing multiple --rename options. or by providing multiple --rename options.
-s, --sort Dump mode: Sort records. -s, --sort Dump mode: Sort records.
--speed arg Dump mode: Specify the speed to dump the records. A value --speed arg Dump mode: Specify the speed to dump the records as a
of 0 means no delay. Otherwise speed is a multiplier of multiplier of the real time difference between the records.
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 -t, --time-window t1~t2
Import, dump mode: UTC time window filter to be applied to Import, dump mode: UTC time window filter to be applied to
the data streams. Format: "StartTime~EndTime". Example: the data streams. Format: "StartTime~EndTime". Example:
@ -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 {os.path.basename(__file__)} -I file.mseed --with-filecheck $SEISCOMP_ROOT/var/lib/archive
Import miniSEED data from FDSNWS into a SDS archive for specific time range and streams Import miniSEED data from FDSNWS into a SDS archive for specific time range and streams
{os.path.basename(__file__)} -I fdsnws://geofon.gfz-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 -t 2022-03-28T15:48~2022-03-28T16:18 --nslc list.file $SEISCOMP_ROOT/var/lib/archive
Check an archive for files with out-of-order records Check an archive for files with out-of-order records
{os.path.basename(__file__)} --check /archive {os.path.basename(__file__)} --check /archive
Play back miniSEED data from archive at normal speed as in real time and pipe \
them into another application, here scrttv
{os.path.basename(__file__)} -dmv -t 2026-05-01~2026-05-02 /archive | scrttv -I - --offline --no-inventory
""" """
@ -964,7 +976,7 @@ def main():
# default = stdin # default = stdin
recordURL = "file://-" recordURL = "file://-"
speed = 0 speed = None
stdout = False stdout = False
outputFile = None outputFile = None
ignoreRecords = False ignoreRecords = False
@ -1038,7 +1050,23 @@ def main():
else: else:
usage(exitcode=1) 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 importMode = True
if files: if files:
@ -1116,18 +1144,21 @@ def main():
print(f"Stream file: '{nslcFile}'", file=sys.stderr) print(f"Stream file: '{nslcFile}'", file=sys.stderr)
if dump: if dump:
if not sort and not modifyTime: flags = []
print("Mode: DUMP", file=sys.stderr) if speed:
elif sort and not modifyTime: flags.append(f"speed={speed}")
print("Mode: DUMP & SORT", file=sys.stderr) if sort:
elif not sort and modifyTime: flags.append("sort")
print("Mode: DUMP & MODIFY_TIME", file=sys.stderr) if modifyTime:
elif sort and modifyTime: flags.append("modify time")
print("Mode: DUMP & SORT & MODIFY_TIME", file=sys.stderr) flagStr = ""
if flags:
flagStr = f" ({', '.join(flags)})"
print(f"Mode: DUMP{flagStr}", file=sys.stderr)
print(f"Archive: {archiveDirectory}", file=sys.stderr) print(f"Archive: {archiveDirectory}", file=sys.stderr)
if checkSDS: if checkSDS:
print("Mode: Check", file=sys.stderr) print("Mode: CHECK", file=sys.stderr)
if importMode: if importMode:
print("Mode: IMPORT", file=sys.stderr) print("Mode: IMPORT", file=sys.stderr)
@ -1157,7 +1188,7 @@ def main():
else: else:
out = sys.stdout.buffer out = sys.stdout.buffer
# list file witht times takes priority over nslc list # list file with times takes priority over nslc list
if listFile: if listFile:
nslcFile = None nslcFile = None
@ -1174,7 +1205,8 @@ def main():
for stream in streamFilter: for stream in streamFilter:
if stream.tmin >= stream.tmax: if stream.tmin >= stream.tmax:
print( 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}", f"start {stream.tmin} after end {stream.tmax}",
file=sys.stderr, file=sys.stderr,
) )
@ -1228,8 +1260,9 @@ def main():
f"{stream.cha} {stream.tmin} - {stream.tmax}", f"{stream.cha} {stream.tmin} - {stream.tmax}",
file=sys.stderr, file=sys.stderr,
) )
stime = None
realTime = seiscomp.core.Time.GMT() firstRecordEndTime = None
startTime = seiscomp.core.Time.UTC()
if sort: if sort:
records = Sorter(archiveIterator) records = Sorter(archiveIterator)
@ -1245,36 +1278,34 @@ def main():
if ignoreRecords: if ignoreRecords:
continue continue
etime = seiscomp.core.Time(rec.endTime()) etime = rec.endTime()
if stime is None: if not firstRecordEndTime:
stime = etime firstRecordEndTime = seiscomp.core.Time(etime)
if verbose: 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()
now = seiscomp.core.Time.GMT() playTime = startTime + seiscomp.core.TimeSpan(dt / speed)
if speed > 0:
playTime = (realTime + dt).toDouble() / speed
else:
playTime = now.toDouble()
sleepTime = playTime - now.toDouble()
if sleepTime > 0:
time.sleep(sleepTime)
if modifyTime: if modifyTime:
recLength = etime - rec.startTime() recLength = etime - rec.startTime()
rec.setStartTime(seiscomp.core.Time(playTime) - recLength) rec.setStartTime(seiscomp.core.Time(playTime) - recLength)
sleepSeconds = (playTime - seiscomp.core.Time.UTC()).length()
if sleepSeconds > 0:
time.sleep(sleepSeconds)
if verbose: if verbose:
etime = rec.endTime()
print( print(
f"{rec.streamID()} time current: " f"{rec.streamID()} "
f"{seiscomp.core.Time.LocalTime().iso()} start: " f"current time: {seiscomp.core.Time.LocalTime().iso()}"
f"{rec.startTime().iso()} end: {etime.iso()}", f", rec start: {rec.startTime().iso()}"
f", rec end: {rec.startTime().iso()}",
file=sys.stderr, file=sys.stderr,
) )
@ -1529,7 +1560,8 @@ def main():
f = open(archiveDirectory + file, "ab") f = open(archiveDirectory + file, "ab")
except BaseException: except BaseException:
print( print(
f"File {archiveDirectory + file} could not be opened for writing", f"File {archiveDirectory + file} could not be opened "
f"for writing",
file=sys.stderr, file=sys.stderr,
) )
return -1 return -1
@ -1605,8 +1637,8 @@ def main():
print(fileName, file=sys.stderr) print(fileName, file=sys.stderr)
if printStreams and streamDict: if printStreams and streamDict:
minTime = seiscomp.core.Time.GMT() minTime = None
maxTime = str2time("1970-01-01 00:00:00") maxTime = None
totalRecs = 0 totalRecs = 0
totalSamples = 0 totalSamples = 0
totalChans = set() totalChans = set()
@ -1624,8 +1656,12 @@ def main():
file=sys.stderr, file=sys.stderr,
) )
maxTime = max(maxTime, str2time(end)) if minTime:
minTime = min(minTime, str2time(start)) minTime = min(minTime, str2time(start))
maxTime = max(maxTime, str2time(end))
else:
minTime = str2time(start)
maxTime = str2time(end)
totalChans.add(key) totalChans.add(key)
totalNetworks.add(key.split(".")[0]) totalNetworks.add(key.split(".")[0])
@ -1637,28 +1673,17 @@ def main():
"# Summary", "# Summary",
file=sys.stderr, file=sys.stderr,
) )
if minTime and maxTime:
print( print(
f"# time range: {minTime.iso()} - {maxTime.iso()}", f"# time range: {minTime.iso()} - {maxTime.iso()}",
file=sys.stderr, file=sys.stderr,
) )
print( print(
f"# networks: {len(totalNetworks)}", f""""# networks: {len(totalNetworks)}
file=sys.stderr, # stations: {len(totalStations)}
) # streams: {len(totalChans)}
print( # records: {totalRecs}
f"# stations: {len(totalStations)}", # samples: {totalSamples}""",
file=sys.stderr,
)
print(
f"# streams: {len(totalChans)}",
file=sys.stderr,
)
print(
f"# records: {totalRecs}",
file=sys.stderr,
)
print(
f"# samples: {totalSamples}",
file=sys.stderr, file=sys.stderr,
) )

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/sccnv

Binary file not shown.

Binary file not shown.

BIN
bin/scdb

Binary file not shown.

View File

@ -81,7 +81,6 @@ class MySQLDB(QueryInterface):
return tmp_tables return tmp_tables
def deleteObjectQuery(self, *v): def deleteObjectQuery(self, *v):
if v[0]:
q = ( q = (
"delete " "delete "
+ v[0] + v[0]
@ -91,15 +90,11 @@ class MySQLDB(QueryInterface):
+ v[0] + v[0]
+ "._oid=" + "._oid="
+ v[1] + v[1]
+ "._oid and " + "._oid"
) )
else:
q = "delete " + v[1] + " from " + ", ".join(v[1:]) + " where "
for i in range(1, len(v) - 1): for i in range(1, len(v) - 1):
if i > 1: q += " and " + v[i] + "._oid=" + v[i + 1] + "._oid"
q += " and "
q += v[i] + "._oid=" + v[i + 1] + "._oid"
return q return q
@ -211,7 +206,6 @@ class PostgresDB(QueryInterface):
return tmp_tables return tmp_tables
def deleteObjectQuery(self, *v): def deleteObjectQuery(self, *v):
if v[0]:
q = ( q = (
"delete from " "delete from "
+ v[0] + v[0]
@ -221,15 +215,11 @@ class PostgresDB(QueryInterface):
+ v[0] + v[0]
+ "._oid=" + "._oid="
+ v[1] + v[1]
+ "._oid and " + "._oid"
) )
else:
q = "delete from " + v[1] + " using " + ", ".join(v[2:]) + " where "
for i in range(1, len(v) - 1): for i in range(1, len(v) - 1):
if i > 1: q += " and " + v[i] + "._oid=" + v[i + 1] + "._oid"
q += " and "
q += v[i] + "._oid=" + v[i + 1] + "._oid"
return q return q
@ -333,6 +323,8 @@ class DBCleaner(seiscomp.client.Application):
self._invertMode = False self._invertMode = False
self._stripEP = True self._stripEP = True
self._stripQC = True self._stripQC = True
self._keepModes = [] # Array with modes to keep
self._keepStatus = [] # Array with status to keep
self._steps = 0 self._steps = 0
self._currentStep = 0 self._currentStep = 0
@ -368,6 +360,18 @@ class DBCleaner(seiscomp.client.Application):
"Event-IDs to keep in the database. Combining with 'qc-only' " "Event-IDs to keep in the database. Combining with 'qc-only' "
"is invalid.", "is invalid.",
) )
self.commandline().addStringOption(
"Objects",
"keep-event-modes",
"Keep all events where is evaluation mode of the preferred origin is "
"one of the given modes."
)
self.commandline().addStringOption(
"Objects",
"keep-event-status",
"Keep all events where is evaluation status of the preferred origin is "
"one of the given status."
)
self.commandline().addOption( self.commandline().addOption(
"Objects", "Objects",
"qc-only,Q", "qc-only,Q",
@ -543,6 +547,19 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
except RuntimeError: except RuntimeError:
pass pass
try:
status = self.commandline().optionString("keep-event-status")
self._keepStatus = [s.strip() for s in status.split(",")]
print(status, self._keepStatus)
except RuntimeError:
pass
try:
modes = self.commandline().optionString("keep-event-modes")
self._keepModes = [m.strip() for m in modes.split(",")]
except RuntimeError:
pass
try: try:
dateTime = self.commandline().optionString("datetime") dateTime = self.commandline().optionString("datetime")
except RuntimeError: except RuntimeError:
@ -694,6 +711,11 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self.beginMessage("Search objects") self.beginMessage("Search objects")
if not self.runCommand(tmp_object): if not self.runCommand(tmp_object):
return False return False
tmp_object = "create index idx_oid on tmp_object(_oid)"
if not self.runCommand(tmp_object):
return False
self.endMessage(self.globalCount("tmp_object")) self.endMessage(self.globalCount("tmp_object"))
for table in tables: for table in tables:
@ -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") self.beginMessage("Deleting waveform quality parameters")
if not self.runCommand( if not self.runCommand(
self._query.deleteObjectQuery("Object", "WaveformQuality") self._query.deleteObjectQuery("Object", "WaveformQuality")
+ " and "
+ timeRangeSelection(f"WaveformQuality.{self.cnvCol('end')}") + timeRangeSelection(f"WaveformQuality.{self.cnvCol('end')}")
): ):
return False return False
@ -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) + " not in ('%s')" % "','".join(self._keepEvents)
) )
if len(self._keepModes) > 0:
old_events += (
" and Origin."
+ self.cnvCol("evaluationMode")
+ " not in ('%s')" % "','".join(self._keepModes)
)
if len(self._keepStatus) > 0:
old_events += (
" and Origin."
+ self.cnvCol("evaluationStatus")
+ " not in ('%s')" % "','".join(self._keepStatus)
)
self.beginMessage("Find old events") self.beginMessage("Find old events")
if not self.runCommand(old_events): if not self.runCommand(old_events):
return False return False
old_events = "create index idx_oid on old_events(_oid)"
if not self.runCommand(old_events):
return False
self.endMessage(self.globalCount("old_events")) self.endMessage(self.globalCount("old_events"))
# Delete OriginReferences of old events # Delete OriginReferences of old events
@ -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") self.beginMessage("Find unassociated focal mechanisms")
if not self.runCommand(tmp_fm):
return False
tmp_fm = "create index idx_oid on tmp_fm(_oid)"
if not self.runCommand(tmp_fm): if not self.runCommand(tmp_fm):
return False return False
@ -990,6 +1036,10 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self.beginMessage("Find unassociated origins") self.beginMessage("Find unassociated origins")
if not self.runCommand(tmp_origin):
return False
tmp_origin = "create index idx_oid on tmp_origin(_oid)"
if not self.runCommand(tmp_origin): if not self.runCommand(tmp_origin):
return False return False
@ -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 \ update tmp_origin set used=1 \
where (" where ("
+ self.cnvCol("publicID") + self.cnvCol("publicID")
+ " in (select distinct " + " in (select "
+ self.cnvCol("originID") + self.cnvCol("originID")
+ " from OriginReference)) \ + " from OriginReference)) \
or (" 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): if not self.runCommand(tmp_pick):
return False 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): if not self.runCommand(tmp_amp):
return False 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._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
) )
self.runCommand( self.runCommand(
self._query.deleteObjectQuery(None, "Object", *v) + " and used=0" self._query.deleteObjectQuery("Object", *v) + " and used=0"
) )
self.runCommand( self.runCommand(
self._query.deleteObjectQuery(None, "PublicObject", *v) + " and used=0" self._query.deleteObjectQuery("PublicObject", *v) + " and used=0"
) )
def deleteObjects(self, *v): def deleteObjects(self, *v):
self.runCommand(self._query.deleteJournalQuery("PublicObject", *v)) self.runCommand(self._query.deleteJournalQuery("PublicObject", *v))
self.runCommand(self._query.deleteObjectQuery("Object", *v)) self.runCommand(self._query.deleteObjectQuery(*v))
self.runCommand(self._query.deleteObjectQuery("PublicObject", *v)) self.runCommand(self._query.deleteObjectQuery("PublicObject", *v[1:]))
self.runCommand(self._query.deleteObjectQuery(None, *v)) self.runCommand(self._query.deleteObjectQuery("Object", *v[1:]))
def deleteUnusedObjects(self, *v): def deleteUnusedObjects(self, *v):
self.runCommand( self.runCommand(
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0" self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
) )
self.runCommand(self._query.deleteObjectQuery("Object", *v) + " and used=0") self.runCommand(self._query.deleteObjectQuery(*v) + " and used=0")
self.runCommand( 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): def delete(self, message, func, *v):
self.beginMessage(message) self.beginMessage(message)

Binary file not shown.

BIN
bin/scesv

Binary file not shown.

Binary file not shown.

View File

@ -53,7 +53,7 @@ def readXML(self):
if self._eventType: if self._eventType:
try: try:
eventType = seiscomp.datamodel.EEventTypeNames_name(evt.type()) eventType = seiscomp.datamodel.EEventTypeNames.name(evt.type())
if eventType != self._eventType: if eventType != self._eventType:
continue continue
except ValueError: except ValueError:
@ -108,10 +108,16 @@ class EventList(seiscomp.client.Application):
) )
self.commandline().addGroup("Events") self.commandline().addGroup("Events")
self.commandline().addStringOption( 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( 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( self.commandline().addStringOption(
"Events", "Events",
@ -266,7 +272,7 @@ List event IDs available in a given time range and print to stdout."""
f"""Examples: f"""Examples:
Print all event IDs from year 2022 and thereafter Print all event IDs from year 2022 and thereafter
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \ {os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \
--begin "2022-01-01 00:00:00" --begin 2022-01-01T00:00:00
Print all event IDs with event type 'quarry blast' Print all event IDs with event type 'quarry blast'
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp --event-type 'quarry blast' {os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp --event-type 'quarry blast'
@ -303,7 +309,7 @@ Print IDs of all events in XML file
if self._eventType: if self._eventType:
try: try:
eventType = seiscomp.datamodel.EEventTypeNames_name(evt.type()) eventType = seiscomp.datamodel.EEventTypeNames.name(evt.type())
if eventType != self._eventType: if eventType != self._eventType:
continue continue
except ValueError: except ValueError:

View File

@ -295,7 +295,7 @@ class EventStreams(client.Application):
"""Usage: """Usage:
scevtstreams [options] 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) 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: Get the time windows for an event in the database:
scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp
Create lists compatible with fdsnws: Get the time windows for all picks given in an XML file without origins and events:
scevtstreams -E gfz2012abcd -i event.xml -m 120,500 --fdsnws scevtstreams -i picks.xml -m 120,500
""" """
) )
@ -314,10 +314,14 @@ Create lists compatible with fdsnws:
resolveWildcards = self.commandline().hasOption("resolve-wildcards") resolveWildcards = self.commandline().hasOption("resolve-wildcards")
picks = [] picks = []
# read picks from input file # read picks from input file
if self.inputFile: if self.inputFile:
try:
picks = self.readXML() picks = self.readXML()
except IOError as e:
print(f"Error: {e}", file=sys.stderr)
return False
if not picks: if not picks:
raise ValueError("Could not find picks in input file") raise ValueError("Could not find picks in input file")
@ -327,6 +331,7 @@ Create lists compatible with fdsnws:
pick = datamodel.Pick.Cast(obj) pick = datamodel.Pick.Cast(obj)
if pick is None: if pick is None:
continue continue
picks.append(pick) picks.append(pick)
if not picks: if not picks:
@ -502,11 +507,18 @@ Create lists compatible with fdsnws:
ep = datamodel.EventParameters.Cast(obj) ep = datamodel.EventParameters.Cast(obj)
if ep is None: 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 # we require at least one origin which references to picks via arrivals
if ep.originCount() == 0: if ep.originCount() == 0 and ep.pickCount() == 0:
raise ValueError("no origin found in input file") raise ValueError("No origin found in input file")
originIDs = [] originIDs = []
@ -524,7 +536,7 @@ Create lists compatible with fdsnws:
# use first event/origin if no id was specified # use first event/origin if no id was specified
else: else:
# no event, use first available origin # no event, use first available origin
if ep.eventCount() == 0: if ep.eventCount() == 0 and ep.originCount() > 0:
if ep.originCount() > 1: if ep.originCount() > 1:
print( print(
"WARNING: Input file contains no event but more than " "WARNING: Input file contains no event but more than "
@ -534,7 +546,7 @@ Create lists compatible with fdsnws:
originIDs.append(ep.origin(0).publicID()) originIDs.append(ep.origin(0).publicID())
# use origin references of first available event # use origin references of first available event
else: elif ep.eventCount() > 0 and ep.originCount() > 0:
if ep.eventCount() > 1: if ep.eventCount() > 1:
print( print(
"WARNING: Input file contains more than 1 event. " "WARNING: Input file contains more than 1 event. "
@ -546,10 +558,18 @@ Create lists compatible with fdsnws:
ev.originReference(i).originID() ev.originReference(i).originID()
for i in range(ev.originReferenceCount()) for i in range(ev.originReferenceCount())
] ]
else:
print("Found no origins, trying to continue with picks only.")
if originIDs:
print(
f"Considering all arrivals from {len(originIDs)} origin(s).",
file=sys.stderr,
)
# collect pickIDs
pickIDs = set() pickIDs = set()
for oID in originIDs: for oID in originIDs:
# collect pickIDs from origins
o = datamodel.Origin.Find(oID) o = datamodel.Origin.Find(oID)
if o is None: if o is None:
continue continue
@ -557,6 +577,11 @@ Create lists compatible with fdsnws:
for i in range(o.arrivalCount()): for i in range(o.arrivalCount()):
pickIDs.add(o.arrival(i).pickID()) pickIDs.add(o.arrival(i).pickID())
if len(pickIDs) == 0:
# try reading picks only
for i in range(ep.pickCount()):
pickIDs.add(ep.pick(i).publicID())
# lookup picks # lookup picks
picks = [] picks = []
for pickID in pickIDs: for pickID in pickIDs:
@ -564,6 +589,9 @@ Create lists compatible with fdsnws:
if pick: if pick:
picks.append(pick) picks.append(pick)
if len(pickIDs) == 0:
print("Found no picks.", file=sys.stderr)
return picks return picks

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/scinv

Binary file not shown.

BIN
bin/scm

Binary file not shown.

BIN
bin/scmag

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/scmm

Binary file not shown.

144
bin/scmsdemux Executable file
View 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/scmv

Binary file not shown.

BIN
bin/scmvx Executable file

Binary file not shown.

BIN
bin/scolv

Binary file not shown.

Binary file not shown.

View File

@ -89,12 +89,14 @@ class OriginList(seiscomp.client.Application):
self.commandline().addStringOption( self.commandline().addStringOption(
"Origins", "Origins",
"begin", "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( self.commandline().addStringOption(
"Origins", "Origins",
"end", "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( self.commandline().addStringOption(
"Origins", "author", "The author of the origins." "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: f"""Examples:
Print all origin IDs from year 2022 and thereafter Print all origin IDs from year 2022 and thereafter
{os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \ {os.path.basename(__file__)} -d mysql://sysop:sysop@localhost/seiscomp \
--begin "2022-01-01 00:00:00" --begin 2022-01-01T00:00:00
Print IDs of all events in XML file Print IDs of all events in XML file
{os.path.basename(__file__)} -i origins.xml {os.path.basename(__file__)} -i origins.xml

Binary file not shown.

View File

@ -13,19 +13,25 @@
# https://www.gnu.org/licenses/agpl-3.0.html. # # https://www.gnu.org/licenses/agpl-3.0.html. #
############################################################################ ############################################################################
import time, sys, os, traceback import os
import seiscomp.core, seiscomp.client, seiscomp.datamodel import sys
import seiscomp.logging, seiscomp.system import traceback
import seiscomp.core
import seiscomp.client
import seiscomp.datamodel
import seiscomp.logging
import seiscomp.system
def createDirectory(dir): def createDirectory(directory):
if os.access(dir, os.W_OK): if os.access(directory, os.W_OK):
return True return True
try: try:
os.makedirs(dir) os.makedirs(directory)
return True return True
except: except OSError:
return False return False
@ -46,7 +52,7 @@ def timeSpanToString(ts):
if neg: if neg:
return "-%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs) return "-%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs)
else:
return "%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs) return "%.2d:%.2d:%.2d:%.2d.%06d" % (days, hours, mins, secs, usecs)
@ -135,8 +141,6 @@ class ProcLatency(seiscomp.client.Application):
def logObject(self, parentID, obj, update): def logObject(self, parentID, obj, update):
now = seiscomp.core.Time.GMT() now = seiscomp.core.Time.GMT()
time = None
pick = seiscomp.datamodel.Pick.Cast(obj) pick = seiscomp.datamodel.Pick.Cast(obj)
if pick: if pick:
phase = "" phase = ""
@ -199,7 +203,7 @@ class ProcLatency(seiscomp.client.Application):
pass pass
try: try:
status = seiscomp.datamodel.EOriginStatusNames.name(org.status()) status = seiscomp.datamodel.EEvaluationStatusNames.name(org.status())
except: except:
pass pass
@ -286,7 +290,7 @@ class ProcLatency(seiscomp.client.Application):
sys.stdout.write(f"{timeToString(received)};{logEntry}\n") sys.stdout.write(f"{timeToString(received)};{logEntry}\n")
if nowDirectory != self._nowDirectory: if nowDirectory != self._nowDirectory:
if createDirectory(nowDirectory) == False: if not createDirectory(nowDirectory):
seiscomp.logging.error(f"Unable to create directory {nowDirectory}") seiscomp.logging.error(f"Unable to create directory {nowDirectory}")
return False return False
@ -298,7 +302,7 @@ class ProcLatency(seiscomp.client.Application):
) )
if triggeredDirectory != self._triggeredDirectory: if triggeredDirectory != self._triggeredDirectory:
if createDirectory(triggeredDirectory) == False: if not createDirectory(triggeredDirectory):
seiscomp.logging.error( seiscomp.logging.error(
f"Unable to create directory {triggeredDirectory}" f"Unable to create directory {triggeredDirectory}"
) )
@ -321,7 +325,7 @@ class ProcLatency(seiscomp.client.Application):
# logEntry = timeToString(received) # logEntry = timeToString(received)
logEntry = "" logEntry = ""
if not triggered is None: if triggered is not None:
aTriggered = triggered.get() aTriggered = triggered.get()
triggeredDirectory = ( triggeredDirectory = (
self._directory + "/".join(["%.2d" % i for i in aTriggered[1:4]]) + "/" self._directory + "/".join(["%.2d" % i for i in aTriggered[1:4]]) + "/"
@ -341,7 +345,7 @@ class ProcLatency(seiscomp.client.Application):
sys.stdout.write(f"{timeToString(received)};{logEntry}\n") sys.stdout.write(f"{timeToString(received)};{logEntry}\n")
if nowDirectory != self._nowDirectory: if nowDirectory != self._nowDirectory:
if createDirectory(nowDirectory) == False: if not createDirectory(nowDirectory):
seiscomp.logging.error(f"Unable to create directory {nowDirectory}") seiscomp.logging.error(f"Unable to create directory {nowDirectory}")
return False return False
@ -353,7 +357,7 @@ class ProcLatency(seiscomp.client.Application):
if triggeredDirectory: if triggeredDirectory:
if triggeredDirectory != self._triggeredDirectory: if triggeredDirectory != self._triggeredDirectory:
if createDirectory(triggeredDirectory) == False: if not createDirectory(triggeredDirectory):
seiscomp.logging.error( seiscomp.logging.error(
f"Unable to create directory {triggeredDirectory}" f"Unable to create directory {triggeredDirectory}"
) )
@ -369,11 +373,8 @@ class ProcLatency(seiscomp.client.Application):
return True return True
def writeLog(self, file, text): def writeLog(self, file, text):
of = open(file, "a") with open(file, "a", encoding="utf8") as of:
if of: of.print(text, file=of)
of.write(text)
of.write("\n")
of.close()
app = ProcLatency(len(sys.argv), sys.argv) app = ProcLatency(len(sys.argv), sys.argv)

BIN
bin/scqc

Binary file not shown.

BIN
bin/scqcv

Binary file not shown.

Binary file not shown.

View File

@ -105,10 +105,14 @@ class WfqQuery(seiscomp.client.Application):
self.commandline().addGroup("Query") self.commandline().addGroup("Query")
self.commandline().addStringOption( 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( 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( self.commandline().addStringOption(
"Query", "Query",
@ -116,7 +120,7 @@ class WfqQuery(seiscomp.client.Application):
"Waveform stream ID to search for QC parameters: net.sta.loc.cha -" "Waveform stream ID to search for QC parameters: net.sta.loc.cha -"
" [networkCode].[stationCode].[sensorLocationCode].[channelCode]. " " [networkCode].[stationCode].[sensorLocationCode].[channelCode]. "
"Provide a single ID or a comma-separated list. Overrides " "Provide a single ID or a comma-separated list. Overrides "
"--streams-from-inventory", "--streams-from-inventory.",
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Query", "Query",
@ -151,8 +155,8 @@ Query a database for waveform quality control (QC) parameters.""",
print( print(
f"""Examples: f"""Examples:
Query rms and delay values for streams 'AU.AS18..SHZ' and 'AU.AS19..SHZ' from \ Query rms and delay values for streams 'AU.AS18..SHZ' and 'AU.AS19..SHZ' from \
'2021-11-20 00:00:00' until current 2021-11-20 00:00:00 until current
{os.path.basename(__file__)} -d localhost -b '2021-11-20 00:00:00' -p rms,delay \ {os.path.basename(__file__)} -d localhost -b 2021-11-20T00:00:00 -p rms,delay \
-i AU.AS18..SHZ,AU.AS19..SHZ""", -i AU.AS18..SHZ,AU.AS19..SHZ""",
file=sys.stderr, file=sys.stderr,
) )

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -69,8 +69,8 @@ class SendOrigin(seiscomp.client.Application):
"Parameters", "coord", "Latitude,longitude,depth of origin" "Parameters", "coord", "Latitude,longitude,depth of origin"
) )
self.commandline().addStringOption("Parameters", "time", "time of origin") self.commandline().addStringOption("Parameters", "time", "time of origin")
except: except Exception:
seiscomp.logging.warning(f"caught unexpected error {sys.exc_info()}") seiscomp.logging.warning(f"Caught unexpected error {sys.exc_info()}")
def printUsage(self): def printUsage(self):
print( print(
@ -85,7 +85,7 @@ Create an artificial origin and send to the messaging"""
print( print(
"""Examples: """Examples:
Send an artificial origin with hypocenter parameters to the messaging Send an artificial origin with hypocenter parameters to the messaging
scsendorigin --time "2022-05-01 10:00:00" --coord 52,12,10 scsendorigin --time 2022-05-01T10:00:00 --coord 52,12,10
""" """
) )

Binary file not shown.

BIN
bin/scsmdump Executable file

Binary file not shown.

View File

@ -359,9 +359,7 @@ Create an output XML file every 60 seconds and execute a custom script to proces
try: try:
f = open(self._outputFile, "w") f = open(self._outputFile, "w")
except: except:
seiscomp.logging.error( seiscomp.logging.error(f"Unable to create output file: {self._outputFile}")
f"Unable to create output file: {self._outputFile}"
)
return return
self.toXML(f) self.toXML(f)

View File

@ -62,50 +62,52 @@ class VoiceAlert(client.Application):
self.commandline().addOption( self.commandline().addOption(
"Generic", "Generic",
"first-new", "first-new",
"calls an event a new event when it is " "seen the first time", "Calls an event a new event when it is seen the first time.",
) )
self.commandline().addGroup("Alert") self.commandline().addGroup("Alert")
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"amp-type", "amp-type",
"specify the amplitude type to listen to", "Specify the amplitude type to listen to.",
self._ampType, self._ampType,
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"amp-script", "amp-script",
"specify the script to be called when a " "Specify the script to be called when a "
"stationamplitude arrived, network-, stationcode and amplitude are " "stationamplitude arrived, network-, stationcode and amplitude are "
"passed as parameters $1, $2 and $3", "passed as parameters $1, $2 and $3.",
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"alert-script", "alert-script",
"specify the script to be called when a " "Specify the script to be called when a "
"preliminary origin arrived, latitude and longitude are passed as " "preliminary origin arrived, latitude and longitude are passed as "
"parameters $1 and $2", "parameters $1 and $2.",
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Alert", "Alert",
"event-script", "event-script",
"specify the script to be called when an " "Specify the script to be called when an "
"event has been declared; the message string, a flag (1=new event, " "event has been declared; the message string, a flag (1=new event, "
"0=update event), the EventID, the arrival count and the magnitude " "0=update event), the EventID, the arrival count and the magnitude "
"(optional when set) are passed as parameter $1, $2, $3, $4 and $5", "(optional when set) are passed as parameter $1, $2, $3, $4 and $5.",
) )
self.commandline().addGroup("Cities") self.commandline().addGroup("Cities")
self.commandline().addStringOption( self.commandline().addStringOption(
"Cities", "Cities",
"max-dist", "max-dist",
"maximum distance for using the distance " "from a city to the earthquake", "Maximum distance for using the distance from a city to the earthquake.",
str(self._citiesMaxDist),
) )
self.commandline().addStringOption( self.commandline().addStringOption(
"Cities", "Cities",
"min-population", "min-population",
"minimum population for a city to " "become a point of interest", "Minimum population for a city to become a point of interest.",
str(self._citiesMinPopulation),
) )
self.commandline().addGroup("Debug") self.commandline().addGroup("Debug")
self.commandline().addStringOption("Debug", "eventid,E", "specify Event ID") self.commandline().addStringOption("Debug", "eventid,E", "Specify event ID.")
return True return True
def init(self): def init(self):

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/sczip

Binary file not shown.

View File

@ -722,7 +722,7 @@ def on_status(args, _):
if env.isModuleEnabled(mod.name) or isinstance( if env.isModuleEnabled(mod.name) or isinstance(
mod, seiscomp.kernel.CoreModule mod, seiscomp.kernel.CoreModule
): ):
mod.status(shouldModuleRun(mod.name)) if mod.status(shouldModuleRun(mod.name)) == 0:
found += 1 found += 1
if not useCSV: if not useCSV:
@ -733,7 +733,7 @@ def on_status(args, _):
if len(args) > 0 and args[0] == "started": if len(args) > 0 and args[0] == "started":
for mod in mods: for mod in mods:
if shouldModuleRun(mod.name): if shouldModuleRun(mod.name):
mod.status(shouldModuleRun(mod.name)) if mod.status(shouldModuleRun(mod.name)) == 0:
found += 1 found += 1
if not useCSV: if not useCSV:
@ -743,7 +743,7 @@ def on_status(args, _):
for mod in mods: for mod in mods:
if mod.name in args or len(args) == 0: if mod.name in args or len(args) == 0:
mod.status(shouldModuleRun(mod.name)) if mod.status(shouldModuleRun(mod.name)) == 0:
found += 1 found += 1
if not useCSV: if not useCSV:

View File

@ -86,7 +86,7 @@ class SH2Proc(seiscomp.client.Application):
"""Usage: """Usage:
sh2proc [options] 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) seiscomp.client.Application.printUsage(self)
@ -95,10 +95,10 @@ Convert Seismic Handler event data to SeisComP XML format"""
"""Examples: """Examples:
Convert the Seismic Handler file shm.evt to SCML. Receive the database Convert the Seismic Handler file shm.evt to SCML. Receive the database
connection to read inventory and configuration information from messaging connection to read inventory and configuration information from messaging
sh2proc shm.evt sh2proc shm.evt > event.xml
Read Seismic Handler data from stdin. Provide inventory and configuration in XML Read Seismic Handler data from stdin. Provide inventory and configuration in XML
cat shm.evt | sh2proc --inventory-db=inventory.xml --config-db=config.xml 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.IMPULSIVE,
seiscomp.datamodel.QUESTIONABLE, seiscomp.datamodel.QUESTIONABLE,
]: ]:
if value == seiscomp.datamodel.EPickOnsetNames_name(onset): if value == seiscomp.datamodel.EPickOnsetNames.name(onset):
pick.setOnset(onset) pick.setOnset(onset)
found = True found = True
break break
@ -524,7 +524,7 @@ Read Seismic Handler data from stdin. Provide inventory and configuration in XML
seiscomp.datamodel.AUTOMATIC, seiscomp.datamodel.AUTOMATIC,
seiscomp.datamodel.MANUAL, seiscomp.datamodel.MANUAL,
]: ]:
if value == seiscomp.datamodel.EEvaluationModeNames_name(mode): if value == seiscomp.datamodel.EEvaluationModeNames.name(mode):
pick.setEvaluationMode(mode) pick.setEvaluationMode(mode)
found = True found = True
break break

Binary file not shown.

Binary file not shown.

3673
bin/slmon2 Executable file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,15 +8,97 @@ connection.subscriptions = EVENT
# Number of seconds to fetch missed updates on start up. # Number of seconds to fetch missed updates on start up.
backLog = 1800 backLog = 1800
# Number of public objects to cache.
cacheSize = 5000
# Maximum number of notifiers to batch in one message. If set to 0 no size # Maximum number of notifiers to batch in one message. If set to 0 no size
# limit is enforced. Make sure to not hit the overall message size limited of # limit is enforced. Make sure to not hit the overall message size limited of
# 16MiB which is enforced by the messaging system. # 16MiB which is enforced by the messaging system.
batchSize = 2000 batchSize = 2000
# If event synchronisation is enabled and an incoming origin is not yet # If event synchronisation is enabled and an incoming origin is not yet
# associated with an event on the target machine then this timeout defines # associated with an event on the target machine, then this timeout defines the
# the maximum number of seconds to wait for an association. # maximum number of seconds to wait for an association.
eventAssociationTimeout = 10 eventAssociationTimeout = 10
# Registration of the host profiles defining the connection parameters to the
# QuakeLink hosts.
#hosts = local
# URL of the QuakeLink service, the scheme 'qls' enables SSL.
# Format: [ql[s]://][user:pwd@][host][:port].
# If set to an empty string the application will run without any QuakeLink
# connection attempt.
#host.local.url = ql://localhost:18010
# Enable/disable GZip (GNU zip) compression.
#host.local.gzip = false
# Request native data instead of XML format. Native data export may be disabled
# on some hosts.
#host.local.native = true
# Try to update the event attributes of the target event with the attributes of
# the source event which includes event type and event certainty. It will not
# import events but tries to find the associated event of the input preferred
# origin at the target system and will update the event attributes via
# journaling.
#host.local.syncEventAttributes = true
# Synchronize the preferred origin and preferred magnitude selection if
# different from the imported selection. ql2sc will wait for the event
# association of an imported origin and check if the preferred origin or
# preferred magnitude is different from the imported Quakelink event. If so it
# will send a journal to force selection of the preferred origin and selection
# of the preferred magnitude type. These are the same operations as within
# scolv to fix an origin and a particular magnitude type.
#host.local.syncPreferred = false
# Delays the synchronization of event attributes in seconds if set to a value
# greater than zero.
#host.local.syncEventDelay = 0
# Request server to send keep alive message every 30s to prevent connection
# reset by firewalls on long idle periods. If activated the client will reset
# the connection if no alive message is received within 60s.
#host.local.keepAlive = true
# Server-side SQL like WHERE clause to filter the result set. The actual
# available parameters depend on the QuakeLink server version. Use 'telnet host
# port' followed by 'help select' to connect to a QuakeLink server an request
# available parameters.
# clause := condition[ AND|OR [(]clause[)]] condition :=
# MAG|DEPTH|LAT|LON|PHASES|DIST(lat,lon) op {float} | DIST(lat,lon) IN
# [{float}, {float}] | UPDATED|OTIME op time |
# AGENCY|AUTHOR|STATUS|ESTATUS|EMODE|TYPE|CTYPE|DTYPE|REGION|MAG_T op 'string'
# | MAG|DEPTH|LAT|LON|PHASES|OTIME|UPDATED IS [NOT] NULL FELT|NOT FELT op :=
# =|!=|>|>=|<|<=|eq|gt|ge|lt|ge time := %Y,%m,%d[,%H,%M,%S[,%f]]
#host.local.filter = ""
# Map datamodel class names to messaging groups. For unmapped objects the
# mapping of their parent objects is evaluated recursively. Objects may be
# excluded by mapping them to 'NULL'.
#host.local.routingTable = Pick:IMPORT_GROUP, Amplitude:IMPORT_GROUP, FocalMechanism:EVENT, Origin:EVENT
# Include picks
#host.local.data.picks = true
# Include amplitudes
#host.local.data.amplitudes = true
# Include origin arrivals
#host.local.data.arrivals = true
# Include origin station magnitudes
#host.local.data.staMags = true
# Include moment tensor station contributions and phase settings
#host.local.data.staMts = true
# Include only preferred origin and magnitude information
#host.local.data.preferred = false
# Defines a blacklist of publicID prefixes that are not allowed for processing.
# Separate items by comma.
#processing.blacklist.publicIDs = ""
# Defines a whitelist of publicID prefixes that are allowed for processing.
# Separate items by comma.
#processing.whitelist.publicIDs = ""

View File

@ -1,3 +1,3 @@
# Defines a list of message groups to subscribe to. The default is usually # Defines a list of message groups to subscribe to. The default is usually
# given by the application and does not need to be changed. # given by the application and does not need to be changed.
connection.subscriptions = EVENT, LOCATION, MAGNITUDE connection.subscriptions = EVENT, LOCATION, MAGNITUDE, AMPLITUDE, PICK

View File

@ -264,9 +264,6 @@ range.above = 0, 999
# A color defined by the color definitions below. # A color defined by the color definitions below.
range.above.color = green range.above.color = green
# Possible values: enableStream, disableStream
range.above.action = enableStream
# #
range.below = -99, -11 range.below = -99, -11
@ -277,9 +274,6 @@ range.below.count = 0
# A color defined by the color definitions below. # A color defined by the color definitions below.
range.below.color = grey range.below.color = grey
# Possible values: enableStream, disableStream
range.below.action = disableStream
# #
range.timing = -200, -100 range.timing = -200, -100

View File

@ -18,7 +18,7 @@ resortAutomatically = true
showPicks = true showPicks = true
# Defines the filters to be used when filtering is activated. # Defines the filters to be used when filtering is activated.
filters = "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 # Activates the first filter of the configured filter list after startup. This
# is equivalent to pressing 'f'. # is equivalent to pressing 'f'.

View File

@ -72,10 +72,11 @@
<parameter name="realtimeGap" type="int" unit="s"> <parameter name="realtimeGap" type="int" unit="s">
<description> <description>
Restrict end time of requests to current time - realtimeGap Restrict end time of requests to current time - realtimeGap
seconds. Negative values allowed. Used in fdsnws-dataselect. seconds. Negative values are 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 WARNING: If this value is unset and a real-time RecordStream
is requested. (e.g. slink) is used, requests may block if end times in the
future are requested.
</description> </description>
</parameter> </parameter>
<parameter name="samplesM" type="float"> <parameter name="samplesM" type="float">
@ -103,12 +104,12 @@
</parameter> </parameter>
<parameter name="accessLog" type="string"> <parameter name="accessLog" type="string">
<description> <description>
Path to access log file. If unset no access log is created. Path to access log file. If unset, no access log is created.
</description> </description>
</parameter> </parameter>
<parameter name="requestLog" type="string"> <parameter name="requestLog" type="string">
<description> <description>
Path to request log file. If unset no request log is created. Path to request log file. If unset, no request log is created.
</description> </description>
</parameter> </parameter>
<parameter name="userSalt" type="string"> <parameter name="userSalt" type="string">
@ -121,7 +122,10 @@
List of domain names Cross-Origin Resource Sharing (CORS) List of domain names Cross-Origin Resource Sharing (CORS)
request may originate from. A value of '*' allows any web page request may originate from. A value of '*' allows any web page
to embed your service. An empty value will switch of CORS to embed your service. An empty value will switch of CORS
requests entirely. An example of multiple domains might be: requests entirely.
Example of multiple domains:
'https://test.domain.de, https://production.domain.de'. 'https://test.domain.de, https://production.domain.de'.
</description> </description>
</parameter> </parameter>
@ -154,7 +158,7 @@
If enabled, event comment elements are no longer accessible. If enabled, event comment elements are no longer accessible.
</description> </description>
</parameter> </parameter>
<parameter name="evaluationMode" type="string"> <parameter name="evaluationMode" type="string" values=",automatic,manual">
<description> <description>
If set, the event service will only return events having a If set, the event service will only return events having a
preferred origin with a matching evaluationMode property. preferred origin with a matching evaluationMode property.
@ -168,7 +172,7 @@
<description>List of disabled event types</description> <description>List of disabled event types</description>
</parameter> </parameter>
</group> </group>
<parameter name="eventFormats" type="list:string"> <parameter name="eventFormats" type="list:string" values="csv,qml,qml-rt,sc3ml,text,xml">
<description> <description>
List of enabled event formats. If unspecified, all supported List of enabled event formats. If unspecified, all supported
formats are enabled. formats are enabled.
@ -195,12 +199,12 @@
standard FDSNWS extension served under fdsnws/ext/availability. standard FDSNWS extension served under fdsnws/ext/availability.
</description> </description>
</parameter> </parameter>
<parameter name="stationFilter" type="string"> <parameter name="stationFilter" type="file" options="read">
<description> <description>
Path to station inventory filter file. Path to station inventory filter file.
</description> </description>
</parameter> </parameter>
<parameter name="dataSelectFilter" type="string"> <parameter name="dataSelectFilter" type="file" options="read">
<description> <description>
Path to dataselect inventory filter file. Path to dataselect inventory filter file.
</description> </description>
@ -288,6 +292,38 @@
</description> </description>
</parameter> </parameter>
</group> </group>
<group name="jwt">
<parameter name="enable" type="boolean" default="false">
<description>
Enable JWT extension.
</description>
</parameter>
<parameter name="issuers" type="list:string" default="https://geofon.gfz.de/eas2,https://login.earthscope.org/">
<description>
List of issuer URLs.
</description>
</parameter>
<parameter name="audience" type="list:string" default="eas,fdsn">
<description>
List of valid audience.
</description>
</parameter>
<parameter name="algorithms" type="list:string" default="RS256">
<description>
List of allowed algorithms.
</description>
</parameter>
<parameter name="updateMinSeconds" type="int" default="300">
<description>
Minimum time to wait between requesting updated keys from a key server.
</description>
</parameter>
<parameter name="updateMaxSeconds" type="int" default="86400">
<description>
Maximum time to cache received keys.
</description>
</parameter>
</group>
</configuration> </configuration>
</module> </module>
</seiscomp> </seiscomp>

View File

@ -34,7 +34,7 @@
comma. Add ${plugins} to consider all previously read values. comma. Add ${plugins} to consider all previously read values.
</description> </description>
</parameter> </parameter>
<parameter name="cityXML" type="string"> <parameter name="cityXML" type="file" values="*.xml" options="read">
<description> <description>
Path to the cities XML file. If undefined, the data is read Path to the cities XML file. If undefined, the data is read
from &quot;@CONFIGDIR@/cities.xml&quot; or from &quot;@CONFIGDIR@/cities.xml&quot; or
@ -115,7 +115,7 @@
are written to log files per modules as are written to log files per modules as
&quot;@CONFIGDIR@/log/[module].log&quot;. &quot;@CONFIGDIR@/log/[module].log&quot;.
</description> </description>
<parameter name="level" type="int" default="2" values="1,2,3,4´"> <parameter name="level" type="int" default="2" values="1,2,3,4">
<description> <description>
Set the logging level between 1 and 4 where 1=ERROR, Set the logging level between 1 and 4 where 1=ERROR,
2=WARNING, 3=INFO and 4=DEBUG. 2=WARNING, 3=INFO and 4=DEBUG.
@ -269,14 +269,14 @@
is established. Override these values only if you know what you is established. Override these values only if you know what you
are doing. are doing.
</description> </description>
<parameter name="inventory" type="string"> <parameter name="inventory" type="file" options="read" values="*.xml">
<description> <description>
Load the inventory database from a given XML file if set. Load the inventory database from a given XML file if set.
This overrides the inventory definitions loaded from the This overrides the inventory definitions loaded from the
database backend. database backend.
</description> </description>
</parameter> </parameter>
<parameter name="config" type="string"> <parameter name="config" type="file" options="read" values="*.xml">
<description> <description>
Load the configuration database from a given XML file if set. Load the configuration database from a given XML file if set.
This overrides the configuration definitions loaded from the This overrides the configuration definitions loaded from the
@ -344,7 +344,7 @@
</group> </group>
</group> </group>
<group name="scripts"> <group name="scripts">
<parameter name="crashHandler" type="path"> <parameter name="crashHandler" type="file" options="read">
<description> <description>
Path to crash handler script. Path to crash handler script.
</description> </description>
@ -453,9 +453,17 @@
e.g. &quot;signalBegin&quot;. This can be overridden per e.g. &quot;signalBegin&quot;. This can be overridden per
station in its bindings. station in its bindings.
</description> </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>
<parameter name="model" type="string" default="iasp91"> <parameter name="model" type="string" default="iasp91">
<description>
The name of the travel-time interface (velocity) model
to use.
</description>
</parameter> </parameter>
</group> </group>
<group name="WoodAnderson"> <group name="WoodAnderson">
@ -483,10 +491,25 @@
</parameter> </parameter>
</group> </group>
<struct type="GlobalAmplitudeProfile" title="Amplitude-type profile" aliases="config:amplitudes.aliases"> <struct type="GlobalAmplitudeProfile" title="Amplitude-type profile" aliases="config:amplitudes.aliases">
<parameter name="regionalize" type="boolean" default="true">
<description>
Control if the amplitude calculation should be
regionalized or not. The regions and their configuration
are taken from the corresponding magnitude profiles. If
regionalization is activate, then e.g. modules without
origin information will not be able to compute an
amplitude as the origin is required to determine the
effective settings.
If amplitudes for this particular type shall be computed
regardless of any defined regions, set this parameter to
false.
</description>
</parameter>
<parameter name="considerUnusedArrivals" type="boolean" default="false"> <parameter name="considerUnusedArrivals" type="boolean" default="false">
<description> <description>
If enabled then also stations with unused (disabled) If enabled, then also stations with unused (disabled)
arrivals are considerd for amplitude and implicitly arrivals are considered for amplitude and implicitly
magnitude computations, e.g. by scamp, scmag and scolv. magnitude computations, e.g. by scamp, scmag and scolv.
</description> </description>
</parameter> </parameter>
@ -538,7 +561,7 @@
interpolated but not extrapolated. interpolated but not extrapolated.
</description> </description>
</parameter> </parameter>
<parameter name="regionFile" type="path"> <parameter name="regionFile" type="file" options="read">
<description> <description>
Path to a geofeature file, e.g. in BNA or GeoJSON format, Path to a geofeature file, e.g. in BNA or GeoJSON format,
with one or more polygons defining geographic regions. with one or more polygons defining geographic regions.
@ -565,40 +588,72 @@
Enable the region or not. Enable the region or not.
</description> </description>
</parameter> </parameter>
<parameter name="minDist" type="double" unit="deg"> <parameter name="minDist" type="string" unit="deg">
<description> <description>
The minimum distance required to compute a The minimum distance required to compute a
magnitude. This settings has no effect with e.g. magnitude. This settings has no effect with e.g.
scautopick as there is no information about the scautopick as there is no information about the
source of the event to compute the distance. source of the event to compute the distance.
The default value 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> </description>
</parameter> </parameter>
<parameter name="maxDist" type="double" unit="deg"> <parameter name="maxDist" type="string" unit="deg">
<description> <description>
The maximum distance allowed to compute a magnitude. The maximum distance allowed to compute a magnitude.
This settings has no effect with e.g. scautopick This settings has no effect with e.g. scautopick
as there is no information about the source of as there is no information about the source of
the event to compute the distance. The default the event to compute the distance. The default
value 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> </description>
</parameter> </parameter>
<parameter name="minDepth" type="double" unit="km"> <parameter name="minDepth" type="string" unit="km">
<description> <description>
The minimum depth required to compute a magnitude. The minimum depth required to compute a magnitude.
This settings has no effect with e.g. scautopick This settings has no effect with e.g. scautopick
as there is no information about the source of as there is no information about the source of
the event to retrieve the depth. The default the event to retrieve the depth. The default
value 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> </description>
</parameter> </parameter>
<parameter name="maxDepth" type="double" unit="km"> <parameter name="maxDepth" type="string" unit="km">
<description> <description>
The maximum depth allowed to compute a magnitude. The maximum depth allowed to compute a magnitude.
This settings has no effect with e.g. scautopick This settings has no effect with e.g. scautopick
as there is no information about the source of as there is no information about the source of
the event to retrieve the depth. The default the event to retrieve the depth. The default
value 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> </description>
</parameter> </parameter>
<parameter name="check" type="string" default="source"> <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"> <option flag="I" long-flag="record-url" argument="arg" default="" publicID="records#record-url">
<description> <description>
The recordstream source URL, format: The RecordStream source URL. Format:
[service://]location[#type]. [service://]location[#type].
&quot;service&quot; is the name of the recordstream driver &quot;service&quot; is the name of the RecordStream driver
which can be queried with &quot;--record-driver-list&quot;. which can be queried with &quot;--record-driver-list&quot;.
If &quot;service&quot; is not given, &quot;file://&quot; is If &quot;service&quot; is not given, &quot;file://&quot; is
used. used and simply the name of a miniSEED file can be given.
</description> </description>
</option> </option>
@ -883,7 +938,7 @@
</group> </group>
<group name="Cities" publicID="cities"> <group name="Cities" publicID="cities">
<option long-flag="city-xml" argument="arg" default="" publicID="cities#city-xml"> <option long-flag="city-xml" argument="arg" default="" publicID="cities#city-xml" type="file" options="read" values="*.xml">
<description> <description>
The path to the cities XML file. This overrides the default The path to the cities XML file. This overrides the default
paths. Compare with the global parameter &quot;citiesXML&quot;. paths. Compare with the global parameter &quot;citiesXML&quot;.
@ -936,6 +991,8 @@
Create amplitude type profiles to define the time windows, Create amplitude type profiles to define the time windows,
minimum signal-to-noise ratio, amplitude thresholds and minimum signal-to-noise ratio, amplitude thresholds and
restitution for measuring amplitudes of a certain type. restitution for measuring amplitudes of a certain type.
Standard amplitude types supported in SeisComP: Md,Mjma,ML,MLc,MLh,MLr,MLv,MN,mb,mB,Mwp,Ms_20,Ms(BB).
</description> </description>
<parameter name="saturationThreshold" type="string" default="false" unit="counts; %"> <parameter name="saturationThreshold" type="string" default="false" unit="counts; %">
<description> <description>
@ -977,14 +1034,14 @@
The parameters of this group will be overridden by type The parameters of this group will be overridden by type
specific settings if given (see GlobalAmplitudeProfile). specific settings if given (see GlobalAmplitudeProfile).
</description> </description>
<parameter name="taper" default="5" unit="s"> <parameter name="taper" default="5" unit="s" type="double">
<description> <description>
Define the length of the taper at either side of the Define the length of the taper at either side of the
waveform. The length will be added to the data waveform. The length will be added to the data
request: start - taper and end + taper. request: start - taper and end + taper.
</description> </description>
</parameter> </parameter>
<parameter name="minFreq" default="0.00833333" unit="Hz"> <parameter name="minFreq" default="0.00833333" unit="Hz" type="double">
<description> <description>
The minimum frequency of the considered spectrum. The minimum frequency of the considered spectrum.
@ -995,7 +1052,7 @@
that taper. that taper.
</description> </description>
</parameter> </parameter>
<parameter name="maxFreq" default="0" unit="Hz"> <parameter name="maxFreq" default="0" unit="Hz" type="double">
<description> <description>
The maximum frequency of the considered spectrum. The maximum frequency of the considered spectrum.
@ -1014,9 +1071,17 @@
noise time window specifications, noise time window specifications,
e.g. &quot;signalBegin&quot;. e.g. &quot;signalBegin&quot;.
</description> </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>
<parameter name="model" type="string" default="iasp91"> <parameter name="model" type="string" default="iasp91">
<description>
The name of the travel-time interface (velocity) model
to use.
</description>
</parameter> </parameter>
</group> </group>
<group name="WoodAnderson"> <group name="WoodAnderson">
@ -1043,7 +1108,7 @@
</description> </description>
</parameter> </parameter>
</group> </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> <description>
An amplitude profile configures global parameters for a An amplitude profile configures global parameters for a
particular amplitude type. The available amplitude types particular amplitude type. The available amplitude types
@ -1083,14 +1148,38 @@
will be used instead. will be used instead.
</description> </description>
</parameter> </parameter>
<parameter name="minSNR" type="double"> <parameter name="minSNR" type="double" default="3">
<description> <description>
Define the minimum SNR to be reached to compute the Define the minimum SNR to be reached to compute the
amplitudes. This value is amplitude type specific and amplitudes. This value is amplitude type specific and
has no global default value. has no global default value.
</description> </description>
</parameter> </parameter>
<parameter name="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> <description>
Override the default time (relative to the trigger Override the default time (relative to the trigger
time) of the begin of the noise window used to compute time) of the begin of the noise window used to compute
@ -1099,7 +1188,7 @@
should only be changed if you know what you are doing. should only be changed if you know what you are doing.
</description> </description>
</parameter> </parameter>
<parameter name="noiseEnd" type="double" unit="s"> <parameter name="noiseEnd" type="string" unit="time grammar" default="-5">
<description> <description>
Override the default time (relative to the trigger Override the default time (relative to the trigger
time) of the end of the noise window used to compute time) of the end of the noise window used to compute
@ -1108,7 +1197,7 @@
should only be changed if you know what you are doing. should only be changed if you know what you are doing.
</description> </description>
</parameter> </parameter>
<parameter name="signalBegin" type="double" unit="s"> <parameter name="signalBegin" type="string" unit="time grammar" default="-5">
<description> <description>
Override the default time (relative to the trigger Override the default time (relative to the trigger
time) of the begin of the signal window used to compute time) of the begin of the signal window used to compute
@ -1117,7 +1206,7 @@
changed if you know what you are doing. changed if you know what you are doing.
</description> </description>
</parameter> </parameter>
<parameter name="signalEnd" type="double" unit="s"> <parameter name="signalEnd" type="string" unit="time grammar" default="30">
<description> <description>
Override the default time (relative to the trigger Override the default time (relative to the trigger
time) of the end of the signal window used to compute time) of the end of the signal window used to compute
@ -1126,69 +1215,86 @@
changed if you know what you are doing. changed if you know what you are doing.
</description> </description>
</parameter> </parameter>
<parameter name="minDist" type="double" unit="deg"> <parameter name="minDist" type="string" unit="deg" default="0">
<description> <description>
The minimum distance required to compute an amplitude. The minimum distance required to compute an amplitude.
This settings has no effect with e.g. scautopick as there This settings has no effect with e.g. scautopick as there
is no information about the source of the event to compute is no information about the source of the event to compute
the distance. The default value is implementation the distance. The default value depends on
specific. 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> </description>
</parameter> </parameter>
<parameter name="maxDist" type="double" unit="deg"> <parameter name="maxDist" type="string" unit="deg" default="180">
<description> <description>
The maximum distance allowed to compute an amplitude. The maximum distance allowed to compute an amplitude.
This settings has no effect with e.g. scautopick as there This settings has no effect with e.g. scautopick as there
is no information about the source of the event to compute is no information about the source of the event to compute
the distance. The default value is implementation the distance. The default value depends on
specific. 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> </description>
</parameter> </parameter>
<parameter name="minDepth" type="double" unit="km"> <parameter name="minDepth" type="string" unit="km" default="-1000000">
<description> <description>
The minimum depth required to compute an amplitude. The minimum depth required to compute an amplitude.
This settings has no effect with e.g. scautopick as there This settings has no effect with e.g. scautopick as there
is no information about the source of the event to is no information about the source of the event to
retrieve the depth. The default value is implementation retrieve the depth. The default value depends on
specific. 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> </description>
</parameter> </parameter>
<parameter name="maxDepth" type="double" unit="km"> <parameter name="maxDepth" type="string" unit="km" default="1000000">
<description> <description>
The maximum depth allowed to compute an amplitude. The maximum depth allowed to compute an amplitude.
This settings has no effect with e.g. scautopick as there This settings has no effect with e.g. scautopick as there
is no information about the source of the event to is no information about the source of the event to
retrieve the depth. The default value is implementation retrieve the depth. The default value depends on
specific. amplitude type.
</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.
If amplitudes for this particular type shall be computed Although the default unit is 'km', values can be
regardless of any defined regions, set this parameter to given in any SI distance unit such km, m or cm
false. by simply appending the unit to the value.
Example:
maxDepth = 500km
</description> </description>
</parameter> </parameter>
<group name="resp"> <group name="resp">
<description> <description>
Several parameters if usage of full responses is enabled. Several parameters if usage of full responses is enabled.
</description> </description>
<parameter name="taper" default="5" unit="s"> <parameter name="taper" default="5" unit="s" type="double">
<description> <description>
Define the length of the taper at either side of the Define the length of the taper at either side of the
waveform. The length will be added to the data waveform. The length will be added to the data
request: start - taper and end + taper. request: start - taper and end + taper.
</description> </description>
</parameter> </parameter>
<parameter name="minFreq" default="0.00833333" unit="Hz"> <parameter name="minFreq" default="0.00833333" unit="Hz" type="double">
<description> <description>
After data are converted in to the frequency domain After data are converted in to the frequency domain
that minimum frequency defines the end of the left-side that minimum frequency defines the end of the left-side
@ -1197,7 +1303,7 @@
A value of 0 or lower disables that taper. A value of 0 or lower disables that taper.
</description> </description>
</parameter> </parameter>
<parameter name="maxFreq" default="0" unit="Hz"> <parameter name="maxFreq" default="0" unit="Hz" type="double">
<description> <description>
After data are converted in to the frequency domain After data are converted in to the frequency domain
that maximum frequency defines the start of the right-side that maximum frequency defines the start of the right-side
@ -1211,11 +1317,13 @@
</group> </group>
<group name="magnitudes"> <group name="magnitudes">
<description> <description>
Define magnitude parameters independent of amplitude-type profiles. Define the calibration parameters and constraints for computing
For magnitude correction parameters, e.g., network of station magnitudes from measured amplitudes including static corrections.
corrections, create a magnitude type profile. 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> </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> <description>
A magnitude profile configures global parameters for a A magnitude profile configures global parameters for a
particular magnitude type. The available magnitude types particular magnitude type. The available magnitude types
@ -1243,6 +1351,106 @@
Example: &quot;0.0, regionA: -0.1, regionB: 0.2&quot;. Example: &quot;0.0, regionA: -0.1, regionB: 0.2&quot;.
</description> </description>
</parameter> </parameter>
<parameter name="minDist" type="string" unit="deg">
<description>
The minimum distance in degree required to compute a
magnitude. This settings has no effect with e.g.
scautopick as there is no information about the
source of the event to compute the distance.
The default value depends on magnitude type.
Although the default unit is 'deg', values can be
given in any SI distance unit such km, m or cm
by simply appending the unit to the value.
Example:
minDist = 500km
</description>
</parameter>
<parameter name="maxDist" type="string" unit="deg">
<description>
The maximum distance in degree allowed to compute a magnitude.
This settings has no effect with e.g. scautopick
as there is no information about the source of
the event to compute the distance. The default
value depends on magnitude type.
Although the default unit is 'deg', values can be
given in any SI distance unit such km, m or cm
by simply appending the unit to the value.
</description>
</parameter>
<parameter name="minDepth" type="string" unit="km">
<description>
The minimum depth required to compute a magnitude.
This settings has no effect with e.g. scautopick
as there is no information about the source of
the event to retrieve the depth. The default
value depends on magnitude type.
Although the default unit is 'km', values can be
given in any SI distance unit such km, m or cm
by simply appending the unit to the value.
Example:
minDepth = 500km
</description>
</parameter>
<parameter name="maxDepth" type="string" unit="km">
<description>
The maximum depth allowed to compute a magnitude.
This settings has no effect with e.g. scautopick
as there is no information about the source of
the event to retrieve the depth. The default
value depends on magnitude type.
Although the default unit is 'km', values can be
given in any SI distance unit such km, m or cm
by simply appending the unit to the value.
Example:
maxDepth = 500km
</description>
</parameter>
<parameter name="minSNR" type="double">
<description>
The minimum SNR required for a magnitude to pass
the QC check. The station magnitude will be computed
anyway but if the SNR is below this threshold it will
be associated with weight zero and will not contribute
to the network magnitude. If this value is set then it
overrides the regionalized setting.
</description>
</parameter>
<parameter name="minPeriod" type="double" unit="s">
<description>
The minimum period required for a magnitude to pass
the QC check. The station magnitude will be computed
anyway but if the period is below this threshold it will
be associated with weight zero and will not contribute
to the network magnitude. If this value is set, then it
overrides the regionalized setting.
Caution: If a value is set but the amplitude does not
provide the period, no magnitude is computed.
</description>
</parameter>
<parameter name="maxPeriod" type="double" unit="s">
<description>
The maximum period allowed for a magnitude to pass
the QC check. The station magnitude will be computed
anyway but if the period is above this threshold it will
be associated with weight zero and will not contribute
to the network magnitude. If this value is set, then it
overrides the regionalized setting.
Caution: If a value is set but the amplitude does not
provide the period, no magnitude is computed.
</description>
</parameter>
</struct> </struct>
</group> </group>
<group name="picker"> <group name="picker">

View File

@ -17,6 +17,30 @@
documentation for the required interface name. documentation for the required interface name.
</description> </description>
</parameter> </parameter>
<parameter name="lat" type="double">
<description>
The fixed latitude to use. If not set then this
value is read from the input origin.
</description>
</parameter>
<parameter name="lon" type="double">
<description>
The fixed longitude to use. If not set then this
value is read from the input origin.
</description>
</parameter>
<parameter name="depth" type="double">
<description>
The fixed depth to use. If not set then this
value is read from the input origin.
</description>
</parameter>
<parameter name="time" type="string">
<description>
The fixed time to use. If not set then this
value is read from the input origin.
</description>
</parameter>
<parameter name="usePickUncertainties" type="boolean" default="false"> <parameter name="usePickUncertainties" type="boolean" default="false">
<description> <description>
Whether to use pick time uncertainties rather than a fixed Whether to use pick time uncertainties rather than a fixed

View File

@ -73,9 +73,10 @@
/path/to/maps/%l/%c/%r.png. /path/to/maps/%l/%c/%r.png.
</description> </description>
</parameter> </parameter>
<parameter name="format" type="string" default="Rectangular" values="Rectangular,Mercator"> <parameter name="format" type="string" default="rectangular" values="rectangular,mercator">
<description> <description>
Projection of the map tiles configured in 'map.location'. Projection of the map tiles configured in &quot;map.location&quot;.
Note: Additional projections may be available by plugins. Note: Additional projections may be available by plugins.
</description> </description>
</parameter> </parameter>
@ -114,6 +115,18 @@
layer is &quot;cities&quot;. layer is &quot;cities&quot;.
</description> </description>
</parameter> </parameter>
<group name="mercator">
<description>
Parameters specifically related to maps loaded with
mercator projection.
</description>
<parameter name="discrete" type="boolean" default="false">
<description>
Only support discrete zoom levels. The parameter impacts
the effect of &quot;map.zoom.sensitivity&quot;.
</description>
</parameter>
</group>
<group name="layers"> <group name="layers">
<group name="events"> <group name="events">
<description> <description>
@ -131,7 +144,7 @@
<group name="fep"> <group name="fep">
<description> <description>
Configuration for the fep layer showing the polygons Configuration for the fep layer showing the polygons
of FEP (FLinn-Engdahl-Polygon) files on maps if they of FEP (Flinn-Engdahl-Polygon) files on maps if they
exist in @DATADIR@/fep or @CONFIGDIR@/fep. exist in @DATADIR@/fep or @CONFIGDIR@/fep.
</description> </description>
<parameter name="visible" type="boolean" default="true"> <parameter name="visible" type="boolean" default="true">
@ -144,9 +157,9 @@
<parameter name="topPopulatedPlaces" type="int" default="-1"> <parameter name="topPopulatedPlaces" type="int" default="-1">
<description> <description>
Maximum number of cities to be rendered. If Maximum number of cities to be rendered. If
cityPopulationWeight is less or equal than 0 then &quot;scheme.map.cityPopulationWeight&quot; is less
all cities are rendered ordered by population count, or equal than 0 then all cities are rendered ordered
highest first. by population count, highest first.
To show the N most populated places in the visible To show the N most populated places in the visible
map region, set map region, set
&quot;scheme.map.cityPopulationWeight&quot; to 0 &quot;scheme.map.cityPopulationWeight&quot; to 0
@ -163,16 +176,17 @@
</group> </group>
<group name="scheme"> <group name="scheme">
<description> <description>
This group defines various options for color, pen, brush, font, etc. for SeisComP This group defines various options controlling the look and feel
graphical user interfaces. There are various conventions to of graphical modules. The options include symbols, units,
define colors, fonts and gradients. precision, color, pen, brush, font, etc. There are various
conventions to define colors, fonts and gradients.
Colors are defined in HTML Colors are defined in HTML
convention, e.g. as rgb values, hexadecimal numbers or color convention, e.g. as rgb values, hexadecimal numbers or color
keyword names defined by W3C. If rgb or rgba is used, it must keyword names defined by W3C. If rgb or rgba is used, it must
be quoted because the comma is handled as list separator by be quoted because the comma is handled as list separator by
the configuration. the configuration.
Examples: "rgb(255,0,0)", FF00FF40, green. Examples: "rgb(0,128,0)", 00800040, green.
Gradients are configured as lists of tuples where each tuple Gradients are configured as lists of tuples where each tuple
is colon separated in the form value:color. Value is either is colon separated in the form value:color. Value is either
@ -187,25 +201,57 @@
<description>Show status bar.</description> <description>Show status bar.</description>
</parameter> </parameter>
<parameter name="tabPosition" type="string"> <parameter name="tabPosition" type="string" values="off,north,south,east,west">
<description> <description>
Set position if tab bar. An unset value lets the application The position of tab bar of GUI applications like scolv.
decide where to place the tab bar. This option might not be An unset value lets the application decide where to place
supported by all applications. Valid positions are: off, north, the tab bar. This option might not be supported by all
south, east, west applications. Valid positions are: off, north, south,
east, west.
</description>
</parameter>
<parameter name="distanceHypocentral" type="boolean" default="false">
<description>
Show hypocentral instead of epicentral distances.
</description> </description>
</parameter> </parameter>
<group name="map"> <group name="map">
<parameter name="stationSize" type="int" default="8" unit="px"> <parameter name="stationSize" type="int" default="8" unit="px">
<description> <description>
The station symbol size (e.g. in scmv). The station symbol size, e.g., in scmv.
</description> </description>
</parameter> </parameter>
<parameter name="originSymbolMinSize" type="int" default="9" unit="px"> <parameter name="originSymbolMinSize" type="int" default="9" unit="px">
<description> <description>
The origin symbol minimum size. The formula to compute the The minimum symbol size of origins. The size is scaled
size of the origin symbol is: 4.9*(M-1.2). with magnitude according to
&quot;scheme.mag.originSymbolScaleMag&quot;.
</description>
</parameter>
<parameter name="originSymbolMinMag" type="double" default="1.2" unit="">
<description>
The minimum magnitude to be represented by an origin
symbol. The symbol size of origins with this or lower
magnitude is configured by
&quot;scheme.mag.originSymbolMinSize&quot;. For origins
with larger magnitudes the symbol sizes are scaled according
to &quot;scheme.mag.originSymbolScaleMag&quot;.
Starting from the minimum magnitude legends explaining
magnitudes will show eight symbols in steps of one
magnitude.
</description>
</parameter>
<parameter name="originSymbolScaleMag" type="double" default="4.9" unit="px/magnitude">
<description>
The factor for scaling the symbol size of origins with
some magnitude as:
&quot;scheme.mag.originSymbolScaleMag&quot; * (magnitude - &quot;scheme.mag.originSymbolMinMag&quot;).
The color of origins symbols is controlled by the parameters
&quot;scheme.colors.originSymbol.*&quot;.
</description> </description>
</parameter> </parameter>
<parameter name="vectorLayerAntiAlias" type="boolean" default="false"> <parameter name="vectorLayerAntiAlias" type="boolean" default="false">
@ -251,10 +297,14 @@
option. option.
</description> </description>
</parameter> </parameter>
<parameter name="projection" type="string" default="Rectangular"> <parameter name="projection" type="string" default="Rectangular" values="Rectangular,Mercator">
<description> <description>
SeisComP ships with the rectangular projection built-in. The projection for showing maps. SeisComP ships with
Rectangular and Mercator.
Other projections may be provided through plugins. Other projections may be provided through plugins.
The visible latitude range of maps shown with Mercator
is limited to -85 - +85 deg.
</description> </description>
</parameter> </parameter>
<parameter name="toBGR" type="boolean" default="false"> <parameter name="toBGR" type="boolean" default="false">
@ -267,11 +317,19 @@
Minimum screen distance to plot a polygon or polyline line segment. Minimum screen distance to plot a polygon or polyline line segment.
</description> </description>
</parameter> </parameter>
<parameter name="maxZoom" type="float" default="24" range="1:24">
<description>
Maximum allowed zoom level.
</description>
</parameter>
</group> </group>
<group name="colors"> <group name="colors">
Colors can be configured as hexadecimal numbers or color keyword names <description>
defined by W3C. Colors can be configured as rgb, rgba. hexadecimal numbers or color keyword names
defined by W3C. If a color is unset, SeisComP applications
attempt to read it from your Desktop theme.
</description>
<parameter name="background" type="color"> <parameter name="background" type="color">
<description> <description>
A general application background color. Can be used to give A general application background color. Can be used to give
@ -316,8 +374,11 @@
<parameter name="color" type="color" default="FFA000"> <parameter name="color" type="color" default="FFA000">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="DotLine"> <parameter name="style" type="string" default="DotLine" values="NoPen, SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description> <description>
The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
</description>
</parameter> </parameter>
<parameter name="width" type="double" default="1" unit="px"> <parameter name="width" type="double" default="1" unit="px">
<description>The width of the pen.</description> <description>The width of the pen.</description>
@ -330,8 +391,12 @@
<parameter name="color" type="color" default="FFFFFF"> <parameter name="color" type="color" default="FFFFFF">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="DotLine"> <parameter name="style" type="string" default="DotLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description> <description>
The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine,
DashDotDotLine.
</description>
</parameter> </parameter>
<parameter name="width" type="double" default="1" unit="px"> <parameter name="width" type="double" default="1" unit="px">
<description>The width of the pen.</description> <description>The width of the pen.</description>
@ -376,7 +441,7 @@
<parameter name="color" type="color" default="c0c0c0"> <parameter name="color" type="color" default="c0c0c0">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="SolidLine"> <parameter name="style" type="string" default="SolidLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -393,7 +458,7 @@
<parameter name="color" type="color" default="a0a0a4"> <parameter name="color" type="color" default="a0a0a4">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="SolidLine"> <parameter name="style" type="string" default="SolidLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -410,7 +475,7 @@
<parameter name="color" type="color" default="202020c0"> <parameter name="color" type="color" default="202020c0">
<description>The color of the brush.</description> <description>The color of the brush.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="solid"> <parameter name="style" type="string" default="solid" values="solid,dense1,dense2,dense3,dense4,dense5,dense6,dense7,nobrush,horizontal,vertical,cross,bdiag,fdiag,diagcross">
<description> <description>
The style of the brush. Supported values are, e.g.: The style of the brush. Supported values are, e.g.:
solid, dense1, dense7, horizontal, vertical, solid, dense1, dense7, horizontal, vertical,
@ -425,7 +490,7 @@
<parameter name="color" type="color" default="000000"> <parameter name="color" type="color" default="000000">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="SolidLine"> <parameter name="style" type="string" default="SolidLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -442,7 +507,7 @@
<parameter name="color" type="color" default="a0a0a4"> <parameter name="color" type="color" default="a0a0a4">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="SolidLine"> <parameter name="style" type="string" default="SolidLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -459,7 +524,7 @@
<parameter name="color" type="color" default="ffffffa0"> <parameter name="color" type="color" default="ffffffa0">
<description>The color of the brush.</description> <description>The color of the brush.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="solid"> <parameter name="style" type="string" default="solid" values="solid,dense1,dense2,dense3,dense4,dense5,dense6,dense7,nobrush,horizontal,vertical,cross,bdiag,fdiag,diagcross">
<description> <description>
The style of the brush. Supported values are, e.g.: The style of the brush. Supported values are, e.g.:
solid, dense1, dense7, horizontal, vertical, solid, dense1, dense7, horizontal, vertical,
@ -468,7 +533,9 @@
</parameter> </parameter>
</group> </group>
<parameter name="textSize" type="int" unit="pt" default="9"> <parameter name="textSize" type="int" unit="pt" default="9">
<description>Font point size of the label text.</description> <description>
Font point size of the label text.
</description>
</parameter> </parameter>
</group> </group>
</group> </group>
@ -478,7 +545,9 @@
<description>The general color of records/traces.</description> <description>The general color of records/traces.</description>
</parameter> </parameter>
<parameter name="alternateForeground" type="color" default="808080"> <parameter name="alternateForeground" type="color" default="808080">
<description>A general trace color of the alternate trace (eg scheli).</description> <description>
A general trace color of the alternate trace, e.g., scheli.
</description>
</parameter> </parameter>
<parameter name="background" type="color"> <parameter name="background" type="color">
<description>The general background color of records/traces.</description> <description>The general background color of records/traces.</description>
@ -509,7 +578,7 @@
<parameter name="color" type="color" default=""> <parameter name="color" type="color" default="">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default=""> <parameter name="style" type="string" default="" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -521,12 +590,12 @@
</group> </group>
<group name="brush"> <group name="brush">
<description> <description>
Defines the brush of the enlcosed area. Defines the brush of the enclosed area.
</description> </description>
<parameter name="color" type="color" default=""> <parameter name="color" type="color" default="">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default=""> <parameter name="style" type="string" default="" values="solid,dense1,dense2,dense3,dense4,dense5,dense6,dense7,nobrush,horizontal,vertical,cross,bdiag,fdiag,diagcross">
<description> <description>
The style of the brush. Supported values are, e.g.: The style of the brush. Supported values are, e.g.:
solid, dense1, dense7, horizontal, vertical, solid, dense1, dense7, horizontal, vertical,
@ -544,7 +613,7 @@
<parameter name="color" type="color" default=""> <parameter name="color" type="color" default="">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default=""> <parameter name="style" type="string" default="" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -561,7 +630,7 @@
<parameter name="color" type="color" default=""> <parameter name="color" type="color" default="">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default=""> <parameter name="style" type="string" default="" values="solid,dense1,dense2,dense3,dense4,dense5,dense6,dense7,nobrush,horizontal,vertical,cross,bdiag,fdiag,diagcross">
<description> <description>
The style of the pen. Supported values are, e.g.: The style of the pen. Supported values are, e.g.:
solid, dense1, dense7, horizontal, vertical, solid, dense1, dense7, horizontal, vertical,
@ -579,7 +648,7 @@
<parameter name="color" type="color" default=""> <parameter name="color" type="color" default="">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default=""> <parameter name="style" type="string" default="" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description> <description>
The style of the pen. Supported values are: The style of the pen. Supported values are:
NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine. NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.
@ -596,7 +665,7 @@
<parameter name="color" type="color" default=""> <parameter name="color" type="color" default="">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default=""> <parameter name="style" type="string" default="" values="solid,dense1,dense2,dense3,dense4,dense5,dense6,dense7,nobrush,horizontal,vertical,cross,bdiag,fdiag,diagcross">
<description> <description>
The style of the pen. Supported values are, e.g.: The style of the pen. Supported values are, e.g.:
solid, dense1, dense7, horizontal, vertical, solid, dense1, dense7, horizontal, vertical,
@ -613,7 +682,7 @@
<parameter name="color" type="color" default="C0C0FF"> <parameter name="color" type="color" default="C0C0FF">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="SolidLine"> <parameter name="style" type="string" default="SolidLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description> <description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description>
</parameter> </parameter>
<parameter name="width" type="double" default="0.0" unit="px"> <parameter name="width" type="double" default="0.0" unit="px">
@ -627,7 +696,7 @@
<parameter name="color" type="color" default="00000020"> <parameter name="color" type="color" default="00000020">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="DashLine"> <parameter name="style" type="string" default="DashLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description> <description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description>
</parameter> </parameter>
<parameter name="width" type="double" default="1.0" unit="px"> <parameter name="width" type="double" default="1.0" unit="px">
@ -641,7 +710,7 @@
<parameter name="color" type="color" default="00000000"> <parameter name="color" type="color" default="00000000">
<description>The color of the pen.</description> <description>The color of the pen.</description>
</parameter> </parameter>
<parameter name="style" type="string" default="DotLine"> <parameter name="style" type="string" default="DotLine" values="NoPen,SolidLine,DashLine,DotLine,DashDotLine,DashDotDotLine">
<description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description> <description>The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.</description>
</parameter> </parameter>
<parameter name="width" type="double" default="1.0" unit="px"> <parameter name="width" type="double" default="1.0" unit="px">
@ -714,7 +783,7 @@
The gradient of arrivals residuals. A gradient is defined as The gradient of arrivals residuals. A gradient is defined as
a list of tuples separated by colon where the first item is a list of tuples separated by colon where the first item is
the value and the second is the color. Colors can be given in the value and the second is the color. Colors can be given in
rgb notation or hexadecimal. When rgb is used double quotes are needed to rgb notation or hexadecimal. When rgb is used, double quotes are needed to
protect the comma inside the rgb definition, e.g. protect the comma inside the rgb definition, e.g.
-8:&quot;rgb(0,0,100)&quot;, -4:&quot;rgb(0,0,255)&quot;, -3:&quot;rgb(100,100,255)&quot;, ... -8:&quot;rgb(0,0,100)&quot;, -4:&quot;rgb(0,0,255)&quot;, -3:&quot;rgb(100,100,255)&quot;, ...
</description> </description>
@ -741,7 +810,7 @@
<description>The color of the station name.</description> <description>The color of the station name.</description>
</parameter> </parameter>
<parameter name="associated" type="color" default="82AD58"> <parameter name="associated" type="color" default="82AD58">
<description>The color of associated stations (e.g. in scmv).</description> <description>The color of associated stations, e.g., in scmv.</description>
</parameter> </parameter>
<parameter name="triggering" type="color"> <parameter name="triggering" type="color">
<description>The color of triggered stations.</description> <description>The color of triggered stations.</description>
@ -847,7 +916,7 @@
<group name="recordView"> <group name="recordView">
<parameter name="selectedTraceZoom" type="color" default="C0C0FFC0"> <parameter name="selectedTraceZoom" type="color" default="C0C0FFC0">
<description> <description>
The color of the selected zoom area (e.g. manual picker). The color of the selected zoom area, e.g., in scolv picker.
</description> </description>
</parameter> </parameter>
</group> </group>
@ -876,6 +945,11 @@
</group> </group>
<group name="originSymbol"> <group name="originSymbol">
<description>
Parameters controlling the color of origin symbols. The
size is controlled by the parameters
&quot;scheme.mag.originSymbol*&quot;.
</description>
<parameter name="classic" type="boolean" default="false"/> <parameter name="classic" type="boolean" default="false"/>
<group name="depth"> <group name="depth">
<parameter name="gradient" type="gradient" default="0:FF0000,50:ffA500,100:FFFF00,250:00FF00,600:0000FF"> <parameter name="gradient" type="gradient" default="0:FF0000,50:ffA500,100:FFFF00,250:00FF00,600:0000FF">
@ -892,7 +966,7 @@
<group name="originStatus"> <group name="originStatus">
<description> <description>
The origin status colors (e.g. in event list). The origin status colors, e.g., in event lists.
</description> </description>
<parameter name="automatic" type="color"> <parameter name="automatic" type="color">
<description></description> <description></description>
@ -922,7 +996,7 @@
<group name="marker"> <group name="marker">
<parameter name="lineWidth" type="int" unit="px"> <parameter name="lineWidth" type="int" unit="px">
<description> <description>
The line width of the marker (e.g. picks of manual picker). The line width of the marker, e.g., picks of scolv picker).
</description> </description>
</parameter> </parameter>
</group> </group>
@ -942,13 +1016,30 @@
</parameter> </parameter>
<parameter name="optimize" type="boolean" default="true"> <parameter name="optimize" type="boolean" default="true">
<description> <description>
Configures optimization of trace polylines. If activated Configures optimization of trace polylines. If activated,
then lines on the same pixel line or same pixel row lines on the same pixel line or same pixel row collapse
collapse into single lines. into single lines.
</description>
</parameter>
<parameter name="showEngineeringValues" type="boolean" default="true">
<description>
Shows numerical values in the vertical axis and the min/mean
values between 0 and 1000 with a unit prefix such as
m (milli) or M (mega).
Supported prefixes are:
Q (queta = 10**30), R (ronna = 10**27), Y (yotta = 10**24),
Z (zetta = 10**21), E (exa = 10**18), P (peta = 10**15),
T (tera = 10**12), G (giga = 10**9), M (mega = 10**6),
k (kilo = 10**3),
m (milli = 10**-3), µ (micro = 10**-6), n (nano = 10**-9),
p (pico = 10**-12), f (femto = 10**-15), a (atto = 10**-18),
z (zepto = 10**-21), y (yocto = 10**-24), r (ronto = 10**-27),
q (quekto = 10**-30).
</description> </description>
</parameter> </parameter>
<group name="borders"> <group name="borders">
<parameter name="drawMode" type="string" default="box"> <parameter name="drawMode" type="string" default="box" values="topline,box,bottomline">
<description> <description>
Mode for drawing record borders as box or line on top or Mode for drawing record borders as box or line on top or
bottom. bottom.
@ -967,12 +1058,13 @@
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
<description> <description>
Defines the point size of the font Defines the point size of the font.
</description> </description>
</parameter> </parameter>
<parameter name="bold" type="boolean" default="false"/> <parameter name="bold" type="boolean" default="false"/>
@ -982,11 +1074,13 @@
</group> </group>
<group name="small"> <group name="small">
<description> <description>
The smallest available font. If undefined the point size is 2 points smaller than the base font. The smallest available font. If undefined, the point
size is 2 points smaller than the base font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
@ -1001,16 +1095,18 @@
</group> </group>
<group name="normal"> <group name="normal">
<description> <description>
The default text font. If undefined the point size is 2 points larger than the base font. The default text font. If undefined, the point size is 2
points larger than the base font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
<description> <description>
Defines the point size of the font Defines the point size of the font.
</description> </description>
</parameter> </parameter>
<parameter name="bold" type="boolean" default="false"/> <parameter name="bold" type="boolean" default="false"/>
@ -1020,11 +1116,13 @@
</group> </group>
<group name="large"> <group name="large">
<description> <description>
The largest text font. If undefined the point size is 6 points larger than the base font. The largest text font. If undefined, the point size is 6
points larger than the base font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
@ -1039,11 +1137,13 @@
</group> </group>
<group name="highlight"> <group name="highlight">
<description> <description>
Font used to highlight text. If undefined it equals the normal font except for a bold font face. Font used to highlight text. If undefined, it equals the
normal font except for a bold font face.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
@ -1058,16 +1158,18 @@
</group> </group>
<group name="heading1"> <group name="heading1">
<description> <description>
The largest heading font. If undefined it uses a bold font face and a font size twice as large as the normal font. The largest heading font. If undefined, it uses a bold
font face and a font size twice as large as the normal font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
<description> <description>
Defines the point size of the font Defines the point size of the font.
</description> </description>
</parameter> </parameter>
<parameter name="bold" type="boolean" default="false"/> <parameter name="bold" type="boolean" default="false"/>
@ -1077,16 +1179,18 @@
</group> </group>
<group name="heading2"> <group name="heading2">
<description> <description>
The second largest heading font. If undefined it uses a bold font face and a font size twice as large as the base font. The second largest heading font. If undefined, it uses a
bold font face and a font size twice as large as the base font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
<description> <description>
Defines the point size of the font Defines the point size of the font.
</description> </description>
</parameter> </parameter>
<parameter name="bold" type="boolean" default="false"/> <parameter name="bold" type="boolean" default="false"/>
@ -1096,11 +1200,13 @@
</group> </group>
<group name="heading3"> <group name="heading3">
<description> <description>
The smallest heading font. If undefined it uses a bold font face and a font size 4 points larger than the base font. The smallest heading font. If undefined, it uses a bold
font face and a font size 4 points larger than the base font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
@ -1115,16 +1221,18 @@
</group> </group>
<group name="cityLabels"> <group name="cityLabels">
<description> <description>
Font used for city labels. If undefined it equals the base font. Font used for city labels. If undefined, it equals the
base font.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
<description> <description>
Defines the point size of the font Defines the point size of the font.
</description> </description>
</parameter> </parameter>
<parameter name="bold" type="boolean" default="false"/> <parameter name="bold" type="boolean" default="false"/>
@ -1134,16 +1242,19 @@
</group> </group>
<group name="splashVersion"> <group name="splashVersion">
<description> <description>
Font used for version string in the splash dialog shown at application startup. If undefined it equals the base font with a bold font face and a font size of 12. Font used for version string in the splash dialog shown
at application startup. If undefined, it equals the base
font with a bold font face and a font size of 12.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
<description> <description>
Defines the point size of the font Defines the point size of the font.
</description> </description>
</parameter> </parameter>
<parameter name="bold" type="boolean" default="false"/> <parameter name="bold" type="boolean" default="false"/>
@ -1153,11 +1264,14 @@
</group> </group>
<group name="splashMessage"> <group name="splashMessage">
<description> <description>
Font used for the message text in the splash dialog shown at application startup. If undefined it equals the base font with a font size of 12. Font used for the message text in the splash dialog
shown at application startup. If undefined, it equals
the base font with a font size of 12.
</description> </description>
<parameter name="family" type="string"> <parameter name="family" type="string">
<description> <description>
Sets the family name of the font. The name is case insensitive and may include a foundry name. Sets the family name of the font. The name is case
insensitive and may include a foundry name.
</description> </description>
</parameter> </parameter>
<parameter name="size" type="int"> <parameter name="size" type="int">
@ -1173,6 +1287,10 @@
</group> </group>
<group name="precision"> <group name="precision">
<description>
Display values with the precisions configured as the number
of decimal places.
</description>
<parameter name="depth" type="int" default="0"> <parameter name="depth" type="int" default="0">
<description> <description>
The precision of depth values. The precision of depth values.
@ -1186,7 +1304,7 @@
</parameter> </parameter>
<parameter name="location" type="int" default="2"> <parameter name="location" type="int" default="2">
<description> <description>
The precision of lat/lon values. The precision of latitude/longintude values.
</description> </description>
</parameter> </parameter>
<parameter name="magnitude" type="int" default="1"> <parameter name="magnitude" type="int" default="1">
@ -1196,7 +1314,8 @@
</parameter> </parameter>
<parameter name="originTime" type="int" default="0"> <parameter name="originTime" type="int" default="0">
<description> <description>
The precision of origin times. The precision of origin times and creation times of
origins and focal mechanisms.
</description> </description>
</parameter> </parameter>
<parameter name="pickTime" type="int" default="1"> <parameter name="pickTime" type="int" default="1">
@ -1206,7 +1325,8 @@
</parameter> </parameter>
<parameter name="traceValues" type="int" default="1"> <parameter name="traceValues" type="int" default="1">
<description> <description>
Precision of displayed offset/amp in all trace widgets. Precision of displayed offset/amplitude in all trace
widgets.
</description> </description>
</parameter> </parameter>
<parameter name="rms" type="int" default="1"> <parameter name="rms" type="int" default="1">
@ -1216,7 +1336,8 @@
</parameter> </parameter>
<parameter name="uncertainties" type="int" default="0"> <parameter name="uncertainties" type="int" default="0">
<description> <description>
Precision of uncertainty values, e.g. latitude errors. Precision of uncertainty values, e.g., for latitude and
longitude.
</description> </description>
</parameter> </parameter>
</group> </group>
@ -1230,7 +1351,9 @@
<group name="dateTime"> <group name="dateTime">
<parameter name="useLocalTime" type="boolean" default="false"> <parameter name="useLocalTime" type="boolean" default="false">
<description> <description>
Display times in localtime or UTC (default). Display times in localtime. If disabled all times are
shown in UTC which is also the time zone of all values
stored in the database.
</description> </description>
</parameter> </parameter>
</group> </group>
@ -1293,7 +1416,8 @@
<group name="events"> <group name="events">
<group name="timeAgo"> <group name="timeAgo">
<description> <description>
Defines maximum age of events to load. The value of all parameters are aggregated. Defines maximum age of events to load. The value of all
parameters are aggregated.
</description> </description>
<parameter name="days" type="int" unit="d" default="1"> <parameter name="days" type="int" unit="d" default="1">
<description> <description>
@ -1355,14 +1479,11 @@
<description> <description>
Control the Events tab, e.g. in scolv, showing the list of loaded events. Control the Events tab, e.g. in scolv, showing the list of loaded events.
</description> </description>
<parameter name="visibleColumns" type="list:string" default="M,MType,Phases,RMS,Lat,Lon,Depth,Stat,Agency,Region,ID"> <parameter name="visibleColumns" type="list:string" default="M,MType,Phases,RMS,Lat,Lon,Depth,Stat,Agency,Region,ID" values="TimeAgo,Certainty,Type,M,MType,RMS,AzGap,Phases,Lat,Lon,Depth,DType,Stat,FM,Origins,Agency,Author,Region,ID">
<description> <description>
Configure the columns of the event list that are visible Configure the columns of the event list that are visible
initially. The first column containing the origin time is initially. The first column containing the origin time is
always visible and cannot be hidden. Possible values are: always visible and cannot be hidden.
Certainty, Type, M, MType, RMS, AzGap, Phases, Lat, Lon, Depth, DType,
Stat, FM, Origins, Agency, Author, Region, ID.
Custom columns can be added by eventlist.customColumn.* or Custom columns can be added by eventlist.customColumn.* or
eventlist.scripts.* parameters. eventlist.scripts.* parameters.
@ -1415,6 +1536,13 @@
Custom columns showing parameters extracted by scripts e.g. Custom columns showing parameters extracted by scripts e.g.
from origins or events. from origins or events.
</description> </description>
<parameter name="export" type="file" options="read">
<description>
Defines the export script to be called with the selected
event IDs in stdin when the corresponding action is triggered
from the context menu of the list of events.
</description>
</parameter>
<parameter name="columns" type="list:string"> <parameter name="columns" type="list:string">
<description> <description>
Name of custom column profiles to be registered. Comma Name of custom column profiles to be registered. Comma
@ -1428,7 +1556,7 @@
The scolv documentation provides an example script. The scolv documentation provides an example script.
</description> </description>
<struct type="custom column profile" link="eventlist.scripts.profiles"> <struct type="custom column profile" link="eventlist.scripts.profiles">
<parameter name="script" type="path"> <parameter name="script" type="file" options="read">
<description> <description>
External script to invoke for each event list entry. The object represented by the External script to invoke for each event list entry. The object represented by the
list entry is serialized to XML and passed to the script on stdin. If the return list entry is serialized to XML and passed to the script on stdin. If the return
@ -1596,6 +1724,16 @@
Maximum depth Maximum depth
</description> </description>
</parameter> </parameter>
<parameter name="minphasecount" type="int" unit="">
<description>
Minimum number of phases
</description>
</parameter>
<parameter name="maxphasecount" type="int" unit="">
<description>
Maximum number of phases
</description>
</parameter>
<parameter name="minmag" type="double"> <parameter name="minmag" type="double">
<description> <description>
Minimum magnitude Minimum magnitude
@ -1608,6 +1746,35 @@
</parameter> </parameter>
</group> </group>
</group> </group>
<group name="timeAgo">
<description>
Parameters controlling the appearance of the TimeAgo column.
</description>
<parameter name="interval" type="double" unit="s" default="1.0">
<description>
Update interval in seconds.
</description>
</parameter>
<group name="background">
<parameter name="gradient" type="gradient" unit="s:color">
<description>
Mapping of time values in seconds to colors used as
cell backgroud color. E.g., a mapping from green
over yellow (5min), red (10min) to
transparent (30min) can be expressed as
"0:40FF40FF,300:FFFF40FF,600:FF4040FF,1800:FF4040FF,1801:00000000".
</description>
</parameter>
<parameter name="discrete" type="boolean" default="true">
<description>
If time ago value falls between two color positions,
the resulting color will be interpolated linearly
between both colors by default. When the discrete
flag is set, the interpolation will be disabled.
</description>
</parameter>
</group>
</group>
</group> </group>
<group name="eventedit"> <group name="eventedit">
<description> <description>
@ -1620,7 +1787,7 @@
</description> </description>
</parameter> </parameter>
<group name="origin"> <group name="origin">
<parameter name="visibleColumns" type="list:string" default="Phases, Lat, Lon, Depth, DType, RMS, AzGap, Stat, Method, Agency, Author, Region, ID"> <parameter name="visibleColumns" type="list:string" default="Phases,Lat,Lon,Depth,DType,RMS,AzGap,Stat,Method,Agency,Author,Region,ID" values="Phases,Lat,Lon,Depth,DType,RMS,AzGap,Stat,Method,Agency,Author,Region,ID">
<description> <description>
Configure the columns of the event edit origin table Configure the columns of the event edit origin table
that are visible initially. Origin creation time and that are visible initially. Origin creation time and
@ -1647,27 +1814,31 @@
</parameter> </parameter>
<parameter name="pos" type="int" default="-1"> <parameter name="pos" type="int" default="-1">
<description> <description>
Position of the column. If the configured position is less than 0 or if it Position of the column. If the configured position
exceeds the total number of columns then the column is appended to the right. is less than 0 or if it exceeds the total number of
columns, then the column is appended to the right.
</description> </description>
</parameter> </parameter>
<parameter name="default" type="string"> <parameter name="default" type="string">
<description> <description>
Default value to display if the specified origin or event comment id was not found. Default value to display if the specified origin or
event comment id was not found.
</description> </description>
</parameter> </parameter>
<parameter name="colors" type="list:string"> <parameter name="colors" type="list:string">
<description> <description>
Mapping of comment values to colors used as text color. E.g. "foo:#000,bar:red". Mapping of comment values to colors used as text
color. E.g. "foo:#000,bar:red".
</description> </description>
</parameter> </parameter>
</group> </group>
</group> </group>
<group name="fm"> <group name="fm">
<parameter name="visibleColumns" type="list:string" default="Depth, M, Count, Misfit, STDR, AzGap, Stat, DC, CLVD, ISO, S1, D1, R1, S2, D2, R2, Agency, Author"> <parameter name="visibleColumns" type="list:string" default="Depth,M,Count,Misfit,STDR,AzGap,Stat,DC,CLVD,ISO,S1,D1,R1,S2,D2,R2,Agency,Author" values="Depth,M,Count,Misfit,STDR,AzGap,Stat,DC,CLVD,ISO,S1,D1,R1,S2,D2,R2,Agency,Author">
<description> <description>
Configure the columns of the event edit focal mechanism Configure the columns of the event edit focal mechanism
tab that are visible initially. tab that are visible initially.
Possible values are: Depth, M, Count, Misfit, STDR, Possible values are: Depth, M, Count, Misfit, STDR,
AzGap, Stat, DC, CLVD, ISO, S1, AzGap, Stat, DC, CLVD, ISO, S1,
D1, R1, S2, D2, R2, Agency, Author D1, R1, S2, D2, R2, Agency, Author
@ -1699,7 +1870,8 @@
</parameter> </parameter>
<parameter name="textSize" type="int" unit="pt"> <parameter name="textSize" type="int" unit="pt">
<description> <description>
The text size of the time ago label in case of an active alert. The text size of the time ago label in case of an active
alert.
</description> </description>
</parameter> </parameter>
</group> </group>

View File

@ -10,30 +10,32 @@
<description> <description>
Locator parameters: Hypo71 Locator parameters: Hypo71
</description> </description>
<parameter name="logFile" type="string" default="@LOGDIR@/HYPO71.LOG"> <parameter name="logFile" type="file" default="@LOGDIR@/HYPO71.LOG" options="write">
<description> <description>
Temporary file used by Hypo71 to store calculation logs. Temporary file used by Hypo71 to store calculation logs.
</description> </description>
</parameter> </parameter>
<parameter name="inputFile" type="string" default="@DATADIR@/hypo71/HYPO71.INP"> <parameter name="inputFile" type="file" default="@DATADIR@/hypo71/HYPO71.INP" options="write">
<description> <description>
Temporary file to write Hypo71 input data to. Temporary file to write Hypo71 input data to.
</description> </description>
</parameter> </parameter>
<parameter name="outputFile" type="string" default="@DATADIR@/hypo71/HYPO71.PRT"> <parameter name="outputFile" type="file" default="@DATADIR@/hypo71/HYPO71.PRT" options="write">
<description> <description>
Temporary output file to read Hypo71 location data from. Temporary output file to read Hypo71 location data from.
</description> </description>
</parameter> </parameter>
<parameter name="defaultControlFile" type="string" default="@DATADIR@/hypo71/profiles/default.hypo71.conf"> <parameter name="defaultControlFile" type="file" default="@DATADIR@/hypo71/profiles/default.hypo71.conf" options="read">
<description> <description>
Hypo71 default profile. Hypo71 default profile. If no custom profile is specified,
If no custom profile is specified, this profile will be used by the plugin when proceeding to a localization. this profile will be used by the plugin when proceeding to a
localization.
</description> </description>
</parameter> </parameter>
<parameter name="hypo71ScriptFile" type="string" default="@DATADIR@/hypo71/run.sh"> <parameter name="hypo71ScriptFile" type="file" default="@DATADIR@/hypo71/run.sh" options="execute">
<description> <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> </description>
</parameter> </parameter>
<parameter name="profiles" type="list:string"> <parameter name="profiles" type="list:string">
@ -45,7 +47,8 @@
</parameter> </parameter>
<group name="profile"> <group name="profile">
<description> <description>
Profiles containing the profile-specific velocity model and the Hypo71 parameters. Profiles containing the profile-specific velocity model and
the Hypo71 parameters.
</description> </description>
<struct type="Hypo71 profile" link = "hypo71.profiles"> <struct type="Hypo71 profile" link = "hypo71.profiles">
<parameter name="earthModelID" type="string"> <parameter name="earthModelID" type="string">
@ -59,7 +62,7 @@
It is generally the locator's name (Hypo71). It is generally the locator's name (Hypo71).
</description> </description>
</parameter> </parameter>
<parameter name="controlFile" type="string"> <parameter name="controlFile" type="file" options="read">
<description> <description>
File containing the profile parameters. File containing the profile parameters.
</description> </description>
@ -76,10 +79,15 @@
</struct> </struct>
</group> </group>
<parameter name="publicID" type="string"> <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>
<parameter name="useHypo71PatternID" type="boolean"> <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> </parameter>
</group> </group>
</configuration> </configuration>

View File

@ -10,9 +10,9 @@
<description> <description>
Locator parameters: iLoc Locator parameters: iLoc
</description> </description>
<parameter name="auxDir" type="string" default="@DATADIR@/iloc/iLocAuxDir"> <parameter name="auxDir" type="directory" default="@DATADIR@/iloc/iLocAuxDir" options="read">
<description> <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 of them must be provided from the iLoc website. Read the
documentation for their installation. documentation for their installation.
</description> </description>
@ -32,9 +32,9 @@
</parameter> </parameter>
<parameter name="profiles" type="list:string" default="iasp91,ak135"> <parameter name="profiles" type="list:string" default="iasp91,ak135">
<description> <description>
iLoc profile name. List of iLoc profile name(s). Separate multiple names by comma.
Multiples names may be set separated by comma. Each profile can have different velocity or parameters. The
Each profile can have different velocity or parameters. must be defined separate by iLoc profiles.
</description> </description>
</parameter> </parameter>
<group name="profile"> <group name="profile">
@ -60,17 +60,17 @@
</parameter> </parameter>
<parameter name="UseRSTT" type="boolean" default="false"> <parameter name="UseRSTT" type="boolean" default="false">
<description> <description>
Use regional seismic travel-time tables Use regional seismic travel-time tables.
</description> </description>
</parameter> </parameter>
<parameter name="UseRSTTPnSn" type="boolean" default="true"> <parameter name="UseRSTTPnSn" type="boolean" default="true">
<description> <description>
Use regional seismic travel-time tables for Pn and Sn Use regional seismic travel-time tables for Pn and Sn.
</description> </description>
</parameter> </parameter>
<parameter name="UseRSTTPgLg" type="boolean" default="true"> <parameter name="UseRSTTPgLg" type="boolean" default="true">
<description> <description>
Use regional seismic travel-time tables for Pg and Lg Use regional seismic travel-time tables for Pg and Lg.
</description> </description>
</parameter> </parameter>
<parameter name="UseLocalTT" type="boolean" default="false"> <parameter name="UseLocalTT" type="boolean" default="false">
@ -78,7 +78,7 @@
Use local velocity model if defined in LocalVmodel. Use local velocity model if defined in LocalVmodel.
</description> </description>
</parameter> </parameter>
<parameter name="LocalVmodel" type="string" default=""> <parameter name="LocalVmodel" type="file" default="" options="read">
<description> <description>
Full path to a file containing the local velocity model. Full path to a file containing the local velocity model.
Requires: UseLocalTT = true. Empty string or unset or Requires: UseLocalTT = true. Empty string or unset or
@ -98,124 +98,125 @@
</parameter> </parameter>
<parameter name="DoGridSearch" type="boolean" default="true"> <parameter name="DoGridSearch" type="boolean" default="true">
<description> <description>
Perform neighbourhood algorithm Perform neighbourhood algorithm.
</description> </description>
</parameter> </parameter>
<parameter name="NAsearchRadius" type="float" default="5" unit="deg"> <parameter name="NAsearchRadius" type="float" default="5" unit="deg">
<description> <description>
Neighbourhood Algorithm: Search radius around initial Neighbourhood Algorithm: Search radius around initial
epicentre epicentre.
</description> </description>
</parameter> </parameter>
<parameter name="NAsearchDepth" type="float" default="300" unit="km"> <parameter name="NAsearchDepth" type="float" default="300" unit="km">
<description> <description>
Neighbourhood Algorithm: Search radius around initial Neighbourhood Algorithm: Search radius around initial
depth depth.
</description> </description>
</parameter> </parameter>
<parameter name="NAsearchOT" type="float" default="30" unit="s"> <parameter name="NAsearchOT" type="float" default="30" unit="s">
<description> <description>
Neighbourhood Algorithm: Search radius around initial Neighbourhood Algorithm: Search radius around initial
origin time origin time.
</description> </description>
</parameter> </parameter>
<parameter name="NAlpNorm" type="float" default="1"> <parameter name="NAlpNorm" type="float" default="1" range="1:2">
<description> <description>
Neighbourhood Algorithm: p-value for norm to compute Neighbourhood Algorithm: p-value for norm to compute
misfit [1,2] misfit.
</description> </description>
</parameter> </parameter>
<parameter name="NAiterMax" type="integer" default="5"> <parameter name="NAiterMax" type="int" default="5">
<description> <description>
Neighbourhood Algorithm: Maximum number of iterations Neighbourhood Algorithm: Maximum number of iterations.
</description> </description>
</parameter> </parameter>
<parameter name="NAcells" type="integer" default="25"> <parameter name="NAcells" type="int" default="25">
<description> <description>
Neighbourhood Algorithm: Number of cells to be resampled Neighbourhood Algorithm: Number of cells to be resampled
at each iteration at each iteration.
</description> </description>
</parameter> </parameter>
<parameter name="NAinitialSample" type="integer" default="1000" unit=""> <parameter name="NAinitialSample" type="int" default="1000" unit="">
<description> <description>
Neighbourhood Algorithm: Size of initial sample Neighbourhood Algorithm: Size of initial sample.
</description> </description>
</parameter> </parameter>
<parameter name="NAnextSample" type="integer" default="100" unit=""> <parameter name="NAnextSample" type="int" default="100" unit="">
<description> <description>
Neighbourhood Algorithm: Size of subsequent samples Neighbourhood Algorithm: Size of subsequent samples.
</description> </description>
</parameter> </parameter>
<parameter name="MinDepthPhases" type="integer" default="3" unit=""> <parameter name="MinDepthPhases" type="int" default="3" unit="">
<description> <description>
Depth resolution: Minimum number of depth phases for depdp Depth resolution: Minimum number of depth phases.
</description> </description>
</parameter> </parameter>
<parameter name="MaxLocalDistDeg" type="float" default="0.2" unit="deg"> <parameter name="MaxLocalDistDeg" type="float" default="0.2" unit="deg">
<description> <description>
Depth resolution: Maximum local distance Depth resolution: Maximum local distance.
</description> </description>
</parameter> </parameter>
<parameter name="MinLocalStations" type="integer" default="1"> <parameter name="MinLocalStations" type="int" default="1">
<description> <description>
Depth resolution: Minimum number of local defining stations Depth resolution: Minimum number of local defining stations.
</description> </description>
</parameter> </parameter>
<parameter name="MaxSPDistDeg" type="float" default="2.0" unit="deg"> <parameter name="MaxSPDistDeg" type="float" default="2.0" unit="deg">
<description> <description>
Depth resolution: Maximum distance for using S-P travel-time differences. Depth resolution: Maximum epicentral distance for
using S-P travel-time differences.
</description> </description>
</parameter> </parameter>
<parameter name="MinSPpairs" type="integer" default="3"> <parameter name="MinSPpairs" type="int" default="3">
<description> <description>
Depth resolution: Minimum number of defining S-P phase pairs Depth resolution: Minimum number of defining S-P phase pairs.
</description> </description>
</parameter> </parameter>
<parameter name="MinCorePhases" type="integer" default="3"> <parameter name="MinCorePhases" type="int" default="3">
<description> <description>
Depth resolution: Minimum number of defining core reflection phases Depth resolution: Minimum number of defining core reflection phases
</description> </description>
</parameter> </parameter>
<parameter name="MaxShallowDepthError" type="float" default="30.0" unit="km"> <parameter name="MaxShallowDepthError" type="float" default="30.0" unit="km">
<description> <description>
Depth resolution: Maximum depth error for crustal free-depth Depth resolution: Maximum depth error for crustal free-depth.
</description> </description>
</parameter> </parameter>
<parameter name="MaxDeepDepthError" type="float" default="60.0" unit="km"> <parameter name="MaxDeepDepthError" type="float" default="60.0" unit="km">
<description> <description>
Depth resolution: Maximum depth error for deep free-depth Depth resolution: Maximum depth error for deep free-depth.
</description> </description>
</parameter> </parameter>
<parameter name="DoCorrelatedErrors" type="boolean" default="true"> <parameter name="DoCorrelatedErrors" type="boolean" default="true">
<description> <description>
Linearized inversion: Account for correlated errors Linearized inversion: Account for correlated errors.
</description> </description>
</parameter> </parameter>
<parameter name="SigmaThreshold" type="float" default="6.0" unit="s"> <parameter name="SigmaThreshold" type="float" default="6.0" unit="s">
<description> <description>
Linearized inversion: Used to exclude big residuals from solution Linearized inversion: Used to exclude big residuals from solution.
</description> </description>
</parameter> </parameter>
<parameter name="AllowDamping" type="boolean" default="true"> <parameter name="AllowDamping" type="boolean" default="true">
<description> <description>
Linearized inversion: Allow damping of model vector Linearized inversion: Allow damping of model vector.
</description> </description>
</parameter> </parameter>
<parameter name="MinIterations" type="integer" default="4"> <parameter name="MinIterations" type="int" default="4">
<description> <description>
Linearized inversion: Minimum number of iterations Linearized inversion: Minimum number of iterations.
</description> </description>
</parameter> </parameter>
<parameter name="MaxIterations" type="integer" default="20"> <parameter name="MaxIterations" type="int" default="20">
<description> <description>
Linearized inversion: Maximum number of iterations Linearized inversion: Maximum number of iterations.
</description> </description>
</parameter> </parameter>
<parameter name="MinNdefPhases" type="integer" default="4"> <parameter name="MinNdefPhases" type="int" default="4">
<description> <description>
Linearized inversion: Minimum number of defining phases Linearized inversion: Minimum number of defining phases.
</description> </description>
</parameter> </parameter>
<parameter name="DoNotRenamePhases" type="boolean" default="false"> <parameter name="DoNotRenamePhases" type="boolean" default="false">

View File

@ -12,7 +12,7 @@
Locator parameters: Router. This locator requires the plugin Locator parameters: Router. This locator requires the plugin
&quot;locrouter&quot; to be loaded. &quot;locrouter&quot; to be loaded.
</description> </description>
<parameter name="regions" type="string"> <parameter name="regions" type="file" options="read">
<description> <description>
A GeoJSON or BNA file defining locator profiles by region. A GeoJSON or BNA file defining locator profiles by region.
Supported polygon attributes: Supported polygon attributes:

View File

@ -11,8 +11,7 @@
Body wave magnitude at teleseismic distances measured at 1 s period. Body wave magnitude at teleseismic distances measured at 1 s period.
</description> </description>
<configuration> <configuration>
<group name="magnitudes"> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="mb">
<group name="mb">
<description> <description>
Parameters for computing mb magnitudes from mb amplitudes. Parameters for computing mb magnitudes from mb amplitudes.
</description> </description>
@ -28,8 +27,7 @@
Maximum epicentral distance for computing mb. Maximum epicentral distance for computing mb.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -11,8 +11,7 @@
The body wave magnitude at teleseismic distances similar to mb. The body wave magnitude at teleseismic distances similar to mb.
</description> </description>
<configuration> <configuration>
<group name="magnitudes"> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="mB">
<group name="mB">
<description> <description>
Parameters for computing mB magnitudes from mB amplitudes. Parameters for computing mB magnitudes from mB amplitudes.
</description> </description>
@ -28,8 +27,7 @@
Maximum epicentral distance for computing mB. Maximum epicentral distance for computing mB.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -17,8 +17,7 @@
from the event. from the event.
</description> </description>
<configuration> <configuration>
<group name="magnitudes"> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="mb(IDC)">
<group name="mb(IDC)">
<parameter name="Q" type="path"> <parameter name="Q" type="path">
<description> <description>
Location of the station specific Q table. If not Location of the station specific Q table. If not
@ -28,8 +27,7 @@
station code and location code. station code and location code.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -11,8 +11,7 @@
Duration magnitude plugin Duration magnitude plugin
</description> </description>
<configuration> <configuration>
<group name="magnitudes"> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="md">
<group name="md">
<parameter name="seismo" type="int" default="9"> <parameter name="seismo" type="int" default="9">
<description> <description>
Default filter type to use before processing and after deconvolution. It's possible to set : Default filter type to use before processing and after deconvolution. It's possible to set :
@ -108,8 +107,7 @@
Station correction Station correction
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -25,18 +25,28 @@
Standard local (Richter) magnitude Standard local (Richter) magnitude
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalBindingsAmplitudeProfile" match-name="ML">
<group name="ML">
<description> <description>
Parameters for measuring ML amplitudes. Add more parameters Parameters for measuring ML amplitudes. Add more parameters
by adding an amplitude type profile 'ML', by adding an amplitude type profile 'ML',
</description> </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=""> <parameter name="preFilter" type="string" default="">
<description> <description>
The filter applied to raw records before applying The filter applied to raw records before applying
Wood-Anderson simulation. Default: no pre-filtering. Wood-Anderson simulation. Default: no pre-filtering.
</description> </description>
</parameter> </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="measureType" type="string" default="AbsMax"> <parameter name="measureType" type="string" default="AbsMax">
<description> <description>
This parameter allows to set how the amplitude is measured. This parameter allows to set how the amplitude is measured.
@ -59,14 +69,13 @@
magnitudes instead of their amplitudes. magnitudes instead of their amplitudes.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="ML">
<group name="magnitudes">
<group name="ML">
<description> <description>
Parameters for computing ML magnitudes from ML amplitudes. Parameters for computing ML magnitudes from ML amplitudes.
</description> </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"> <parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
<description> <description>
The calibration function log10(A0). The calibration function log10(A0).
@ -85,14 +94,7 @@
maximum distance range for computing ML. maximum distance range for computing ML.
</description> </description>
</parameter> </parameter>
<parameter name="maxDistanceKm" type="double" unit="km" default="-1.0"> </extend-struct>
<description>
Maximum epicentral distance for computing ML.
No distance limitation for maxDistanceKm = -1.
</description>
</parameter>
</group>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -11,8 +11,7 @@
CTBTO/IDC local magnitude. CTBTO/IDC local magnitude.
</description> </description>
<configuration> <configuration>
<group name="magnitudes"> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="ML(IDC)">
<group name="ML(IDC)">
<parameter name="A" type="path"> <parameter name="A" type="path">
<description> <description>
Location of the station specific attenuation table. If not Location of the station specific attenuation table. If not
@ -22,8 +21,7 @@
station code and location code. station code and location code.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -101,12 +101,16 @@
Custom magnitude for local events measured on horizontal components Custom magnitude for local events measured on horizontal components
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MLc">
<group name="MLc">
<description> <description>
Parameters for measuring MLc amplitudes. Add more parameters Parameters for measuring MLc amplitudes. Add more parameters
by adding an amplitude type profile 'MLc', by adding an amplitude type profile 'MLc',
</description> </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)"> <parameter name="preFilter" type="string" default="BW(3,0.5,12)">
<description> <description>
The filter applied to raw records before applying The filter applied to raw records before applying
@ -138,9 +142,9 @@
excpected amplitude. excpected amplitude.
</description> </description>
</parameter> </parameter>
<parameter name="measureType" type="string" default="AbsMax"> <parameter name="measureType" type="string" default="AbsMax" values="AbsMax,MinMax,PeakTrough">
<description> <description>
Type for measuring amplitudes. Available: Type for measuring amplitudes.
AbsMax: absolute maximum AbsMax: absolute maximum
@ -150,7 +154,7 @@
on a half cycle on a half cycle
</description> </description>
</parameter> </parameter>
<parameter name="combiner" type="string" default="max"> <parameter name="combiner" type="string" default="max" values="min,max,average,geometric_mean">
<description> <description>
Define how to combine the amplitudes measured on both Define how to combine the amplitudes measured on both
horizontals components: horizontals components:
@ -164,17 +168,16 @@
geometric_mean: form the geometric mean geometric_mean: form the geometric mean
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLc">
<group name="magnitudes">
<group name="MLc">
<description> <description>
Parameters for computing MLc magnitudes from MLc amplitudes. Parameters for computing MLc magnitudes from MLc amplitudes.
</description> </description>
<parameter name="distMode" type="string" default="hypocentral"> <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> <description>
Considered distance measure between source and receiver. Considered distance measure between source and receiver.
Possible values are
hypocentral: hypocentral distance hypocentral: hypocentral distance
@ -193,16 +196,20 @@
Negative values deactivate the check. Negative values deactivate the check.
</description> </description>
</parameter> </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"> <parameter name="maxDepth" type="double" default="80" unit="km">
<description> <description>
The maximum source depth up to which magnitudes are computed. The maximum source depth up to which magnitudes are computed.
</description> </description>
</parameter> </parameter>
<parameter name="calibrationType" type="string" default="&quot;parametric&quot;" unit=""> <parameter name="calibrationType" type="string" default="&quot;parametric&quot;" unit="" values="parametric,A0">
<description> <description>
Type of magnitude calibration formula to be considered. Type of magnitude calibration formula to be considered.
The calibration parameters are considered accordingly. The calibration parameters are considered accordingly.
Currently supported are
&quot;parametric&quot;: consider parameters of parametric &quot;parametric&quot;: consider parameters of parametric
configuration in parametric section configuration in parametric section
@ -238,7 +245,7 @@
<group name="parametric"> <group name="parametric">
<description> <description>
Parameters for parametric magnitude calibration: Parameters for parametric magnitude calibration:
MLc = log10(A) + c3 * log10(r/c5) + c2 * (r + c4) + c1 + c0(station) 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". Considered if magnitude.MLc.calibrationType = "parametric".
</description> </description>
@ -280,9 +287,33 @@
parametric magnitude calibration formula. parametric magnitude calibration formula.
</description> </description>
</parameter> </parameter>
<parameter name="c6" type="double" default="0.0">
<description>
The calibration value 'c6' applied in the
parametric magnitude calibration formula.
</description>
</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>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -16,8 +16,7 @@
at the Liverpool developer meeting. at the Liverpool developer meeting.
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MLh">
<group name="MLh">
<parameter name="maxavg" type="string" default="max"> <parameter name="maxavg" type="string" default="max">
<description> <description>
Define combiner operation for both horizontals (min, max, avg). Define combiner operation for both horizontals (min, max, avg).
@ -28,10 +27,8 @@
MLh clipping level, in raw counts, eg. 80% of 2^23 = 6710886. MLh clipping level, in raw counts, eg. 80% of 2^23 = 6710886.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLh">
<group name="magnitudes">
<group name="MLh">
<parameter name="params" type="string"> <parameter name="params" type="string">
<description> <description>
Defines attenuation parameters for MLh. Defines attenuation parameters for MLh.
@ -50,8 +47,7 @@
value. maxDepth should not be greater than 80km. value. maxDepth should not be greater than 80km.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -8,8 +8,7 @@
</plugin> </plugin>
<binding name="MLr" module="global"> <binding name="MLr" module="global">
<configuration> <configuration>
<group name="magnitudes"> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLr">
<group name="MLr">
<description> <description>
Parameter for computing MLr magnitudes for GNS/Geonet from MLv amplitudes. Parameter for computing MLr magnitudes for GNS/Geonet from MLv amplitudes.
</description> </description>
@ -26,8 +25,7 @@
Note: No MLr computation if params is empty. Note: No MLr computation if params is empty.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -25,18 +25,29 @@
Local (Richter) magnitude measured on the vertical component Local (Richter) magnitude measured on the vertical component
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MLv">
<group name="MLv">
<description> <description>
Parameters for measuring MLv amplitudes. Add more parameters Parameters for measuring MLv amplitudes. Add more parameters
by adding an amplitude type profile 'MLv', by adding an amplitude type profile 'MLv',
</description> </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=""> <parameter name="preFilter" type="string" default="">
<description> <description>
The filter applied to raw records before applying The filter applied to raw records before applying
Wood-Anderson simulation. Default: no pre-filtering. Wood-Anderson simulation. Default: no pre-filtering.
</description> </description>
</parameter> </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="measureType" type="string" default="AbsMax"> <parameter name="measureType" type="string" default="AbsMax">
<description> <description>
This parameter allows to set how the amplitude is measured. This parameter allows to set how the amplitude is measured.
@ -49,14 +60,13 @@
parameter has no effect. parameter has no effect.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MLv">
<group name="magnitudes">
<group name="MLv">
<description> <description>
Parameters for computing MLv magnitudes from MLv amplitudes. Parameters for computing MLv magnitudes from MLv amplitudes.
</description> </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"> <parameter name="logA0" type="string" default="0:-1.3,60:-2.8,100:-3.0,400:-4.5,1000:-5.85">
<description> <description>
The calibration function log10(A0). The calibration function log10(A0).
@ -75,14 +85,7 @@
maximum distance range for computing MLv. maximum distance range for computing MLv.
</description> </description>
</parameter> </parameter>
<parameter name="maxDistanceKm" type="double" unit="km" default="-1.0"> </extend-struct>
<description>
Maximum epicentral distance for computing MLv.
No distance limitation for maxDistanceKm=-1
</description>
</parameter>
</group>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -6,8 +6,7 @@
Nuttli magnitude for Canada and other Cratonic regions Nuttli magnitude for Canada and other Cratonic regions
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalAmplitudeProfile" match-name="MN">
<group name="MN">
<description> <description>
Amplitude control parameters for MN (Nuttli magnitude). Amplitude control parameters for MN (Nuttli magnitude).
</description> </description>
@ -17,10 +16,8 @@
are located in &quot;share/locsat/tables/[vmodel].*&quot;. are located in &quot;share/locsat/tables/[vmodel].*&quot;.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalMagnitudeProfile" match-name="MN">
<group name="magnitudes">
<group name="MN">
<description> <description>
Regionalization of MN (Nuttli magnitude). Regionalization of MN (Nuttli magnitude).
</description> </description>
@ -38,16 +35,14 @@
will be applied. will be applied.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</plugin> </plugin>
<binding name="MN" module="global"> <binding name="MN" module="global">
<description> <description>
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalBindingsAmplitudeProfile" match-name="MN">
<group name="MN">
<description> <description>
Parameters for measuring AMN amplitudes. Parameters for measuring AMN amplitudes.
</description> </description>
@ -118,10 +113,8 @@
Allowed tokens: Pg, Pn, P, Sg, Sn, S, Lg, Rg, Vmin, Vmax Allowed tokens: Pg, Pn, P, Sg, Sn, S, Lg, Rg, Vmin, Vmax
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="MN">
<group name="magnitudes">
<group name="MN">
<description> <description>
Parameters for computing MN magnitudes from AMN amplitudes. Parameters for computing MN magnitudes from AMN amplitudes.
</description> </description>
@ -169,8 +162,7 @@
magnitude will be available at all. magnitude will be available at all.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -12,8 +12,7 @@
at around 20 s period. at around 20 s period.
</description> </description>
<configuration> <configuration>
<group name="amplitudes"> <extend-struct type="GlobalBindingsAmplitudeProfile" match-name="Ms_20">
<group name="Ms_20">
<description> <description>
Parameters for computing Ms_20 amplitudes. Parameters for computing Ms_20 amplitudes.
</description> </description>
@ -27,10 +26,8 @@
Maximum group velocity used to compute signal time window. Maximum group velocity used to compute signal time window.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group> <extend-struct type="GlobalBindingsMagnitudeProfile" match-name="Ms_20">
<group name="magnitudes">
<group name="Ms_20">
<description> <description>
Parameters for computing Ms_20 magnitudes from Ms_20 amplitudes. Parameters for computing Ms_20 magnitudes from Ms_20 amplitudes.
</description> </description>
@ -59,8 +56,7 @@
Maximum depth for computing Ms_20. Maximum depth for computing Ms_20.
</description> </description>
</parameter> </parameter>
</group> </extend-struct>
</group>
</configuration> </configuration>
</binding> </binding>
</seiscomp> </seiscomp>

View File

@ -14,9 +14,9 @@
</description> </description>
</parameter> </parameter>
<parameter name="outputPath" type="path" default="/tmp/sc3.nll"> <parameter name="outputPath" type="directory" default="/tmp/sc3.nll" options="write">
<description> <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> </description>
</parameter> </parameter>
@ -35,9 +35,10 @@
</description> </description>
</parameter> </parameter>
<parameter name="controlFile" type="path"> <parameter name="controlFile" type="file" options="read">
<description> <description>
The default NonLinLoc control file to use. The default NonLinLoc control file to use. Parameters
therein are overridden per profile.
</description> </description>
</parameter> </parameter>
@ -81,17 +82,25 @@
</description> </description>
<parameter name="earthModelID" type="string"> <parameter name="earthModelID" type="string">
<description> <description>
earthModelID that is stored in the created origin. Earth model ID stored in the created origin.
</description> </description>
</parameter> </parameter>
<parameter name="methodID" type="string" default="NonLinLoc"> <parameter name="methodID" type="string" default="NonLinLoc">
<description> <description>
methodID that is stored in the created origin. Method ID stored in the created origin.
</description> </description>
</parameter> </parameter>
<parameter name="tablePath" type="path"> <parameter name="tablePath" type="path">
<description> <description>
Path to travel time tables (grids). 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> </description>
</parameter> </parameter>
<parameter name="stationNameFormat" type="string" default="@STA@"> <parameter name="stationNameFormat" type="string" default="@STA@">
@ -104,21 +113,19 @@
To overcome this limitation this parameter could be set in a more general way, for To overcome this limitation this parameter could be set in a more general way, for
example @NET@_@STA@_@LOC@. In this way NonLinLoc will look for example @NET@_@STA@_@LOC@. In this way NonLinLoc will look for
travel time table (grid) files of the form: tablePath.P.@NET@_@STA@_@LOC@.time.* travel time table (grid) files of the form: tablePath.P.@NET@_@STA@_@LOC@.time.*
Where @NET@ @STA@ @LOC@ are just placeholder for the actual codes Where @NET@ @STA@ @LOC@ are just placeholder for the actual codes.
</description> </description>
</parameter> </parameter>
<parameter name="controlFile" type="path"> <parameter name="controlFile" type="file" options="read">
<description> <description>
Control file of the current profile. If not set, the default Control file of the current profile overriding
control file will be used instead. parameters of the default control file.
</description> </description>
</parameter> </parameter>
<parameter name="transform" type="string" default="GLOBAL"> <parameter name="transform" type="string" default="GLOBAL">
<description> <description>
Transformation type of the configured region. Supported are Transformation type of the configured region.
SIMPLE and GLOBAL. Supported are SIMPLE and GLOBAL.
Default: GLOBAL is assumed.
</description> </description>
</parameter> </parameter>
<parameter name="region" type="list:double"> <parameter name="region" type="list:double">
@ -127,24 +134,30 @@
The original epicentre must be within the region. The original epicentre must be within the region.
If transform is GLOBAL: min_lat, min_lon, max_lat, max_lon. If transform is GLOBAL: min_lat, min_lon, max_lat, max_lon.
The values define the geographic corner coordinates. Unit is degree. The values define the geographic corner coordinates.
Unit: degree.
If transform is SIMPLE: xmin, ymin, xmax, ymax. If transform is SIMPLE: min_x, min_y, max_x, max_y.
The values define the region relative to the configured origin. The values define the region relative to the origin
Unit is km. configured with &quot;origin&quot;.
Unit: km.
When this parameter is empty, the generated NonLinLoc
configuration is automatically overwritten with
TRANS GLOBAL.
Otherwise TRANS from &quot;controlFile&quot; applies.
</description> </description>
</parameter> </parameter>
<parameter name="origin" type="list:double" unit="deg"> <parameter name="origin" type="list:double" unit="deg">
<description> <description>
Only used for transformation SIMPLE. Expects 2 values: latitude, longitude. Only used for transformation SIMPLE. Expects 2 values: latitude, longitude.
The value define the geographic origin of the area spanned by region. The value define the geographic origin of the area spanned by region.
Unit is degree.
</description> </description>
</parameter> </parameter>
<parameter name="rotation" type="double" unit="deg"> <parameter name="rotation" type="double" unit="deg">
<description> <description>
Only used for transformation SIMPLE. Defines the rotation around the Only used for transformation SIMPLE. Defines the
origin of the defined region. rotation around the origin of the defined region.
</description> </description>
</parameter> </parameter>
</struct> </struct>

View File

@ -74,7 +74,7 @@
applies. applies.
</description> </description>
</parameter> </parameter>
<parameter name="confLevel" type="double" default="0.9" range="0.5,1.0"> <parameter name="confLevel" type="double" default="0.9" range="0.5:1.0">
<description> <description>
Confidence level, between 0.5 and 1.0, used in Confidence level, between 0.5 and 1.0, used in
computing the hypocenter confidence ellipsoid. computing the hypocenter confidence ellipsoid.

View File

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<seiscomp> <seiscomp>
<module name="invextr" category="Inventory"> <module name="invextr" category="Inventory">
<description>Extract channels from inventory.</description> <description>
Extract and clean or remove streams from inventory.
</description>
<configuration> <configuration>
</configuration> </configuration>
@ -52,11 +54,15 @@
</option> </option>
<option flag="" long-flag="chans" argument="arg"> <option flag="" long-flag="chans" argument="arg">
<description> <description>
A comma separated list of channel IDs to extract A comma separated list of streams to extract or remove (--rm)
which can contain wildcards. Default: *.*.*.* meaning which can contain wildcards. Avoiding confusion with files
all streams. 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 &quot;GE.*.*.BHZ,GE.MORC.*.*&quot; inv.xml Example: invextr --chans &quot;GE.*.*.BHZ,GE.MORC.*.*&quot; inventory.xml
</description> </description>
</option> </option>
<option flag="" long-flag="nslc" argument="arg"> <option flag="" long-flag="nslc" argument="arg">
@ -68,7 +74,7 @@
<option flag="r" long-flag="region" argument="arg"> <option flag="r" long-flag="region" argument="arg">
<description> <description>
Filter streams by geographic region given as Filter streams by geographic region given as
"South, East, North, West". Region is unused by default. "South,West,North,East". Region is unused by default.
</description> </description>
</option> </option>
<option flag="" long-flag="rm" argument="arg"> <option flag="" long-flag="rm" argument="arg">
@ -79,8 +85,18 @@
Example: invextr --rm --chans &quot;GE.*&quot; inv.xml Example: invextr --rm --chans &quot;GE.*&quot; inv.xml
</description> </description>
</option> </option>
</group>
<group name="Output">
<option flag="f" long-flag="formatted"> <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> </option>
</group> </group>
</command-line> </command-line>

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<seiscomp> <seiscomp>
<module name="msrtsimul" category="Acquisition"> <module name="msrtsimul" category="Acquisition" standalone="true">
<description>MiniSEED real time playback and simulation</description> <description>MiniSEED real time playback and simulation</description>
<command-line> <command-line>
<synopsis> <synopsis>
msrtsimul [OPTION] miniSEED-file msrtsimul [OPTION] miniSEED-file
</synopsis> </synopsis>
<group name="Verbosity"> <group name="Verbosity">
<option flag="h" long-flag="help" argument="" unit=""> <option flag="h" long-flag="help" argument="">
<description> <description>
Display this help message. Display this help message.
</description> </description>
</option> </option>
<option flag="v" long-flag="verbose" argument="" unit=""> <option flag="v" long-flag="verbose" argument="">
<description> <description>
Verbose mode. Verbose mode.
</description> </description>
@ -35,7 +35,7 @@
Minutes to skip at the beginning. Minutes to skip at the beginning.
</description> </description>
</option> </option>
<option flag="m" long-flag="mode" argument="string" unit=""> <option flag="m" long-flag="mode" argument="string" unit="" values="realtime,historic">
<description> <description>
Playback mode: choose between 'realtime' and 'historic' Playback mode: choose between 'realtime' and 'historic'
</description> </description>
@ -59,7 +59,8 @@
</option> </option>
<option flag="u" long-flag="unlimited" argument="" unit=""> <option flag="u" long-flag="unlimited" argument="" unit="">
<description> <description>
Allow miniSEED records which are not 512 bytes. Allow miniSEED records which are not 512 bytes. By default
seedlink supports 512 bytes only.
</description> </description>
</option> </option>
</group> </group>

Some files were not shown because too many files have changed in this diff Show More