SeisComP3 使用统一模式进行模块配置。使用 SeisComP3 库,模块能直接读取配置并共享全局配置选项,例如通信连接、数据库配置、日志等等。还有一些模块不使用库,被成为 独立(standalone)模块,如 seedlink,arclink 或 slarchive。当 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 和其他格式的支持工作交由外部应用处理。
编目同步的两个处理阶段:
外部格式首先转换成 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_MORC
和etc/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 个表:ConfigModule, ConfigStation, Setup, ParameterSet 和 Parameter。
现在,示例说明如何连接表并且台站绑定如何存储至数据库。为说明对象的内容,使用 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)>>ITAPER(30)>>BW(4,0.7,2)>>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_UGM
和 etc/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 |