Hi Jan -
Thank you for your interest in ISTI’s open source work with SC3.
ISTI will have a poster at ESC in Malta for the upcoming “10 Years of
SeisComP3” session, and there you and anyone else interested can get a
lot more detail from us on one of our projects: the work ISTI did with
the US National Weather Service and NOAA for the tsunami warning centers
in the United States. In summary: the weather service wanted to use
their existing front-end GUI architecture but have the SeisComP3
processing engine as a back-end. ISTI worked on a connector between
SeisComP3 and the AWIPS II GUI, as well as a number of modules which you
can see here:
As our role in this project wound down, we submitted all the code we
delivered to GFZ January of this year. More details on those modules
below if anyone is interested.
ISTI is currently working on another open source project for a different
client which will involve another SeisComP3 module, this time with web
service output. We recently asked GFZ if there’s an updated process we
should follow for code submission, since we are just at the beginning of
this new project. The answer we received was that GFZ is reviewing
SeisComP3 licensing policies, and once this is resolved there will be
clear paths for contributing to GitHub.
In the meantime, however; anyone who wishes to download a copy of the
code ISTI delivered for NOAA, let me or anyone at ISTI know, and we’ll
get you a download link.
More detail on ISTI’s open source modules below
Moment Tensor – istiMT – This module serves to automatically compute a
moment tensor given an earthquake of a sufficient magnitude (the exact
value is configurable, but the default is to calculate the moment tensor
given a 7.5 Mw magnitude). This module utilizes pre-computed Green’s
functions, and uses either the “WPhase” method, or the National
Earthquake Information Center’s (NEIC’s) method for computing the focal
mechanism based on the P-wave. In addition to the primary QuakeML focal
mechanism message, the data and intermediary results are saved and
packaged in an HDF5 file. The results of this module will appear within
the existing SeisComP3 GUIs.
Array Processing – istiAP – This module calculates an estimate of
rupture length and propagation using a sliding-window FK-analysis
method. This computation, like that of istiMT, relies on a magnitude
threshold in order to kick off computation (which is also set to a
default of 7.5). A back-azimuth and apparent velocity are found for each
window, which is then back projected onto the original hypocenter in
order to attain an idea of how the rupture progresses over time. The
result is not supported by the standard QuakeML message format, and so
instead an “event” object is created notifying the end-user that the
computation has completed and results are packaged and made available in
the HDF5 format. Results are highly dependent on array geometry, so
proper configuration of an array suitable for examining an earthquake at
teleseismic distance is a prerequisite to attain meaningful results. The
results of this module will not appear within the existing SeisComP3
GUIs but are written to log files and the HDF5 files.
Finite Fault Solution – istiFFS – This module computes a finite fault
solution that discretizes the rupture area to provide more insight into
the earthquake characteristics. The module relies on having access to
the information provided by the focal mechanism in order to set the
initial parameters, and also requires access to the Green’s functions
that are used by istiMT. The resulting computation is not part of the
QuakeML standard, and so once again users are notified of results via an
"event" placeholder object, and the actual results are stored and
accessible in an HDF5 file. The results of this module will not appear
within the existing SeisComP3 GUIs but are written to log files and the
Wave Magnitude – istiWM – This serves to calculate specific magnitudes
(the mantle magnitude ‘Mm’, an “energy” magnitude ‘Me’, another version
of the surface wave magnitude ‘Ms’, and a discriminating ration known as
"theta". These magnitudes are calculations based on slower traveling
waves, but serve to give a more accurate idea of the earthquake
characteristics, particularly as relating to tsunamigenic earthquakes.
While SeisComP has a very nice interface for adding new magnitude types,
ISTI was not able to use the standard processing workflow which requires
amplitude measurements to be made apart from the magnitude processing
module. In our case, the products needed by the end user needed direct
access to the data streams, which is only available to scautopick/scamp
in the standard workflow.
The istiWM (for “wave magnitude”) workflow sees the module trigger
calculations for origin calculations, as happens with the standard
magnitude processor “scmag”, but then istiWM proceeds to lookup the time
window of interest around the arrivals, calculating the magnitude and
sending off the resulting QuakeML formatted product along with an
auxiliary data file stored in the HDF5 format. The magnitudes Mm, Me
and Ms will appear within the existing SeisComP3 GUIs but theta will
not. Theta results will only be written to the log files.
ISTI has updated the following core modules:
scevent – A function was added to find the nearest cities to an
earthquake and report that information in the “event description”. This
function was modeled after an existing method which provided the region
the earthquake is in and draws from the same table of information that
the regional description is located.
scautopick – Methods were added to roughly approximate pick polarity and
wave first motion and pass that information along with the computed results.
scautoloc – ISTI modified the original association routine to deal with
user-defined picks outside of the normal tool-set provided by the
standard GUIs. Specifically, logic was created to ensure the system
could effectively “blacklist” picks from being further incorporated in
automatic locations, as well as to ensure that a “dis-association” could
be forced that prevented picks from being automatically associated with
a particular event. ISTI also incorporated a QC method for "winnowing"
out bad picks. While SeisComP already provides QC methods incorporating
azimuthal gap, standard error, and a host of other metrics, this change
allows looking at these metrics and attempting to attain a better
solution by omitting picks before re-submitting to get a new location.
Up to three picks may be omitted from the final solution, picks to be
removed are determined via a naive “n squared” search over the set. This
behavior was identified as requiring a large amount of system resources,
and may be turned “on” or “off” in the configuration.