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