56
Part 1: Introduction to SeisComP

Part 1: Introduction to SeisComP - gfz-potsdam.de

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Part 1: Introduction to SeisComP - gfz-potsdam.de

Part 1: Introduction to SeisComP

Page 2: Part 1: Introduction to SeisComP - gfz-potsdam.de

What is SeisComP?

The Seismological Communication Processor (SeisComP) is a concept for a networked seismographic system, originally developed for the GEOFON network and further extended within the projects MEREDIAN (“Mediterranean-European Rapid Earthquake Data Information and Archiving Network”) and GITEWS (“German Indian ocean Tsunami Early Warning System”). SeisComP development is coordinated by the GEOFON software development group at GFZ Potsdam ([email protected]).

SeisComP is free software, consisting of several sub-packages.

Page 3: Part 1: Introduction to SeisComP - gfz-potsdam.de

Tasks of SeisComP

Data acquisition Data quality control Data recording Real-time communication Network status monitoring Real-time data processing Issuing event alerts Waveform archiving Waveform data distribution

Page 4: Part 1: Introduction to SeisComP - gfz-potsdam.de
Page 5: Part 1: Introduction to SeisComP - gfz-potsdam.de

What is SeedLink?

SeedLink is a data acquisition system, which lays at the core of SeisComP acquisition package. SeedLink clients connect to the server using a TCP/IP application level protocol (SeedLink protocol).

The data source of a SeedLink server can be anything which is supported by a SeedLink plugin—a small program that sends data to the SeedLink server. The plugin API is defined in C language, but wrappers exist for C++, Java and Python. Data supplied by a plugin can be in a form of Mini-SEED packets or just raw integer samples with accompanying timing information.

Page 6: Part 1: Introduction to SeisComP - gfz-potsdam.de

Digitizer support

Plugins for following digitizers have been implemented by GFZ, ORFEUS and others:

● Quanterra Q380/Q680, Q4120 and Q730 (via Comserv)● Quanterra Q330 (UDP/IP)● EarthData PS2400 and PS6-24● Lennartz M24, PCM 5800 and MARS-88● Güralp DM24● Kinemetrics K2● Geotech DR-24● Nanometrics HRD-24● SARA SADC10/18/20/30● Lacrosse 2300 weather station

Page 7: Part 1: Introduction to SeisComP - gfz-potsdam.de

SeedLink clients

SeisComP includes the following standard clients:● slarchive saves data to the disk in Mini-SEED format, using SDS

(SeisComP Data Structure), BUD (Buffer of Uniform Data) or a user-defined directory structure.

● slqplot is used to plot the traces in real time, either in X-Window or into a file.

● slinktool is used mainly for testing the server and to get info about the available stations, time spans of streams, gaps, etc.

Using the libslink software library or its Java counterpart JSeedLink, C and Java programmers can create custom SeedLink clients for their own real-time data processing applications without having to know the details of SeedLink protocol. libslink supports Linux/UNIX, Windows and MacOS X platforms.

Page 8: Part 1: Introduction to SeisComP - gfz-potsdam.de

Data import and export

In addition to plugins that talk directly to a digitizer, plugins for exporting data from the following data acquisition systems are available:

● IRIS/GSN Live Internet Seismic Server (LISS)● IRIS/IDA Near Real-Time System (NRTS)● Earthworm● Kinemetrics' Antelope● Nanometrics' NAQS● Güralp's SCREAM● RefTek's RTPD

Earthworm, Antelope and NAQS can also work as SeedLink clients, importing data from SeedLink.

Page 9: Part 1: Introduction to SeisComP - gfz-potsdam.de

Overview of SeedLink connectivity

Page 10: Part 1: Introduction to SeisComP - gfz-potsdam.de

Part 2: What's new in SeisComP 2.5

Page 11: Part 1: Introduction to SeisComP - gfz-potsdam.de

In short

Major new features in SeisComP 2.5 are● integration of former add-on packages (SHM, AutoLoc2);● modular and extensible configuration script;● configuration profiles.

Page 12: Part 1: Introduction to SeisComP - gfz-potsdam.de

Modular structure of SeisComP

Earlier SeisComP versions supported only data acquisition. Add-on data processing and analysis packages, such as AutoLoc and SHM, were available, but not supported by make_key/make_conf scripts.

SeisComP 2.5 introduces a new directory structure, which makes it easy to manage sub-packages. The modular configuration script supports all included sub-packages and can be easily extended to support additional ones.

SeisComP now resides in $HOME/seiscomp, which contains a sub-directory for each sub-package, as well as key for top-level “key files” and pkg for package configuration modules. The latter are shell scripts that must have certain interface. If such a script is added to pkg, the package will be automatically recognized by the configuration script.

Page 13: Part 1: Introduction to SeisComP - gfz-potsdam.de

Sub-packages

SeisComP 2.5 consists of the following sub-packages:● acquisition: SeedLink server and its plugins, slarchive.● autopick (part of SeisPy): creates pick list, which can be used for

automatic location of events and triggered recording ofwaveforms.

● autoloc (part of SeisPy): uses the pick list to create a list ofautomatic earthquake locations.

● slmon (part of SeisPy): creates a web-page that displays data and feed latency of stations.

● seisgram (based on SeisGram2K by Anthony Lomax): shows real-time waveforms from multiple stations

● qplot: displays waveforms in a format that resembles drumrecordings; can also create GIF files to be displayed on web page.

● analysis (based on Seismic Handler by Klaus Stammler): can be used to analyse waveforms and correct automatick picksmanually.

Page 14: Part 1: Introduction to SeisComP - gfz-potsdam.de

Key files

The concept of key files, used by the acquisition package since SeisComP 1.0, has been extended to all sub-packages.

In SeisComP 2.5, there are two levels of key files● Top-level key files, located in $HOME/seiscomp/key/ contain

parameters that are of interest to many packages, eg., station latitude/longitude. In future SeisComP versions, this information might be taken from the inventory database.

● Package-level key files, located in $HOME/seiscomp/package/key/, contain parameters that are of interest to a specific package. Q330 authorization code (acquisition) and STA length (autopick) fall into this category.

Page 15: Part 1: Introduction to SeisComP - gfz-potsdam.de

Key files (contd.)

Both levels, described previously, contain 4 types of key files:● global: parameters that are common to all stations. Eg., name of

data center.● network: parameters that are common to all stations of one

network. Name of the network is an obvious example.● station: parameters of a station.● profile: contains the same parameters as “station” key file, but is

shared by one or more stations.

Page 16: Part 1: Introduction to SeisComP - gfz-potsdam.de

Configuration profiles

Configuration profile is a set of station parameters, which is shared by one or more stations. It is possible to define individual profiles for each sub-package. For example, you can define an acquisition profile for each SeedLink server you use, which saves you from the tedious job of entering the same station parameters over and over again.

Likewise, it might be useful to define profiles for other sub-packages, such as an autopick profile for each set of stations using differentinstrumentation.

Page 17: Part 1: Introduction to SeisComP - gfz-potsdam.de

Plugin templates

New plugins are automatically recognized by the configuration script when templates and a special key file are added to $HOME/seiscomp/acquisition/templates/source/

It is possible to define multiple specializations of existing plugins, eg., a chain_plugin specialization, which renames networks, stations or streams, creates downsampled streams and so on.

When plugin specializations are used, it is rarely necessary to modify configuration files by hand and risk losing the changes when the files are overwritten.

Page 18: Part 1: Introduction to SeisComP - gfz-potsdam.de

Distribution

SeisComP 2.5 is distributed as a single tar file, containing both source and precompiled binaries (the idea was borrowed from Seismic Handler). The package is installed by simply unpacking it in a chosen directory and executing the setup script. If necessary, the installed package can be be recompiled by entering a couple of “make”commands as described in the README.

Page 19: Part 1: Introduction to SeisComP - gfz-potsdam.de

Part 3: Towards SeisComP 3.0

Page 20: Part 1: Introduction to SeisComP - gfz-potsdam.de

SeisComP releases

Release Date Highlights

1.0 February 2001 SeedLink 2.0 (plugin interface)Plugins for EarthData PS2400 and Lennartz M24

1.1 August 2001 SeedLink 2.1 (streams.xml, improved buffer structure)make_conf/make_key scriptsLISS plugin, SeedLink->Antelope connectivity

1.1.5 January 2002 SeedLink 2.5 (multi-station mode)

1.1.6 March 2002 GIF live seismograms

2.0 October 2003 SeedLink 3.0 (INFO request, time window extraction)libslink, chain_plugin, Comserv-independence

2.1 June 2004 Python add-on package (SeisPy) incl. AutoLoc2chain_plugin extension interface, triggered streams

2.5 March 2006 Integration of add-on packages, modular config script

3.0 future? Database integration, distributed architecture

Page 21: Part 1: Introduction to SeisComP - gfz-potsdam.de

Metadata (inventory)

SeedLink can only transfer waveform data. Thus, the data is useless for seismologists, unless they have obtained metadata (station coordinates, response, etc.) via other channels or they make assumptions about station hardware (seismometer type, etc.). Inearlier SeisComP versions, metadata did not exist at all; SeisComP 2.5 includes limited metadata, which is in simple cases (standard orientation, no history) enough to create dataless SEED volumes locally. SeisComP 3.0 will include full inventory database; metadata can be transferred via TCP/IP using SeedLink's companion protocol—ArcLink.

Page 22: Part 1: Introduction to SeisComP - gfz-potsdam.de

Distributed architecture

Data processing modules, most notably autopick and autoloc are offered for SeisComP 2.x as an add-on, but all data processing must take place on a single computer. Secondly, if a user modifies automatic picks manually, the modified picks will not end up indatabase and the event location and magnitude will not be updated.

In order to solve the above problems, a new data processing concept is being developed. According to the new concept, all modules are communicating via so-called “microkernel”. If, eg., a new pick comes in or an old pick is modified, all relevant modules are notified, so the location and magnitude can be recalculated. The modules can run on different machines and communicate over network, it is thus possible to transfer only picks instead of complete waveform data to save network bandwidth. More processing modules, such as modules for calculating different magnitudes, can be added to the systemdynamically.

Page 23: Part 1: Introduction to SeisComP - gfz-potsdam.de

Database

SeisComP database has 2 major components:● Inventory DB contains all information that is needed for

IDL:iris.edu/Fissures/IfNetwork/Instrumentation:1.0 and dataless SEED volumes.

● Event DB contains event information, such as origins,magnitudes, pick associations, etc.

These components should be viewed as groups of tables in a single (MySQL, etc.) database. In addition to the two groups, there might be tables that contain user profiles, etc.

Inventory DB Event DB

SeisComP DB

Page 24: Part 1: Introduction to SeisComP - gfz-potsdam.de

XML schema

Database schema is accompanied by an XML schema for data exchange. Both are mappings of the general SeisComP object model.

Net_code Descriptio Net_start Net_end

Net_code Net_start Sta_code Sta_start Sta_end Descripti Latitude Longitud Elevatio

<network code=”GE” description=”GEOFON” start_ <station code=”RGN” description=”GEOFON/GR</network>

DB schema

UML diagram

XML schema

Relationaldatabase XML document

Page 25: Part 1: Introduction to SeisComP - gfz-potsdam.de

networkcodedescriptionstart_timeend_timeinstitutionsclasstype

stationcodedescriptionstart_timeend_timelatitudelongitudeelevationdepth seis stream

datalogger componentcodeazimuthdip

QC logstart_timeend_timemessage aux stream

codeloc_idstart_timeend_timeformatdevicesource_id

seismometernamedescriptionmanufactureretc.

seismometer_snseismometer

datalogger_sn

codeloc_idstart_timeend_timedepthformat

calibration

gain0gain1gain2

sn

index

dataloggernamedescriptionmanufactureretc. sample_rate

decimationsample_ratefilter_chain

FIR resp.namecoefficientsetc.

PAZ resp.namecoefficientsetc.

calibration

gain0gain1gain2

sn

(1..n)(0..n)

(0..n)

(1..n)

(1..3)

(0..n)

(0..n)(0..n)

(1..n)

inventory

(1..n

)

(1..n)

(1..n)(0..n)

(0..n)

outage

start_timeend_time

outage

start_timeend_time

(0..n)

aux device,routing

Provisional SeisComP inventory model

Page 26: Part 1: Introduction to SeisComP - gfz-potsdam.de

Provisional SeisComP inventory model (contd.)

routing

networkstation

inventory

(0..n

)

(0..n)

network,seismometer,datalogger,FIR resp.,PAZ resp.

aux devicenamedescriptionmodelmanufacturer

aux sourceiddescriptionunitconversionsample_rate

(1..n)

arclinkstart_timeend_timeaddresspriority

seedlinkaddresspriority

(0..n

)

(0..n)

Page 27: Part 1: Introduction to SeisComP - gfz-potsdam.de

XML-SEED is an XML format, where each SEED blockette is directly mapped to an XML element. Thus, XML-SEED, like SEED, is a relatively low-level format, which is good for building self-consistent volumes for data exchange, but not very useful for the purpose of maintaining of large networks. In particular:

● SEED does not have a notion of digitizer; only FIR filters are specified for each channel. It is difficult if not impossible to repair SEED volumes if it is found that one particular digitizer model has an incorrect FIR filter—one has to find all SEED volumes where this digitizer is used (based on additional knowledge) and fix all streams that use the FIR filter in question.

● SEED does not distinguish between component, channel and stream, so it is necessary to specify, eg., orientation and sample rate independently for each stream, even though VHZ, LHZ, BHZ have always the same orientation and BHZ, BHN, BHE have always the same sample rate. If it is found that orientation or sample rate is incorrect, all streams must be modified.

SeisComP inventory model and XML-SEED

Page 28: Part 1: Introduction to SeisComP - gfz-potsdam.de

SeisComP inventory model and XML-SEED (contd.)

The primary goal of SeisComP inventory model is to simplify the maintenance of large heterogeneous seismic networks, consisting of multiple sub-networks. We avoid duplicating the information—there is one definition for each seismometer and digitizer, which are referred to. Thus, if a digitizer has incorrect FIR filter or a seismometer hasincorrect gain, it has to be corrected only in a single location.

The inventory model is “DHI-compatible” in a sense that it specifies all information needed for DHI. Some of this information, such as digitizer model, is missing in SEED. Creating a DHI instrumentation object (IDL:iris.edu/Fissures/IfNetwork/Instrumentation:1.0) from an instance of inventory model (either database or XML file) is straightforward.

We have developed a Python script that creates dataless SEED from an instance of inventory model. XML-SEED will be supported in near future.

Page 29: Part 1: Introduction to SeisComP - gfz-potsdam.de

Metadata exchange

ArcLinkserver

XMLTCP/IP

ArcLinkclient

SQL

Da

tale

ssS

EE

D

DB

SQ

L

XM

L

Da

tale

s sS

EE

DX

ML

ArcLinkclient

XMLTCP/IP

ArcLinkserver

SQLSQL

ArcLinklibrary

SQLDB

SQ

L

ArcLinklibrary

Da

tale

ssS

EE

DX

ML

Page 30: Part 1: Introduction to SeisComP - gfz-potsdam.de

Part 4: ArcLink/DHI

Page 31: Part 1: Introduction to SeisComP - gfz-potsdam.de

ArcLink node

Server

TCP port 18001

Request handler

req

ue

stpipe

statu

spipe Data product

(SEED or XML file)

Configurable parameters:

● Maximum number of parallel request handlers (eg., number of requests processed in parallel).

● Number of pre-forked requesthandlers.

● Length of request queue.● Maximum number of parallel TCP/IP

connections.

(1..n)

Data repository

Page 32: Part 1: Introduction to SeisComP - gfz-potsdam.de

Inventory DB

Request handler

Inventorymodule

Eventmodule

Waveformmodule

Request handler

Data archive Event DB

Data repository

Server

Page 33: Part 1: Introduction to SeisComP - gfz-potsdam.de

ArcLink network

ActiveArcLinknode

ActiveArcLinknode

ActiveArcLink

node

Inventory DBsynchronization

Client

Prim

ary

conn

ectio

nSeco

ndary

connecti

on

Secondary

connection

Inventory DB

synchronization

Inventory DB

synchronization

PassiveArcLink

node

Secondary

connection

Page 34: Part 1: Introduction to SeisComP - gfz-potsdam.de

ArcLink user interfaces

ArcLink network

command-lineclient

(arclinktool)

WWWinterface breq_fast AutoDRMDHI

JWeed VaseJPlotResp

Page 35: Part 1: Introduction to SeisComP - gfz-potsdam.de

Request format General request format:

REQUEST request_type attributesstart_time end_time network station stream location constraints...END

Sample inventory request:

REQUEST INVENTORY instruments=true outages=false logs=true2005,09,01,00,00,00 2005,09,01,00,10,00 * . restricted=false2005,09,01,00,00,00 2005,09,01,00,10,00 * * BH* * latmin=50 latmax=60END

Sample waveform request:

REQUEST WAVEFORM format=FSEED2005,09,01,00,00,00 2005,09,01,00,10,00 GE WLF BH*2005,09,01,00,00,00 2005,09,01,00,10,00 GE KBS BHZ 00END

Page 36: Part 1: Introduction to SeisComP - gfz-potsdam.de

Request types

Request Type Attributes Product Format

INVENTORY instruments=true|falseoutages=true|falselogs=true|false

XML

RESPONSE format=SEED|XSEED Dataless SEEDXML (XML-SEED)

WAVEFORM format=MSEED|FSEED|XSEED Mini-SEEDFull SEEDXML (XML-SEED)

EVENTS picks=true|false XML (QuakeML)

Page 37: Part 1: Introduction to SeisComP - gfz-potsdam.de

CORBA & DHI

Common Object Request Broker Architecture (CORBA) is a standard for distributed computing—running single application on multiple physical computers. The interface of a CORBA object can be used on the client side as a normal Java/C++ object; the implementation of the object runs on the server side.

Data Handling Interface (DHI) is a specification of CORBA objects for accessing seismological data.

DHI server

Objectimplementation ORB

Objectimplementation ORB

ObjectinterfaceORB

ObjectinterfaceORB

DHI client

Inter-ORBprotocol

Inter-ORBprotocol

Page 38: Part 1: Introduction to SeisComP - gfz-potsdam.de

Problems with CORBA

CORBA is an elegant solution for systems whose all components are trusted, but security problems arise when clients are executed by untrusted users on the Internet. Network-specific security checks are even in conflict with the fundamental idea of CORBA—to hide from the programmer that the objects are not running on the local machine.

For the same reason, CORBA does not provide any standard methods for determining the IP of client. Notion of “logging in” does not exist in CORBA—the client typically obtains a reference to existing CORBA object via nameserver; this object is then used to create other CORBA objects. It it is not possible to see which users have which objects in the server—CORBA works behind the scenes and the programmer has very little control over it. Combined with the lack of user authentication in DHI, it makes very difficult to make statistics.

Page 39: Part 1: Introduction to SeisComP - gfz-potsdam.de

Problems with DHI

Due to the lack of user authentication, it is not possible to provide access to restricted datasets and make user-based statistics.

Fast and stable network connection is required, because CORBA connections have relatively high overhead and it is not possible to resume broken download.

Download size must be limited to few megabytes to avoid running out of memory. Nevertheless, the server may run out of memory if many clients request data at the same time.

No routing. The user must know in advance from which datacenter to request the data.

Page 40: Part 1: Introduction to SeisComP - gfz-potsdam.de

Problems with DHI (contd.)

Mini-SEED headers are removed. Even though Mini-SEED data can be reconstructed on the client side, some information, such as timing quality, is lost.

No support for non-waveform Mini-SEED data (eg., log records). Even though it is theoretically possible to construct full SEED on the

client side, no software exists to accomplish that. Too much flexibility—many interfaces are not implemented in any of

the existing servers. Developers of DHI clients need to find out which interfaces are implemented in which servers by trial and error.

No documentation.

Page 41: Part 1: Introduction to SeisComP - gfz-potsdam.de

ArcLink + DHI = ?

Despite of the problems, DHI is attractive due to a range of GUI clients. Therefore we have implemented a DHI server, which acts as a proxy to ArcLink network. A user can install this package in the local network of his institute.

This approach solves many of the problems:● It is possible to set username and password in ArcLink/DHI

configuration, so the administrator of the ArcLink server can make institute-based statistics and provide access to restricted datasets.

● Using ArcLink/DHI, a user connects to “virtual” datacentre—ArcLink provides request routing, which is missing in DHI.

● There are no security problems, because the users are trusted.● In case of fast local network, CORBA overhead is not a problem.

Page 42: Part 1: Introduction to SeisComP - gfz-potsdam.de

To do...

Reorganize GEOFON inventory DB. Review and “standardize” inventory schema

● add QC logs, aux streams and outages;● allow reuse of network code for temporary nets;● add “restricted” attribute to individual streams;● add “last_modified” attribute;● add (default) “depth” attribute to station;● try to use FISSURES terminology where applicable;● ...

Event request. Inventory DB synchronization.

Page 43: Part 1: Introduction to SeisComP - gfz-potsdam.de

To do... (contd.)

Full SEED (mostly done) and XML-SEED (should be easy). breq_fast and AutoDRM interfaces. Tools to edit inventory DB. Server improvements:

● user profile management;● request priorities;● blocking download;● save/restore mechanism to allow server restart without canceling

requests.

Page 44: Part 1: Introduction to SeisComP - gfz-potsdam.de

Appendix

Page 45: Part 1: Introduction to SeisComP - gfz-potsdam.de

autopick/autoloc

Page 46: Part 1: Introduction to SeisComP - gfz-potsdam.de

slmon

Page 47: Part 1: Introduction to SeisComP - gfz-potsdam.de

seisgram

Page 48: Part 1: Introduction to SeisComP - gfz-potsdam.de

qplot

Page 49: Part 1: Introduction to SeisComP - gfz-potsdam.de

analysis

Page 50: Part 1: Introduction to SeisComP - gfz-potsdam.de

Equipment used in GEOFON stations

STS-2 VBB seismometer

EarthData digitizer + SeisComP box

Page 51: Part 1: Introduction to SeisComP - gfz-potsdam.de

Seismic vault equipment

Seismometer STS-2

STS-2 Hostbox

DigitizerPowerbox Serial Line Driver

GPS Receiver

Page 52: Part 1: Introduction to SeisComP - gfz-potsdam.de

Recording site equipment

Directional WLAN Antenna

SeisComP Recorder Box

Powerbox

Batteries Charger

Transformer Box

Page 53: Part 1: Introduction to SeisComP - gfz-potsdam.de

SeedLink data flow in GFZ

Page 54: Part 1: Introduction to SeisComP - gfz-potsdam.de

Network data processing

Page 55: Part 1: Introduction to SeisComP - gfz-potsdam.de

Data processing products

Page 56: Part 1: Introduction to SeisComP - gfz-potsdam.de

The end