[installation] Change to nightly
This commit is contained in:
@ -2,68 +2,187 @@
|
||||
|
||||
All notable changes to SeisComP are documented here.
|
||||
|
||||
## 6.9.0
|
||||
## x.y.z
|
||||
|
||||
```SC_API_VERSION 16.4.0```
|
||||
```SC_API_VERSION 17.0.0```
|
||||
|
||||
- fdsnxml2inv
|
||||
- Fix samplerate conversion from double to fraction.
|
||||
- scmv
|
||||
- Fix crash if origin depth is not set.
|
||||
- fdsnws
|
||||
- Fix data availability sort for Python >= 3.13.
|
||||
- Fix conditional station requests. Requests involving the
|
||||
If-Modified-Since header failed since Twisted
|
||||
version 24.7. The http.stringToDatetime() now requires a
|
||||
byte string.
|
||||
With this version we add support for Qt 6 of all GUI applications. Binary distributions
|
||||
will build against the Qt version which is available by default in the respective
|
||||
Linux distribution, either Qt 5 or Qt 6.
|
||||
|
||||
The database schema changes from version 0.13.2 to 0.14. This basically incorporates
|
||||
the addition of a new object `Catalog` as part of the EventParameters datamodel and
|
||||
changes indexes from object `QCLog`. Both objects are not yet used in SeisComP and
|
||||
they are added as basis for new features. The database schema applies changes in its
|
||||
datatypes: BLOBS will be converted to LONGTEXT (MySQL) or TEXT (PostgreSQL, SQLite3).
|
||||
The database migration to schema version 0.14 can be a long lasting operation so
|
||||
please schedule a downtime of your system accordingly.
|
||||
|
||||
Furthermore the foreign key constraints from a concrete type table like Origin to
|
||||
the Object table is removed. This constraint was never required by SeisComP itself
|
||||
as it takes care of correct removal of all derived table rows but it introduces a
|
||||
performance penalty when deleting objects. Dropping the constraint might affect
|
||||
custom database script which rely on it. Please be aware of that change.
|
||||
|
||||
- seiscomp
|
||||
- Fix module count with `seiscomp status`
|
||||
- documentation
|
||||
- Consider new parameters `values` and `range` in description of
|
||||
configuration and command-line parameters which will be highlighted in
|
||||
documentation and exposed in scconfig.
|
||||
- trunk
|
||||
- Fix LOCSAT station correction file lookup if `SEISCOMP_LOCSAT_TABLE_DIR`
|
||||
environment variable is being used.
|
||||
- Decode tokens when parsing a URL.
|
||||
- scevent
|
||||
- Provide optional REST API to return the target event an origin would be
|
||||
associated to.
|
||||
|
||||
## 6.8.4
|
||||
|
||||
- scevent
|
||||
- Read `eventAssociation.minimumScore` from configuration.
|
||||
|
||||
## 6.8.3
|
||||
|
||||
- caps_plugin
|
||||
- Exit if pipe to `seedlink` is broken.
|
||||
- trunk
|
||||
- Fix crash with empty filter parameter list and newer
|
||||
C++ compiler versions.
|
||||
- Do not call combined:// real-time recordstream with zero
|
||||
requests.
|
||||
|
||||
## 6.8.2
|
||||
|
||||
- ITAPER(): Support time spans with double precision, update filter
|
||||
documentation.
|
||||
- Application CLI option `-q, --quiet` took an argument which was not
|
||||
correct. It has been converted to a switch without argument.
|
||||
- Add `minPeriod` and `maxPeriod` to amplitude type configuration. Both
|
||||
are checked against the measured period to skip emitting amplitudes which
|
||||
are outside the allowed period range.
|
||||
- Support amplitude data conversion without `enableResponses = true`,
|
||||
e.g. when computing amplitudes on acceleration data. This implicitly
|
||||
includes support for amplitude updates for such data.
|
||||
- Add locrouter plugin, see
|
||||
https://github.com/SeisComP/common/blob/master/plugins/locator/router/descriptions/global_locrouter.rst.
|
||||
- Speed up trace rendering for large number of records.
|
||||
- Add support for reading GeoJSON and BNA in fep directory
|
||||
- Add support for reading fep file in spatial/vector
|
||||
- Add GeoJSON write support
|
||||
- Log each SQLite3 statement to debug if "debug" option is passed to URL.
|
||||
- Support SI units in amplitude and magnitude configuration for `minDist`, `maxDist`,
|
||||
`minDepth` and `maxDepth`.
|
||||
```
|
||||
amplitudes.MLv.maxDist = 8deg
|
||||
amplitudes.MLv.maxDepth = 80km
|
||||
```
|
||||
- Add Catalog support to datamodel.
|
||||
- magnitudes
|
||||
- MLc:
|
||||
- Add correction terms `c6` und `H` for considering vertical distance.
|
||||
- Consider source depth instead of vertical distance between station
|
||||
and origin for computing h.
|
||||
- Add correction terms `c7` and `c8` for exponential decay.
|
||||
- Update documentation with new style.
|
||||
- ql2sc
|
||||
- Add FocalMechanismReference to event for the preferred focal mechanism to
|
||||
force association.
|
||||
- GUI
|
||||
- Add Qt6 support
|
||||
- EventLists support passing the IDs of events in selected rows to an
|
||||
external script which can be configured with `eventlist.scripts.export`.
|
||||
- Add CSV table header information when exporting from the event list.
|
||||
- Hypocentral instead of epicentral distances may be shown if configured
|
||||
with `scheme.distanceHypocentral`.
|
||||
- Allow map zooming with shift + left mouse + dragging.
|
||||
- Fix segmentation fault if the magnitude table should be sorted and
|
||||
station magnitudes could not be found in the database or memory.
|
||||
- Save map measurements as GeoJSON
|
||||
- Add support for built-in FontAwesome icons as map symbols.
|
||||
- Print map symbols in map legends.
|
||||
- scesv
|
||||
- Support station annotations (shift+F9).
|
||||
- scolv
|
||||
- Attempt to fix a crash that is indicated by the terminal output:
|
||||
- Focal mechanisms show the station distribution on the map if station
|
||||
display is enabled (F9).
|
||||
- Add LQT rotation to picker.
|
||||
- Fix bug in picker when hidden unassociated picks become visible again after
|
||||
transferring a solution to the locator window.
|
||||
- If `olv.locator.presetFromOrigin = true` then the locator will be selected
|
||||
according to the methodID and earthModelID. If that is not found then
|
||||
the default locator will be set again rather than keeping the last selection.
|
||||
- Set OriginLocatorView depth type to "depth type set by locator" when
|
||||
presetFromOrigin is true and the depth type is unset, resetting the state of
|
||||
the origin set before.
|
||||
- Add tooltip with attribute content to method and earthModel label to
|
||||
allow inspecting long strings which do not fit into the label itself.
|
||||
- Add more flexible "Add station" dialog in picker which allows to filter
|
||||
identifiers, network and station types and sensor units.
|
||||
- Add more option to control initial picker behaviour.
|
||||
```
|
||||
QThread: Destroyed while thread is still running
|
||||
picker.rotation = ZRT
|
||||
picker.unit = Velocity
|
||||
picker.limitFilterToZoomTrace = true
|
||||
olv.loadAdditionalStations = true
|
||||
```
|
||||
|
||||
## 6.8.1
|
||||
|
||||
- scconfig
|
||||
- Allow parenthesis as profile names, e.g. for amplitude
|
||||
profiles.
|
||||
|
||||
## 6.8.0
|
||||
|
||||
- NonLinLoc locator plugin
|
||||
- Allow `SAVE_NLLOC_EXPECTATION` in NLL configuration
|
||||
files.
|
||||
- Increase precision to milliseconds for the following picker configuration values:
|
||||
- `picker.preOffset`
|
||||
- `picker.postOffset`
|
||||
- `picker.minimumTimeWindow`
|
||||
- Add `picker.auxiliary.profile` which supports multiple profiles to define
|
||||
and check for auxiliary channels.
|
||||
- Add controls to explicitly load auxiliary profiles
|
||||
- Add controls to toggle visibility of auxiliary profiles
|
||||
- Add spectrogram settings like in `scrttv` in a dockable widget (ctrl+shift+s) and
|
||||
remove the very basic spectrogram settings from the toolbar.
|
||||
- Add optional allow-/denylist for phases to be imported to ImportPicks dialog.
|
||||
- Add default configuration options for "Import picks" dialog.
|
||||
- scmv
|
||||
- Handle unset origin.depth and do not crash.
|
||||
- fdsnxml2inv
|
||||
- Set default start date to 1902-01-01 rather than 1980-01-01 if a start
|
||||
date is not specified for the StationXML node.
|
||||
- Use best precision when showing number differences in warnings.
|
||||
- scamp
|
||||
- Add command-line option `--formatted` for generating formatted XML along
|
||||
with `--ep`.
|
||||
- scautoloc
|
||||
- Add command-line option `--formatted` for generating formatted XML along
|
||||
with `--ep`.
|
||||
- scautopick
|
||||
- Add command-line option `--formatted` for generating formatted XML along
|
||||
with `--ep`.
|
||||
- scdb
|
||||
- Add option `-x` to wipe out all child objects of a public object from
|
||||
database. This option might make the most sense on `Inventory`,
|
||||
`EventParameters` or `Config`.
|
||||
```
|
||||
$ scdb -d localhost -x Inventory
|
||||
```
|
||||
- scevent
|
||||
- Add command-line option `--formatted` for generating formatted XML along
|
||||
with `--ep`.
|
||||
- Add command-line option `--reprocess` for ignoring event objects in
|
||||
input along with `--ep`.
|
||||
- Add `eventAssociation.enablePreferredFMSelection` option to control
|
||||
whether the preferred focalmechanism should be assigned automatically
|
||||
or not.
|
||||
- scmag
|
||||
- Add command-line option `--formatted` for generating formatted XML along
|
||||
with `--ep`.
|
||||
- Fix segmentation fault when processing arrivals without distance.
|
||||
- screpick
|
||||
- Add command-line option `--formatted` for generating formatted XML along
|
||||
with `--ep`.
|
||||
- scdumpobject
|
||||
- Tool removed entirely. The functionality has been added to scxmldump.
|
||||
- scxmldump
|
||||
- Add `--public-id` and `--with-childs` to export an object by its publicID
|
||||
from the database. This will even work with database extensions by
|
||||
loading the corresponding plugins such as `dmsm`.
|
||||
- scwfparam
|
||||
- Add support for custom list of periods.
|
||||
- LocSAT
|
||||
- Fix bug when a function with only one sample is
|
||||
interpolated. That usually lead to location
|
||||
errors such as "SVD routine can't decompose matrix".
|
||||
- Rewrite old old code to support reentrant processing and dynamic station
|
||||
count.
|
||||
- Improve performance.
|
||||
- Add PKiKP and PKIKP phases.
|
||||
- Update PKKP table.
|
||||
- Support custom phase list via [model].ph file.
|
||||
- NLL
|
||||
- Allow the use of SAVE_NLLOC_EXPECTATION.
|
||||
- iLoc
|
||||
- When reading a local velocity model file, If CONRAD is not specified,
|
||||
the index of the Conrad discontinuity was not set properly, therefore iLoc
|
||||
assumed the very first depth as the Conrad thus preventing the calculation
|
||||
of Pg/Sg phases. The calculation of travel times from a local velocity model
|
||||
was restricted to up to 6 degree distance.
|
||||
The Conrad discontinuity is no longer set to the surface when CONRAD is not
|
||||
specified in the local velocity model. Travel-time calculations from local
|
||||
velocity models now extended to 10 degrees.
|
||||
- Add `iLoc.usePickUncertainties` and `iLoc.defaultTimeError` to description.
|
||||
- doc
|
||||
- Replace Sphinx m2r2 with sphinx_mdinclude
|
||||
- diskmon
|
||||
- Fix stopped modules counter for diskmon.
|
||||
|
||||
## 6.7.9
|
||||
|
||||
@ -244,6 +363,9 @@ will be tackled in future updates.
|
||||
- Allow to disable SQLite3 disc syncrhronization to decrease time needed to
|
||||
save data in an SQLite3 database: `sqlite3:///path/to/file?sync=false`.
|
||||
- Add support for all synchronous flags of SQLite3 (`sync=[normal|full|extra]`).
|
||||
- Add option `amplitudes.[type].considerUnusedArrivals` which if enabled
|
||||
considers stations with unused (disabled) arrivals for amplitude and
|
||||
implicitly magnitude computations. Affects scamp, scmag and scolv.
|
||||
- scolv
|
||||
- Replace operator comment input control with a text edit control which
|
||||
allows new lines. Furthermore the restriction of 160 characters has been
|
||||
|
||||
@ -123,7 +123,7 @@ and configure it in the constructor.
|
||||
As marked in line 4, the call of the constructor of the base class is very
|
||||
important. It takes the command line parameters and sets up internal
|
||||
application variables. Without this call the application will either not run
|
||||
at all or show undefined/unexpected behaviour.
|
||||
at all or show undefined/unexpected behavior.
|
||||
|
||||
The constructor takes also the initial parameters of the application such as
|
||||
enabling a messaging connection and enabling database access.
|
||||
@ -155,7 +155,7 @@ All application methods are defined in the C++ header file
|
||||
Init
|
||||
^^^^
|
||||
|
||||
The workflow of the init function looks like this:
|
||||
The workflow of the :func:`init` function looks like this:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@ -394,7 +394,7 @@ returns the RecordStream instance which can be used to add stream requests.
|
||||
|
||||
The record stream service is configured either with configuration files
|
||||
(:confval:`recordstream`) or
|
||||
via command-line options ``-I`, ``--record-url``.
|
||||
via the command-line option ``-I, --record-url``.
|
||||
|
||||
The application finishes if the record stream read EOF. Running a :class:`StreamApplication`
|
||||
with :ref:`Seedlink<seedlink>` would probably never terminate since it is a
|
||||
|
||||
@ -47,10 +47,12 @@ EventParameters
|
||||
MomentTensorPhaseSetting [label="MomentTensorPhaseSetting", href="../base/api-python.html#api-python-datamodel-momenttensorphasesetting", target="_top"]
|
||||
MomentTensorStationContribution [label="MomentTensorStationContribution", href="../base/api-python.html#api-python-datamodel-momenttensorstationcontribution", target="_top"]
|
||||
MomentTensorComponentContribution [label="MomentTensorComponentContribution", href="../base/api-python.html#api-python-datamodel-momenttensorcomponentcontribution", target="_top"]
|
||||
Catalog [label="Catalog", href="../base/api-python.html#api-python-datamodel-catalog", target="_top"]
|
||||
Event [label="Event", href="../base/api-python.html#api-python-datamodel-event", target="_top"]
|
||||
EventDescription [label="EventDescription", href="../base/api-python.html#api-python-datamodel-eventdescription", target="_top"]
|
||||
OriginReference [label="OriginReference", href="../base/api-python.html#api-python-datamodel-originreference", target="_top"]
|
||||
FocalMechanismReference [label="FocalMechanismReference", href="../base/api-python.html#api-python-datamodel-focalmechanismreference", target="_top"]
|
||||
Event [label="Event", href="../base/api-python.html#api-python-datamodel-event", target="_top"]
|
||||
EventParameters [label="EventParameters", href="../base/api-python.html#api-python-datamodel-eventparameters", target="_top"]
|
||||
EventParameters -> Pick [dir=back arrowtail=diamond]
|
||||
MomentTensor -> Comment [dir=back arrowtail=diamond]
|
||||
@ -60,6 +62,7 @@ EventParameters
|
||||
StationMagnitude -> Comment [dir=back arrowtail=diamond]
|
||||
Pick -> Comment [dir=back arrowtail=diamond]
|
||||
Event -> Comment [dir=back arrowtail=diamond]
|
||||
Catalog -> Comment [dir=back arrowtail=diamond]
|
||||
Origin -> Comment [dir=back arrowtail=diamond]
|
||||
EventParameters -> Amplitude [dir=back arrowtail=diamond]
|
||||
EventParameters -> Reading [dir=back arrowtail=diamond]
|
||||
@ -77,10 +80,14 @@ EventParameters
|
||||
MomentTensor -> MomentTensorPhaseSetting [dir=back arrowtail=diamond]
|
||||
MomentTensor -> MomentTensorStationContribution [dir=back arrowtail=diamond]
|
||||
MomentTensorStationContribution -> MomentTensorComponentContribution [dir=back arrowtail=diamond]
|
||||
EventParameters -> Catalog [dir=back arrowtail=diamond]
|
||||
Catalog -> Event [dir=back arrowtail=diamond]
|
||||
EventParameters -> Event [dir=back arrowtail=diamond]
|
||||
Event -> EventDescription [dir=back arrowtail=diamond]
|
||||
Event -> OriginReference [dir=back arrowtail=diamond]
|
||||
Event -> FocalMechanismReference [dir=back arrowtail=diamond]
|
||||
Catalog -> Event [dir=back arrowtail=diamond]
|
||||
EventParameters -> Event [dir=back arrowtail=diamond]
|
||||
}
|
||||
|
||||
.. graphviz::
|
||||
@ -477,6 +484,27 @@ EventParameters
|
||||
href = "../base/api-python.html#api-python-datamodel-momenttensorcomponentcontribution"
|
||||
target = "_top"
|
||||
]
|
||||
Catalog [
|
||||
labeltooltip = "Catalog"
|
||||
label = <
|
||||
<table border="0" cellpadding="0" cellspacing="2">
|
||||
<tr><td>Catalog</td></tr>
|
||||
<hr/>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td align="left" port="publicID"><font color="#8b0000">+ publicID: string</font></td></tr>
|
||||
<tr><td align="left" port="name"><font color="#8b0000">+ name: string</font></td></tr>
|
||||
<tr><td align="left" port="description"><font color="#8b0000">+ description: string</font></td></tr>
|
||||
<tr><td align="left" port="creationInfo"><font color="#8b0000">+ creationInfo: CreationInfo [0..1]</font></td></tr>
|
||||
<tr><td align="left" port="start"><font color="#8b0000">+ start: datetime</font></td></tr>
|
||||
<tr><td align="left" port="end"><font color="#8b0000">+ end: datetime [0..1]</font></td></tr>
|
||||
<tr><td align="left" port="dynamic"><font color="#8b0000">+ dynamic: boolean</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ comment: Comment [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ event: Event [0..*]</font></td></tr>
|
||||
</table>
|
||||
>
|
||||
href = "../base/api-python.html#api-python-datamodel-catalog"
|
||||
target = "_top"
|
||||
]
|
||||
Event [
|
||||
labeltooltip = "Event"
|
||||
label = <
|
||||
@ -540,6 +568,29 @@ EventParameters
|
||||
href = "../base/api-python.html#api-python-datamodel-focalmechanismreference"
|
||||
target = "_top"
|
||||
]
|
||||
Event [
|
||||
labeltooltip = "Event"
|
||||
label = <
|
||||
<table border="0" cellpadding="0" cellspacing="2">
|
||||
<tr><td>Event</td></tr>
|
||||
<hr/>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td align="left" port="publicID"><font color="#8b0000">+ publicID: string</font></td></tr>
|
||||
<tr><td align="left" port="preferredOriginID"><font color="#8b0000">+ preferredOriginID: string</font></td></tr>
|
||||
<tr><td align="left" port="preferredMagnitudeID"><font color="#8b0000">+ preferredMagnitudeID: string</font></td></tr>
|
||||
<tr><td align="left" port="preferredFocalMechanismID"><font color="#8b0000">+ preferredFocalMechanismID: string</font></td></tr>
|
||||
<tr><td align="left" port="type"><font color="#8b0000">+ type: EventType [0..1]</font></td></tr>
|
||||
<tr><td align="left" port="typeCertainty"><font color="#8b0000">+ typeCertainty: EventTypeCertainty [0..1]</font></td></tr>
|
||||
<tr><td align="left" port="creationInfo"><font color="#8b0000">+ creationInfo: CreationInfo [0..1]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ eventDescription: EventDescription [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ comment: Comment [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ originReference: OriginReference [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ focalMechanismReference: FocalMechanismReference [0..*]</font></td></tr>
|
||||
</table>
|
||||
>
|
||||
href = "../base/api-python.html#api-python-datamodel-event"
|
||||
target = "_top"
|
||||
]
|
||||
EventParameters [
|
||||
labeltooltip = "EventParameters"
|
||||
label = <
|
||||
@ -553,6 +604,7 @@ EventParameters
|
||||
<tr><td align="left"><font color="#8b0000">+ reading: Reading [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ origin: Origin [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ focalMechanism: FocalMechanism [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ catalog: Catalog [0..*]</font></td></tr>
|
||||
<tr><td align="left"><font color="#8b0000">+ event: Event [0..*]</font></td></tr>
|
||||
</table>
|
||||
>
|
||||
@ -567,6 +619,7 @@ EventParameters
|
||||
StationMagnitude -> Comment [dir=back arrowtail=diamond]
|
||||
Pick -> Comment [dir=back arrowtail=diamond]
|
||||
Event -> Comment [dir=back arrowtail=diamond]
|
||||
Catalog -> Comment [dir=back arrowtail=diamond]
|
||||
Origin -> Comment [dir=back arrowtail=diamond]
|
||||
EventParameters -> Amplitude [dir=back arrowtail=diamond]
|
||||
EventParameters -> Reading [dir=back arrowtail=diamond]
|
||||
@ -584,10 +637,14 @@ EventParameters
|
||||
MomentTensor -> MomentTensorPhaseSetting [dir=back arrowtail=diamond]
|
||||
MomentTensor -> MomentTensorStationContribution [dir=back arrowtail=diamond]
|
||||
MomentTensorStationContribution -> MomentTensorComponentContribution [dir=back arrowtail=diamond]
|
||||
EventParameters -> Catalog [dir=back arrowtail=diamond]
|
||||
Catalog -> Event [dir=back arrowtail=diamond]
|
||||
EventParameters -> Event [dir=back arrowtail=diamond]
|
||||
Event -> EventDescription [dir=back arrowtail=diamond]
|
||||
Event -> OriginReference [dir=back arrowtail=diamond]
|
||||
Event -> FocalMechanismReference [dir=back arrowtail=diamond]
|
||||
Catalog -> Event [dir=back arrowtail=diamond]
|
||||
EventParameters -> Event [dir=back arrowtail=diamond]
|
||||
}
|
||||
|
||||
|
||||
@ -5475,6 +5532,280 @@ Blob
|
||||
|
||||
:rtype: string
|
||||
|
||||
.. _api-python-datamodel-catalog:
|
||||
|
||||
Catalog
|
||||
............................................................
|
||||
|
||||
.. py:class:: Catalog
|
||||
|
||||
Inherits :ref:`PublicObject <api-python-datamodel-publicobject>`.
|
||||
|
||||
|
||||
**Parents**:
|
||||
|
||||
- ``eventParameters`` -- :ref:`EventParameters <api-python-datamodel-eventparameters>`
|
||||
|
||||
**Children**:
|
||||
|
||||
- ``comment`` -- :ref:`Comment <api-python-datamodel-comment>`
|
||||
- ``event`` -- :ref:`Event <api-python-datamodel-event>`
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- ``publicID``: string
|
||||
- ``name`` -- string
|
||||
- ``description`` -- string
|
||||
- ``creationInfo`` -- :ref:`CreationInfo <api-python-datamodel-creationinfo>` (optional)
|
||||
- ``start`` -- seiscomp.core.Time
|
||||
- ``end`` -- seiscomp.core.Time (optional)
|
||||
- ``dynamic`` -- boolean
|
||||
|
||||
**Methods**:
|
||||
|
||||
.. py:staticmethod:: Cast(obj)
|
||||
|
||||
:param obj: The object to be casted.
|
||||
:rtype: An object of type Catalog if the cast was successful,
|
||||
None otherwise.
|
||||
|
||||
Cast an arbitrary object to Catalog if the internal wrapped
|
||||
representation is an Catalog object. The cast is important if
|
||||
instances of type :ref:`Object <api-python-datamodel-object>`
|
||||
are passed to methods which need access to the real type.
|
||||
|
||||
|
||||
|
||||
.. py:staticmethod:: Create()
|
||||
|
||||
:rtype: A new object of type Catalog.
|
||||
|
||||
Creates and registers (if enabled) a Catalog instance. The
|
||||
publicID is auto-generated.
|
||||
|
||||
.. py:staticmethod:: Create(publicID)
|
||||
|
||||
:rtype: A new object of type Catalog.
|
||||
|
||||
Creates and registers (if enabled) a Catalog instance with
|
||||
passed publicID.
|
||||
|
||||
.. py:method:: equal(other)
|
||||
|
||||
:param other: Another object of type Catalog to compare this
|
||||
instance to
|
||||
:rtype: A Boolean value indicating True if both objects are equal or
|
||||
False otherwise.
|
||||
|
||||
Compares two objects without its child objects. Both objects are compared
|
||||
by value.
|
||||
|
||||
.. py:method:: setName(name)
|
||||
|
||||
:param name: string
|
||||
|
||||
.. py:method:: name()
|
||||
|
||||
:rtype: string
|
||||
|
||||
.. py:method:: setDescription(description)
|
||||
|
||||
:param description: string
|
||||
|
||||
Catalog description
|
||||
|
||||
.. py:method:: description()
|
||||
|
||||
:rtype: string
|
||||
|
||||
.. py:method:: setCreationInfo(creationInfo)
|
||||
|
||||
:param creationInfo: :ref:`CreationInfo <api-python-datamodel-creationinfo>`
|
||||
|
||||
CreationInfo for the Catalog object.
|
||||
|
||||
.. py:method:: creationInfo()
|
||||
|
||||
:rtype: :ref:`CreationInfo <api-python-datamodel-creationinfo>`
|
||||
|
||||
.. note::
|
||||
|
||||
As this attribute is optional, this method throws a ValueError if
|
||||
the value of the attribute is not set.
|
||||
|
||||
.. py:method:: setStart(start)
|
||||
|
||||
:param start: seiscomp.core.Time
|
||||
|
||||
Start of epoch in ISO datetime format
|
||||
|
||||
.. py:method:: start()
|
||||
|
||||
:rtype: seiscomp.core.Time
|
||||
|
||||
.. py:method:: setEnd(end)
|
||||
|
||||
:param end: seiscomp.core.Time
|
||||
|
||||
End of epoch \(empty if the catalog epoch is open\)
|
||||
|
||||
.. py:method:: end()
|
||||
|
||||
:rtype: seiscomp.core.Time
|
||||
|
||||
.. note::
|
||||
|
||||
As this attribute is optional, this method throws a ValueError if
|
||||
the value of the attribute is not set.
|
||||
|
||||
.. py:method:: setDynamic(dynamic)
|
||||
|
||||
:param dynamic: boolean
|
||||
|
||||
.. py:method:: dynamic()
|
||||
|
||||
:rtype: boolean
|
||||
|
||||
.. py:method:: add(comment)
|
||||
|
||||
:param comment: Object of type :ref:`Comment <api-python-datamodel-comment>`
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
Adds a Comment object to Catalog. The object is not
|
||||
copied but managed by this instance. Any change to the passed object
|
||||
will also change the child.
|
||||
|
||||
.. py:method:: add(event)
|
||||
|
||||
:param event: Object of type :ref:`Event <api-python-datamodel-event>`
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
Adds a Event object to Catalog. The object is not
|
||||
copied but managed by this instance. Any change to the passed object
|
||||
will also change the child.
|
||||
|
||||
.. py:method:: remove(comment)
|
||||
|
||||
:param comment: Object of type :ref:`Comment <api-python-datamodel-comment>`
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
Removes a previously added Comment object from Catalog.
|
||||
|
||||
.. py:method:: remove(event)
|
||||
|
||||
:param event: Object of type :ref:`Event <api-python-datamodel-event>`
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
Removes a previously added Event object from Catalog.
|
||||
|
||||
.. py:method:: removeComment(idx)
|
||||
|
||||
:param idx: An integer index of the object to be removed.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: removeComment(commentIndex);
|
||||
|
||||
:param commentIndex: The index of the object to be removed of type CommentIndex.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: removeEvent(idx)
|
||||
|
||||
:param idx: An integer index of the object to be removed.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: commentCount()
|
||||
|
||||
:rtype: integer value indicating the number of child objects.
|
||||
|
||||
Returns the number of Comment child objects.
|
||||
|
||||
.. py:method:: eventCount()
|
||||
|
||||
:rtype: integer value indicating the number of child objects.
|
||||
|
||||
Returns the number of Event child objects.
|
||||
|
||||
.. py:method:: comment(idx)
|
||||
|
||||
:param idx: An integer index of the object to be returned.
|
||||
:rtype: Object of type :ref:`Comment <api-python-datamodel-comment>`.
|
||||
|
||||
Returns the Comment at index idx.
|
||||
|
||||
.. py:method:: comment(commentIndex)
|
||||
|
||||
:param commentIndex: The index of the object to be removed of type CommentIndex.
|
||||
:rtype: Object of type :ref:`Comment <api-python-datamodel-comment>`.
|
||||
|
||||
Returns the Comment at given index. The indexes of all child objects
|
||||
are compared by value which makes this function slower than the direct
|
||||
integer index look-up.
|
||||
|
||||
.. py:method:: event(idx)
|
||||
|
||||
:param idx: An integer index of the object to be returned.
|
||||
:rtype: Object of type :ref:`Event <api-python-datamodel-event>`.
|
||||
|
||||
Returns the Event at index idx.
|
||||
|
||||
.. py:method:: findEvent(publicID)
|
||||
|
||||
:param publicID: The publicID of the object to find.
|
||||
:rtype: Object of type :ref:`Event <api-python-datamodel-event>`.
|
||||
|
||||
Returns the child object with a certain publicID, None otherwise.
|
||||
|
||||
.. py:method:: eventParameters()
|
||||
|
||||
:rtype: EventParameters
|
||||
|
||||
Returns the parent EventParameters if available. Returns None
|
||||
if the parent is not a EventParameters. This is a convenience wrapper
|
||||
for parent().
|
||||
|
||||
.. py:method:: assign(other)
|
||||
|
||||
This method implements the :ref:`Object <api-python-datamodel-object>` interface.
|
||||
|
||||
.. py:method:: attachTo(parent)
|
||||
|
||||
This method implements the :ref:`Object <api-python-datamodel-object>` interface.
|
||||
|
||||
.. py:method:: detachFrom(parent)
|
||||
|
||||
This method implements the :ref:`Object <api-python-datamodel-object>` interface.
|
||||
|
||||
.. py:method:: detach()
|
||||
|
||||
This method implements the :ref:`Object <api-python-datamodel-object>` interface.
|
||||
|
||||
.. py:method:: clone()
|
||||
|
||||
:rtype: A cloned Catalog.
|
||||
|
||||
Returns a new instance that is a clone of the current instance. Child
|
||||
objects are being ignored.
|
||||
|
||||
|
||||
.. py:method:: updateChild(ref)
|
||||
|
||||
:param ref: A child object derived from class Object.
|
||||
:rtype: A Boolean flag indicating success with True, False otherwise
|
||||
|
||||
This method takes the passed reference object and searches for a child
|
||||
with the same publicID (if derived from :ref:`PublicObject <api-python-datamodel-publicobject>`)
|
||||
or the same index (if derived from :ref:`Object <api-python-datamodel-object>`).
|
||||
The the child was found the reference objects attributes are copied to
|
||||
the child object. Children of child are being ignored during this operation.
|
||||
This method implements the :ref:`PublicObject <api-python-datamodel-publicobject>` interface.
|
||||
|
||||
|
||||
.. py:method:: accept(visitor)
|
||||
|
||||
:param visitor: A visitor.
|
||||
|
||||
This method implements the :ref:`PublicObject <api-python-datamodel-publicobject>` interface.
|
||||
|
||||
.. _api-python-datamodel-comment:
|
||||
|
||||
Comment
|
||||
@ -5496,6 +5827,7 @@ Comment
|
||||
- ``stationMagnitude`` -- :ref:`StationMagnitude <api-python-datamodel-stationmagnitude>`
|
||||
- ``pick`` -- :ref:`Pick <api-python-datamodel-pick>`
|
||||
- ``event`` -- :ref:`Event <api-python-datamodel-event>`
|
||||
- ``catalog`` -- :ref:`Catalog <api-python-datamodel-catalog>`
|
||||
- ``origin`` -- :ref:`Origin <api-python-datamodel-origin>`
|
||||
- ``parameter`` -- :ref:`Parameter <api-python-datamodel-parameter>`
|
||||
- ``parameterSet`` -- :ref:`ParameterSet <api-python-datamodel-parameterset>`
|
||||
@ -5671,6 +6003,14 @@ Comment
|
||||
if the parent is not a Event. This is a convenience wrapper
|
||||
for parent().
|
||||
|
||||
.. py:method:: catalog()
|
||||
|
||||
:rtype: Catalog
|
||||
|
||||
Returns the parent Catalog if available. Returns None
|
||||
if the parent is not a Catalog. This is a convenience wrapper
|
||||
for parent().
|
||||
|
||||
.. py:method:: origin()
|
||||
|
||||
:rtype: Origin
|
||||
@ -6764,6 +7104,7 @@ CreationInfo
|
||||
|
||||
- :func:`Amplitude.creationInfo`
|
||||
- :func:`Arrival.creationInfo`
|
||||
- :func:`Catalog.creationInfo`
|
||||
- :func:`Comment.creationInfo`
|
||||
- :func:`ConfigStation.creationInfo`
|
||||
- :func:`Event.creationInfo`
|
||||
@ -8495,6 +8836,7 @@ Event
|
||||
|
||||
**Parents**:
|
||||
|
||||
- ``catalog`` -- :ref:`Catalog <api-python-datamodel-catalog>`
|
||||
- ``eventParameters`` -- :ref:`EventParameters <api-python-datamodel-eventparameters>`
|
||||
|
||||
**Children**:
|
||||
@ -8821,6 +9163,14 @@ Event
|
||||
are compared by value which makes this function slower than the direct
|
||||
integer index look-up.
|
||||
|
||||
.. py:method:: catalog()
|
||||
|
||||
:rtype: Catalog
|
||||
|
||||
Returns the parent Catalog if available. Returns None
|
||||
if the parent is not a Catalog. This is a convenience wrapper
|
||||
for parent().
|
||||
|
||||
.. py:method:: eventParameters()
|
||||
|
||||
:rtype: EventParameters
|
||||
@ -9009,6 +9359,7 @@ EventParameters
|
||||
- ``reading`` -- :ref:`Reading <api-python-datamodel-reading>`
|
||||
- ``origin`` -- :ref:`Origin <api-python-datamodel-origin>`
|
||||
- ``focalMechanism`` -- :ref:`FocalMechanism <api-python-datamodel-focalmechanism>`
|
||||
- ``catalog`` -- :ref:`Catalog <api-python-datamodel-catalog>`
|
||||
- ``event`` -- :ref:`Event <api-python-datamodel-event>`
|
||||
|
||||
**Attributes**:
|
||||
@ -9085,6 +9436,15 @@ EventParameters
|
||||
copied but managed by this instance. Any change to the passed object
|
||||
will also change the child.
|
||||
|
||||
.. py:method:: add(catalog)
|
||||
|
||||
:param catalog: Object of type :ref:`Catalog <api-python-datamodel-catalog>`
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
Adds a Catalog object to EventParameters. The object is not
|
||||
copied but managed by this instance. Any change to the passed object
|
||||
will also change the child.
|
||||
|
||||
.. py:method:: add(event)
|
||||
|
||||
:param event: Object of type :ref:`Event <api-python-datamodel-event>`
|
||||
@ -9129,6 +9489,13 @@ EventParameters
|
||||
|
||||
Removes a previously added FocalMechanism object from EventParameters.
|
||||
|
||||
.. py:method:: remove(catalog)
|
||||
|
||||
:param catalog: Object of type :ref:`Catalog <api-python-datamodel-catalog>`
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
Removes a previously added Catalog object from EventParameters.
|
||||
|
||||
.. py:method:: remove(event)
|
||||
|
||||
:param event: Object of type :ref:`Event <api-python-datamodel-event>`
|
||||
@ -9161,6 +9528,11 @@ EventParameters
|
||||
:param idx: An integer index of the object to be removed.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: removeCatalog(idx)
|
||||
|
||||
:param idx: An integer index of the object to be removed.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: removeEvent(idx)
|
||||
|
||||
:param idx: An integer index of the object to be removed.
|
||||
@ -9196,6 +9568,12 @@ EventParameters
|
||||
|
||||
Returns the number of FocalMechanism child objects.
|
||||
|
||||
.. py:method:: catalogCount()
|
||||
|
||||
:rtype: integer value indicating the number of child objects.
|
||||
|
||||
Returns the number of Catalog child objects.
|
||||
|
||||
.. py:method:: eventCount()
|
||||
|
||||
:rtype: integer value indicating the number of child objects.
|
||||
@ -9237,6 +9615,13 @@ EventParameters
|
||||
|
||||
Returns the FocalMechanism at index idx.
|
||||
|
||||
.. py:method:: catalog(idx)
|
||||
|
||||
:param idx: An integer index of the object to be returned.
|
||||
:rtype: Object of type :ref:`Catalog <api-python-datamodel-catalog>`.
|
||||
|
||||
Returns the Catalog at index idx.
|
||||
|
||||
.. py:method:: event(idx)
|
||||
|
||||
:param idx: An integer index of the object to be returned.
|
||||
@ -9279,6 +9664,13 @@ EventParameters
|
||||
|
||||
Returns the child object with a certain publicID, None otherwise.
|
||||
|
||||
.. py:method:: findCatalog(publicID)
|
||||
|
||||
:param publicID: The publicID of the object to find.
|
||||
:rtype: Object of type :ref:`Catalog <api-python-datamodel-catalog>`.
|
||||
|
||||
Returns the child object with a certain publicID, None otherwise.
|
||||
|
||||
.. py:method:: findEvent(publicID)
|
||||
|
||||
:param publicID: The publicID of the object to find.
|
||||
@ -15138,23 +15530,14 @@ QCLog
|
||||
Compares two objects without its child objects. Both objects are compared
|
||||
by value.
|
||||
|
||||
.. py:method:: index()
|
||||
|
||||
:rtype: The object's index of type QCLogIndex.
|
||||
|
||||
Returns the objects index which is also used for the database as unique
|
||||
constraint.
|
||||
|
||||
.. py:method:: equalIndex(lhs)
|
||||
|
||||
:param lhs: :ref:`QCLog <api-python-datamodel-qclog>`
|
||||
:rtype: A Boolean value indicating True if both indexes are equal or
|
||||
False otherwise.
|
||||
|
||||
.. py:method:: setWaveformID(waveformID)
|
||||
|
||||
:param waveformID: :ref:`WaveformStreamID <api-python-datamodel-waveformstreamid>`
|
||||
|
||||
The waveform identifier for which the annotation is valid. Each component
|
||||
can contain wildcards \(asterisk or question mark\) but no regular
|
||||
expressions.
|
||||
|
||||
.. py:method:: waveformID()
|
||||
|
||||
:rtype: :ref:`WaveformStreamID <api-python-datamodel-waveformstreamid>`
|
||||
@ -15348,11 +15731,6 @@ QualityControl
|
||||
:param idx: An integer index of the object to be removed.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: removeQCLog(qCLogIndex);
|
||||
|
||||
:param qCLogIndex: The index of the object to be removed of type QCLogIndex.
|
||||
:rtype: A Boolean value indicating success with True, False otherwise.
|
||||
|
||||
.. py:method:: removeWaveformQuality(idx)
|
||||
|
||||
:param idx: An integer index of the object to be removed.
|
||||
@ -15398,15 +15776,6 @@ QualityControl
|
||||
|
||||
Returns the QCLog at index idx.
|
||||
|
||||
.. py:method:: qCLog(qCLogIndex)
|
||||
|
||||
:param qCLogIndex: The index of the object to be removed of type QCLogIndex.
|
||||
:rtype: Object of type :ref:`QCLog <api-python-datamodel-qclog>`.
|
||||
|
||||
Returns the QCLog at given index. The indexes of all child objects
|
||||
are compared by value which makes this function slower than the direct
|
||||
integer index look-up.
|
||||
|
||||
.. py:method:: waveformQuality(idx)
|
||||
|
||||
:param idx: An integer index of the object to be returned.
|
||||
|
||||
@ -98,26 +98,30 @@ a build directory, configure the build and start it:
|
||||
Software dependencies
|
||||
=====================
|
||||
|
||||
For compiling the |scname| sources the following development software packages
|
||||
are required (Debian/Ubuntu package names):
|
||||
For compiling the |scname| sources the development software packages must be
|
||||
installed by Linux system commands such as :program:`apt` or :program:`dnf`.
|
||||
The required packages are (Debian/Ubuntu package names):
|
||||
|
||||
* flex
|
||||
* g++
|
||||
* git
|
||||
* cmakecmake-gui
|
||||
* crypto-dev
|
||||
* libboost
|
||||
* libxml2-dev
|
||||
* flex
|
||||
* libbson-dev
|
||||
* libfl-dev
|
||||
* libssl-dev
|
||||
* crypto-dev
|
||||
* python3-dev (optional)
|
||||
* python3-numpy (optional, required if Numpy support is enabled which is also the default configuration)
|
||||
* libqt5-dev (optional)
|
||||
* qtbase5-dev (optional)
|
||||
* libmysqlclient-dev (optional)
|
||||
* libpq-dev (optional)
|
||||
* libsqlite3-dev (optional)
|
||||
* ncurses-dev (optional)
|
||||
* libxml2-dev
|
||||
|
||||
Optional, depending on the modules to be built are (Debian/Ubuntu package names):
|
||||
* libmysqlclient-dev
|
||||
* libpq-dev
|
||||
* libqt5-dev
|
||||
* libsqlite3-dev
|
||||
* ncurses-dev
|
||||
* python3-dev
|
||||
* python3-numpy (required if Numpy support is enabled which is also the default configuration)
|
||||
* qtbase5-dev
|
||||
|
||||
As of |scname| in version 5.0.0 support for Python 2 is dropped and Python 3 has
|
||||
become the default.
|
||||
|
||||
@ -21,6 +21,7 @@ used to fill the space. The recommended tab width is 4 characters.
|
||||
> if ( a > 5 ) {
|
||||
> > SEISCOMP_DEBUG("A is greater than 5. Its current value is %d",
|
||||
> > ...............a);
|
||||
> }
|
||||
> return a;
|
||||
}
|
||||
|
||||
@ -84,14 +85,14 @@ C++ code is (or should be) written with the following code style:
|
||||
}
|
||||
|
||||
|
||||
namespace Foo {
|
||||
namespace Bar {
|
||||
namespace Foo::Bar {
|
||||
|
||||
|
||||
void foo(int a, int b) {
|
||||
for ( int i = 0; i < a; ++i ) {
|
||||
if ( i < b )
|
||||
if ( i < b ) {
|
||||
bar(i);
|
||||
}
|
||||
else {
|
||||
bar(i);
|
||||
bar(b);
|
||||
@ -100,8 +101,7 @@ C++ code is (or should be) written with the following code style:
|
||||
}
|
||||
|
||||
|
||||
} // namespace Bar
|
||||
} // namespace Foo
|
||||
} // namespace Foo::Bar
|
||||
|
||||
#endif
|
||||
|
||||
@ -217,22 +217,25 @@ Check a null pointer with implicit boolean conversion.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
if ( !ptr )
|
||||
if ( !ptr ) {
|
||||
do_something();
|
||||
}
|
||||
|
||||
rather than
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
if ( ptr == 0 )
|
||||
if ( ptr == 0 ) {
|
||||
do_something();
|
||||
}
|
||||
|
||||
or
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
if ( ptr == NULL )
|
||||
if ( ptr == NULL ) {
|
||||
do_something();
|
||||
}
|
||||
|
||||
Virtual Functions
|
||||
=================
|
||||
|
||||
@ -19,5 +19,5 @@ the :term:`trunk` package.
|
||||
RecordStream: Access to data from real-time servers or archives </base/concepts/recordstream>
|
||||
Inventory: Station meta data </base/concepts/inventory>
|
||||
Configuration: Inventory, module and binding configurations </base/concepts/configuration>
|
||||
Processing: Magnitude computation </base/concepts/magnitudes>
|
||||
Processing: Amplitudes and magnitudes </base/concepts/magnitudes>
|
||||
Processing: Locator types </base/concepts/locators>
|
||||
|
||||
@ -11,7 +11,7 @@ further.
|
||||
|
||||
|scname| ships with built-in locators:
|
||||
|
||||
* :ref:`FixedHypocenter <global_fixedhypocenter>` (FH)
|
||||
* :ref:`FixedHypocenter <global_fixedhypocenter>`
|
||||
* :ref:`Hypo71 <global_hypo71>`
|
||||
* :ref:`iLoc <global_iloc>`
|
||||
* :ref:`LOCSAT <global_locsat>`, the default locator in :ref:`scautoloc` and :ref:`scolv`
|
||||
@ -41,13 +41,14 @@ A comparison of the locators is given in the table below.
|
||||
|
||||
.. csv-table::
|
||||
:widths: 30 10 10 10 10 10 10 10
|
||||
:header: , FH, Hypo71, iLoc, LocExt, LOCSAT, NonLinLoc, StdLoc
|
||||
:header: , Fixed Hypocenter, Hypo71, iLoc, LocExt, LOCSAT, NonLinLoc, StdLoc
|
||||
:align: center
|
||||
|
||||
**Applications**, ,,,,,,
|
||||
phases considered by default, seismic / infrasound, seismic, seismic / infrasound / hydroacoustic, [3], seismic / infrasound, seismic, seismic
|
||||
distance ranges of application, local / regional / teleseismic, local / regional, local / regional / teleseismic, [3], local / regional / teleseismic, local / regional / teleseismic, local / regional [4]
|
||||
application with default configuration, regional / teleseismic, ❌, regional / global, [3], regional / teleseismic, ❌, local / regional [1]
|
||||
origin depth range, [4], non-negative, 0 - 700 km, [3], 0 - 800 km, full range depending on travel-time tables, [4]
|
||||
**Algorithm**, ,,,,,,
|
||||
inversion algorithm, linear, iterative, configurable, [3], grid search, probabilistic, configurable
|
||||
automatic phase renaming, ❌, ❌, ✅, [3], ❌, ❌, ❌
|
||||
@ -59,7 +60,7 @@ A comparison of the locators is given in the table below.
|
||||
considers pick backazimuth, ❌, ❌, ✅, [3], ✅, ❌, ❌
|
||||
speed, fast, fast, fast - intermediate, [3], fast, intermediate, fast - intermediate
|
||||
**Velocity model**, ,,,,,,
|
||||
velocity model, 1D [4], 1D, 1D, [3],1D, 1D / 3D, 1D / 3D [4]
|
||||
velocity model, 1D [4], 1D, 1D / local adjustments, [3], 1D, 1D / 3D, 1D / 3D [4]
|
||||
independent Vp and Vs, ✅ [4], ❌, ✅, [3], ✅, ✅, ✅ [4]
|
||||
default velocity model, iasp91 / tab, ❌, iasp91 / ak135, [3], iasp91 / tab, ❌, iasp91 / tab [1]
|
||||
applies RSTT, ❌ , ❌, ✅, [3], ❌, ❌, ❌
|
||||
@ -74,7 +75,7 @@ A comparison of the locators is given in the table below.
|
||||
operates without custom scripts, ✅, ✅, ✅, ❌, ✅, ✅, ✅
|
||||
**Others**, ,,,,,,
|
||||
remarks, intended for ground-truth tests / single-station location / any travel-time interface, ,operational at EMSC and ISC (earlier version), any external locator can be called by a custom script, currently the fastest locator in |scname| and the only one available to :ref:`scautoloc`, considers model uncertainties, uses travel-times from any travel-time interface
|
||||
point of contact, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`, `ibondar2014 @gmail.com <ibondar2014@gmail.com>`_, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`
|
||||
point of contact, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`, `istvan.bondar @slsiloc.eu <istvan.bondar@slsiloc.eu>`_, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`, :cite:t:`seiscomp-forum`
|
||||
|
||||
* [1]: requires initial or specific configuration
|
||||
* [2]: requires correction file
|
||||
|
||||
@ -1,34 +1,85 @@
|
||||
.. _concepts_magnitudes:
|
||||
|
||||
Magnitudes
|
||||
##########
|
||||
Amplitudes and Magnitudes
|
||||
#########################
|
||||
|
||||
Magnitudes are computed based on amplitudes measured from waveforms. Different
|
||||
types of amplitudes and magnitudes are available which are listed in
|
||||
:ref:`scamp` and :ref:`scmag`.
|
||||
:ref:`Magnitudes of specific types <concepts_magnitudes-station>` are computed
|
||||
from :ref:`amplitudes <concepts_magnitudes-amplitudes>` measured on waveforms.
|
||||
Different types of amplitudes and magnitudes are available including aliases.
|
||||
All magnitudes can be regionalized and mapped to Mw. The native amplitude and
|
||||
magnitudes types are listed in :ref:`scamp` and :ref:`scmag`.
|
||||
|
||||
All amplitude and magnitude values can be read in the Magnitudes tab of
|
||||
:ref:`scolv`, in bulletins created by :ref:`scbulletin` and dumped
|
||||
from database to XML for an origin or event by :ref:`scxmldump`.
|
||||
|
||||
This concept section describes the principles applied in |scname| and links to
|
||||
more specific sections including tutorials describing the configuration and
|
||||
application.
|
||||
|
||||
|
||||
.. figure:: media/amplitude-magnitude-processing.png
|
||||
:alt: amplitudes and magnitudes: processing flow
|
||||
:align: center
|
||||
:width: 18cm
|
||||
|
||||
Schematic processing flow for computing magnitudes from measured amplitudes
|
||||
including the involved |scname| modules and interfaces. Multiple network
|
||||
magnitude types can be computed for the same :term:`origin`. The default
|
||||
processing of native amplitudes and magnitudes in the center can be extended
|
||||
by aliases, regionalization, Mw mapping or external magnitudes.
|
||||
|
||||
|
||||
.. _concepts_magnitudes-amplitudes:
|
||||
|
||||
Amplitudes
|
||||
==========
|
||||
|
||||
Amplitudes can be measured automatically from waveforms
|
||||
Amplitudes can be measured on waveforms
|
||||
|
||||
* During phase picking by :ref:`scautopick` with generally fixed time windows
|
||||
due to the absence of knowledge about source parameters or by,
|
||||
* :ref:`scamp` as soon as :term:`origins <origin>` are available. Depending
|
||||
on the magnitude type, fixed or distance-dependent time windows apply.
|
||||
* Automatically during phase picking by :ref:`scautopick` with generally fixed
|
||||
time windows due to the absence of knowledge about source parameters.
|
||||
* Automatically by :ref:`scamp` as soon as :term:`origins <origin>` are
|
||||
available. Depending on the amplitude type and their configuration, fixed or
|
||||
distance-dependent time windows as well as constraints on signal quality apply.
|
||||
* Interactively using :ref:`scolv` with preset or user-defined conditions.
|
||||
|
||||
and interactively using :ref:`scolv`.
|
||||
:ref:`Time grammar <time-grammar>` applies for configuring the time windows.
|
||||
|
||||
|
||||
Instrument simulation
|
||||
---------------------
|
||||
Input data
|
||||
----------
|
||||
|
||||
Amplitude measurements for some magnitude types require or allow the simulation
|
||||
Depending on type amplitudes are measured on raw or filtered waveform data.
|
||||
Initial raw data are given in counts of the digitizer with a stream gain unit of
|
||||
m/s which is typical for seismometers.
|
||||
It is assumed that the measured signal has its dominant
|
||||
frequency where the response of the recording instrument is flat.
|
||||
For other instruments such as accelerometers or short-period geophones, amplitude
|
||||
correction for instrument response and the corresponding frequency range may be
|
||||
configured by the global binding parameters
|
||||
:confval:`amplitudes.enableResponses`, :confval:`amplitudes.resp.minFreq`,
|
||||
:confval:`amplitudes.resp.maxFreq` or even with in amplitude-type profiles for
|
||||
more specific application. Amplitude measurements will fail if the
|
||||
unit of the (corrected) input data do not correspond to the requirement of the
|
||||
amplitude type.
|
||||
|
||||
Filtering may involve
|
||||
:ref:`simulation of Wood-Anderson seismographs <concepts_magnitudes-wa>`.
|
||||
Final amplitude measurements are corrected by stream gain and provided as an
|
||||
amplitude object.
|
||||
|
||||
|
||||
.. _concepts_magnitudes-wa:
|
||||
|
||||
Wood-Anderson simulation
|
||||
------------------------
|
||||
|
||||
Some amplitude types require or allow the correction of waveforms by simulation
|
||||
of instruments such as :py:func:`Wood-Anderson torsion seismometers <WA>`
|
||||
(:cite:t:`richter-1935,uhrhammer-1990`), :py:func:`WWSSN_SP` or :py:func:`WWSSN_LP`.
|
||||
The calibration parameters describing the Wood-Anderson seismometer are
|
||||
configurable in global bindings or global module configuration:
|
||||
The calibration parameters describing a Wood-Anderson seismometer are
|
||||
configurable in global bindings or module configuration:
|
||||
:confval:`amplitudes.WoodAnderson.gain`, :confval:`amplitudes.WoodAnderson.T0`,
|
||||
:confval:`amplitudes.WoodAnderson.h`. Specifically, the difference in magnitude
|
||||
due to configuration using original values listed in
|
||||
@ -38,16 +89,61 @@ Wood-Anderson simulation, e.g. :term:`ML <magnitude, local (ML)>`,
|
||||
:term:`MLv <magnitude, local vertical (MLv)>`, :term:`MLc <magnitude, local custom (MLc)>`.
|
||||
|
||||
|
||||
Physical units
|
||||
--------------
|
||||
|
||||
The physical units of measured amplitudes depend on amplitudes type. They are
|
||||
documented along with the corresponding magnitude type. Starting with the initial
|
||||
gain unit of raw data streams, typically m/s, the amplitude processor in
|
||||
|scname| converts to the required unit. Where instrument simulation if optional,
|
||||
e.g., for :term:`MLc amplitudes <magnitude, local custom (MLc)>`, a conversion
|
||||
configurable factor must be considered for non-default amplitude processing.
|
||||
|
||||
|
||||
.. _concepts_amplitudes-aliases:
|
||||
|
||||
Amplitude Aliases
|
||||
-------------------------------
|
||||
|
||||
New amplitude types (aliases) can be created based on existing amplitude types
|
||||
but configured and measured specifically. They can be measured as any other
|
||||
amplitude by :ref:`scamp` or :ref:`scautopick` and used by other modules, e.g.,
|
||||
by :ref:`scmag` for :ref:`magnitude aliases <concepts_magnitudes-station>`. The
|
||||
setup procedure is outlined in the tutorial on
|
||||
:ref:`amplitude aliases <tutorials_amplitude-aliases>`.
|
||||
|
||||
|
||||
.. _concepts-amplitudes-regionalization:
|
||||
|
||||
Regionalization
|
||||
---------------
|
||||
|
||||
Measuring amplitudes only for sources or pairs of sources and stations in
|
||||
specific regions is supported by regionalization. The region polygons are
|
||||
defined by :ref:`magnitude regionalization <concepts-magnitudes-regionalization>`.
|
||||
In order to use the feature, regionalized amplitudes and magnitudes must have
|
||||
the same type (name) and regionalization must be activated per amplitude type in
|
||||
amplitude-type profiles of global bindings.
|
||||
|
||||
|
||||
.. _concepts_magnitudes-station:
|
||||
|
||||
Station Magnitudes
|
||||
==================
|
||||
|
||||
Station magnitudes are computed automatically by :ref:`scmag` or interactively
|
||||
by :ref:`scolv` from measured amplitudes based on distance-dependent
|
||||
calibration curves which depend on magnitude type. When computing a set of
|
||||
magnitudes in :ref:`scolv` which is different from the set configured in
|
||||
:ref:`scmag`, then scmag may later add the missing magnitudes automatically.
|
||||
Magnitude types for which the evaluation status is set to "rejected", e.g., in
|
||||
scolv, will not be recomputed by scmag.
|
||||
calibration curves which depend on magnitude type. Since distance measures are
|
||||
required, station magnitudes are always related to one :term:`origin`. For
|
||||
computing new magnitudes in scolv, a new origin must be created which is done by
|
||||
relocating.
|
||||
|
||||
When computing a set of station magnitudes in :ref:`scolv` which is different from
|
||||
the set configured in :ref:`scmag`, then scmag may later add the missing
|
||||
magnitudes automatically. Magnitude types for which the evaluation status is
|
||||
set to "rejected", e.g., in :ref:`scolv`, will not be recomputed by scmag. In
|
||||
order to ignore a magnitude type interactively, it should therefore be treated
|
||||
and rejected in scolv.
|
||||
|
||||
|
||||
.. _concepts-magnitudes-correction:
|
||||
@ -64,7 +160,7 @@ global :ref:`binding parameters <global_bindings_config>`:
|
||||
|
||||
When using binding profiles, all referencing stations will be affected equally
|
||||
which is typically not intended. In contrast, applying station bindings requires
|
||||
to set up many bindings which may not be intended either.
|
||||
to set up many bindings which may not be intended either.concepts-magnitudes-regionalization
|
||||
|
||||
Therefore, you may add lines to the global module configuration in
|
||||
:file:`global.cfg` where one line corresponds to one station with one magnitude
|
||||
@ -85,39 +181,26 @@ parameters are identical to the global bindings parameters. All lines start with
|
||||
:file:`seiscomp/etc/global.cfg`.
|
||||
|
||||
|
||||
Network Magnitudes
|
||||
==================
|
||||
.. _concepts_magnitudes-aliases:
|
||||
|
||||
Network magnitudes are computed automatically by :ref:`scmag` or interactively
|
||||
by :ref:`scolv` from station magnitudes based on averaging station magnitudes.
|
||||
The averaging methods applied by :ref:`scmag` are configurable by
|
||||
:confval:`magnitudes.average`. Available are (:cite:t:`rosenberger-1983`):
|
||||
Magnitude Aliases
|
||||
-------------------------------
|
||||
|
||||
* *mean*: the mean value from all station magnitudes.
|
||||
* *median*: the mean value from all station magnitudes.
|
||||
* *trimmedMean(X)*: gnores outlier station magnitudes by first removing the
|
||||
largest and the smallest *X* % of the observed values (percentiles). The mean is
|
||||
formed from the remaining station magnitudes.
|
||||
* *trimmedMedian(X)*: forms the median from all station magnitudes but returns
|
||||
the uncertainty by ignoring the largest and the smallest *X* % station
|
||||
magnitudes.
|
||||
* *medianTrimmedMean(X)*: returns the mean magnitude from all station magnitudes
|
||||
differing less than *X* magnitudes from the median.
|
||||
|
||||
|
||||
Aliases
|
||||
=======
|
||||
|
||||
New magnitude types (aliases) can be created based on existing magnitude and
|
||||
amplitude types but configured specifically.
|
||||
The setup procedure is outlined in the
|
||||
:ref:`tutorial on magnitude aliases <tutorials_magnitude-aliases>`.
|
||||
New magnitude types (aliases) can be created inheriting the configuration
|
||||
parameters but not the configured values from existing magnitude and amplitude types or
|
||||
:ref:`amplitude aliases <concepts_amplitudes-aliases>`. The values are configured
|
||||
specifically. Unless specified explicitly, the amplitude type
|
||||
is the base amplitude of the original magnitude. Other
|
||||
amplitude types or amplitude aliases must be defined first and given explicitly.
|
||||
The aliased magnitudes can be computed by other modules such as :ref:`scmag` or
|
||||
:ref:`scolv`. The setup procedure is outlined in the tutorial on
|
||||
:ref:`magnitude aliases <tutorials_magnitude-aliases>`.
|
||||
|
||||
|
||||
.. _concepts-magnitudes-regionalization:
|
||||
|
||||
Regionalization
|
||||
===============
|
||||
---------------
|
||||
|
||||
The computation of station magnitudes can be regionalized. This means that for
|
||||
a specific region specific conditions apply when computing magnitudes. The
|
||||
@ -135,6 +218,30 @@ setup procedure including
|
||||
:ref:`tutorial on regionalization <tutorials_magnitude-region-aliases>`.
|
||||
|
||||
|
||||
.. _concepts_magnitudes-network:
|
||||
|
||||
Network Magnitudes
|
||||
==================
|
||||
|
||||
Network magnitudes are computed automatically by :ref:`scmag` or interactively
|
||||
by :ref:`scolv` from station magnitudes based on averaging station magnitudes.
|
||||
The averaging methods applied by :ref:`scmag` are configurable by
|
||||
:confval:`magnitudes.average`. Available are (:cite:t:`rosenberger-1983`):
|
||||
|
||||
* *mean*: The mean value from all station magnitudes.
|
||||
* *median*: The mean value from all station magnitudes.
|
||||
* *trimmedMean(X)*: Ignores outlier station magnitudes by first removing the
|
||||
largest and the smallest *X* % of the observed values (percentiles). The mean is
|
||||
formed from the remaining station magnitudes.
|
||||
* *trimmedMedian(X)*: Forms the median from all station magnitudes but returns
|
||||
the uncertainty by ignoring the largest and the smallest *X* % station
|
||||
magnitudes.
|
||||
* *medianTrimmedMean(X)*: Returns the mean magnitude from all station magnitudes
|
||||
differing less than *X* magnitudes from the median.
|
||||
|
||||
|
||||
.. _concepts_magnitudes-moment:
|
||||
|
||||
Moment Magnitudes
|
||||
=================
|
||||
|
||||
@ -165,6 +272,8 @@ usually referred to as *M*. The name is configurable.
|
||||
:term:`origin`.
|
||||
|
||||
|
||||
.. _concepts_magnitudes-preferred:
|
||||
|
||||
Preferred Magnitude
|
||||
===================
|
||||
|
||||
|
||||
@ -140,9 +140,11 @@ Examples:
|
||||
|
||||
connection.server = localhost/production
|
||||
|
||||
On the command line use, e.g. ::
|
||||
On the command line use, e.g.
|
||||
|
||||
$ scolv -H localhost
|
||||
.. code-block:: sh
|
||||
|
||||
scolv -H localhost
|
||||
|
||||
* Connect to the production queue of the messaging on localhost with default port.
|
||||
Using non-default secure encryption and port the scheme and the port must be
|
||||
@ -150,9 +152,11 @@ Examples:
|
||||
|
||||
connection.server = scmps://localhost18181/production
|
||||
|
||||
On the command line use, e.g. ::
|
||||
On the command line use, e.g.
|
||||
|
||||
$ scolv -H scmps://localhost:18181/production
|
||||
.. code-block:: sh
|
||||
|
||||
scolv -H scmps://localhost:18181/production
|
||||
|
||||
|
||||
.. _messaging-db :
|
||||
@ -172,7 +176,9 @@ When connecting from a client to the messaging, the database connection paramete
|
||||
are reported by :ref:`scmaster`. They can be overridden by the global configuration
|
||||
or command-line option ``-d``.
|
||||
|
||||
Example: ::
|
||||
Example:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scolv -H localhost -d mysql://sysop:sysop@localhost/seiscomp-test
|
||||
|
||||
|
||||
@ -10,18 +10,17 @@ It aims to document the configuration and command line options for
|
||||
consistent way. The functionality of |scname| differs between
|
||||
versions so the documentation is versioned along with |scname|.
|
||||
For more general topics and tutorials please refer to the
|
||||
`SeisComP wiki`_.
|
||||
|scname| website and documentation :cite:p:`seiscomp`.
|
||||
|
||||
The documentation is written in `reStructuredText`_ (reST) a
|
||||
simple text mark up format. The documentation is generated using `Sphinx`_
|
||||
which is used to create the `Python documentation`_.
|
||||
The Sphinx website has a very good
|
||||
`introduction to reST`_ and also covers the Sphinx specific
|
||||
`directives`_.
|
||||
The documentation is written in :cite:t:`reStructuredText` (reST) a simple text
|
||||
mark up format. The documentation is generated using Sphinx :cite:p:`sphinx`
|
||||
which is used to create the Python documentation :cite:p:`python-doc`.
|
||||
The Sphinx website :cite:p:`reStructuredText-sphinx` has a very good
|
||||
introduction to reST and also covers the Sphinx-specific
|
||||
directives :cite:p:`reStructuredText-directives`.
|
||||
|
||||
If you would like to add to this documentation or you find an error, then please
|
||||
submit a patch to `SeisComP on GitHub`_ or report to the
|
||||
SeisComP `discussion forum`_.
|
||||
submit a patch to :cite:t:`seiscomp-github` or report to the :cite:t:`seiscomp-forum`.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -33,54 +32,64 @@ then you can use the *Show Source* link on each page to view the reST
|
||||
source. The source and the documentation files for executables (see below) are
|
||||
good starting points for a new patch.
|
||||
|
||||
|
||||
Documenting Executables
|
||||
=======================
|
||||
|
||||
The documentation for executables is generated from two sources:
|
||||
The documentation for modules and plugins is generated from two sources:
|
||||
|
||||
'executable'.xml
|
||||
An XML file that contains a brief description of the command,
|
||||
markup describing the command line parameters, and any
|
||||
configuration parameters for the executable. Each parameter should
|
||||
An :ref:`XML file <contributing_documentation_XML>` that contains a brief
|
||||
description of the command, markup describing the command line parameters,
|
||||
and any configuration parameters for the executable. Each parameter should
|
||||
have a brief description of the purpose of the parameter.
|
||||
|
||||
The description should be plain text and not contain reST markup. Where parameters are common across
|
||||
a number of executables they should be placed in the appropriate common file and referred to using
|
||||
their publicID.
|
||||
The description should be plain text and not contain reST markup. Where
|
||||
parameters are common across a number of executables they should be placed
|
||||
in the appropriate common file and referred to using their publicID.
|
||||
|
||||
All XML files live in the :file:`doc/apps` directory of the source
|
||||
distribution or in :file:`etc/descriptions` of an installation.
|
||||
|
||||
'executable'.rst
|
||||
This is a text file in reST markup that gives any more-detailed description and examples for the executable.
|
||||
It is combined with the corresponding .xml to create the full documentation.
|
||||
This is a RST text file in :ref:`reST markup <reStructuredText>` that gives
|
||||
any more-detailed description and examples for modules or plugins. It is
|
||||
combined with the corresponding :file:`executable.xml` file to create the
|
||||
full HTML documentation and man pages of a module or plugin.
|
||||
|
||||
When listed in a table of content, the RST file allows generating general
|
||||
content without providing an XML file. Examples can be found in the
|
||||
`documentation index file`_ .
|
||||
|
||||
The first entry in the file should be a paragraph giving a more
|
||||
detailed description of the executable.
|
||||
detailed description of the executable. The following paragraphs provide
|
||||
background information, use cases and examples.
|
||||
|
||||
These two files should be placed in a :file:`descriptions` sub-directory of the
|
||||
respective module, e.g. :file:`src/seedlink/apps/seedlink/descriptions/seedlink.rst`.
|
||||
The intention is that the documentation is close to the code to make it easier for developers to keep the
|
||||
documentation up to date with code changes.
|
||||
respective module or plugin, e.g., the `scolv description`_ .
|
||||
The intention is that the documentation is close to the code to make it easier
|
||||
for developers to keep the documentation up to date with code changes.
|
||||
|
||||
For a new executable an entry should also be made in the man section of :file:`conf.py`.
|
||||
The man page is a short form of the documentation that is generated from only the .xml file.
|
||||
For a new executable an entry can also be made in the man section of
|
||||
:file:`conf.py`. For |scname| modules located, `documentation templates directory`_.
|
||||
|
||||
The man page is a short form of the documentation of a module that is generated
|
||||
from the XML and the RST files.
|
||||
Example:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
man scolv
|
||||
|
||||
|
||||
Images
|
||||
======
|
||||
Creating the RST
|
||||
================
|
||||
|
||||
Any images should be placed in a suitable sub-directory of :file:`descriptions/media`.
|
||||
Read the :ref:`documentation on image styles <documentation_style_guide_image>` for more details.
|
||||
The images can then be referred to (in .rst) like::
|
||||
The RST file should be written according to the
|
||||
:ref:`documentation style guide <documentation_style_guide>`.
|
||||
|
||||
.. figure:: media/scolv/scolv-overview.png
|
||||
:width: 16cm
|
||||
:align: center
|
||||
|
||||
Overview of the defrobnicator switches in :ref:`scolv`.
|
||||
|
||||
The images will be moved to the correct location during the documentation build.
|
||||
|
||||
.. _contributing_documentation_XML:
|
||||
|
||||
Understanding the XML
|
||||
=====================
|
||||
@ -97,10 +106,13 @@ Any description XML uses the root element *seiscomp*:
|
||||
...
|
||||
</seiscomp>
|
||||
|
||||
Three elements are used inside the root element: :ref:`module<xml-module>`, :ref:`plugin<xml-plugin>` and :ref:`binding<xml-binding>`.
|
||||
Modules, plugins and bindings can be described in one XML or split up into one file per description. It is better to
|
||||
have things as close as possible. A module and its binding should go into one module.XML whereas plugins should
|
||||
go into separate XML files.
|
||||
Three elements are used inside the root element: :ref:`module<xml-module>`,
|
||||
:ref:`plugin<xml-plugin>` and :ref:`binding<xml-binding>`.
|
||||
Modules, plugins and bindings can be described in one XML or split up into one
|
||||
file per description. It is better to have things as close as possible. A module
|
||||
and its binding should go into one module.XML whereas plugins should go into
|
||||
separate XML files. Examples can be found in the source code as well as in the
|
||||
XML files installed in :file:`seiscomp/etc/descriptions`.
|
||||
|
||||
|
||||
.. _xml-module:
|
||||
@ -295,7 +307,6 @@ Element: **configuration**
|
||||
| | | | |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
|
||||
|
||||
.. _xml-configuration-parameter:
|
||||
|
||||
Element: **parameter**
|
||||
@ -312,6 +323,13 @@ Element: **parameter**
|
||||
| | | | configurator to provide specialized input |
|
||||
| | | | widgets. It is also important for the user |
|
||||
| | | | how the parameter is read by the module. |
|
||||
| | | | Supported are: *uint, list:uint, int, list:uint, |
|
||||
| | | | double, list:double, float, list:float, file, |
|
||||
| | | | list:file, directory, list:directory, time |
|
||||
| | | | list:time, host-with-port, boolean, gradient* |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **options** | attrib | no | Options to type if type is file or directory. |
|
||||
| | | | Supported: *read, write, execute* |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **unit** | attrib | no | An optional unit such as "s" or "km" or |
|
||||
| | | | "deg". |
|
||||
@ -319,9 +337,28 @@ Element: **parameter**
|
||||
| **default** | attrib | no | The default value the module uses if this |
|
||||
| | | | parameter is not configured. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **values** | element | no | Lists the supported value separated by comma. For |
|
||||
| | attrib | | files, the list describes file name suffices. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **range** | element | no | The range of values. Format: minimum:maximum |
|
||||
| | attrib | | |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **description** | element | no | Gives a brief description of the parameter. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
|
||||
.. note::
|
||||
|
||||
Further explanations of **type**:
|
||||
|
||||
* uint: Non-negative integer. Example values: 0, 1
|
||||
* gradient: Colon-separated pairs of value and color. Example:
|
||||
-4:"rgb(0,0,255)".
|
||||
* host-with-port: Colon-separated pairs of host address and port number.
|
||||
Example: localhost:8080.
|
||||
* time: Any :ref:`time format supported by SeisComP <time-formats>` is
|
||||
possible unless stated differently.
|
||||
* list: One ore more values separated by comma.
|
||||
|
||||
.. _xml-configuration-struct:
|
||||
|
||||
Element: **struct**
|
||||
@ -333,6 +370,8 @@ Element: **struct**
|
||||
| | | | used in a configurator to give a selection |
|
||||
| | | | of available types to be instantiated. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **title** | attrib | no | The title of the struct as shown, e.g. in scconfig|
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **link** | attrib | no | The absolute reference parameter as it would |
|
||||
| | | | appear in the configuration file which |
|
||||
| | | | holds all instantiated structures. |
|
||||
@ -362,8 +401,21 @@ Element: **struct**
|
||||
| **group** | element | no | Describes a group part of this struct. See |
|
||||
| | | | :ref:`group<xml-configuration-group>`. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **aliases** | attrib | no | Explains where to find alias parameters. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
|
||||
.. _xml-configuration-extend-struct:
|
||||
|
||||
Element: **extend-struct**
|
||||
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| Name | XML type | Mandatory | Description |
|
||||
+===================+==========+===========+===================================================+
|
||||
| **type** | attrib | yes | The name of the struct type to be extended. This |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
| **match-name** | attrib | no | The name given of the struct with parameters |
|
||||
| | | | extending name the struct given by name. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
|
||||
.. _xml-configuration-group:
|
||||
|
||||
@ -386,7 +438,6 @@ Element: **group**
|
||||
| **group** | element | no | Describes a group part of this group. |
|
||||
+-------------------+----------+-----------+---------------------------------------------------+
|
||||
|
||||
|
||||
Below is an example of the plugin definition for the NonLinLoc plugin. It contains
|
||||
groups, parameters and structures.
|
||||
|
||||
@ -406,7 +457,7 @@ groups, parameters and structures.
|
||||
</description>
|
||||
</parameter>
|
||||
|
||||
<parameter name="outputPath" type="path" default="/tmp/sc3.nll">
|
||||
<parameter name="outputPath" type="directory" default="/tmp/sc3.nll">
|
||||
<description>
|
||||
Defines the output path for all native NonLinLoc input and
|
||||
output files.
|
||||
@ -438,7 +489,6 @@ groups, parameters and structures.
|
||||
</seiscomp>
|
||||
|
||||
|
||||
|
||||
.. _xml-command-line:
|
||||
|
||||
Command-line
|
||||
@ -466,7 +516,6 @@ Element: **command-line**
|
||||
| | | | :ref:`group<xml-command-line-group>`. |
|
||||
+---------------------+----------+-----------+-----------------------------------------------+
|
||||
|
||||
|
||||
.. _xml-command-line-group:
|
||||
|
||||
Element: **group**
|
||||
@ -484,7 +533,6 @@ Element: **group**
|
||||
| | | | publicID. |
|
||||
+---------------------+----------+-----------+-----------------------------------------------+
|
||||
|
||||
|
||||
.. _xml-command-line-option:
|
||||
|
||||
Element: **option**
|
||||
@ -520,7 +568,6 @@ Element: **option**
|
||||
| **description** | element | no | Gives a brief description of the option. |
|
||||
+---------------------+----------+-----------+-----------------------------------------------+
|
||||
|
||||
|
||||
Below is an example of the module definition for :program:`scautoloc` (extract).
|
||||
|
||||
.. code-block:: xml
|
||||
@ -533,6 +580,9 @@ Below is an example of the module definition for :program:`scautoloc` (extract).
|
||||
...
|
||||
</configuration>
|
||||
<command-line>
|
||||
<synopsis>
|
||||
scautoloc [options]
|
||||
</synopsis>
|
||||
<group name="Generic">
|
||||
<optionReference>generic#help</optionReference>
|
||||
<optionReference>generic#version</optionReference>
|
||||
@ -571,11 +621,6 @@ References
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _`SeisComP wiki` : https://www.seiscomp.de/
|
||||
.. _`reStructuredText` : https://docutils.sourceforge.io/rst.html
|
||||
.. _`Sphinx` : https://www.sphinx-doc.org/
|
||||
.. _`Python documentation` : https://docs.python.org/
|
||||
.. _`introduction to reST` : https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
|
||||
.. _`directives` : https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html
|
||||
.. _`SeisComP on GitHub` : https://github.com/SeisComP
|
||||
.. _`discussion forum` : https://forum.seiscomp.de
|
||||
.. _`documentation index file` : https://github.com/SeisComP/seiscomp/blob/master/doc/templates/index.rst
|
||||
.. _`scolv description` : https://github.com/SeisComP/main/blob/master/apps/gui-qt/scolv/descriptions/
|
||||
.. _`documentation templates directory` : https://github.com/SeisComP/seiscomp/tree/master/doc/templates
|
||||
|
||||
@ -213,9 +213,9 @@ parentheses, e.g. :py:func:`DIFF()<DIFF()>`, or without, e.g.
|
||||
|
||||
.. py:function:: DT
|
||||
|
||||
Replaces each input sample with the sampling time of the current sample. This
|
||||
Replaces each input sample with the sampling interval of the current sample. This
|
||||
is a shortcut for :code:`1/SR` but more efficient as the division has to be
|
||||
done only once and not once per input sample.
|
||||
done only once and not once per input sample. The output unit is *seconds*.
|
||||
|
||||
|
||||
.. py:function:: DURATION(trigger_on, trigger_off)
|
||||
@ -252,12 +252,14 @@ parentheses, e.g. :py:func:`DIFF()<DIFF()>`, or without, e.g.
|
||||
:param a: Coefficient `a`.
|
||||
|
||||
|
||||
.. py:function:: ITAPER(timespan)
|
||||
.. py:function:: ITAPER(timespan[,offset = 0])
|
||||
|
||||
A one-sided cosine taper applied when initializing the filter, e.g. at the
|
||||
beginning of the data or after longer gaps.
|
||||
|
||||
:param timespan: The timespan to apply the taper in seconds.
|
||||
:param timespan: The length of the taper in seconds
|
||||
:param offset: The offset in counts removed from the data records before
|
||||
applying the taper. Optional parameter.
|
||||
|
||||
|
||||
.. py:function:: MAX(timespan)
|
||||
@ -342,7 +344,8 @@ parentheses, e.g. :py:func:`DIFF()<DIFF()>`, or without, e.g.
|
||||
|
||||
.. py:function:: SR
|
||||
|
||||
Replaces each input sample with the sampling rate of the current sample.
|
||||
Replaces each input sample with the sampling rate of the current sample. The
|
||||
output unit is *1/seconds*.
|
||||
|
||||
|
||||
.. py:function:: STALTA(sta, lta)
|
||||
@ -377,7 +380,7 @@ parentheses, e.g. :py:func:`DIFF()<DIFF()>`, or without, e.g.
|
||||
Computes the amplitude sum of the timespan preceding the sample.
|
||||
|
||||
|
||||
.. py:function:: WA([type = 1[,gain=2080[,T0=0.8[,h=0.7]]]])
|
||||
.. py:function:: WA([type = 1[,gain = 2080[,T0 = 0.8[,h = 0.7]]]])
|
||||
|
||||
The simulation filter of a :term:`Wood-Anderson seismometer`. The data format
|
||||
of the waveforms has to be given for applying the simulation filter
|
||||
|
||||
@ -21,35 +21,10 @@ Once the database server is defined and optimized as described in the section
|
||||
Initially execute the steps listed in this section. You will need to consider
|
||||
differences in databases:
|
||||
|
||||
* :ref:`MySQL <getting-started-mysql>` (not recommended),
|
||||
* :ref:`MariaDB <getting-started-mariadb>`,
|
||||
* :ref:`PostgreSQL <getting-started-postgresql>`.
|
||||
|
||||
|
||||
.. _getting-started-mysql:
|
||||
|
||||
MySQL
|
||||
-----
|
||||
|
||||
The initial configuration by the :program:`seiscomp` script or the
|
||||
wizard of :ref:`scconfig` allows to create and configure the MySQL database
|
||||
for |scname|. If you want to use MySQL continue with the
|
||||
:ref:`general setup <getting-started-setup>`.
|
||||
|
||||
.. warning ::
|
||||
|
||||
* Using MySQL is currently not recommended. Preferably use MariaDB instead of MySQL
|
||||
as MariaDB is the default SQL flavor of most supported Linux systems!
|
||||
* As of MySQL 8.0 the password encryption and policy has changed resulting in
|
||||
errors when connecting to a MySQL server. In 04/2021 this
|
||||
does not seem to be fully supported in **Ubuntu 20.04**. Therefore, you need
|
||||
to use a native password on the MySQL server.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ sudo mysql -u root -p
|
||||
|
||||
ALTER USER 'sysop'@'%%' IDENTIFIED WITH mysql_native_password BY 'my_super_secret_password_matching_the_mysql_password_validation_policy';
|
||||
* :ref:`PostgreSQL <getting-started-postgresql>`,
|
||||
* :ref:`SQLite3<getting-started-sqlite3>`,
|
||||
* :ref:`MySQL <getting-started-mysql>` (not recommended).
|
||||
|
||||
|
||||
.. _getting-started-mariadb:
|
||||
@ -81,7 +56,7 @@ The full procedure to create the seiscomp database:
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ sudo mysql -u root -p
|
||||
CREATE DATABASE seiscomp CHARACTER SET utf8mb4;
|
||||
CREATE DATABASE seiscomp CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
grant usage on seiscomp.* to sysop@localhost identified by 'sysop';
|
||||
grant all privileges on seiscomp.* to sysop@localhost;
|
||||
grant usage on seiscomp.* to sysop@'%' identified by 'sysop';
|
||||
@ -92,11 +67,10 @@ The full procedure to create the seiscomp database:
|
||||
user@host:~$ mysql -u sysop -p seiscomp < ~/seiscomp/share/db/mysql.sql
|
||||
|
||||
.. note::
|
||||
|
||||
If character set 'utf8mb4' is not supported by your specific database server
|
||||
version then use the old 'utf8' format. For historical reasons, SeisComP
|
||||
would use then the 'utf8_bin' collation. The full statement looks as
|
||||
follows: :code:`CREATE DATABASE seiscomp CHARACTER SET utf8 COLLATE utf8_bin`.
|
||||
version then use the old 'utf8' format. The full statement looks as follows:
|
||||
:code:`CREATE DATABASE seiscomp CHARACTER SET utf8 COLLATE utf8_bin`.
|
||||
|
||||
|
||||
.. _getting-started-postgresql:
|
||||
|
||||
@ -108,14 +82,13 @@ for |scname|.
|
||||
It also allows :ref:`creating the database <database_configuration_postgresql>`
|
||||
and the database tables.
|
||||
|
||||
For a manual setup of the PostgreSQL database first :ref:`setup the database
|
||||
server<database_configuration_postgresql>`, then create the user, the database
|
||||
and the tables.
|
||||
|
||||
For a manual setup of the PostgreSQL database first
|
||||
:ref:`setup the database server<database_configuration_postgresql>`. Thereafter
|
||||
create the user, the database and the tables.
|
||||
|
||||
#. Create the user and the database
|
||||
|
||||
:program:`CentOS`:
|
||||
:program:`RHEL`:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
@ -138,7 +111,42 @@ and the tables.
|
||||
user@host:~$ psql -f ~/seiscomp/share/db/postgres.sql -t seiscomp -U sysop
|
||||
|
||||
Continue with the :ref:`general setup <getting-started-setup>` considering the
|
||||
created database but **do not create the database again**.
|
||||
created database but you do not need to create the database again.
|
||||
|
||||
|
||||
.. _getting-started-sqlite3:
|
||||
|
||||
SQLite3
|
||||
-------
|
||||
|
||||
Alternatively, a SQLite3 database can be used. The setup up is identical to the
|
||||
other databases and described in section :ref:`getting-started-setup` .
|
||||
|
||||
|
||||
.. _getting-started-mysql:
|
||||
|
||||
MySQL
|
||||
-----
|
||||
|
||||
The initial configuration by the :program:`seiscomp` script or the
|
||||
wizard of :ref:`scconfig` allows to create and configure the MySQL database
|
||||
for |scname|. If you want to use MySQL continue with the
|
||||
:ref:`general setup <getting-started-setup>`.
|
||||
|
||||
.. warning::
|
||||
|
||||
* Using MySQL is currently not recommended. Preferably use MariaDB instead of MySQL
|
||||
as MariaDB is the default SQL flavor of most supported Linux systems!
|
||||
* As of MySQL 8.0 the password encryption and policy has changed resulting in
|
||||
errors when connecting to a MySQL server. In 04/2021 this
|
||||
does not seem to be fully supported in **Ubuntu 20.04**. Therefore, you need
|
||||
to use a native password on the MySQL server.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ sudo mysql -u root -p
|
||||
|
||||
ALTER USER 'sysop'@'%%' IDENTIFIED WITH mysql_native_password BY 'my_super_secret_password_matching_the_mysql_password_validation_policy';
|
||||
|
||||
|
||||
.. _getting-started-setup:
|
||||
@ -204,20 +212,18 @@ trunk modules and the default request handler of Arclink.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
0) mysql
|
||||
MySQL server.
|
||||
Enable database storage. [yes]:
|
||||
0) mysql/mariadb
|
||||
MySQL/MariaDB server.
|
||||
1) postgresql
|
||||
PostgreSQL server. There is currently no support in setup to create the
|
||||
database for you. You have to setup the database and user accounts on
|
||||
your own. The database schema is installed under share/db/postgresql.sql.
|
||||
PostgresSQL server version 9 or later.
|
||||
2) sqlite3
|
||||
SQLite3 database.
|
||||
Database backend [0]:
|
||||
|
||||
If the database is enable the database backend can be selected. |scname|
|
||||
supports two main backends: MySQL and PostgreSQL. Select the backend to be used
|
||||
here but be prepared that only for the MySQL backend the setup can help to
|
||||
create the database and tables for you. If you are using PostgreSQL you have
|
||||
to provide a working database with the correct schema. The schema files are
|
||||
part of the distribution and can be found in :file:`seiscomp/share/db/postgresql.sql`.
|
||||
If the database is enabled, the database backend can be selected. |scname|
|
||||
supports three main backends: MariaDB/MySQL, PostgreSQL, and SQLite3. Select the
|
||||
backend to be used.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -236,13 +242,6 @@ part of the distribution and can be found in :file:`seiscomp/share/db/postgresql
|
||||
|
||||
Create database [yes]:
|
||||
|
||||
.. warning ::
|
||||
|
||||
If MySQL is selected it is possible to let :command:`seiscomp setup` to create
|
||||
the database and all tables for you. Otherwise currently not and you need to set up the
|
||||
database manually following the :ref:`given instructions <getting-started-mysql>`.
|
||||
If the database has been created already, answer 'no' here.
|
||||
|
||||
----
|
||||
|
||||
.. code-block:: none
|
||||
@ -294,12 +293,16 @@ without doing anything.
|
||||
Command? [P]:
|
||||
|
||||
|
||||
.. _getting-started-variables:
|
||||
|
||||
Environment variables
|
||||
=====================
|
||||
|
||||
Commands can be used along with the :program:`seiscomp` script located in *seiscomp/bin/seiscomp*.
|
||||
Read the section :ref:`sec-management-commands` for more details on :program:`seiscomp`.
|
||||
E.g. |scname| modules can be executed like ::
|
||||
E.g. |scname| modules can be executed like
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ seiscomp/bin/seiscomp exec scrttv
|
||||
|
||||
@ -314,11 +317,15 @@ Providing the full path allows starting other |scname| modules in a specific
|
||||
|scname| environment. Thus, multiple SeisComP installations can be maintained
|
||||
and referred to on the same machine.
|
||||
|
||||
:program:`seiscomp` can also be used for printing the considered |scname| environment ::
|
||||
:program:`seiscomp` can also be used for printing the considered |scname| environment
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ seiscomp/bin/seiscomp print env
|
||||
|
||||
resulting in ::
|
||||
resulting in
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
export SEISCOMP_ROOT="/home/sysop/seiscomp"
|
||||
export PATH="/home/sysop/seiscomp/bin:$PATH"
|
||||
@ -335,11 +342,15 @@ executed without the :program:`seiscomp` script.
|
||||
For setting the environment
|
||||
|
||||
#. Use the :program:`seiscomp` script itself to generate the parameters and write
|
||||
the parameters to :file:`~/.bashrc` ::
|
||||
the parameters to :file:`~/.bashrc`
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ seiscomp/bin/seiscomp print env >> ~/.bashrc
|
||||
|
||||
#. Load the environment or log out and in again ::
|
||||
#. Load the environment or log out and in again
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ source ~/.bashrc
|
||||
|
||||
|
||||
@ -343,7 +343,7 @@ Scientific and technical terms
|
||||
seismicity. It is the main development and service company for |scname|.
|
||||
|
||||
GEOFON
|
||||
GEOFON (https://geofon.gfz-potsdam.de) is part of the Modular Earth Science
|
||||
GEOFON (https://geofon.gfz.de) is part of the Modular Earth Science
|
||||
Infrastructure (MESI) at :term:`GFZ`.
|
||||
|
||||
geometrical spreading
|
||||
@ -351,8 +351,8 @@ Scientific and technical terms
|
||||
increasing distance from a given source.
|
||||
|
||||
GFZ
|
||||
Helmholtz Centre Potsdam `German Research Centre for Geosciences <http://www.gfz-potsdam.de/>`_.
|
||||
|scname| was originally developed at GFZ.
|
||||
`GFZ Helmholtz Centre for Geosciences <http://www.gfz.de/>`_. |scname| was
|
||||
originally developed at GFZ.
|
||||
|
||||
GMPE
|
||||
Ground Motion Prediction Equation
|
||||
@ -626,21 +626,14 @@ Scientific and technical terms
|
||||
|
||||
magnitude, broadband surface wave (Ms(BB))
|
||||
Ms(BB) is a broadband magnitude scale based on teleseismic surface waves.
|
||||
In contrast to :term:`Ms <magnitude, surface wave (Ms)>`, amplitudes for Ms(BB)
|
||||
In contrast to :term:`Ms <magnitude, surface wave (Ms)>`/
|
||||
:term:`Ms <magnitude, surface wave (Ms_20)>`, amplitudes for Ms(BB)
|
||||
are measured as the maximum on vertical true ground motion velocity seismograms without
|
||||
instrument simulation or restitution.
|
||||
|
||||
The Moscow-Prague equation for surface wave magnitude is applied as given by
|
||||
|
||||
.. math::
|
||||
|
||||
M_s = \log \left(\frac{A}{2\pi}\right) + 1.66 \log(\Delta) + 3.3
|
||||
|
||||
* Amplitude unit in |scname|: **meter per second** (m/s)
|
||||
* Period range: all
|
||||
* Distance range: 2 - 160°
|
||||
* Depth range: 0 - 100 km
|
||||
* Time window: distance (km) / 3.5 km/s + 30 s
|
||||
The Moscow-Prague equation for surface wave magnitude is applied.
|
||||
Read the :ref:`technical documentation <global_msbb>` for more details and
|
||||
the configuration.
|
||||
|
||||
magnitude, duration (Md)
|
||||
The duration magnitude measured on the coda wave train.
|
||||
@ -998,7 +991,7 @@ Scientific and technical terms
|
||||
:term:`SeisComP` Markup Language. SCML is a flavor of `QuakeML
|
||||
<https://quake.ethz.ch/quakeml/>`_ and is used by |scname| and by
|
||||
products of :term:`gempa GmbH` for exchange. For details read the
|
||||
`UML diagram <https://geofon.gfz-potsdam.de/_uml/>`_.
|
||||
`UML diagram <https://geofon.gfz.de/_uml/>`_.
|
||||
|
||||
SDS
|
||||
|scname| Data Structure which is used for archiving waveform data. Below the
|
||||
@ -1026,10 +1019,9 @@ Scientific and technical terms
|
||||
seismological data acquisition and real-time data exchange over internet.
|
||||
Its data transmission protocol SeedLink became a de facto world standard.
|
||||
The first version of SeisComP was developed for the `GEOFON
|
||||
<http://geofon.gfz-potsdam.de/geofon/>`_ network and further extended
|
||||
within the MEREDIAN project under the lead of `GEOFON
|
||||
<http://geofon.gfz-potsdam.de/geofon/>`_/`GFZ
|
||||
<http://www.gfz-potsdam.de/>`_ Potsdam and `ORFEUS
|
||||
<http://geofon.gfz.de>`_ network and further extended within the MEREDIAN
|
||||
project under the lead of `GEOFON <http://geofon.gfz.de>`_/`GFZ
|
||||
<http://www.gfz.de>`_ Potsdam and `ORFEUS
|
||||
<http://www.orfeus-eu.org/>`_. Originally SeisComP was designed as a high
|
||||
standard fully automatic data acquisition and (near-)real-time data
|
||||
processing tool including quality control, event detection and location as
|
||||
|
||||
@ -19,7 +19,9 @@ Following the devastating 2004 Indian Ocean earthquake and tsunami, the
|
||||
to additional functionality being implemented to fulfill the requirements of
|
||||
24/7 early warning control centers. Major changes in the architecture of SeisComP
|
||||
were necessary and many new features resulted in the upgrade of SeisComP to
|
||||
version 3.
|
||||
version 3, resulting in the new name SeisComP3. Since the major software redesign
|
||||
including a new messaging system and the switch to AGPL in 2020 the term
|
||||
SeisComP is exclusively used along with the version number.
|
||||
|
||||
Since 2008 SeisComP has been jointly developed by :term:`gempa GmbH`, a spin-off
|
||||
company of GFZ and GFZ. Nowadays, gempa GmbH is the main SeisComP developing and
|
||||
@ -51,7 +53,7 @@ are documented in the :ref:`changelog <sc-changelog>`.
|
||||
| 2.5 | | March 2006 | Integration of add-on packages, modular config |
|
||||
| | | | script |
|
||||
+---------+-----------+--------------------+-----------------------------------------------------+
|
||||
| 3.0 | alpha | May 2007 | new architecture, new magnitude types, GUI |
|
||||
| 3.0 | alpha | May 2007 | New architecture, new magnitude types, GUI |
|
||||
+---------+-----------+--------------------+-----------------------------------------------------+
|
||||
| 3.0 | Barcelona | May 2008 | Stability and performance improvements, improved |
|
||||
| | | | GUI functionality |
|
||||
@ -69,3 +71,7 @@ are documented in the :ref:`changelog <sc-changelog>`.
|
||||
| 4.0.0 | | May 2020 | Adopts the GNU Affero General Public License v. 3.0,|
|
||||
| | | | (AGPL), support for Python3 and QT5 |
|
||||
+---------+-----------+--------------------+-----------------------------------------------------+
|
||||
| 5.0.0 | | June 2022 | |
|
||||
+---------+-----------+--------------------+-----------------------------------------------------+
|
||||
| 6.0.0 | | November 2023 | |
|
||||
+---------+-----------+--------------------+-----------------------------------------------------+
|
||||
|
||||
@ -10,10 +10,12 @@ long-term support (LTS). The Linux flavors under which |scname| has been tested
|
||||
are given along with the |scname| package names on the download sites of
|
||||
:cite:t:`seiscomp` and :cite:t:`gempa`.
|
||||
|
||||
The software can be obtained and installed from
|
||||
|scname| can be obtained and installed from
|
||||
|
||||
* Officially released packages (TAR files) for different release versions,
|
||||
Linux systems and architectures,
|
||||
* Officially released packages (TAR files) for different
|
||||
:ref:`release versions <installation_versions>`, Linux systems and
|
||||
architectures from the download sites of |scname| :cite:p:`seiscomp` or from
|
||||
:cite:t:`gempa-download`.,
|
||||
* :ref:`Source code available on GitHub <build>`.
|
||||
|
||||
Packages may include
|
||||
@ -30,10 +32,90 @@ Download these packages from :cite:t:`seiscomp` or :cite:t:`gempa-download`.
|
||||
The next sections describe the installation of the binary packages of |scname|
|
||||
on
|
||||
|
||||
* :program:`Ubuntu 18`, 64 bit system,
|
||||
* :program:`CentOS 7`, 64 bit system.
|
||||
* :program:`Ubuntu`, 64 bit system,
|
||||
* :program:`RHEL`, 64 bit system.
|
||||
|
||||
|
||||
.. _installation_versions:
|
||||
|
||||
SeisComP Versions
|
||||
=================
|
||||
|
||||
|scname| has :ref:`developed over time <history>`. The versions can be
|
||||
distinguished by the name of the release:
|
||||
|
||||
* **SeisComP since version 4.0.0** uses release version numbers such as *5.2.1*
|
||||
where
|
||||
|
||||
* 5: major version with changes in API and database schema version, new features,
|
||||
bug fixed, optimizations,
|
||||
* 2: minor version with new features, bug fixed, optimizations,
|
||||
* 1: patch number with bug fixes, optimizations.
|
||||
|
||||
* **SeisComP3** uses release versions, names, numbers and patch numbers.
|
||||
|
||||
Full example: *SeisComP3-jakarta-2020.330.02*
|
||||
|
||||
* 3: release version
|
||||
* jakarta: release name
|
||||
* 2020.330: release number
|
||||
* 02: patch number
|
||||
|
||||
Names are adjusted depending on changes in source code:
|
||||
|
||||
* **Release version:** major changes in module groups, functionality,
|
||||
concepts, data model.
|
||||
Example: SeisComp3 is SeisComP in version 3.0
|
||||
in comparison to version 2.5 the GUIs were introduced.
|
||||
* **Release name:** major changes in functionality, concepts, data model.
|
||||
Example: with SeisComP3-Seattle the new user friendly configuration GUI
|
||||
:ref:`scconfig` was introduced.
|
||||
* **Release number:** changes in data model version and/or major changes in
|
||||
applications and optimizations.
|
||||
The numbers include the year and the day of the year of the software
|
||||
release. Example: Jakarta-2018.327
|
||||
* **Patch number:** optimizations of applications without changes in the data
|
||||
model version.
|
||||
|
||||
The version number of the installed |scname| can be obtained by
|
||||
|
||||
* This documentation where it printed in the header along with the SeisComP icon
|
||||
* The running any |scname| module on the command-line using :option:`-V` such as
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ scm -V
|
||||
|
||||
scm
|
||||
Framework: 6.8.4 Release
|
||||
API version: 16.3.0
|
||||
Data schema version: 0.13
|
||||
GIT HEAD: c28f6323
|
||||
Compiler: c++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0
|
||||
Build system: Linux 6.8.12-11-pve
|
||||
OS: Ubuntu 24.04 LTS / Linux
|
||||
|
||||
|
||||
.. _installation-os:
|
||||
|
||||
Supported Operating Systems
|
||||
===========================
|
||||
|
||||
|scname| is developed and tested on Linux for the latest stable flavors with
|
||||
long-term support (LTS) and on x86_64 architecture. For |scname| in version
|
||||
7.*.*. the minimum OS and version are
|
||||
|
||||
* Debian: 11
|
||||
* RHEL: 8
|
||||
* Ubuntu: 22.04
|
||||
|
||||
Higher versions of |scname| will require higher OS versions.
|
||||
Packages for more flavors and versions may be found on
|
||||
`the SeisComP website <https://www.seiscomp.de/downloader/>`_.
|
||||
|
||||
|
||||
.. _installation-hw:
|
||||
|
||||
Hardware Requirements
|
||||
=====================
|
||||
|
||||
@ -50,7 +132,6 @@ Minimum requirements are:
|
||||
CPU; 2
|
||||
RAM; 4 GB
|
||||
HDD; 20 GB
|
||||
OS; Ubuntu last 3 major LTS versions, 64bit, Debian 8.0 64bit, RHEL 7, CentOS 7 64bit
|
||||
|
||||
In case large networks (>100 stations) are operated, a distributed system is
|
||||
recommended. Normally a |scname| system is separated in several subsystems.
|
||||
@ -93,17 +174,58 @@ GUI system:
|
||||
|
||||
.. _installation-packages:
|
||||
|
||||
Installation from Packages
|
||||
==========================
|
||||
Installation of Packages
|
||||
========================
|
||||
|
||||
This section describes the installation of |scname| from compiled |scname|
|
||||
packages which ship as :file:`*.tar.gz` files.
|
||||
This section describes the initial installation of |scname| from compiled
|
||||
|scname| packages which ship as :file:`*.tar.gz` files. For installation from
|
||||
source code follow the instructions outlined in section :ref:`compiling_source`.
|
||||
|
||||
You may install the |scname| packages in either way:
|
||||
|
||||
* :ref:`gsm<installation-gsm>` (recommended) a package manager provided by
|
||||
:cite:t:`gempa`,
|
||||
* :ref:`manually by extracting packages <installation-manual>`.
|
||||
|
||||
For later updates/upgrades read the tutorial :ref:`tutorials_upgrade`.
|
||||
|
||||
.. hint::
|
||||
|
||||
We recommend to track any changes in the installation and configuration of
|
||||
|scname| except :file:`seiscomp/var`, :file:`seiscomp/share/maps` and large
|
||||
binary files or files changing often during |scname| operation
|
||||
(e.g. :ref:`global_hypo71`, :ref:`global_nonlinloc` input and output files)
|
||||
using :program:`git`.
|
||||
|
||||
.. _installation-gsm:
|
||||
|
||||
gsm
|
||||
---
|
||||
|
||||
Installation of packages by gsm :cite:p:`gsm` is
|
||||
recommended allowing to easily update/upgrade or add/remove packages in the
|
||||
future and in order to maintain a clean file structure also after
|
||||
updates/upgrades. If you wish to install and maintain |scname|
|
||||
by :program:`gsm` :cite:p:`gsm`, then read the instruction given in the
|
||||
:cite:t:`gsm-doc`.
|
||||
|
||||
.. note::
|
||||
|
||||
While :program:`gsm` :cite:p:`gsm` allows the installation of software
|
||||
packages the OpenSource map package of |scname| must be
|
||||
:ref:`installed manually <installation-manual>`.
|
||||
|
||||
|
||||
Steps to take
|
||||
-------------
|
||||
.. _installation-manual:
|
||||
|
||||
Simply follow a few steps to complete your installation of |scname|:
|
||||
Manual unpacking
|
||||
----------------
|
||||
|
||||
A simply installation can be done by simply downloading and unpacking the
|
||||
packages, but installation and maintenance using :ref:`gsm<installation-gsm>`
|
||||
is recommended.
|
||||
For simple unpacking follow a few steps to complete your installation of
|
||||
|scname|:
|
||||
|
||||
#. Log in to your Linux system as user, e.g. sysop, the standard user in this
|
||||
documentation.
|
||||
@ -150,16 +272,18 @@ Simply follow a few steps to complete your installation of |scname|:
|
||||
|
||||
user@host:~$ tar xzf seiscomp-[version]-doc.tar.gz
|
||||
|
||||
Unpacking these files creates the |scname| :ref:`directory structure<directory_structure>`.
|
||||
|
||||
|
||||
.. _directory_structure:
|
||||
|
||||
Directory structure
|
||||
-------------------
|
||||
Directory Structure
|
||||
===================
|
||||
|
||||
All installed files and directories are found below the *seiscomp* directory.
|
||||
The directory structure of the installed system is described the table below.
|
||||
The installation of |scname| creates the |scname|
|
||||
:ref:`directory structure<directory_structure>`.
|
||||
All installed files and directories are found below the *seiscomp* directory
|
||||
unless an alternative directory is given when installing with :program:`gsm` or
|
||||
:ref:`compiling from source code<compiling_source>`.
|
||||
The directory structure of the installed system is described in the table below.
|
||||
|
||||
.. csv-table::
|
||||
:widths: 10 90
|
||||
@ -188,76 +312,63 @@ The directory structure of the installed system is described the table below.
|
||||
|
||||
.. _software_dependencies:
|
||||
|
||||
Software dependencies
|
||||
---------------------
|
||||
Software Dependencies
|
||||
=====================
|
||||
|
||||
|scname| depends on a number of additional software packages shipped with each
|
||||
Linux distribution.
|
||||
After installation of |scname| these packages can be installed using the
|
||||
:program:`seiscomp`.
|
||||
The :program:`seiscomp` tool comes with
|
||||
the command :command:`install-deps` which installs required packages.
|
||||
Read the section :ref:`System management<system-management>` for more detailed
|
||||
instructions. For example, to install the dependencies for using the MariaDB
|
||||
database, give 'mariadb-server' as parameter.
|
||||
:ref:`seiscomp` script.
|
||||
:ref:`seiscomp` comes with the command :command:`install-deps` which installs
|
||||
required packages. For example, to install the dependencies for
|
||||
using the MariaDB database, give 'mariadb-server' as parameter.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ seiscomp/bin/seiscomp install-deps base mariadb-server
|
||||
Distribution: Ubuntu 18.04
|
||||
Distribution: Ubuntu 24.04
|
||||
[sudo] password for sysop:
|
||||
Reading package lists... Done
|
||||
Building dependency tree
|
||||
Reading state information... Done
|
||||
...
|
||||
|
||||
More options for systems with GUIs and FDSNWS are: ::
|
||||
|
||||
user@host:~$ seiscomp/bin/seiscomp install-deps gui fdsnws
|
||||
|
||||
|
||||
If your distribution is not supported by :command:`install-deps`,
|
||||
install the above packages manually:
|
||||
|
||||
:program:`Ubuntu` `version`
|
||||
More requirements for systems with GUIs, FDSNWS and iLoc are:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ cd seiscomp/share/deps/ubuntu/[version]
|
||||
...
|
||||
user@host:~$ seiscomp/bin/seiscomp install-deps gui
|
||||
user@host:~$ seiscomp/bin/seiscomp install-deps fdsnws
|
||||
user@host:~$ seiscomp/bin/seiscomp install-deps iloc
|
||||
|
||||
:program:`CentOS` `version`
|
||||
|
||||
If your distribution is not supported by :ref:`seiscomp` *install-deps*,
|
||||
install the above packages manually from the scripts within the OS- and
|
||||
version-dependent directories:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ cd seiscomp/share/deps/centos/[version]
|
||||
user@host:~$ cd seiscomp/share/deps/[OS]/[version]
|
||||
...
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
su root
|
||||
bash install-mariadb-server.sh
|
||||
bash install-postgresql-server.sh
|
||||
bash install-base.sh
|
||||
bash install-gui.sh
|
||||
bash install-fdsnws.sh
|
||||
...
|
||||
|
||||
or contact the |scname| developers to add support for your distribution.
|
||||
Read the section :ref:`System management<system-management>` for more detailed
|
||||
options and instructions.
|
||||
|
||||
.. warning::
|
||||
|
||||
Either the MariaDB **or** the MySQL server can be installed; not both at the
|
||||
same time. When replacing on by the other, ensure that all related files are
|
||||
Either the MariaDB **or** the MySQL server can be installed; **not both at the
|
||||
same time**. When replacing one by the other, ensure that all related files are
|
||||
removed before installing the alternative server. For MySQL instead of MariaDB
|
||||
use: ::
|
||||
use:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
root@host:~$ sh install-mysql-server.sh
|
||||
|
||||
Preferably use MariaDB instead of MySQL as MariaDB is the default for the
|
||||
supported Linux distributions!
|
||||
|
||||
.. note ::
|
||||
.. note::
|
||||
|
||||
Linux systems develop dynamically and the installation of the dependencies
|
||||
may be incomplete. |scname| modules will stop and indicate the missing software.
|
||||
@ -304,7 +415,7 @@ MariaDB / MySQL
|
||||
innodb_buffer_pool_size = <your value>
|
||||
innodb_flush_log_at_trx_commit = 2
|
||||
|
||||
.. note ::
|
||||
.. note::
|
||||
|
||||
The location of the configuration file can differ between distributions.
|
||||
|
||||
@ -312,7 +423,7 @@ MariaDB / MySQL
|
||||
|
||||
:file:`/etc/mysql/mariadb.conf.d/50-server.cnf`
|
||||
|
||||
:program:`CentOS`:
|
||||
:program:`RHEL`:
|
||||
|
||||
:file:`/etc/my.cnf`
|
||||
|
||||
@ -327,7 +438,7 @@ MariaDB / MySQL
|
||||
|
||||
user@host:~$ sudo systemctl enable mariadb
|
||||
|
||||
:program:`CentOS`
|
||||
:program:`RHEL`
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
@ -337,11 +448,15 @@ MariaDB / MySQL
|
||||
* If you make a fresh installation of MariaDB/MySQL, secure the database and set
|
||||
a password for the root user
|
||||
|
||||
:program:`Ubuntu` ::
|
||||
:program:`Ubuntu`
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ sudo mysql_secure_installation
|
||||
|
||||
:program:`CentOS` ::
|
||||
:program:`RHEL`
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ su root
|
||||
root@host:~$ mysql_secure_installation
|
||||
@ -361,14 +476,14 @@ MariaDB / MySQL
|
||||
|
||||
user@host:~$ sudo systemctl restart mariadb
|
||||
|
||||
:program:`CentOS`:
|
||||
:program:`RHEL`:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
user@host:~$ su root
|
||||
root@host:~$ systemctl restart mariadb
|
||||
|
||||
.. note ::
|
||||
.. note::
|
||||
|
||||
Replace mariadb by mysql when using MySQL instead of MariaDB.
|
||||
|
||||
@ -385,15 +500,14 @@ PostgreSQL
|
||||
after |scname| database initialization. Here an example how to enable
|
||||
user/password authentication for local and remote connections.
|
||||
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# TYPE DATABASE USER ADDRESS METHOD
|
||||
# IPv4 local connections:
|
||||
host seiscomp sysop 0.0.0.0/0 md5
|
||||
host all all 127.0.0.1/32 ident
|
||||
# TYPE DATABASE USER ADDRESS METHOD
|
||||
# IPv4 local connections:
|
||||
host seiscomp sysop 0.0.0.0/0 md5
|
||||
host all all 127.0.0.1/32 ident
|
||||
|
||||
.. note ::
|
||||
.. note::
|
||||
|
||||
The order of the rules matters and the location of the configuration file
|
||||
can differ between distributions.
|
||||
@ -402,7 +516,7 @@ PostgreSQL
|
||||
|
||||
:file:`/etc/postgresql/10/main/pg_hba.conf`
|
||||
|
||||
:program:`CentOS`:
|
||||
:program:`RHEL`:
|
||||
|
||||
:file:`/var/lib/pgsql/data/pg_hba.conf`
|
||||
|
||||
@ -414,7 +528,7 @@ PostgreSQL
|
||||
|
||||
listen_addresses = 0.0.0.0/0
|
||||
|
||||
.. note ::
|
||||
.. note::
|
||||
|
||||
The location of the configuration file can differ between distributions.
|
||||
|
||||
@ -422,7 +536,7 @@ PostgreSQL
|
||||
|
||||
:file:`/etc/postgresql/10/main/postgresql.conf`
|
||||
|
||||
:program:`CentOS`:
|
||||
:program:`RHEL`:
|
||||
|
||||
:file:`/var/lib/pgsql/data/postgresql.conf`
|
||||
|
||||
|
||||
@ -86,10 +86,23 @@ The *seiscomp* script can be executed with additional commands:
|
||||
|
||||
* **install-deps** [packages]
|
||||
|
||||
Installs 3rd party packages on which |scname| depends such as MariaDB or MySQL.
|
||||
Installs 3rd-party packages on which |scname| depends such as MariaDB or MySQL.
|
||||
This is currently only supported for major Linux distributions. A list of packages
|
||||
needs to be given. Available packages are: **base**, **GUI**,
|
||||
**mariadb-server**, **postgresql-server**, **fdsnws**.
|
||||
needs to be given. Available packages are defined in BASH scripts located in
|
||||
:file:`@DATADIR@/deps/[os]/[version]/install-[name].sh`:
|
||||
|
||||
.. csv-table::
|
||||
:widths: 40 60
|
||||
:align: left
|
||||
:delim: ;
|
||||
:header: Package name, Installation
|
||||
|
||||
base; Base libraries needed for all |scname| module
|
||||
gui; Libraries for running graphical interfaces
|
||||
mariadb-server/mysql-sever; Mariadb/MySQL server
|
||||
postgresql-server; Postgresql server
|
||||
fdsnws; Python modules for running FDSNWS
|
||||
iloc; Auxiliary files for :ref:`global_iloc` from :cite:t:`iloc-github`
|
||||
|
||||
#. Install only base system dependencies:
|
||||
|
||||
@ -117,6 +130,12 @@ The *seiscomp* script can be executed with additional commands:
|
||||
|
||||
seiscomp install-deps gui fdsnws
|
||||
|
||||
#. For using :ref:`global_iloc`:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp install-deps iloc
|
||||
|
||||
* **list** modules|aliases|enabled|disabled
|
||||
|
||||
Lists items.
|
||||
@ -237,7 +256,7 @@ Examples
|
||||
/home/sysop/seiscomp/etc/key/seedlink/profile_geofon
|
||||
--------------------------------------------------------------------------------
|
||||
sources = chain
|
||||
sources.chain.address = geofon.gfz-potsdam.de
|
||||
sources.chain.address = geofon.gfz.de
|
||||
sources.chain.port = 18000
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -126,8 +126,9 @@ Here *alphanumeric* means the digits 0 to 9, and uppercase letters A-Z.
|
||||
|
||||
For publicly-available seismic stations these are typically supplied
|
||||
by external servers such as :ref:`seedlink` or :cite:t:`caps` servers.
|
||||
For example, the :cite:t:`geofon` seismic network makes data available at port 18000
|
||||
at geofon.gfz-potsdam.de which you may query and test using :ref:`slinktool`.
|
||||
For example, the :cite:t:`geofon` seismic network makes data available at port
|
||||
*18000* at *geofon.gfz.de* which you may query and test using
|
||||
:ref:`slinktool`.
|
||||
|
||||
If you operate your own seismic network, you may collect data directly
|
||||
from your station's digitizer using one of the many plugins included with
|
||||
|
||||
@ -8,19 +8,23 @@ Style Guide for Documentation
|
||||
File Layout
|
||||
===========
|
||||
|
||||
The documentation of an executable module comes as a pair of source files:
|
||||
The documentation of an executable module or plugin comes as a pair of source
|
||||
files:
|
||||
|
||||
* A description XML file (.xml) giving command details, command-line and configuration parameters,
|
||||
* A documentation reST text file (.rst) gives a more-detailed module description and examples.
|
||||
* A :ref:`description XML file (.xml) <contributing_documentation_XML>` giving
|
||||
command details, command-line and configuration parameters,
|
||||
* A :ref:`documentation reST text file (.rst) <documentation_style_guide_rst>`
|
||||
gives a more-detailed module description and examples.
|
||||
|
||||
Any other documentation, e.g. this style guide, tutorials, etc. only require the
|
||||
documentation reST text file.
|
||||
|
||||
The reST text file should follow the guidelines in this style guide.
|
||||
The :ref:`contributing_documentation` section details the documentation
|
||||
requirements for executables including the structure of description XML files.
|
||||
|
||||
The :ref:`contributing_documentation` section details
|
||||
the documentation requirements for executables including the structure of description XML files.
|
||||
|
||||
.. _documentation_style_guide_rst:
|
||||
|
||||
Documentation Syntax
|
||||
====================
|
||||
@ -35,10 +39,10 @@ Add information about testing and examples into their own sections.
|
||||
General principles
|
||||
------------------
|
||||
|
||||
- If possible, keep line lengths under 80 characters.
|
||||
- It eases later editing if sentences in the raw RST start on a new
|
||||
* If possible, confine lines to 80 characters.
|
||||
* It eases later editing if sentences in the raw RST start on a new
|
||||
line, even though they will flow together in the finished document.
|
||||
- It is helpful if long text objects such as HTML link text each
|
||||
* It is helpful if long text objects such as HTML link text each
|
||||
appear on their own line.
|
||||
|
||||
|
||||
@ -53,14 +57,14 @@ description information in the appropriate part of the documentation.
|
||||
|
||||
While RST doesn't care too much about what syntax is used for
|
||||
headings, it is best to stick to one style consistently.
|
||||
Thus, you will generally need only two levels of headings but you can add more.
|
||||
Thus, you will generally need only few levels of headings but you can add more.
|
||||
|
||||
+-------+------------------------------+
|
||||
| Level | Mark up beneath heading text |
|
||||
+=======+==============================+
|
||||
| 1 | ' ==== ' |
|
||||
+-------+------------------------------+
|
||||
| 2 | " ---- " |
|
||||
| 2 | ' - - - ' |
|
||||
+-------+------------------------------+
|
||||
| 3 | ' ~~~~ ' |
|
||||
+-------+------------------------------+
|
||||
@ -89,8 +93,9 @@ Parts such as Examples are marked in **bold**.
|
||||
|
||||
However notes and figures should use the appropriate RST directive, and don't require their own headings.
|
||||
|
||||
- One blank line below headings is enough.
|
||||
- Two lines above are often used, and this looks better than one.
|
||||
* One blank line below headings is enough.
|
||||
* Two lines above are often used, and this looks better than one.
|
||||
|
||||
|
||||
Lists
|
||||
-----
|
||||
@ -122,10 +127,44 @@ Use numbered or unnumbered lists at several levels.
|
||||
* subitem 2.
|
||||
|
||||
|
||||
Other markup tools and conventions
|
||||
----------------------------------
|
||||
Tables
|
||||
------
|
||||
|
||||
- **Code fragments:** Use the reST code-block syntax for code fragments, with
|
||||
Tables may be generated as CSV tables defining the
|
||||
|
||||
* column width
|
||||
* header text
|
||||
* alignment
|
||||
* delimiter
|
||||
* table content
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
.. csv-table::
|
||||
:widths: 20 80
|
||||
:header: Item, Value
|
||||
:align: center
|
||||
:delim: ;
|
||||
|
||||
1; value for item 1
|
||||
2; value for item 2
|
||||
|
||||
**Result:**
|
||||
|
||||
.. csv-table::
|
||||
:widths: 20 80
|
||||
:header: Item, Value
|
||||
:align: center
|
||||
:delim: ;
|
||||
|
||||
1; value for item 1
|
||||
2; value for item 2
|
||||
|
||||
|
||||
Other tools and conventions
|
||||
---------------------------
|
||||
|
||||
* **Code fragments:** Use the reST code-block syntax for code fragments, with
|
||||
flavors like "c", "python", "sh", "bash", "properties´" or "xml" as appropriate:
|
||||
|
||||
.. code-block:: rst
|
||||
@ -142,7 +181,7 @@ Other markup tools and conventions
|
||||
#!/bin/bash
|
||||
echo $SEISCOMP_ROOT
|
||||
|
||||
- **Configuration parameters:** Configuration values have a special
|
||||
* **Configuration parameters:** Configuration values have a special
|
||||
syntax. Use the ':confval:' indicator for referencing a module configuration
|
||||
parameter:
|
||||
|
||||
@ -150,20 +189,24 @@ Other markup tools and conventions
|
||||
|
||||
:confval:`logging.level`
|
||||
|
||||
Result: :confval:`logging.level`.
|
||||
|
||||
Using this tag allows a link to be made within the documentation of that module
|
||||
to the given configuration of the same module. The parameter must be defined
|
||||
in the description XML file of the module.
|
||||
|
||||
- **Command-line options:** Command-line options have a special
|
||||
* **Command-line options:** Command-line options have a special
|
||||
syntax. Use the ':option:' indicator for referencing an option:
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
:option:`--help`
|
||||
|
||||
The option must be defined in the description XML file of the module.
|
||||
Result: :option:`--help`.
|
||||
|
||||
- **Configuration files:** Use the reST ':file:' indicator to refer to files such
|
||||
The option must be defined in the description XML file of the module or global.
|
||||
|
||||
* **Configuration files:** Use the reST ':file:' indicator to refer to files such
|
||||
as configuration files:
|
||||
|
||||
.. code-block:: rst
|
||||
@ -172,7 +215,7 @@ Other markup tools and conventions
|
||||
|
||||
Result: :file:`$SEISCOMP_ROOT/etc/scautopick.cfg`
|
||||
|
||||
- **Programs:** Use the reST ':program:' indicator for |scname| programs:
|
||||
* **Programs:** Use the reST ':program:' indicator for |scname| programs:
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
@ -180,7 +223,7 @@ Other markup tools and conventions
|
||||
|
||||
Result: :program:`scautopick`
|
||||
|
||||
- **References:** Use the reST ':ref:' indicator for cross referencing |scname|
|
||||
* **References:** Use the reST ':ref:' indicator for cross referencing |scname|
|
||||
module documentation pages:
|
||||
|
||||
.. code-block:: rst
|
||||
@ -189,7 +232,7 @@ Other markup tools and conventions
|
||||
|
||||
Result: :ref:`scautopick`
|
||||
|
||||
- **Glossary:** Use the reST ':term:' indicator for referencing terms in the
|
||||
* **Glossary:** Use the reST ':term:' indicator for referencing terms in the
|
||||
|scname| :ref:`glossary`:
|
||||
|
||||
.. code-block:: rst
|
||||
@ -198,6 +241,27 @@ Other markup tools and conventions
|
||||
|
||||
Result: :term:`magnitude`
|
||||
|
||||
* **Download link:** Use the reST ':download:' indicator for referencing a file
|
||||
in the local file system. The file is loaded when clicking on the link
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
:download:`changelog <./CHANGELOG.md>`
|
||||
|
||||
Result: :download:`changelog <./CHANGELOG.md>`
|
||||
|
||||
.. hint::
|
||||
|
||||
When using the reST indicators, text may be given which is shown instead of
|
||||
the actual link. Enclose the actual link within '<link>' and prepend the
|
||||
actual text. Example
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
:ref:`the scautopick module <scautopick>`
|
||||
|
||||
Result: :ref:`the scautopick module <scautopick>`
|
||||
|
||||
|
||||
.. _documentation_style_guide_links:
|
||||
|
||||
@ -208,19 +272,19 @@ Create links to sections and subsections within and to figures the text which c
|
||||
Use unique link names, e.g. including the upper-level section name or the module name.
|
||||
Use appropriate short names to fit within the texts.
|
||||
|
||||
Link within this documentation to the section on headings:
|
||||
Create a label within this |scname| documentation to the section on headings:
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
.. _documentation_style_guide_headings:
|
||||
|
||||
Reference:
|
||||
and refer to the lable within the text:
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
:ref:`short name <documentation_style_guide_headings>`
|
||||
:ref:`link to this section <documentation_style_guide_headings>`
|
||||
|
||||
Result: :ref:`short name <documentation_style_guide_headings>`
|
||||
Result: :ref:`link to this section <documentation_style_guide_headings>`
|
||||
|
||||
|
||||
External links and references
|
||||
@ -336,66 +400,19 @@ Make sensible use of it!
|
||||
This adds an important warning.
|
||||
|
||||
|
||||
English Language
|
||||
================
|
||||
|
||||
- SeisComP (capital P), not SeisComP 3 or SC3.
|
||||
- |scname| module names are proper nouns, even though written with lower case.
|
||||
Thus they do not need an article.
|
||||
|
||||
* Correct: "Although :program:`scmaster` receives a message"
|
||||
* Incorrect: "Although the scmaster receives a message..."
|
||||
|
||||
A sentence may begin with a lower case module name e.g. "scmaster has five modes..."
|
||||
avoiding this: "The :program:`scmaster` module has..."
|
||||
|
||||
- Word separation:
|
||||
|
||||
- Separate words:
|
||||
base class, wave number, time span
|
||||
- One word:
|
||||
aftershock, foreshock, *and mainshock too*,
|
||||
bandpass, eigenperiod etc., metadata, standalone, username, workflow, waveform
|
||||
- Difficult:
|
||||
high-pass filter; command line; command-line parameter
|
||||
|
||||
- Hyphenation for compound adjectives: yes, before a noun; after verb to be is harder.
|
||||
See the `discussion`_, e.g.:
|
||||
|
||||
- Use command-line parameters
|
||||
- Type on the command line
|
||||
|
||||
- Spelling:
|
||||
|
||||
Use American English:
|
||||
|
||||
- With 'z': digitizer, realize, visualize, synchronize, behavior, color.
|
||||
- With 's': license.
|
||||
- Center, data center.
|
||||
|
||||
- Case:
|
||||
|
||||
- SEED, miniSEED (miniSEED in :cite:t:`libmseed-github`, or MiniSEED,
|
||||
but Mini-SEED appears in Appendix G of the :cite:t:`seed-2012`.)
|
||||
- Ctrl+S for 'control' key plus 's'.
|
||||
- MySQL, PostgreSQL, MariaDB
|
||||
|
||||
- Abbreviations:
|
||||
|
||||
- e.g., i.e.
|
||||
- STA, LTA, STA/LTA detector
|
||||
- TAR file
|
||||
|
||||
|
||||
.. _documentation_style_guide_images:
|
||||
|
||||
Adding Images
|
||||
=============
|
||||
Images
|
||||
------
|
||||
|
||||
Code implementation
|
||||
-------------------
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The images will be moved to the correct location during the documentation build.
|
||||
|
||||
* Place image files in a suitable sub-directory of :file:`descriptions/media`.
|
||||
* Add images with fixed width.
|
||||
* Define image alignment.
|
||||
* Add image captions.
|
||||
* Store images in a separate directory of below the directory where the
|
||||
documentation is kept.
|
||||
@ -436,7 +453,7 @@ Compare with the :ref:`concept section on configuration<concepts_configuration-c
|
||||
|
||||
|
||||
Image style and format
|
||||
----------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Images shall be informative.
|
||||
* Images must not have any offensive or inappropriate content.
|
||||
@ -451,6 +468,57 @@ Image style and format
|
||||
X-forwarding may distort the application features.
|
||||
|
||||
|
||||
English Language
|
||||
================
|
||||
|
||||
* SeisComP (capital P), not SeisComP 3 or SC3.
|
||||
* |scname| module names are proper nouns, even though written with lower case.
|
||||
Thus they do not need an article.
|
||||
|
||||
* Correct: "Although :program:`scmaster` receives a message"
|
||||
* Incorrect: "Although the scmaster receives a message..."
|
||||
|
||||
A sentence may begin with a lower case module name e.g. "scmaster has five modes..."
|
||||
avoiding this: "The :program:`scmaster` module has..."
|
||||
|
||||
* Word separation:
|
||||
|
||||
* Separate words:
|
||||
base class, wave number, time span
|
||||
* One word:
|
||||
aftershock, foreshock, *and mainshock too*,
|
||||
bandpass, eigenperiod etc., metadata, standalone, username, workflow, waveform
|
||||
* Difficult:
|
||||
high-pass filter; command line; command-line parameter
|
||||
|
||||
* Hyphenation for compound adjectives: yes, before a noun; after verb to be is harder.
|
||||
See the `discussion`_, e.g.:
|
||||
|
||||
* Use command-line parameters
|
||||
* Type on the command line
|
||||
|
||||
* Spelling:
|
||||
|
||||
Use American English:
|
||||
|
||||
* With 'z': digitizer, realize, visualize, synchronize, behavior, color.
|
||||
* With 's': license.
|
||||
* Center, data center.
|
||||
|
||||
* Case:
|
||||
|
||||
* SEED, miniSEED (miniSEED in :cite:t:`libmseed-github`, or MiniSEED,
|
||||
but Mini-SEED appears in Appendix G of the :cite:t:`seed-2012`.)
|
||||
* Ctrl+S for 'control' key plus 's'.
|
||||
* MySQL, PostgreSQL, MariaDB
|
||||
|
||||
* Abbreviations:
|
||||
|
||||
* e.g., i.e.
|
||||
* STA, LTA, STA/LTA detector
|
||||
* TAR file
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
|
||||
@ -7,12 +7,12 @@ Unit Testing
|
||||
Introduction
|
||||
============
|
||||
|
||||
From Wikipedia:
|
||||
From Wikipedia [#WPUT]_: ::
|
||||
|
||||
In computer programming, unit testing is a software testing method by which
|
||||
individual units of source code, sets of one or more computer program modules
|
||||
together with associated control data, usage procedures, and operating
|
||||
procedures, are tested to determine whether they are fit for use. [#WPUT]_
|
||||
In computer programming, unit testing is a software testing method by which
|
||||
individual units of source code, sets of one or more computer program modules
|
||||
together with associated control data, usage procedures, and operating
|
||||
procedures, are tested to determine whether they are fit for use.
|
||||
|
||||
This chapter targets programmers, either ones contributing to |scname| or
|
||||
adding their extended set of modules / libraries.
|
||||
@ -35,6 +35,7 @@ library.
|
||||
Apart from the availability of the Boost test libraries, cmake with version
|
||||
2.8.0 or greater is also required.
|
||||
|
||||
|
||||
Preparations
|
||||
============
|
||||
|
||||
@ -53,6 +54,7 @@ its executable against the library the tests are built for.
|
||||
|
||||
The recommend test file naming is :code:`{class}_{function}.cpp`.
|
||||
|
||||
|
||||
Execution
|
||||
=========
|
||||
|
||||
@ -62,9 +64,10 @@ Compiling and running tests is as easy as running
|
||||
|
||||
make test
|
||||
|
||||
in the build directory. Thats it.
|
||||
in the build directory. That's it.
|
||||
|
||||
Test implementation
|
||||
|
||||
Test Implementation
|
||||
===================
|
||||
|
||||
The following section shows an example of a simple but in many cases sufficient
|
||||
@ -108,6 +111,7 @@ your test executable against :code:`${Boost_unit_test_framework_LIBRARY}` and
|
||||
COMMAND test_mylib_myfeature
|
||||
)
|
||||
|
||||
|
||||
Warning levels
|
||||
--------------
|
||||
|
||||
@ -163,6 +167,7 @@ Tools
|
||||
|
||||
For more tools and information about the Boost unit test tools see [#b4]_.
|
||||
|
||||
|
||||
Test output
|
||||
===========
|
||||
|
||||
|
||||
@ -13,11 +13,18 @@ Historically, the only time format native to |scname| would be
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
YYYY-MM-DD hh:mm:ss.ssssss
|
||||
'%F %T.%f'
|
||||
|
||||
As a consequence of the space between *DD* and *hh* this time string needs
|
||||
to be enclosed by quotes or double quotes. Otherwise, the time string meant to
|
||||
be a single string only would be interpreted as two strings. Example:
|
||||
like
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
'2025-01-01 00:00:00.000000'
|
||||
|
||||
As a consequence of the space character between *DD* and *HH* this time string
|
||||
needs to be enclosed by quotes or double quotes. Otherwise, the time string
|
||||
meant to be a single string only would be interpreted as two strings. Example
|
||||
application:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
@ -55,55 +62,43 @@ Currently unsupported are:
|
||||
* Time zone offset designators,
|
||||
* Local times.
|
||||
|
||||
.. csv-table:: List and examples of supported time string formats
|
||||
:widths: 30 30 40
|
||||
:header: Implementation, Time string format, Examples: all actual times are identical
|
||||
.. csv-table:: Table: List and examples of supported time string formats
|
||||
:widths: 40 60
|
||||
:header: Implementation (+), Examples: all given times are identical
|
||||
:align: left
|
||||
:delim: ;
|
||||
|
||||
%FT%T.%fZ ; YYYY-MM-DDThh:mm:ss.ssssssZ ; 2025-01-01T00:00:00.000000Z
|
||||
%FT%T.%f ; YYYY-MM-DDThh:mm:ss.ssssss ; 2025-01-01T00:00:00.000000
|
||||
%FT%TZ ; YYYY-MM-DDThh:mm:ssZ ; 2025-01-01T00:00:00Z
|
||||
%FT%T ; YYYY-MM-DDThh:mm:ss ; 2025-01-01T00:00:00
|
||||
%FT%R ; YYYY-MM-DDThh:mm ; 2025-01-01T00:00
|
||||
%FT%H ; YYYY-MM-DDThh ; 2025-01-01T00
|
||||
%Y-%jT%T.%f ; YYYY-DDDThh:mm:ss.ssssss ; 2025-001T00:00:00.000000
|
||||
%Y-%jT%T ; YYYY-DDDThh:mm:ss ; 2025-001T00:00:00
|
||||
%Y-%jT%R ; YYYY-DDDThh:mm ; 2025-001T00:00
|
||||
%Y-%jT%H ; YYYY-DDDThh ; 2025-001T00
|
||||
%F %T.%f (*) ; YYYY-MM-DD hh:mm:ss.ssssss ; '2025-01-01 00:00:00.000000'
|
||||
%F %T (*) ; YYYY-MM-DD hh:mm:ss ; '2025-01-01 00:00:00'
|
||||
%F %R (*) ; YYYY-MM-DD hh:mm ; '2025-01-01 00:00'
|
||||
%F %H (*) ; YYYY-MM-DD hh ; '2025-01-01 00'
|
||||
%F ; YYYY-MM-DD ; 2025-01-01
|
||||
%Y-%j ; YYYY-DDD ; 2025-001
|
||||
%Y ; YYYY ; 2025
|
||||
%FT%T.%fZ ; 2025-01-01T00:00:00.000000Z
|
||||
%FT%T.%f ; 2025-01-01T00:00:00.000000
|
||||
%FT%TZ ; 2025-01-01T00:00:00Z
|
||||
%FT%T ; 2025-01-01T00:00:00
|
||||
%FT%R ; 2025-01-01T00:00
|
||||
%FT%H ; 2025-01-01T00
|
||||
%Y-%jT%T.%f ; 2025-001T00:00:00.000000
|
||||
%Y-%jT%T ; 2025-001T00:00:00
|
||||
%Y-%jT%R ; 2025-001T00:00
|
||||
%Y-%jT%H ; 2025-001T00
|
||||
%F %T.%f (*) ; '2025-01-01 00:00:00.000000'
|
||||
%F %T (*) ; '2025-01-01 00:00:00'
|
||||
%F %R (*) ; '2025-01-01 00:00'
|
||||
%F %H (*) ; '2025-01-01 00'
|
||||
%F ; 2025-01-01
|
||||
%Y-%j ; 2025-001
|
||||
%Y ; 2025
|
||||
|
||||
(+): Compare the formats with those of the :program:`date` command:
|
||||
:program:`man date`.
|
||||
|
||||
(*): Time strings with spaces must be enclosed by quotes or double quotes for
|
||||
protecting the space.
|
||||
protecting the space character.
|
||||
|
||||
.. csv-table:: List of format symbols used in table of time string formats
|
||||
:widths: 10 90
|
||||
:header: Symbol, Description
|
||||
:align: left
|
||||
:delim: ;
|
||||
|
||||
YYYY; 4-digit year
|
||||
MM; 2-digit month starting with 01
|
||||
DD; 1- or 2-digit day of the month starting with 01
|
||||
DDD; 1-, 2- or 3-digit day of year starting with 001
|
||||
hh; 1- or 2-digit hour of the day starting with 00
|
||||
mm; 1- or 2-digit minute of the hour starting with 00
|
||||
ss; 1- or 2-digit second of the minute starting with 00
|
||||
ssssss; 1-6 digits decimal fraction of a second with 0
|
||||
Z; Zone designator for the zero UTC offset
|
||||
|
||||
Durations can be formed from start and end dates and times combined by tilde(~).
|
||||
Example:
|
||||
Time spans can be formed from start and end dates and times combined by tilde
|
||||
(~). Examples:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scart -dsEv -t 2024-01-01T12~2024-01-01T12:15:30.2Z
|
||||
scart -dsEv -t '2024-01-01 12:00:00~2024-01-01 12:15:30.2'
|
||||
|
||||
|
||||
.. _time-grammar:
|
||||
@ -258,7 +253,7 @@ Functions
|
||||
.. py:function:: tt(phase)
|
||||
|
||||
Calculates the travel-time of the given phase **w.r.t. relative origin
|
||||
time, :py:envvar:`OT`**. The result is unset if the travel time cannot be
|
||||
time**, :py:envvar:`OT`. The result is unset if the travel time cannot be
|
||||
computed. The travel times are computed based on the travel-time interface
|
||||
and model defined in :confval:`amplitudes.ttt.interface` and
|
||||
:confval:`amplitudes.ttt.model`, respectively.
|
||||
@ -276,9 +271,9 @@ Functions
|
||||
sensor location of the associated pick must match the sensor
|
||||
location of the target object.
|
||||
:param acceptAll: Whether to accept all arrivals or only manually
|
||||
revised arrivals. The default is 'true' if not
|
||||
revised arrivals. The default is 'false' if not
|
||||
given. Allowed is either 'true' or 'false'. If
|
||||
'true' is given, then either the evaluation mode
|
||||
'false' is given, then either the evaluation mode
|
||||
of the origin or the evaluation mode of the pick
|
||||
must be 'manual'.
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ For details, see the other chapters of this manual.
|
||||
/base/tutorials/processing
|
||||
/base/tutorials/geofon_waveforms
|
||||
/base/tutorials/servefdsnws
|
||||
/base/tutorials/magnitude-regionalization
|
||||
/base/tutorials/amplitudes-magnitudes
|
||||
/base/tutorials/waveformplayback
|
||||
/base/tutorials/help
|
||||
|
||||
|
||||
@ -0,0 +1,528 @@
|
||||
.. _tutorials_magnitude-region-aliases:
|
||||
|
||||
***************************************************
|
||||
Amplitudes/Magnitudes: Regionalization, Aliases, Mw
|
||||
***************************************************
|
||||
|
||||
You will ...
|
||||
|
||||
* Regionalize magnitudes.
|
||||
* Create new amplitude and magnitude types as aliases from other amplitudes and
|
||||
magnitudes.
|
||||
* Map magnitudes to the moment magnitude, Mw.
|
||||
|
||||
|
||||
:Pre-requisites for this tutorial:
|
||||
|
||||
* Read the :ref:`concepts section on magnitudes <concepts_magnitudes>`.
|
||||
* Real-time data for the station must be available locally.
|
||||
See :ref:`tutorials_waveforms` or :ref:`tutorials_geofon_waveforms`.
|
||||
* Inventory must be loaded locally.
|
||||
|
||||
|
||||
:Afterwards/Results/Outcomes:
|
||||
|
||||
* Regionalized amplitudes and magnitudes
|
||||
* New amplitude and magnitude types as aliases
|
||||
* Moment magnitudes
|
||||
|
||||
|
||||
:Time range estimate:
|
||||
|
||||
* 60 minutes
|
||||
|
||||
|
||||
-----------
|
||||
|
||||
|
||||
Regionalization
|
||||
===============
|
||||
|
||||
|
||||
By regionalization, amplitudes and magnitudes can be computed depending on the
|
||||
region of the source or source-receiver pairs.
|
||||
Regions are defined by polygons in BNA or GeoJSON files which must be known to
|
||||
|scname|.
|
||||
|
||||
|
||||
.. _tutorials_amplitudes-region:
|
||||
|
||||
Amplitudes
|
||||
----------
|
||||
|
||||
Measuring amplitudes only for sources or pairs of sources and stations in
|
||||
specific regions is possible by regionalization. The region polygons are defined
|
||||
by :ref:`magnitude regionalization <tutorials_magnitude-region>`. In
|
||||
order to use the feature, regionalized amplitudes and magnitudes must have the
|
||||
same type (name) and regionalization must be activated per amplitude type in
|
||||
amplitude-type profiles of global bindings.
|
||||
|
||||
|
||||
.. _tutorials_magnitude-region:
|
||||
|
||||
Magnitudes
|
||||
----------
|
||||
|
||||
With regionalization magnitudes can be computed with region-dependent parameters.
|
||||
If magnitude regionalization is configured but a source or source-station pairs
|
||||
are not considered, no magnitude of the corresponding type is computed.
|
||||
|
||||
|
||||
Setup
|
||||
~~~~~
|
||||
|
||||
The procedure to set up magnitude regionalization is:
|
||||
|
||||
#. Create one file which contains the polygons surrounding the regions within
|
||||
which magnitude parameters shall apply. The polygon files are provided in
|
||||
:ref:`BNA <sec-gui_layers-vector-format-bna>` or
|
||||
:ref:`GeoJSON format <sec-gui_layers-vector-format-geojson>` and located as
|
||||
set out in the :ref:`documentation of map layers <sec-gui_layers>`. The file
|
||||
can be created from any |scname| GUI application providing maps, e.g.,
|
||||
:ref:`scmv`.
|
||||
#. For the desired magnitude type create a magnitude-type profile in global
|
||||
module configuration. The name of the profile matches the name of the
|
||||
magnitude, e.g., *MLc* for the :ref:`MLc magnitude <global_mlc>`.
|
||||
#. Configure the :confval:`magnitudes.MLc.regionFile` parameter with the full
|
||||
path and name of the polygon file created above.
|
||||
#. Within the magnitude-type profile create one or more magnitude-region
|
||||
profile(s) for defining the regionalized parameters applied to the region(s).
|
||||
The name of a profile corresponds to the name of the polygon contained in the
|
||||
polygon file to which the parameters shall apply. Use *world* for all regions
|
||||
not covered by any polygon.
|
||||
#. Configure the regionalized magnitude parameters of the magnitude-region
|
||||
profile. Activate the *enable* parameter if you wish to apply this profile.
|
||||
#. Restart the data processing:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp restart
|
||||
|
||||
or execute a GUI module.
|
||||
|
||||
.. important::
|
||||
|
||||
* Parameters which can be configured along with regionalization assume
|
||||
defaults from global binding parameters but override global bindings
|
||||
parameters when configured.
|
||||
* Once regionalization is active, magnitudes for events outside the
|
||||
defined region(s) will not be computed. For considering such events add
|
||||
another magnitude-region profile with the name "*world*".
|
||||
Magnitudes for events outside any other magnitude-region profile will then
|
||||
be computed according to this profile.
|
||||
|
||||
|
||||
Setup: station corrections
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:ref:`Magnitude station corrections <concepts-magnitudes-correction>` can also
|
||||
be applied in case of reBy regionalization, magnitudes can be computed with region-dependent properties.
|
||||
Regions are defined by polygons in BNA or GeoJSON files which must be known to
|
||||
|scname|.gionalization. Simply add the names of the
|
||||
magnitude-region profile along with the correction parameter to the original
|
||||
parameter in global module configuration, :file:`global.cfg`, for the respective
|
||||
magnitude type and station. Use comma separation for multiple regions and colon
|
||||
for separating the region name from the value.
|
||||
|
||||
Example for correcting MLv computed at station GE.UGM:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
module.trunk.GE.UGM.magnitudes.MLv.offset = 0.1, europe:0.2, asia:-0.1
|
||||
|
||||
.. note::
|
||||
|
||||
The configuration of parameters starting with *module.trunk.* is not
|
||||
supported by :ref:`scconfig`. All corresponding configurations must be done
|
||||
by directly editing the configuration file, e.g.,
|
||||
:file:`seiscomp/etc/global.cfg`.
|
||||
|
||||
|
||||
Application
|
||||
~~~~~~~~~~~
|
||||
|
||||
When configured, regionalization is automatically applied when computing
|
||||
magnitudes in :ref:`scmag` or :ref:`scolv`.
|
||||
|
||||
|
||||
.. _tutorials_mags_regionalize_testing:
|
||||
|
||||
Testing
|
||||
~~~~~~~
|
||||
|
||||
* Regionalization:
|
||||
|
||||
#. Start :ref:`scolv` with the option :option:`--debug` and load an event of
|
||||
interest
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scolv --debug
|
||||
|
||||
#. Relocate the event for generating a new origin.
|
||||
#. Compute magnitudes selecting the magnitude of interest.
|
||||
#. Inspect the computed magnitudes in the
|
||||
:ref:`Magnitude tab of scolv <scolv-sec-magnitude-tab>` or read the
|
||||
debug output listing the considered magnitudes and stations along with
|
||||
the regionalized parameters.
|
||||
|
||||
|
||||
.. _tutorials_amplitude-aliases:
|
||||
|
||||
Amplitude Aliases
|
||||
=================
|
||||
|
||||
Amplitude aliases are new amplitude types based original ones. Such aliases
|
||||
allow their specific configuration and computation. They can be created and
|
||||
independent of magnitudes by :ref:`scautopick` and :ref:`scamp` and used for
|
||||
:ref:`magnitude aliases <tutorials_magnitude-aliases>`.
|
||||
|
||||
.. note::
|
||||
|
||||
Amplitude aliases make use of the same parameter structure as the initial
|
||||
amplitude but the parameters must be configured independently.
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
#. Global module configuration: Define the alias name in :confval:`amplitudes.aliases`.
|
||||
|
||||
Format and example:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
amplitudes.aliases = alias:original amplitude type
|
||||
amplitudes.aliases = MLc01:MLc
|
||||
|
||||
#. Configure the amplitude bindings parameters. The parameters are identical to
|
||||
those of the original amplitude type except that the name of the original
|
||||
magnitude must be replaced by the name of the alias. You may thus first
|
||||
configure the original amplitude and then replace the name.
|
||||
|
||||
**Example binding configuration** for MLc01 derived from MLc:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
amplitudes.MLc01.preFilter = BW(3,0.5,12)
|
||||
amplitudes.MLc01.applyWoodAnderson = true
|
||||
...
|
||||
amplitudes.MLc01.enable = true
|
||||
amplitudes.MLc01.enableResponses = false
|
||||
amplitudes.MLc01.minSNR = 1.5
|
||||
amplitudes.MLc01.signalBegin = -1
|
||||
amplitudes.MLc01.signalEnd = min(tt(S) + 10, 150)
|
||||
...
|
||||
amplitudes.MLc01.maxDepth = 50
|
||||
|
||||
Repeat the action for all applicable binding profiles.
|
||||
|
||||
Instead of adjusting the bindings profiles you may add the configuration to
|
||||
global or any other module configuration by prepending
|
||||
*module.trunk.[module]* where *[module]* is to be replaced by the name of the
|
||||
module including *global*.
|
||||
|
||||
**Example global module configuration** in :file:`global.cfg`:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
module.trunk.global.amplitudes.MLc01.preFilter = BW(3,0.5,12)
|
||||
module.trunk.global.amplitudes.MLc01.applyWoodAnderson = true
|
||||
...
|
||||
module.trunk.global.amplitudes.MLc01.enable = true
|
||||
module.trunk.global.amplitudes.MLc01.enableResponses = false
|
||||
module.trunk.global.amplitudes.MLc01.minSNR = 1.5
|
||||
module.trunk.global.amplitudes.MLc01.signalBegin = -1
|
||||
module.trunk.global.amplitudes.MLc01.signalEnd = min(tt(S) + 10, 150)
|
||||
...
|
||||
module.trunk.global.amplitudes.MLc01.maxDepth = 50
|
||||
|
||||
Configuration of bindings profiles has the advantage that the parameters are
|
||||
available on any client connected to the messaging including external
|
||||
SeisComP systems. Writing to global module configuration may be more simple
|
||||
than maintaining multiple bindings profiles but the configuration is not
|
||||
available to clients in external computers/SeisComP systems.
|
||||
|
||||
|
||||
Application
|
||||
-----------
|
||||
|
||||
* For automatic measurement by :ref:`scautopick` or :ref:`scamp` add the alias
|
||||
name to the list of measured amplitudes in the corresponding module
|
||||
configuration.
|
||||
* For using the measured amplitude value with magnitudes, create a
|
||||
:ref:`magnitude alias <tutorials_magnitude-aliases>`.
|
||||
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
Compute amplitudes with :ref:`scamp` or by magnitude aliases in :ref:`scolv` and
|
||||
read the debug log output as when testing
|
||||
:ref:`magnitude aliases <tutorials_mags_aliases_testing>`.
|
||||
|
||||
|
||||
.. _tutorials_magnitude-aliases:
|
||||
|
||||
Magnitude Aliases
|
||||
=================
|
||||
|
||||
Magnitude aliases are new magnitude types based original ones. Such aliases
|
||||
allow their specific configuration and computation. They can be created from
|
||||
magnitude and amplitude types native in |scname| or from
|
||||
:ref:`amplitude aliases <tutorials_amplitude-aliases>` which must be defined
|
||||
first. Unless specified explicitly, the amplitude type
|
||||
is the base amplitude of the original magnitude.
|
||||
Other amplitude types or amplitude aliases must be defined first and given
|
||||
explicitly.
|
||||
|
||||
.. note::
|
||||
|
||||
Magnitude aliases make use of the same parameter structure as the initial
|
||||
magnitude but the parameters must be configured independently.
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
#. Create a magnitude alias in :file:`global.cfg` by configuring
|
||||
:confval:`magnitudes.aliases`.
|
||||
|
||||
Format:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.aliases = alias:original magnitude type[:amplitude type]
|
||||
|
||||
The amplitude type is optional and can be omitted when equal to the type of
|
||||
the original magnitude.
|
||||
|
||||
Example for an alias magnitude, MLc1, derived from the MLc magnitude and
|
||||
amplitude. Since initial amplitudes and magnitudes are identical, the
|
||||
amplitude type can be dropped:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.aliases = MLc01:MLc:MLc
|
||||
magnitudes.aliases = MLc01:MLc
|
||||
|
||||
Example for an alias magnitude, MLc1, derived from the MLc magnitude and
|
||||
amplitude. Since initial amplitudes and magnitudes are different, the
|
||||
amplitude type must be given and
|
||||
:ref:`configured independently <tutorials_amplitude-aliases>`
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.aliases = MLc01:MLc:MLc01
|
||||
|
||||
#. Configure the alias amplitude if any is used.
|
||||
#. Configure the alias magnitude in **either** way:
|
||||
|
||||
* **Adjust binding profiles:** Configure global bindings parameters by
|
||||
directly adjusting binding profiles.
|
||||
|
||||
Parameters of original magnitudes which are supported by magnitude-type
|
||||
profiles can be set for the magnitude alias in :ref:`scconfig` by creating
|
||||
a new magnitude-type profile having the name of the magnitude alias.
|
||||
|
||||
All other parameters must be written to the binding parameter files using
|
||||
an external text editor:
|
||||
|
||||
#. Read the relevant parameter names of the original magnitude from global
|
||||
binding, e.g., in :ref:`scconfig` or the binding parameter file.
|
||||
Parameter names must include the full hierarchy including all sections.
|
||||
Example for parameter name of original magnitude:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.MLc.parametric.c1
|
||||
|
||||
#. Edit all relevant binding parameter files, e.g.,
|
||||
:file:`seiscomp/etc/key/global/profile_HHZ` in a text editor and set the
|
||||
values for the alias magnitude. For default values, the parameters do not
|
||||
need to be set.
|
||||
|
||||
Example of resulting parameter for alias magnitude MLc01:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.MLc01.parametric.c1 = 0.6
|
||||
|
||||
|
||||
* **Regionalization:** Set up by :ref:`regionalization <tutorials_magnitude-region>`.
|
||||
|
||||
* Consider the tutorial above on
|
||||
:ref:`magnitude regionalization <tutorials_magnitude-region>`.
|
||||
* For the name of new magnitude-type profiles now use the new alias name.
|
||||
|
||||
.. hint::
|
||||
|
||||
When initially configuring amplitude and magnitude aliases, :ref:`scconfig`
|
||||
does not know which original amplitude and magnitude types are considered and
|
||||
the corresponding parameters may not be accessible.
|
||||
The full list of parameters of the alias can, however, be derived from
|
||||
original types:
|
||||
|
||||
#. Open scconfig and configure the original amplitude and magnitude
|
||||
referenced by the alias.
|
||||
#. Close scconfig.
|
||||
#. Open the binding or module configuration file, e.g.,
|
||||
:file:`seiscomp/etc/key/global/profile_HHZ` or :file:`global.cfg`.
|
||||
#. Copy or rename the name of the referenced amplitude or magnitude in the
|
||||
parameters to the name of the alias.
|
||||
#. Open scconfig. The new parameters are now visible along with the
|
||||
original one and can be adjusted. You may now remove all
|
||||
irrelevant parameters of the original magnitude.
|
||||
|
||||
This procedure applies to the adjustment of binding profiles and to
|
||||
regionalization except that regionalization only supports magnitudes.
|
||||
|
||||
* **Write bindings parameters to global module configuration:** Manually
|
||||
adjust the module configuration file, e.g., :file:`global.cfg`. The
|
||||
operation is not supported by :ref:`scconfig`.
|
||||
|
||||
#. Read the relevant parameter names of the original magnitude from global
|
||||
binding, e.g., in :ref:`scconfig`. The names must include the full
|
||||
hierarchy including all sections. Example:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.MLc01.parametric.c1
|
||||
|
||||
#. Open the module configuration file, e.g.,
|
||||
:file:`seiscomp/etc/global.cfg` in a text editor.
|
||||
|
||||
#. Prepend *module.trunk.global.* to the parameter name and add it along with
|
||||
its value to the configuration file for all networks and stations.
|
||||
Example:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
module.trunk.global.magnitudes.MLc01.parametric.c1 = 0.7
|
||||
|
||||
For a given network or network and station replace *global* by the
|
||||
*network* or the *network* and the *station* code. Example for network
|
||||
CX and station PB01:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
module.trunk.CX.PB01.magnitudes.MLc01.parametric.c1 = 0.7
|
||||
module.trunk.CX.magnitudes.MLc01.parametric.c1 = 0.7
|
||||
|
||||
#. Add the new magnitude name to the configuration of all relevant modules,
|
||||
e.g., :ref:`scamp`, :ref:`scmag`, :ref:`scevent`, :ref:`scolv`.
|
||||
|
||||
.. note::
|
||||
|
||||
The parameters starting with *module.trunk.* are not available for
|
||||
configuration in :ref:`scconfig`.
|
||||
|
||||
.. warning::
|
||||
|
||||
Binding parameters configured in global module configuration should only
|
||||
be considered exceptionally. These parameters will
|
||||
|
||||
* Override the corresponding parameters configured by regionalization
|
||||
using the region *world*.
|
||||
* Not be written to the database and cannot be accessed by SeisComP
|
||||
modules running on other computers.
|
||||
|
||||
|
||||
Application
|
||||
-----------
|
||||
|
||||
* For automatic computation by :ref:`scmag` add the alias name to the list of
|
||||
measured magnitudes in the corresponding module configuration.
|
||||
* For interactive computation choose the magnitude alias name in :ref:`scolv`
|
||||
when computing magnitudes. The alias may be added to the default magnitudes in
|
||||
the scolv module configuration.
|
||||
|
||||
|
||||
.. _tutorials_mags_aliases_testing:
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
#. Start :ref:`scolv` with the option :option:`--debug` and load an event of
|
||||
interest
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scolv --debug
|
||||
|
||||
#. Relocate the event for generating a new origin.
|
||||
#. Compute magnitudes selecting the magnitude of interest including the new
|
||||
alias.
|
||||
#. Inspect the computed magnitudes in the
|
||||
:ref:`Magnitude tab of scolv <scolv-sec-magnitude-tab>` or read the
|
||||
debug output listing the considered magnitude names and aliases along with
|
||||
the considered parameters and their values. Example where MLc1 is derived
|
||||
from MLc with a modified maximum depth:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
...
|
||||
13:30:46 [debug] GE.UGM: MLc1: effective correction (no locale) = 1.00:0.00
|
||||
13:30:46 [debug] Parameters for magnitude MLc1
|
||||
13:30:46 [debug] + maximum depth: 50.000 km
|
||||
13:30:46 [debug] + distance mode: hypocentral
|
||||
13:30:46 [debug] + minimum distance: -1.000 km
|
||||
13:30:46 [debug] + maximum distance: 889.561 km
|
||||
...
|
||||
|
||||
|
||||
.. _tutorials_mags_moment:
|
||||
|
||||
Moment Magnitudes
|
||||
=================
|
||||
|
||||
All magnitudes, Mx, can be mapped to a moment magnitude, Mw(Mx) by piecewise
|
||||
linear interpolation.
|
||||
|
||||
.. warning::
|
||||
|
||||
Do not map :term:`mB <magnitude, broadband body-wave (mB)>`
|
||||
or :term:`Mwp <magnitude, broadband P-wave moment (Mwp)>` to Mw since
|
||||
this is hardcoded already and done automatically by :ref:`scmag`.
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
The configuration procedure is:
|
||||
|
||||
#. Set up a magnitude-type profile for the original magnitude type in global
|
||||
module configuration. Use :ref:`scconfig` for creating the profile.
|
||||
#. Configure the parameter *MwMapping*, which will become available along with
|
||||
the new profile, e.g., :confval:`magnitudes.MLc.MwMapping`. Alternatively,
|
||||
add the parameter to :file:`seiscomp/etc/global.cfg`. The parameter is
|
||||
configured as a list of sample points of a piecewise linear function mapping
|
||||
from the original magnitude, Mx, to Mw(Mx).
|
||||
Example for Mw(MLc) based on MLc:
|
||||
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.MLc.MwMapping = MLc_0:Mw(MLc)_0,MLc_1:Mw(MLc)_1,...,MLc_N:Mw(MLc)_N
|
||||
|
||||
Any magnitude value outside the configured range is ignored.
|
||||
|
||||
The new moment magnitudes will be available along with the original magnitudes
|
||||
and can be viewed in :ref:`scolv` or :ref:`scesv` and considered by :ref:`scmag`
|
||||
or :ref:`scevent`.
|
||||
|
||||
In order to avoid that :ref:`summary magnitudes <concepts-magnitudes-summary>`
|
||||
are computed from original magnitudes and mapped Mw together and biased to both,
|
||||
the original magnitudes can be blocklisted in :ref:`scmag`
|
||||
(:confval:`summaryMagnitude.blacklist`).
|
||||
|
||||
|
||||
Application
|
||||
-----------
|
||||
|
||||
* Mapped Mw() magnitudes are automatically computed when configured.
|
||||
* For consideration in summary magnitudes configure and run :ref:`scmag`.
|
||||
* For consideration in preferred magnitudes configure and run :ref:`scevent` or
|
||||
select in :ref:`scolv`.
|
||||
* For interactive computation choose the original magnitude name in :ref:`scolv`
|
||||
when computing magnitudes.
|
||||
@ -1,13 +1,14 @@
|
||||
.. _tutorials_archiving:
|
||||
|
||||
*******************************
|
||||
Set up local waveform archiving
|
||||
*******************************
|
||||
**************************
|
||||
Maintain waveform archives
|
||||
**************************
|
||||
|
||||
You will ...
|
||||
|
||||
* Set up :ref:`slarchive` with its necessary bindings
|
||||
* Set up `purge_datafiles` in crontab
|
||||
* Control the life-time of waveforms
|
||||
* Access waveforms
|
||||
|
||||
Pre-requisites for this tutorial:
|
||||
|
||||
@ -21,11 +22,12 @@ Pre-requisites for this tutorial:
|
||||
Afterwards/Results/Outcomes:
|
||||
|
||||
* Save real-time data in a local archive for later processing.
|
||||
* See :term:`miniSEED` day files for GE stations in your local :ref:`waveform archive <concepts_waveformarchives>`.
|
||||
* See :term:`miniSEED` day files for GE stations in your local
|
||||
:ref:`waveform archive <concepts_waveformarchives>`.
|
||||
|
||||
Time range estimate:
|
||||
|
||||
* 5 minutes
|
||||
* 20 minutes
|
||||
|
||||
Related tutorial(s):
|
||||
|
||||
@ -34,23 +36,40 @@ Related tutorial(s):
|
||||
|
||||
----------
|
||||
|
||||
**Motivation**:
|
||||
Without activating archiving, your local Seedlink server
|
||||
will only keep waveforms for a short time.
|
||||
Motivation
|
||||
==========
|
||||
|
||||
Without activating waveform archiving, your local :ref:`Seedlink server <seedlink>`
|
||||
will only keep waveforms for a short period of time.
|
||||
This makes it hard to review old events, for example.
|
||||
|
||||
:ref:`slarchive` is therefore set up and used for archiving real-time waveforms
|
||||
from a seedlink server.
|
||||
In this example, we'll arrange for keeping waveforms for one week.
|
||||
Before starting, you'll need bindings for your stations;
|
||||
see the tutorials :ref:`tutorials_geofon_waveforms`
|
||||
or :ref:`tutorials_waveforms`.
|
||||
|
||||
The :program:`slarchive` collects data and archives it
|
||||
locally using a :term:`SDS` file system structure of
|
||||
nested subdirectories and systematically named files.
|
||||
Before starting, you'll need ensure to have access to readl-time data from a
|
||||
:ref:`seedlink` server. To make seedlink bindings for your stations see the
|
||||
tutorials :ref:`tutorials_geofon_waveforms` or :ref:`tutorials_waveforms`.
|
||||
|
||||
|
||||
Background
|
||||
==========
|
||||
|
||||
:ref:`slarchive` collects data and archives it locally in the directory defined
|
||||
by :confval:`archive` using a :term:`SDS` file
|
||||
system structure of nested subdirectories and systematically named files. For
|
||||
working with the archived data, read the section on
|
||||
:ref:`tutorials_archiving-access`.
|
||||
|
||||
|
||||
Setup
|
||||
=====
|
||||
|
||||
:ref:`slarchive` requires a module configuration and bindings.
|
||||
You may configure slarchive using :ref:`scconfig` or by command-line actions.
|
||||
|
||||
|
||||
In scconfig
|
||||
===========
|
||||
-----------
|
||||
|
||||
#. Under the Modules tab, go to Acquisition, and select :program:`slarchive`.
|
||||
Here you can see the default parameters used.
|
||||
@ -71,11 +90,15 @@ In scconfig
|
||||
should apply to, under "Networks" on the left-hand side of the
|
||||
bindings tool.
|
||||
|
||||
.. warning:: The name 'week' is just a label.
|
||||
.. warning::
|
||||
|
||||
The name 'week' is just a label.
|
||||
Its functionality comes from changing the value of the `keep` parameter.
|
||||
Changing the *name* of a binding profile does not change its function.
|
||||
|
||||
.. note:: You can also choose which channels should be archived,
|
||||
.. note::
|
||||
|
||||
You can also choose which channels should be archived,
|
||||
using the ":confval:`selectors`" box.
|
||||
For instance, you may collect data at several sample rates,
|
||||
and only wish to archive the highest rate.
|
||||
@ -93,17 +116,21 @@ In scconfig
|
||||
|
||||
|
||||
Command line
|
||||
============
|
||||
------------
|
||||
|
||||
You will need to edit each of your top-level key files to refer to
|
||||
a new binding profile.
|
||||
e.g.::
|
||||
e.g.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ cd ~/seiscomp/etc/key
|
||||
$ vi station_GR_CLL
|
||||
|
||||
Add the line `slarchive:week` to whatever lines are already there.
|
||||
Afterwards it will look something like this::
|
||||
Afterwards it will look something like this
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
# Binding references
|
||||
global:BH
|
||||
@ -114,7 +141,9 @@ Afterwards it will look something like this::
|
||||
Repeat this for the top-level key file of each station
|
||||
you wish this binding to apply to.
|
||||
Now create the binding profile in the key directory.
|
||||
This is a file with a name corresponding to the binding profile name; here: 'week' ::
|
||||
This is a file with a name corresponding to the binding profile name; here: 'week'
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ cd ~/seiscomp/etc/key
|
||||
$ mkdir slarchive
|
||||
@ -129,66 +158,131 @@ This is a file with a name corresponding to the binding profile name; here: 'wee
|
||||
slarchive is not running
|
||||
starting slarchive
|
||||
|
||||
.. note::
|
||||
|
||||
Left unattended, your disk will eventually fill up with archived data.
|
||||
To prevent this you will need a script like `purge_database`,
|
||||
which is provided with SeisComP.
|
||||
This can be run once per day using the `cron` feature of your system.
|
||||
The command::
|
||||
Data life cycle
|
||||
---------------
|
||||
|
||||
$ seiscomp print crontab
|
||||
Left unattended, your disk will eventually fill up with archived data since
|
||||
:ref:`slarchive` itself does not delete any data.
|
||||
|
||||
will print a number of lines to the terminal.
|
||||
Type `crontab -e` and insert these lines into the crontab file for your
|
||||
user (typically `sysop`).
|
||||
Exit your crontab editor.
|
||||
Displaying your crontab should now show a line for `purge_database`.::
|
||||
|
||||
$ crontab -l
|
||||
20 3 * * * /home/sysop/seiscomp/var/lib/slarchive/purge_datafiles >/dev/null 2>&1
|
||||
[There may be other lines too.]
|
||||
Deleting files
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
This shows you that the `purge_datafiles` script
|
||||
will run every day at 3:20 a.m.
|
||||
To prevent your file system from filling up you may delete data using a script
|
||||
like `purge_database`, provided with |scname|. The script considers duration set
|
||||
by the *keep* parameter in slarchive bindings for defining the number of days to
|
||||
keep the data in your archive.
|
||||
The script can be run once per day using the `cron` feature of your system.
|
||||
The command
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ seiscomp print crontab
|
||||
|
||||
will print a number of lines with suggested actions to the terminal. Type
|
||||
`crontab -e` and insert these lines into the crontab file for your user (typically `sysop`).
|
||||
Exit your crontab editor.
|
||||
Displaying your crontab should now show a line for `purge_database`.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ crontab -l
|
||||
20 3 * * * /home/sysop/seiscomp/var/lib/slarchive/purge_datafiles >/dev/null 2>&1
|
||||
[There may be other lines too.]
|
||||
|
||||
This shows you that the `purge_datafiles` script will run every day at 3:20 a.m.
|
||||
|
||||
.. note::
|
||||
|
||||
If you examine the `purge_datafiles` script, you will see that all it does
|
||||
is look for files with a last modified time older than a certain number
|
||||
of days ago.
|
||||
The number of days to keep can be set station-by-station using the
|
||||
ARCH_KEEP feature.
|
||||
A convenient way to do this for many stations is with
|
||||
multiple binding profiles, one for each length of time desired.
|
||||
If you examine the `purge_datafiles` script, you will see that all it does
|
||||
is looking for files with a last modified time older than a certain number
|
||||
of days ago.
|
||||
The number of days to keep can be set station-by-station using the
|
||||
ARCH_KEEP feature.
|
||||
A convenient way to do this for many stations is with
|
||||
multiple slarchive binding profiles, one for each length of time desired.
|
||||
|
||||
|
||||
Checking archiving is functioning
|
||||
=================================
|
||||
Extending disk space
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* If :program:`seedlink` is configured correctly, a new station's streams
|
||||
appears in output from :program:`slinktool`::
|
||||
In case your file system fills up with data and you do not wish to delete
|
||||
old ones, you may add an additional harddisk and configure :confval:`archive`
|
||||
of :program:`slarchive` to store the new data there. Thereafter you may
|
||||
configure the *combined* or the *sdsarchive* :ref:`global_recordstream` to read
|
||||
the data from both sources.
|
||||
|
||||
$ slinktool -Q : | grep CLL
|
||||
GR CLL HHZ D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:49.0299
|
||||
GR CLL HHE D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:45.0299
|
||||
GR CLL HHN D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:39.2299
|
||||
|
||||
Verification
|
||||
------------
|
||||
|
||||
* If :ref:`seedlink` is configured correctly, a new station's streams
|
||||
appear in output from :ref:`slinktool`
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ slinktool -Q : | grep CLL
|
||||
GR CLL HHZ D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:49.0299
|
||||
GR CLL HHE D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:45.0299
|
||||
GR CLL HHN D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:39.2299
|
||||
|
||||
This shows three streams being acquired from station 'CLL'.
|
||||
The second time shown is the time of the most recent data for each stream.
|
||||
|
||||
* If :program:`slarchive` is configured correctly, waveform data for the
|
||||
* If :ref:`slarchive` is configured correctly, waveform data for the
|
||||
station appears in :program:`slarchive`'s SDS archive directory:
|
||||
|
||||
.. code-block:: sh
|
||||
.. code-block:: sh
|
||||
|
||||
$ ls -l seiscomp/var/lib/archive/2020/GR/CLL
|
||||
total 12
|
||||
drwxr-xr-x 2 user user 4096 Apr 1 06:30 HHE.D
|
||||
drwxr-xr-x 2 user user 4096 Apr 1 06:30 HHN.D
|
||||
drwxr-xr-x 2 user user 4096 Apr 1 06:30 HHZ.D
|
||||
$ ls -l seiscomp/var/lib/archive/2020/GR/CLL
|
||||
total 12
|
||||
drwxr-xr-x 2 user user 4096 Apr 1 06:30 HHE.D
|
||||
drwxr-xr-x 2 user user 4096 Apr 1 06:30 HHN.D
|
||||
drwxr-xr-x 2 user user 4096 Apr 1 06:30 HHZ.D
|
||||
|
||||
$ ls -l seiscomp/var/lib/archive/2020/GR/CLL/HHZ.D/
|
||||
total 12728
|
||||
-rw-r--r-- 1 user user 5492224 Mar 31 00:04 GR.CLL..BHZ.D.2020.090
|
||||
-rw-r--r-- 1 user user 7531008 Apr 1 00:03 GR.CLL..BHZ.D.2020.091
|
||||
$ ls -l seiscomp/var/lib/archive/2020/GR/CLL/HHZ.D/
|
||||
total 12728
|
||||
-rw-r--r-- 1 user user 5492224 Mar 31 00:04 GR.CLL..BHZ.D.2020.090
|
||||
-rw-r--r-- 1 user user 7531008 Apr 1 00:03 GR.CLL..BHZ.D.2020.091
|
||||
|
||||
|
||||
You may read these data files directly using :ref:`scrttv`, e.g.:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ scrttv seiscomp/var/lib/archive/2020/GR/CLL/HHZ.D/*
|
||||
|
||||
|
||||
.. _tutorials_archiving-access:
|
||||
|
||||
Access to Archived Data
|
||||
=======================
|
||||
|
||||
Archived waveforms can be read or provided in multiple ways depending on the
|
||||
application.
|
||||
|
||||
* Offline reading with :ref:`scrttv`: Read miniSEED files directly using
|
||||
:ref:`scrttv`, e.g.:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ scrttv seiscomp/var/lib/archive/2020/GR/CLL/HHZ.D/*
|
||||
|
||||
* Automatically for data processing: |scname| modules such as
|
||||
:ref:`scautopick` or :ref:`scolv` can read data from SDS
|
||||
archive with the *sdsarchive* :ref:`global_recordstream` when running on the
|
||||
same computer.
|
||||
|
||||
* External clients: You may provide the data to clients on other
|
||||
computers using :ref:`scwfas` or :ref:`fdsnws` both providing data via
|
||||
:cite:t:`fdsn`.
|
||||
|
||||
* Direct file access: For directly fetching :term:`miniSEED` waveform data from
|
||||
archive you may use :ref:`scart` or Linux commands. You may combine scart
|
||||
with other modules avoiding redundant file storage. Examples:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ scart -dEsv -t 2025-02-01T01:00~2025-02-01T01:00 /archive | scrttv -
|
||||
$ scart -dEsv -t 2025-02-01T01:00~2025-02-01T01:00 /archive | scautopick -I - -d localhost --ep --playback
|
||||
|
||||
@ -52,13 +52,13 @@ Check data are available
|
||||
========================
|
||||
|
||||
First, we'll query the upstream Seedlink server, which runs on
|
||||
host `geofon.gfz-potsdam.de` at port 18000.
|
||||
host *geofon.gfz.de* at port *18000*.
|
||||
We do this with SeisComP's :ref:`slinktool` command, giving the ``-L`` option
|
||||
to :ref:`slinktool`
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ slinktool -L geofon.gfz-potsdam.de
|
||||
$ slinktool -L geofon.gfz.de
|
||||
6C GF01 GF01
|
||||
6C GF02 GF02
|
||||
6C GF03 GF03
|
||||
@ -76,7 +76,7 @@ code GE
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ slinktool -Q geofon.gfz-potsdam.de | grep ^GE.*BHZ
|
||||
$ slinktool -Q geofon.gfz.de | grep ^GE.*BHZ
|
||||
GE ACRG BHZ D 2019/11/28 06:51:48.7500 - 2019/11/28 09:18:32.1000
|
||||
GE APE BHZ D 2019/11/28 07:40:52.0400 - 2019/11/28 12:22:00.3950
|
||||
GE ARPR BHZ D 2019/11/27 23:23:27.4400 - 2019/11/28 09:41:22.1500
|
||||
@ -130,7 +130,7 @@ StationXML format.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ wget "http://geofon.gfz-potsdam.de/fdsnws/station/1/query?net=GE&level=response" -O ge.xml
|
||||
$ wget "http://geofon.gfz.de/fdsnws/station/1/query?net=GE&level=response" -O ge.xml
|
||||
|
||||
|
||||
Option 2: Using WebDC3
|
||||
@ -144,7 +144,7 @@ from different data centres among other possibilities.
|
||||
You can find detailed information about WebDC3 in the on-line documentation at
|
||||
:cite:t:`webdc3-documentation`.
|
||||
|
||||
* Go to http://eida.gfz-potsdam.de/webdc3 with a browser.
|
||||
* Go to http://eida.gfz.de/webdc3 with a browser.
|
||||
|
||||
* Click on "Explore stations" and move the slider to select only the current year
|
||||
and only "Public permanent nets" on the Network type list.
|
||||
@ -335,10 +335,9 @@ References
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. [#WebDC] The WebDC3 service is available at http://eida.gfz-potsdam.de.
|
||||
See also
|
||||
.. [#WebDC] The WebDC3 service is available at http://eida.gfz.de. See also
|
||||
M. Bianchi, *et al.* (2015): WebDC3 Web Interface. GFZ Data Services.
|
||||
doi:`10.5880/GFZ.2.4/2016.001 <http://dx.doi.org/10.5880/GFZ.2.4/2016.001>`_
|
||||
|
||||
.. [#NETPAGES] For instance that of the GEOFON Program, at
|
||||
https://geofon.gfz-potsdam.de/waveform/archive/network.php?ncode=GE.
|
||||
https://geofon.gfz.de/waveform/archive/network.php?ncode=GE.
|
||||
|
||||
@ -1,278 +0,0 @@
|
||||
.. _tutorials_magnitude-region-aliases:
|
||||
|
||||
****************************************
|
||||
Magnitudes: Regionalization, Aliases, Mw
|
||||
****************************************
|
||||
|
||||
You will ...
|
||||
|
||||
* Regionalize magnitude
|
||||
* Create new magnitude types as aliases from other magnitudes and amplitudes.
|
||||
* Map magnitudes to the moment magnitude, Mw
|
||||
|
||||
|
||||
:Pre-requisites for this tutorial:
|
||||
|
||||
* Read the :ref:`concepts section on magnitudes <concepts_magnitudes>`.
|
||||
* Real-time data for the station must be available locally.
|
||||
See :ref:`tutorials_waveforms` or :ref:`tutorials_geofon_waveforms`.
|
||||
* Inventory must be loaded locally.
|
||||
|
||||
|
||||
:Afterwards/Results/Outcomes:
|
||||
|
||||
* Regionalized magnitudes,
|
||||
* New magnitude types as aliases.
|
||||
* Moment magnitudes
|
||||
|
||||
|
||||
:Time range estimate:
|
||||
|
||||
* 30 minutes
|
||||
|
||||
|
||||
-----------
|
||||
|
||||
|
||||
.. _tutorials_magnitude-region:
|
||||
|
||||
Regionalize Magnitudes
|
||||
======================
|
||||
|
||||
By regionalization, magnitudes can be computed with region-dependent properties.
|
||||
The procedure to set up magnitude regionalization is:
|
||||
|
||||
#. Create one file which contains the polygons surrounding the regions within
|
||||
which magnitude parameters shall apply. The polygon files are provided in
|
||||
:ref:`BNA <sec-gui_layers-vector-format-bna>` or
|
||||
:ref:`GeoJSON format <sec-gui_layers-vector-format-geojson>` and located as
|
||||
set out in the :ref:`documentation of map layers <sec-gui_layers>`. The file
|
||||
can be created from any |scname| GUI application providing maps, e.g.,
|
||||
:ref:`scmv`.
|
||||
#. For the desired magnitude type create a magnitude-type profile in global
|
||||
module configuration. The name of the profile matches the name of the
|
||||
magnitude, e.g., *MLc* for the :ref:`MLc magnitude <global_mlc>`.
|
||||
#. Configure the :confval:`magnitudes.MLc.regionFile` parameter with the full
|
||||
path and name of the polygon file created above.
|
||||
#. Within the magnitude-type profile create one or more magnitude-region
|
||||
profile(s) for defining the regionalized parameters applied to the region(s).
|
||||
The name of a profile corresponds to the name of the polygon contained in the
|
||||
polygon file to which the parameters shall apply. Use *world* for all regions
|
||||
not covered by any polygon.
|
||||
#. Configure the regionalized magnitude parameters of the magnitude-region
|
||||
profile. Activate the *enable* parameter if you wish to apply this profile.
|
||||
#. Restart the data processing:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp restart
|
||||
|
||||
or execute a GUI module.
|
||||
|
||||
.. important::
|
||||
|
||||
* Parameters which can be configured along with regionalization assume
|
||||
defaults from global binding parameters but override global bindings
|
||||
parameters when configured.
|
||||
* Once regionalization is active, magnitudes for events outside the
|
||||
defined region(s) will not be computed. For considering such events add
|
||||
another magnitude-region profile with the name "*world*".
|
||||
Magnitudes for events outside any other magnitude-region profile will then
|
||||
be computed according to this profile.
|
||||
|
||||
|
||||
Station corrections
|
||||
-------------------
|
||||
|
||||
:ref:`Magnitude station corrections <concepts-magnitudes-correction>` can also
|
||||
be applied in case of regionalization. Simply add the names of the
|
||||
magnitude-region profile along with the correction parameter to the original
|
||||
parameter in global module configuration, :file:`global.cfg`, for the respective
|
||||
magnitude type and station. Use comma separation for multiple regions and colon
|
||||
for separating the region name from the value.
|
||||
|
||||
Example for correcting MLv computed at station GE.UGM:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
module.trunk.GE.UGM.magnitudes.MLv.offset = 0.1, europe:0.2, asia:-0.1
|
||||
|
||||
.. note::
|
||||
|
||||
The configuration of parameters starting with *module.trunk.* is not
|
||||
supported by :ref:`scconfig`. All corresponding configurations must be done
|
||||
by directly editing the configuration file, e.g.,
|
||||
:file:`seiscomp/etc/global.cfg`.
|
||||
|
||||
|
||||
.. _tutorials_magnitude-aliases:
|
||||
|
||||
Magnitude Aliases
|
||||
=================
|
||||
|
||||
New magnitude types (aliases) can be created based on existing magnitude and
|
||||
amplitude types but configured specifically.
|
||||
|
||||
The procedure to set up magnitude aliases is:
|
||||
|
||||
#. Create a magnitude alias in :file:`global.cfg` by configuring
|
||||
:confval:`magnitudes.aliases`. Example:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.aliases = MLc1:MLc:MLc
|
||||
|
||||
#. Configure the alias magnitudes in either way:
|
||||
|
||||
* Write bindings parameters to global module configuration or
|
||||
* Set up :ref:`regionalization <tutorials_magnitude-region>`:
|
||||
|
||||
**Binding parameters in global module configuration:**
|
||||
|
||||
#. Read the relevant parameter names of the original magnitude from global
|
||||
binding, e.g., in :ref:`scconfig`. The names must include the full
|
||||
hierarchy including all sections. Example:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.MLc01.parametric.c1
|
||||
|
||||
#. Open the module configuration file, e.g.,
|
||||
:file:`seiscomp/etc/global.cfg` in a text editor.
|
||||
|
||||
#. Prepend *module.trunk.global.* to the parameter name and add it along with
|
||||
its value to the configuration file. Example:
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
module.trunk.global.magnitudes.MLc01.parametric.c1 = 0.7
|
||||
|
||||
#. Add the new magnitude name to the configuration of all relevant modules,
|
||||
e.g., :ref:`scamp`, :ref:`scmag`, :ref:`scevent`, :ref:`scolv`.
|
||||
|
||||
.. note::
|
||||
|
||||
The parameters starting with *module.trunk.* are not available for
|
||||
configuration in :ref:`scconfig`.
|
||||
|
||||
.. warning::
|
||||
|
||||
Binding parameters configured in global module configuration should only
|
||||
be considered exceptionally. These parameters will
|
||||
|
||||
* Override the corresponding parameters configured by regionalization
|
||||
using the region *world*.
|
||||
* Not be written to the database and cannot be accessed by SeisComP
|
||||
modules running on other computers.
|
||||
|
||||
**Regionalization:**
|
||||
|
||||
* Consider the tutorial on
|
||||
:ref:`magnitude regionalization <tutorials_magnitude-region>` above.
|
||||
* For the name of the new magnitude-type profile now use the alias name.
|
||||
|
||||
.. hint::
|
||||
|
||||
When adding the magnitude-region profile in
|
||||
:ref:`scconfig`, scconfig does not know about the referenced original
|
||||
magnitude. Therefore, not all possible configuration parameters may be
|
||||
listed depending on the magnitude, e.g. for MLc. For getting the full
|
||||
list, first create and configure a magnitude-region profile for the
|
||||
referenced magnitude.
|
||||
|
||||
#. Close scconfig
|
||||
#. Open the configuration file :file:`global.cfg`
|
||||
#. Rename the name of the referenced magnitude in the parameters to the
|
||||
name of the alias.
|
||||
|
||||
|
||||
.. _tutorials_mags_moment:
|
||||
|
||||
Moment Magnitudes
|
||||
=================
|
||||
|
||||
All magnitudes, Mx, can be mapped to a moment magnitude, Mw(Mx).
|
||||
The configuration procedure is:
|
||||
|
||||
#. Set up a magnitude-type profile for the original magnitude type in global
|
||||
module configuration. Use :ref:`scconfig` for creating the profile.
|
||||
#. Configure the parameter *MwMapping*, which will become available along with
|
||||
the new profile, e.g., :confval:`magnitudes.MLc.MwMapping`. Alternatively,
|
||||
add the parameter to :file:`seiscomp/etc/global.cfg`. The parameter is
|
||||
configured as a list of sample points of a piecewise linear function mapping
|
||||
from the original magnitude, Mx, to Mw(Mx).
|
||||
Example for Mw(MLc) based on MLc:
|
||||
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
magnitudes.MLc.MwMapping = MLc_0:Mw(MLc)_0,MLc_1:Mw(MLc)_1,...,MLc_N:Mw(MLc)_N
|
||||
|
||||
Any magnitude value outside the configured range is ignored.
|
||||
|
||||
.. warning::
|
||||
|
||||
Do not map the magnitudes :term:`mB <magnitude, broadband body-wave (mB)>`
|
||||
and :term:`Mwp <magnitude, broadband P-wave moment (Mwp)>` to Mw since
|
||||
this is hardcoded already and done automatically by :ref:`scmag`.
|
||||
|
||||
The new moment magnitudes will be available along with the original magnitudes
|
||||
and can be viewed in :ref:`scolv`or :ref:`scesv` and considered by :ref:`scmag`
|
||||
or :ref:`scevent`.
|
||||
|
||||
In order to avoid that :ref:`summary magnitudes <concepts-magnitudes-summary>`
|
||||
are computed from original magnitudes and mapped Mw together and biased to both,
|
||||
the original magnitudes can be blocklisted in :ref:`scmag`
|
||||
(:confval:`summaryMagnitude.blacklist`).
|
||||
|
||||
|
||||
.. _tutorials_mags_regionalize_testing:
|
||||
|
||||
Final Tests
|
||||
===========
|
||||
|
||||
* Regionalization:
|
||||
|
||||
#. Start :ref:`scolv` with the option :option:`--debug` and load an event of
|
||||
interest
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scolv --debug
|
||||
|
||||
#. Relocate the event for generating a new origin.
|
||||
#. Compute magnitudes selecting the magnitude of interest.
|
||||
#. Inspect the computed magnitudes in the
|
||||
:ref:`Magnitude tab of scolv <scolv-sec-magnitude-tab>` or read the
|
||||
debug output listing the considered magnitudes and stations along with
|
||||
the regionalized parameters.
|
||||
|
||||
* Magnitude aliases:
|
||||
|
||||
#. Start :ref:`scolv` with the option :option:`--debug` and load an event of
|
||||
interest
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scolv --debug
|
||||
|
||||
#. Relocate the event for generating a new origin.
|
||||
#. Compute magnitudes selecting the magnitude of interest including the new
|
||||
alias.
|
||||
#. Inspect the computed magnitudes in the
|
||||
:ref:`Magnitude tab of scolv <scolv-sec-magnitude-tab>` or read the
|
||||
debug output listing the considered magnitude names and aliases along with
|
||||
the considered parameters and their values. Example where MLc1 is derived
|
||||
from MLc with a modified maximum depth:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
...
|
||||
13:30:46 [debug] GE.UGM: MLc1: effective correction (no locale) = 1.00:0.00
|
||||
13:30:46 [debug] Parameters for magnitude MLc1
|
||||
13:30:46 [debug] + maximum depth: 50.000 km
|
||||
13:30:46 [debug] + distance mode: hypocentral
|
||||
13:30:46 [debug] + minimum distance: -1.000 km
|
||||
13:30:46 [debug] + maximum distance: 889.561 km
|
||||
...
|
||||
|
||||
@ -6,11 +6,14 @@ Installation on Ubuntu
|
||||
|
||||
You will ...
|
||||
|
||||
* Make a basic |scname| installation
|
||||
* Make a basic |scname| installation of SeisComP in version 4.0.0 on Ubuntu 20.04
|
||||
* Make an initial configuration
|
||||
* Perform function tests
|
||||
|
||||
Pre-requisites for this tutorial:
|
||||
|
||||
* Internet access
|
||||
* :ref:`Documentation of installation <installation>`
|
||||
|
||||
Afterwards/Results/Outcomes:
|
||||
|
||||
@ -51,18 +54,20 @@ but the steps for other Ubuntu versions are similar.
|
||||
$ sudo addgroup admin
|
||||
$ sudo usermod -a -G admin,adm,audio sysop
|
||||
|
||||
.. note:
|
||||
.. note::
|
||||
|
||||
Adding a new user is not mandatory. You can install under an existing user
|
||||
directory. Creating a new user is recommended as it allows an easy cleanup
|
||||
of the system later simply by removing the new user if needed.
|
||||
|
||||
#. Check the size and the architecture. This is espcially required when installing
|
||||
:ref:`pre-compiled packages<tutorials_postinstall_package>`: ::
|
||||
:ref:`pre-compiled packages<tutorials_postinstall_package>`:
|
||||
|
||||
$ df -h
|
||||
$ cat /etc/issue
|
||||
$ uname -m
|
||||
.. code-block:: sh
|
||||
|
||||
$ df -h
|
||||
$ cat /etc/issue
|
||||
$ uname -m
|
||||
|
||||
Compare the available disk space with the requirements given in
|
||||
the :ref:`installation` section.
|
||||
@ -75,9 +80,10 @@ but the steps for other Ubuntu versions are similar.
|
||||
Install from source code
|
||||
========================
|
||||
|
||||
To compile SeisComP from the source code follow the
|
||||
:ref:`instructions in the development section <build>`. You may later download and add
|
||||
maps as described below in the :ref:`package section <tutorials_postinstall_package>`.
|
||||
To compile |scname| from the source code follow the
|
||||
:ref:`instructions in the development section <build>`. You may later download
|
||||
and add maps as described below in the
|
||||
:ref:`Documentation of installation <installation>`.
|
||||
|
||||
|
||||
.. _tutorials_postinstall_package:
|
||||
@ -85,7 +91,18 @@ maps as described below in the :ref:`package section <tutorials_postinstall_pack
|
||||
Install pre-compiled release packages
|
||||
=====================================
|
||||
|
||||
You may download and installed pre-compile SeisComP binary package, maps and documentation.
|
||||
|
||||
You may install the |scname| packages in either way:
|
||||
|
||||
* :ref:`gsm<installation-gsm>` (recommended) a package manager provided by
|
||||
:cite:t:`gempa`,
|
||||
* :ref:`manually by extracting packages <installation-manual>`.
|
||||
|
||||
Here we refer to the manual extraction of packages. More details are given
|
||||
in section :ref:`installation`.
|
||||
|
||||
You may download and installed pre-compile |scname| binary package, maps and
|
||||
documentation.
|
||||
|
||||
#. Download the appropriate |scname| binary package taking into
|
||||
account your Linux distribution and the architecture.
|
||||
@ -99,15 +116,16 @@ You may download and installed pre-compile SeisComP binary package, maps and doc
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
wget "https://www.seiscomp.de/downloader/seiscomp-maps.tar.gz"
|
||||
$ wget "https://www.seiscomp.de/downloader/seiscomp-maps.tar.gz"
|
||||
|
||||
* the documentation package. Make sure, the documentation matches your
|
||||
SeisComP version.
|
||||
|scname| version.
|
||||
|
||||
.. note::
|
||||
|
||||
The |scname| packages received from gempa GmbH contain the documentation
|
||||
for the respective version and no separate download is required.
|
||||
The |scname| packages received from :cite:t:`gempa-download` contain the
|
||||
documentation for the respective version and no separate download is
|
||||
required.
|
||||
|
||||
#. Untar the :file:`seiscomp*` files (binary package, maps and documentation)
|
||||
you will find in your home or downloads directory. For SeisComP in version
|
||||
@ -180,7 +198,7 @@ You may download and installed pre-compile SeisComP binary package, maps and doc
|
||||
|
||||
For PostgreSQL, also see the detailed :ref:`installation` instructions.
|
||||
|
||||
.. warning ::
|
||||
.. warning::
|
||||
|
||||
For Ubuntu 18.04 and newer, take care with MariaDB/MySQL installation.
|
||||
Before the next step, you must set a root password *for MariaDB/MySQL*
|
||||
@ -250,14 +268,14 @@ Find a detailed description in section :ref:`getting-started` and short guide be
|
||||
|
||||
.. hint::
|
||||
|
||||
If, when you attempt to run a SeisComP command such as :ref:`scconfig` or
|
||||
If, when you attempt to run a |scname| command such as :ref:`scconfig` or
|
||||
:ref:`scolv`, you receive an error message like
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
scconfig: command not found
|
||||
|
||||
then the most likely explanation is that you have not set your SeisComP
|
||||
then the most likely explanation is that you have not set your |scname|
|
||||
environment variables correctly.
|
||||
|
||||
Run the `seiscomp` command with the full path to
|
||||
@ -278,7 +296,7 @@ Find a detailed description in section :ref:`getting-started` and short guide be
|
||||
Datacenter ID. These are used for Arclink and Seedlink, and in the information
|
||||
describing data model objects such as origins and events.
|
||||
|
||||
#. The `seiscomp` command is a wrapper, which controls the SeisComP modules.
|
||||
#. The `seiscomp` command is a wrapper, which controls the |scname| modules.
|
||||
See :ref:`system-management`.
|
||||
Run something by typing seiscomp followed by a command
|
||||
|
||||
@ -296,15 +314,22 @@ Find a detailed description in section :ref:`getting-started` and short guide be
|
||||
|
||||
Use 'help [command]' to get more help about a command
|
||||
|
||||
#. Start :ref:`scmaster`.
|
||||
#. Start and test :ref:`scmaster`.
|
||||
As described in the :ref:`overview`, these are needed for
|
||||
communication between the SeisComP database and the individual
|
||||
SeisComP modules.
|
||||
communication between the |scname| database and the individual
|
||||
|scname| modules.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ seiscomp start scmaster
|
||||
starting scmaster
|
||||
$ seiscomp status scmaster
|
||||
|
||||
In case errors are reported you should understand the full debug log:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ scmaster --debug
|
||||
|
||||
#. Install all dependencies needed for the GUI
|
||||
|
||||
@ -333,7 +358,7 @@ Find a detailed description in section :ref:`getting-started` and short guide be
|
||||
|
||||
$ seiscomp exec scrttv
|
||||
|
||||
After seeing the SeisComP splash screen,
|
||||
After seeing the |scname| splash screen,
|
||||
you'll likely get an error message "Could not read inventory (NULL)".
|
||||
After a new installation, that's okay.
|
||||
Click that box away, and you'll see a screen with
|
||||
|
||||
@ -127,12 +127,12 @@ Check it Works
|
||||
Further Information
|
||||
===================
|
||||
|
||||
* The `URL Builder at GEOFON <https://geofon.gfz-potsdam.de/waveform/builder.php>`_
|
||||
* The `URL Builder at GEOFON <https://geofon.gfz.de/waveform/builder.php>`_
|
||||
lets you fill out a form to tailor your request.
|
||||
The URL to use to make your request is displayed at the bottom of that page.
|
||||
|
||||
* More example requests are at the
|
||||
`FDSNWS description at GEOFON <https://geofon.gfz-potsdam.de/waveform/webservices.php>`_
|
||||
`FDSNWS description at GEOFON <https://geofon.gfz.de/waveform/webservices.php>`_
|
||||
|
||||
* The FDSN Web Services specification document :cite:p:`fdsn-specs` provides the
|
||||
technical documentation and examples.
|
||||
|
||||
@ -1,17 +1,19 @@
|
||||
.. _tutorials_upgrade:
|
||||
|
||||
******************
|
||||
Upgrading SeisComP
|
||||
******************
|
||||
***************************
|
||||
Updating/Upgrading SeisComP
|
||||
***************************
|
||||
|
||||
You will ...
|
||||
|
||||
* Upgrade a SeisComP system
|
||||
* Update/Upgrade a SeisComP system
|
||||
* Migrate a SeisComP3 system to a newer SeisComP version
|
||||
|
||||
Pre-requisites for this tutorial:
|
||||
|
||||
* Tutorial on :ref:`installation <tutorials_postinstall>` and SeisComP previously installed
|
||||
* :ref:`Documentation of installation <installation>`
|
||||
* Tutorial on :ref:`installation <tutorials_postinstall>` and |scname|
|
||||
previously installed
|
||||
|
||||
Afterwards/Results/Outcomes:
|
||||
|
||||
@ -28,9 +30,10 @@ Background
|
||||
==========
|
||||
|
||||
|
||||
Installing a new SeisComP :ref:`release version <tutorials_upgrade_versions>`
|
||||
is typically simple and the step described in :ref:`tutorials_upgrade-normal`
|
||||
can be applied. **More actions** are required when
|
||||
Updating/upgrading |scname| to a higher
|
||||
:ref:`release version <installation_versions>` is typically simple and the
|
||||
steps described in :ref:`tutorials_upgrade-normal` can be applied.
|
||||
**More actions** are required when
|
||||
|
||||
* Upgrading the major version of SeisComP as described in :ref:`tutorials_upgrade-normal`.
|
||||
* Upgrading :ref:`from SeisComP3 to SeisComP in version 4.0.0. or higher <tutorials_upgrade_v4>`.
|
||||
@ -38,66 +41,32 @@ can be applied. **More actions** are required when
|
||||
SeisComP in version 4 or higher <tutorials_upgrade_seedlink>`.
|
||||
|
||||
|
||||
.. _tutorials_upgrade_versions:
|
||||
Upgrade vs. update
|
||||
------------------
|
||||
|
||||
SeisComP versions
|
||||
-----------------
|
||||
|
||||
SeisComP has :ref:`developed over time <history>`. The versions can be distinguished
|
||||
by the name of the release:
|
||||
|
||||
* **SeisComP since version 4.0.0** uses release version numbers such as *5.2.1*
|
||||
where
|
||||
|
||||
* 5: major version with changes in API and database schema version, new features,
|
||||
bug fixed, optimizations,
|
||||
* 2: minor version with new features, bug fixed, optimizations,
|
||||
* 1: patch number with bug fixes, optimizations.
|
||||
|
||||
.. note ::
|
||||
|
||||
When increasing the major version number, an upgrade of
|
||||
the database is required.
|
||||
|
||||
* **SeisComP3** uses release versions, names, numbers and patch numbers.
|
||||
|
||||
Full example: *SeisComP3-jakarta-2020.330.02*
|
||||
|
||||
* 3: release version
|
||||
* jakarta: release name
|
||||
* 2020.330: release number
|
||||
* 02: patch number
|
||||
|
||||
Names are adjusted depending on changes in source code:
|
||||
|
||||
* **Release version:** major changes in module groups, functionality, concepts, data model.
|
||||
Example: SeisComp3 is SeisComP in version 3.0
|
||||
in comparison to version 2.5 the GUIs were introduced.
|
||||
* **Release name:** major changes in functionality, concepts, data model.
|
||||
Example: with SeisComP3-Seattle the new user friendly configuration GUI :ref:`scconfig`
|
||||
was introduced.
|
||||
* **Release number:** changes in data model version and/or major changes in applications and optimizations.
|
||||
The numbers include the year and the day of the year of the software release.
|
||||
Example: Jakarta-2018.327
|
||||
* **Patch number:** optimizations of applications without changes in the data model version.
|
||||
Here we understand that *upgrades* increase the major release version number
|
||||
while *updates* only increase the minor version or the patch number, see section
|
||||
:ref:`installation_versions`.
|
||||
|
||||
|
||||
Upgrade SeisComP on multiple machines
|
||||
-------------------------------------
|
||||
Upgrading multiple machines
|
||||
---------------------------
|
||||
|
||||
Applications can only connect to a messaging system that runs with a database
|
||||
in an equal or lower data base schema version. In distributed |scname| systems
|
||||
one machine host the messaging system and the database and all other machines
|
||||
are connected to this messaging or are running independently, the |scname|
|
||||
installation on the machine operating the messaging is always updated last.
|
||||
in an equal or lower data base schema version. However, upgrading |scname| to a
|
||||
higher major release version typically increases the database scheme version.
|
||||
Therefore, in distributed |scname| systems where one machine hosts the messaging
|
||||
system and the database and all other machines are connected to this messaging,
|
||||
the |scname| installation on the machine operating the messaging is always
|
||||
upgraded last.
|
||||
|
||||
**Example:** A distributed system includes a processing system with the
|
||||
messaging system and database and a GUI work station connected to the processing
|
||||
system:
|
||||
|
||||
#. Upgrade the GUI work station
|
||||
#. Upgrade the processing system, take actions to
|
||||
:ref:`upgrade the database version <tutorials_upgrade-db>`.
|
||||
#. :ref:`Upgrade <tutorials_upgrade-normal>` the GUI work station
|
||||
#. :ref:`Upgrade <tutorials_upgrade-normal>` the processing system, take actions
|
||||
to :ref:`upgrade the database version <tutorials_upgrade-db>`.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -110,98 +79,50 @@ system:
|
||||
|
||||
.. _tutorials_upgrade_download:
|
||||
|
||||
Package Download
|
||||
================
|
||||
Package download
|
||||
----------------
|
||||
|
||||
Get the SeisComP package in the latest version or older ones from gempa GmbH or
|
||||
from the download website of :cite:t:`seiscomp`.
|
||||
|
||||
.. note ::
|
||||
|
||||
gempa provides :cite:t:`gsm` for convenient and consistent download and
|
||||
installation of SeisComP and other packages.
|
||||
Get and install the |scname| package in the any available version from
|
||||
:cite:t:`gempa` or from the download website of :cite:t:`seiscomp` as described
|
||||
in section :ref:`installation-packages`.
|
||||
|
||||
|
||||
.. _tutorials_upgrade_changelog:
|
||||
|
||||
Documentation of Changes
|
||||
========================
|
||||
Documentation of changes
|
||||
------------------------
|
||||
|
||||
The important novelties, optimizations and changes that are available after upgrading
|
||||
are documented in the change log which can be read
|
||||
`online <https://www.seiscomp.de/doc/base/changelog.html>`_.
|
||||
It is recommend to read the change log before taking further actions.
|
||||
|
||||
The details can also be found locally in the file
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$SEISCOMP_ROOT/share/doc/seiscomp/CHANGELOG
|
||||
|
||||
which is integrated in the :ref:`documentation <sc-changelog>` or accessible
|
||||
from the *Docs* panel in :ref:`scconfig`.
|
||||
The important novelties, optimizations and changes that are available after
|
||||
upgrading are documented in the Changelog which is part of this documentation
|
||||
and which can also be accessed through the *Docs* panel of :ref:`scconfig`.
|
||||
The installed locally installed file is
|
||||
:file:`$SEISCOMP_ROOT/share/doc/seiscomp/CHANGELOG`
|
||||
The Changelog can also be read
|
||||
`online <https://www.seiscomp.de/doc/base/changelog.html>`_ but care should be
|
||||
take that the version number matches your.´
|
||||
|
||||
.. note::
|
||||
|
||||
New features are regularly advertised and described in detail on the
|
||||
`News website of gempa GmbH <https://www.gempa.de/news/>`_ and on the
|
||||
:cite:t:`seiscomp-forum`.
|
||||
|
||||
|
||||
.. _tutorials_upgrade-normal:
|
||||
|
||||
Normal Upgrade
|
||||
==============
|
||||
|
||||
The normal upgrade including upgrading the major version of SeisComP takes only
|
||||
a few steps:
|
||||
|
||||
#. :ref:`Download <tutorials_upgrade_download>` the SeisComP package.
|
||||
#. Stop all SeisComP modules:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp stop
|
||||
|
||||
#. Install the new packages.
|
||||
|
||||
.. note::
|
||||
|
||||
Users of external, e.g., |gempa| modules must ensure that these external
|
||||
modules match the SeisComP release version if they depend on SeisComP
|
||||
libraries.
|
||||
|
||||
#. Test the database schema version and update bindings
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp update-config
|
||||
|
||||
:ref:`Upgrade the database schema version <tutorials_upgrade-db>` if
|
||||
mismatches are reported.
|
||||
|
||||
#. After a successful upgrade, start all modules again and observe the status:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp start
|
||||
seiscomp status started
|
||||
New major release with the features are regularly advertised and described in
|
||||
detail on the `News website of gempa GmbH <https://www.gempa.de/news/>`_ and
|
||||
on the :cite:t:`seiscomp-forum`.
|
||||
|
||||
|
||||
.. _tutorials_upgrade-db:
|
||||
|
||||
Upgrade database schema version
|
||||
===============================
|
||||
-------------------------------
|
||||
|
||||
When installing a new SeisComP release with a higher major version number,
|
||||
upgrading the database may be required. The database version will be tested and
|
||||
the required actions will be shown when executing:
|
||||
When upgrading |scname| to a higher major version number as set out in section
|
||||
:ref:`tutorials_upgrade-normal`, upgrading the database schema is typically
|
||||
required, too. The database version will be tested and the required actions will
|
||||
be reported when executing:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp update-config
|
||||
seiscomp update-config**Special case:**
|
||||
|
||||
or when pressing the Update Configuration button in scconfig.
|
||||
or when pressing the Update Configuration button in :ref:`scconfig`.
|
||||
An upgrade from version SeisComP3 jakarta-2017.334 to SeisComP in version 5.1.0
|
||||
will give, e.g.:
|
||||
|
||||
@ -219,12 +140,22 @@ will give, e.g.:
|
||||
* migration to the current version is required. apply the following
|
||||
scripts in exactly the given order:
|
||||
* mysql -u sysop -p -D seiscomp -h localhost < /home/sysop/seiscomp/share/db/migrations/mysql/0_10_to_0_11.sql
|
||||
* mysql -u sysop -p -D seiscomp -h localhost < /home/sysop/seiscomp/share/db/migrations/mysql/0_11_to_0_12.sql
|
||||
* mysql -u sysop -p -D seiscomp -h l
|
||||
**Special case:**ocalhost < /home/sysop/seiscomp/share/db/migrations/mysql/0_11_to_0_12.sql
|
||||
error: updating configuration for scmaster failed
|
||||
|
||||
The shown migration scripts can be used directly as given and in the given order:
|
||||
The shown migration scripts can be used directly as given and in the given
|
||||
order but you need to first stop all modules writing to or deleting objects from
|
||||
the database such as :ref:`scmaster`, :ref:`scdb`, :ref:`scardac` or
|
||||
:ref:`scdbstrip` running on the same or any connected machine, e.g.
|
||||
|
||||
* MySQL / MariaDB:
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp stop scmaster
|
||||
**Special case:**
|
||||
Thereafter, apply the migration according to your database:
|
||||
|
||||
* MySQL/MariaDB:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
@ -239,13 +170,15 @@ The shown migration scripts can be used directly as given and in the given order
|
||||
psql -U sysop -d seiscomp -h localhost -W -f /home/sysop/seiscomp/share/db/migrations/postgresql/0_11_to_0_12.sql
|
||||
|
||||
Using the migration scripts provides a more user friendly way than copying the
|
||||
lines of MySQL code from the changelog. In future versions we might add the option
|
||||
lines of MySQL code from the changelog which was practise in past SeisComP3
|
||||
versions. In future versions we might add the option
|
||||
to automatically run the migrations.
|
||||
|
||||
.. warning::
|
||||
|
||||
Upgrading the database make take some time. Do no interrupt the process!
|
||||
During this time, the |scname| messaging system is unavailable causing a downtime of the system.
|
||||
During this time, the |scname| messaging system is unavailable causing a
|
||||
downtime of the system.
|
||||
|
||||
After applying the migration scripts the database should be at the correct version.
|
||||
Test again with:
|
||||
@ -254,16 +187,77 @@ Test again with:
|
||||
|
||||
seiscomp update-config
|
||||
|
||||
After successfully upgrading the database continue your previous upgrade procedure.
|
||||
After successfully upgrading the database continue your previous upgrade
|
||||
procedure.
|
||||
|
||||
|
||||
.. _tutorials_upgrade-normal:
|
||||
|
||||
Normal Update/Upgrade
|
||||
=====================
|
||||
|
||||
Normal updates/upgrades of the major version of |scname| takes only a few steps:
|
||||
|
||||
#. If you are tracking your |scname| installation using :program:`git`
|
||||
(recommended), ensure all previous changes are committed and the installation
|
||||
is clean.
|
||||
#. Stop all SeisComP modules:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp stop
|
||||
|
||||
#. Download and install the |scname| package as described in section
|
||||
:ref:`installation-packages`.
|
||||
|
||||
#. Understand the Changelog of the installed |scname| as described in section
|
||||
:ref:`tutorials_upgrade_changelog`.
|
||||
|
||||
#. Infrequently configuration parameters require changes which
|
||||
are documented in the Changelog. You may also scan your configuration for
|
||||
deprecated or obsolete configuration parameters or values using
|
||||
`gempa-checkSCconfig.py <https://data.gempa.de/packages/Public/tools/>`_
|
||||
provided by :cite:t:`gempa`. Apply changes accordingly.
|
||||
|
||||
#. The software dependencies may have changed after upgrading. Install them as
|
||||
described in section :ref:`software_dependencies`.
|
||||
|
||||
#. Test the database schema version and update bindings
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp update-config
|
||||
|
||||
:ref:`Upgrade the database schema version <tutorials_upgrade-db>` if
|
||||
mismatches are reported. The mismatch reports will also give the upgrade
|
||||
instructions. Repeat *seiscomp update-config* after upgrading the database
|
||||
schema version.
|
||||
|
||||
**Background:** When upgrading the major |scname| version you
|
||||
typically need to upgrade the database scheme version.
|
||||
|
||||
|
||||
|
||||
#. After a successful update/upgrade, start all modules again and observe the
|
||||
status:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
seiscomp start
|
||||
seiscomp status started
|
||||
|
||||
#. If you are tracking your |scname| installation using :program:`git`
|
||||
(recommended), commit all changes.
|
||||
|
||||
|
||||
.. _tutorials_upgrade_v4:
|
||||
|
||||
SeisComP3 to version >=4
|
||||
Upgrading from SeisComP3
|
||||
========================
|
||||
|
||||
SeisComP in version 4 has some major differences to SeisComP3 which require adjustments.
|
||||
The main differences are in the :ref:`directories of the SeisComP installation <sec-tutorials_upgrading_path>`
|
||||
SeisComP in version >=4 has major differences to SeisComP3 which require
|
||||
adjustments. The main differences are in the
|
||||
:ref:`directories of the SeisComP installation <sec-tutorials_upgrading_path>`
|
||||
and the :ref:`messaging system <sec-tutorials_upgrading_messaging>`.
|
||||
The changes and the required actions are explained below. They must be considered
|
||||
in addition to the steps set out in section :ref:`tutorials_upgrade-normal`.
|
||||
@ -274,8 +268,8 @@ in addition to the steps set out in section :ref:`tutorials_upgrade-normal`.
|
||||
Files and directories
|
||||
---------------------
|
||||
|
||||
With **SeisComP3** all the default installation typically required all modules and configurations
|
||||
in the directories
|
||||
With **SeisComP3** all the default installation typically required all modules
|
||||
and configurations in the directories
|
||||
|
||||
* seiscomp3/ , typically $HOME/seiscomp3 or /opt/seiscomp3/
|
||||
* $HOME/.seiscomp3/
|
||||
@ -410,14 +404,14 @@ configuration. Migrate the legacy database parameters and configure the new one:
|
||||
|
||||
queues.production.groups = ${defaultGroups}, L1PICK, L1LOCATION
|
||||
|
||||
* Set groups per queue in :confval:`queues.$name.groups`,
|
||||
* **Special case:** Set groups per queue in :confval:`queues.$name.groups`,
|
||||
ignoring groups in :confval:`defaultGroups`
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
queues.production.groups = L1PICK, L1LOCATION, AMPLITUDE, PICK, LOCATION, MAGNITUDE, FOCMECH, EVENT, QC, PUBLICATION, GUI, INVENTORY, ROUTING, CONFIG, LOGGING, IMPORT_GROUP, SERVICE_REQUEST, SERVICE_PROVIDE
|
||||
|
||||
* Set groups in :confval:`defaultGroups`
|
||||
* **Special case:** Set groups in :confval:`defaultGroups`
|
||||
|
||||
.. code-block:: properties
|
||||
|
||||
@ -426,9 +420,9 @@ configuration. Migrate the legacy database parameters and configure the new one:
|
||||
.. warning::
|
||||
|
||||
When setting groups in the queues all groups configured in
|
||||
:confval:`defaultGroups` will be ignored unless `${defaultGroups}` is used.
|
||||
Add all groups from :confval:`defaultGroups` to the queues to keep the
|
||||
default groups.
|
||||
:confval:`defaultGroups` will be ignored unless `${defaultGroups}` is
|
||||
used. Add all groups from :confval:`defaultGroups` to the queues to
|
||||
keep the default groups.
|
||||
|
||||
* Add the interface name, currently only *dbstore* is supported. Example for
|
||||
a queue names *production*
|
||||
@ -484,9 +478,8 @@ After adjusting the structure, variables and configuration parameters, check if
|
||||
Seedlink
|
||||
--------
|
||||
|
||||
When upgrading from SeisComp3 Jakrata-2018.327 or older and using :ref:`seedlink`,
|
||||
consider the sections :ref:`tutorials_upgrade_seedlink` and
|
||||
:ref:`tutorials_proc_seedlink`.
|
||||
When upgrading from SeisComp3 in version Jakrata-2018.327 or older and using
|
||||
:ref:`seedlink`, consider the section :ref:`tutorials_upgrade_2018.327`.
|
||||
|
||||
|
||||
Automatic module check
|
||||
@ -508,8 +501,10 @@ modules automatically during computer startup, then the startup script must be
|
||||
adjusted.
|
||||
|
||||
|
||||
Upgrade From SeisComP3 Jakarta-2018.327 or Before
|
||||
=================================================
|
||||
.. _tutorials_upgrade_2018.327:
|
||||
|
||||
Upgrading From SeisComP3 <= Jakarta-2018.327
|
||||
============================================
|
||||
|
||||
|
||||
.. _tutorials_upgrade_seedlink:
|
||||
@ -591,7 +586,7 @@ Script for renaming the seedlink buffer directories:
|
||||
net=""
|
||||
while read a b c; do
|
||||
case $a in
|
||||
--) break;;
|
||||
--) break;;tutorials_upgrade_seedlink
|
||||
name) eval sta=$c;;
|
||||
network) eval net=$c;;
|
||||
esac
|
||||
|
||||
@ -77,11 +77,11 @@ Examples:
|
||||
for your playback.
|
||||
|
||||
Example for one hour of data from the GE network from
|
||||
`FDSNWS at GEOFON <https://geofon.gfz-potsdam.de/waveform/webservices/fdsnws.php>`_:
|
||||
`FDSNWS at GEOFON <https://geofon.gfz.de/waveform/webservices/fdsnws.php>`_:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
wget -O data.mseed "http://geofon.gfz-potsdam.de/fdsnws/dataselect/1/query?net=GE&cha=BH*&starttime=2021-04-01T06:00:00Z&endtime=2021-04-01T07:00:00Z"
|
||||
wget -O data.mseed "http://geofon.gfz.de/fdsnws/dataselect/1/query?net=GE&cha=BH*&starttime=2021-04-01T06:00:00Z&endtime=2021-04-01T07:00:00Z"
|
||||
scmssort -u -E data.mseed > [your miniSEED file]
|
||||
|
||||
* **CAPS server:** Extract the data from gempa's CAPS server :cite:p:`caps`
|
||||
|
||||
@ -39,10 +39,10 @@ First, we'll query the upstream Seedlink server,
|
||||
to confirm that it has current data.
|
||||
We do this with SeisComP's :program:`slinktool` command,
|
||||
giving it the '-L' option to list the available stations.
|
||||
For this example, we'll use the server at host `geofon.gfz-potsdam.de`
|
||||
For this example, we'll use the server at host `geofon.gfz.de`
|
||||
on port 18000 (the default) ::
|
||||
|
||||
$ slinktool -L geofon.gfz-potsdam.de
|
||||
$ slinktool -L geofon.gfz.de
|
||||
AW VNA1 VNA1
|
||||
AW VNA2 VNA2
|
||||
[..]
|
||||
@ -56,7 +56,7 @@ This can be a long list. It shows the network code and station code of each
|
||||
of the stations for which data is available from this Seedlink server.
|
||||
We can restrict the output to our station of interest using `grep`. ::
|
||||
|
||||
$ slinktool -Q geofon.gfz-potsdam.de | grep GR.CLL
|
||||
$ slinktool -Q geofon.gfz.de | grep GR.CLL
|
||||
GR CLL LHN D 2020/05/06 15:13:41.2249 - 2020/05/06 21:15:28.0299
|
||||
GR CLL BHZ D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:13.1300
|
||||
GR CLL BHN D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:15.4300
|
||||
|
||||
Reference in New Issue
Block a user