SeisComP3 文档

配置

SeisComP3 使用统一模式进行模块配置。使用 SeisComP3 库,模块能直接读取配置并共享全局配置选项,例如通信连接、数据库配置、日志等等。还有一些模块不使用库,被成为 独立standalone)模块,如 seedlinkarclinkslarchive。当 seiscomp update-config 运行时,这些独立模块需包装生成自己的配置。

虽然通过直接编辑配置文件很容易创建配置,更便利的方式是使用配置器。SeisComP3 提供图形界面的配置器和管理工具(scconfig),方便维护模块配置和台站绑定。内建功能可检查所有注册模块的状态,启动或停止这些模块。

配置可分为三个部分:台站、绑定和模块。

配置文件

?(trunk)配置文件是简单的文本文件,每行都是名称-值(name-value)对。

值可以为向量或列表,列表项通过逗号分隔:

# This is a list definition
rainbowColors = red, orange, yellow, green, blue, indigo, violet

如果值中需要包含逗号、空格或其他可译字符,可以用反斜杠\或双引号"

# This is a comment
# The following list definitions have 2 items: 1,2 and 3,4
# quoted values
tuples = "1,2", "3,4"
# escaped values
tuples = 1\,2, 3\,4

环境或预设变量可以使用${var}

homeDir = ${HOME}
myPath = ${homeDir}/test

台站

台站元数据是地震处理系统和 SeisComP3 的基本需求。SeisComP3 将台站元数据处理为 XML 格式,称作 Inventory ML。旧 key 文件,无数据 SEED 和其他格式的支持工作交由外部应用处理。

编目同步的两个处理阶段

编目同步的两个处理阶段:

  1. 将外部格式转换成 Inventory ML
  2. 同步编目池与数据库

外部格式首先转换成 inventory ML,然后通过 seiscomp update-config 合并及同步到数据库。所有的台站元数据存储在 etc/inventory 目录并能按需组织。可以每个网络一个文件,包含全部编目;或者所有的仪器一个文件;或者每个台站一个文件。更新脚本从数据库载入编目,并且合并 etc/inventory 中的每一个文件。最后会移除所有未引用的对象,并将所有的更新发送至数据库。

SeisComP3 配置并不会处理台站元数据,仅会为模块以及 模块-台站 配置参数。编目管理可以也应当能通过外部工具进行处理。

绑定

绑定 总是连接到 模块。每个模块的绑定配置目录为 etc/key/modulename,包含台站绑定或档案(profile)。

绑定配置存储在etc/key中。

绑定:保存模块中使用台站方式的配置

要将台站(由 net_sta 标识)绑定至模块,第一步是为台站注册模块,因此需要创建或编辑台站 key 文件。

假设有两个台站,GE.MORC 和 GE.UGM,这两个台站将为 SeedLink 进行配置。两个台站的 key 文件需创建(或编辑):etc/key/station_GE_MORCetc/key/station_GE_UGM

两个文件必须包含台站需配置的模块行,如:

seedlink

这将结合etc/key/seedlink/station_GE_UGM进行绑定。当使用档案时,将其通过冒号附加到模块后面:

seedlink:geofon

然后,结合etc/key/seedlink/profile_geofon读取台站 GE.UGM 进行绑定。

要列印台站配置的所有模块,可打印台站 key 文件:

$ cat etc/key/station_GE_MORC
seedlink:geofon
global:BH
scautopick

显示 SeedLink 的所有台站配置:

$ for i in `find etc/key -type f -maxdepth 1 -name "station_*_*"`; do
> egrep -q '^seedlink(:.*){0,1}$' $i && echo $i;
> done
etc/key/station_GE_MORC
etc/key/station_GE_UGM

存储

对所有的主trunk(非独立)模块,绑定都写入 SeisComP3 数据库。通过调用 seiscomp update-config 完成。 每个模块读取配置数据库,并获取所有注册的台站绑定。数据库包含 5 个表:ConfigModuleConfigStationSetupParameterSetParameter

配置数据库模式

现在,示例说明如何连接表并且台站绑定如何存储至数据库。为说明对象的内容,使用 XML 表示法:

<Config>
  <module publicID="Config/trunk" name="trunk" enabled="true">
    ...
  </module>
</Config>

ConfigModule(公共ID为 Config/trunk)使用名称 trunk 创建。该 ConfigModule 通过全局初始化脚本(etc/init/trunk.py)管理, 并通过所有主模块的配置绑定进行同步。ConfigModule 是由所有配置使用的,除非有另外的配置:

scapp --config-module test

这里 scapp 将读取 ConfigModule test。因为 ConfigModule test 不由 seiscomp update-config 管理,将由用户创建。

每一个台站至少有一个绑定,一个 ConfigStation 对象附加至 ConfigModule:

<Config>
  <module publicID="Config/trunk" name="trunk" enabled="true">
    <station publicID="Config/trunk/GE/UGM"
             networkCode="GE" stationCode="UGM" enabled="true">
      ...
    </station>
  </module>
</Config>

最后,每个模块一个 setup:

<Config>
  <module publicID="Config/trunk" name="trunk" enabled="true">
    <station publicID="Config/trunk/GE/UGM"
             networkCode="GE" stationCode="UGM" enabled="true">
      <setup name="default" enabled="true">
        <parameterSetID>
          ParameterSet/trunk/Station/GE/UGM/default
        </parameterSetID>
      </setup>
      <setup name="scautopick" enabled="true">
        <parameterSetID>
          ParameterSet/trunk/Station/GE/UGM/scautopick
        </parameterSetID>
      </setup>
    </station>
  </module>
</Config>

这里创建两个 setup:default (模块 global 向后兼容);scautopick 通过公共ID指向 ParameterSet。下一个 XML 节显示台站 GE.UGM 的 scautopick 设置的 ParameterSet:

<Config>
  <parameterSet publicID="ParameterSet/trunk/Station/GE/UGM/scautopick"
                created="...">
    <baseID>ParameterSet/trunk/Station/GE/UGM/default</baseID>
    <moduleID>Config/trunk</moduleID>
    <parameter publicID="...">
      <name>timeCorr</name>
      <value>-0.8</value>
    </parameter>
    <parameter publicID="...">
      <name>detecFilter</name>
      <value>
        RMHP(10)&gt;&gt;ITAPER(30)&gt;&gt;BW(4,0.7,2)&gt;&gt;STALTA(2,80)
      </value>
    </parameter>
    <parameter publicID="...">
      <name>trigOff</name>
      <value>1.5</value>
    </parameter>
    <parameter publicID="...">
      <name>trigOn</name>
      <value>3</value>
    </parameter>
  </parameterSet>
</Config>

绑定配置文件的映射为 1:1。配置文件中的每一个参数正好是数据库中的一个参数。

全局绑定的内容通过 ParameterSet 的 基本ID 反映,指向台站 GE.UGM 默认 设置:

<Config>
  <parameterSet publicID="ParameterSet/trunk/Station/GE/UGM/default"
                created="...">
    <moduleID>Config/trunk</moduleID>
    <parameter publicID="...">
      <name>detecStream</name>
      <value>BH</value>
    </parameter>
  </parameterSet>
</Config>

最后的 scautopick 和台站 GE.UGM 的配置:

名称
detecStream BH
timeCorr -0.8
detecFilter RMHP(10)>>ITAPER(30)>>BW(4,0.7,2)>>STALTA(2,80)
trigOff 1.5
trigOn 3

这些链接至 etc/key/global/station_GE_UGMetc/key/scautopick/station_GE_UGM 文件。

模块

需要转换成配置或不使用默认配置选项的 模块,称为 独立standalone)模块。

文件 独立 主Trunk
etc/defaults/global.cfg X
etc/defaults/module.cfg X X
etc/global.cfg X
etc/module.cfg X X
~/.seiscomp3/global.cfg X
~/.seiscomp3/module.cfg X X

扩展

扩展为 模块 添加了新的配置选项。通常模块加载插件时需要附加的配置参数,这些通过扩展提供。

下表为模块及其相应的插件:

模块 插件
scm email text ncurses
kernel syncarc messaging
global RecordStream MLv LocSAT Md Hypo71 GUI MLh NonLinLoc
seedlink q330 chain
arclink reqhandler