ew2sc3

Earthworm hypo2000_arc messages importer

Description

Earthworm to SeisComP3 application.

This application connects to an Earthworm export module using IP protocol and listens for messages through a specified socket.

Communication

The communication between Earthworm and SeisComP3 is done by using Earthworm export_generic protocol. It’s a TCP/IP protocol over which text messages are sent by Earthworm. An hearbeat is sent by both ends of the socket (Earthworm and SeisComP3), at a regular rate. If for some reason the hearbeat is not received during a configurable amount of time (which should be higher than the expected heartbeat rate), then the connection is re-initiated.

Message processing

The messages sent trough the socket are identified by their institute ID and their module ID. These IDs are configured within the export_generic Earthworm module and Earthworm system. Ew2sc3 only supports hypo2000_arc messages type from Earthworm identified by the message ID 14. Therefore, any other message which ID is not 14 will be ignored.

When a message is received, ew2sc3 will first assess whereas it is correct or not according to the institute and module IDs. Then, the hypo2000_arc message is parsed and picks, arrivals, magnitudes and origin are created. A new origin message with associated magnitudes, arrivals and picks is then sent to SeisComP3 messaging system so it can be properly treated by scevent.

In case latitude and longitude in the hypo2000_arc message are null (space filled), a default location is used.

Pick uncertainties

Hypo2000_arc message uses weights for pick quality, 0 being the best picks and 4 the worst. Those weights are translated into uncertainties for SeisComP3. A list of uncertainties is configured into ew2sc3 configuration file (pickerUncertainties). Then weights from 0 to maxUncertainty are matched with the minimum and maximum uncertainties. Finally, a linear formula allows to find the uncertainty corresponding to the assigned weight.

More

A great deal of information is available at Earthworm User Community Wiki http://love.isti.com/trac/ew/wiki

More informations on the content of Hypo2000_arc message can be found on Earthworm website. http://love.isti.com/trac/ew/wiki/Year_2000_Compliant_Earthworm_Message_Formats

More informations on export_generic configuration can be found on Earthworm website. http://love.isti.com/trac/ew/wiki/export_generic

Configuration

etc/defaults/global.cfg
etc/defaults/ew2sc3.cfg
etc/global.cfg
etc/ew2sc3.cfg
~/.seiscomp3/global.cfg
~/.seiscomp3/ew2sc3.cfg

ew2sc3 inherits global options.

ew2sc3.configPath

Type: string

Folder to store logs and achives of hypo2000_arc files from Earthworm export_genericer

ew2sc3.senderPort

Type: int

Earthworm export_generic’s socket to listen to

ew2sc3.modID

Type: int

Expected Earthworm Module ID (ew2sc3 will read the message only if its ModID is correct). Set to 0 (MOD_WILDCARD) to accept any Earthworm Module ID.

ew2sc3.instID

Type: int

Expected Earthworm Institute ID (ew2sc3 will read the message only if its InstID is correct) Set to 0 (INST_WILDCARD) to accept any Earthworm Institute ID.

ew2sc3.customAgencyID

Type: string

Institute name to use when storing origin into database. If blank, the origin will have the system AgencyID. If specified, the origin will have the given AgencyID.

ew2sc3.author

Type: string

Author name to use when storing origin into database.

ew2sc3.hostname

Type: string

Earthworm export_generic IP address to connect to

ew2sc3.defaultLatitude

Type: string

Default event latitude to use if hypo2000_arc location is null (space filled)

ew2sc3.defaultLongitude

Type: string

Default event longitude to use if hypo2000_arc location is null (space filled)

ew2sc3.locatorProfile

Type: string

Name of the earth model used by Earthworm location process

ew2sc3.enableArchiving

Type: boolean

Enable/Disable hypo2000_arc message file archiving (usefull for troobleshooting)

ew2sc3.myAliveInt

Type: int

Time interval (in sec) between two heartbeats messages sent by SeisComP3. This parameter should be lower than Earthworm export_generic RcvAliveInt parameter

ew2sc3.senderTimeout

Type: int

Maximum time (in millisecond) before the connection to Earthworm export_generic times out. This parameter has to be set accordingly to Earthworm export_generic parameters

ew2sc3.maxMsgSize

Type: int

Maximum message size (in char) between the Earthworm export_generic and ew2sc3. This parameter has to be set accordingly to Earthworm export_generic MaxMsgSize parameter

ew2sc3.myAliveString

Type: string

Alive string to send to Earthworm export_generic in order to keep the connection alive. This string should be identical as Earthworm export_generic RcvAliveText string

ew2sc3.senderAliveString

Type: string

Alive string expected from Earthworm export_generic in order to keep the connection alive. This string should be identical as Earthworm export_generic SendAliveText string

ew2sc3.enableUncertainties

Type: boolean

Enable/Disable uncertainties conversions. Earthworm doesn’t have uncertainties but weight from 0 to 4. If enabled, ew2sc3 will convert pick weight to uncertainties followind a simple mapping between weight and pickerUncertainties list.

ew2sc3.pickerUncertainties

Type: list:double

Uncertainty values (in sec) to use when enableUncertainties is enabled. Refer to scolv document for syntax.

ew2sc3.maxUncertainty

Type: double

Maximum weight value from Earthworm corresponding to maximum uncertainty

Command-line

Generic

-h, --help

show help message.

-V, --version

show version information

--config-file arg

Use alternative configuration file. When this option is used the loading of all stages is disabled. Only the given configuration file is parsed and used. To use another name for the configuration create a symbolic link of the application or copy it, eg scautopick -> scautopick2.

--plugins arg

Load given plugins.

-D, --daemon

Run as daemon. This means the application will fork itself and doesn’t need to be started with &.

--auto-shutdown arg

Enable/disable self-shutdown because a master module shutdown. This only works when messaging is enabled and the master module sends a shutdown message (enabled with –start-stop-msg for the master module).

--shutdown-master-module arg

Sets the name of the master-module used for auto-shutdown. This is the application name of the module actually started. If symlinks are used then it is the name of the symlinked application.

--shutdown-master-username arg

Sets the name of the master-username of the messaging used for auto-shutdown. If “shutdown-master-module” is given as well this parameter is ignored.

Verbosity

--verbosity arg

Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info, 4:debug

-v, --v

Increase verbosity level (may be repeated, eg. -vv)

-q, --quiet

Quiet mode: no logging output

--component arg

Limits the logging to a certain component. This option can be given more than once.

-s, --syslog

Use syslog logging back end. The output usually goes to /var/lib/messages.

-l, --lockfile arg

Path to lock file.

--console arg

Send log output to stdout.

--debug

Debug mode: –verbosity=4 –console=1

--log-file arg

Use alternative log file.

Messaging

-u, --user arg

Overrides configuration parameter connection.username.

-H, --host arg

Overrides configuration parameter connection.server.

-t, --timeout arg

Overrides configuration parameter connection.timeout.

-g, --primary-group arg

Overrides configuration parameter connection.primaryGroup.

-S, --subscribe-group arg

A group to subscribe to. This option can be given more than once.

--encoding arg

Overrides configuration parameter connection.encoding.

--start-stop-msg arg

Sets sending of a start- and a stop message.

Database

--db-driver-list

List all supported database drivers.

-d, --database arg

The database connection string, format: service://user:pwd@host/database. “service” is the name of the database driver which can be queried with “–db-driver-list”.

--config-module arg

The configmodule to use.

--inventory-db arg

Load the inventory from the given database or file, format: [service://]location

--db-disable

Do not use the database at all