我会用几篇的博客内容来记录对 SeisComP3 的学习总结。上篇围绕 Scconfig 命令的一些基本操作 介绍了 SeisComP3 如何获取(实时)数据,但如何对(实时)数据处理分析,如何存到本地,便是本篇的主要内容。

1. Command

上一篇通过 scconfig 图形界面的操作,完成了对 IU 台网(BHZ, 00)的实时数据获取,其过程相对简便,操作容易。这儿再介绍如何在终端达到相同的目的,便于更好地理解SC 3的脉络结构和文件路径。

这儿我在BUD Query Interface上下载 II 台网,频道 BHZ,位置符 00 的数据。

$ cd ~/Downloads
$ ls *.dataless

# dlsv2inv 可将 dataless 转为 xml,xml 所在位置 ~/seiscomp3/etc/inventory/
$ dlsv2inv II*dataless ~/seiscomp3/etc/inventory/II_BHZ_00.xml

# 查看 dlsv2inv 说明与用法
$ dlsv2inv --h

# 同步 inventory
$ seisomp update-config inventory

# 同步后的台站信息位于 ~/seiscomp3/etc/key
$ cd ~/seiscomp3/etc/key

# 对 global 和 seedlink 的配置与 IU 台网的相同,复制内容到 II 台网
$ for i in `ls station_II_*`; do cat station_IU_ADK > $i; done

# 启动 SC 3
$ seiscomp start

# 更新配置
$ seiscomp update-config

# 重启 seedlink 模块
$ seiscomp restart seedlink

# 查看实时波形
$ scrttv

下面是一些其他常用命令:

# 显示所有模块
$ seiscomp list modules

# 显示所有打开的模块
$ seiscomp list enabled

# 显示所有关闭的模块
$ seiscomp list disabled

# 打开seedlink模块
$ seiscomp enabled seedlink

# 启动seedlink模块
$ seiscomp start seedlink

# 查看所有模块的状态
$ seiscomp status

# 查看seedlink的状态
$ seiscomp status seedlink

# 检查所有模块
$ seiscomp check

# 更新配置
$ seiscomp update-config

注:SC 3在断网或者网络不稳定情况下 seedlink 模块可能通讯失败,虽然其状态仍在运行,但还是收不到实时波形,出现诸如 [error/SLConnection] SocketException 此类错误,解决办法是重启SC 3各个环节。此时 不能用$ seiscomp restart。而是:

# 停止 SC 3 各个模块
$ seiscomp stop

# 检查是否真正停掉 SC 3 进程,如果还有相关进程,杀死
# 如果想彻底关掉 SC 3,也是这个思路
$ ps -ef | grep seiscomp

# 重新启动
$ seiscomp start
......

2. Archive

到目前为止,实时数据(miniseed 格式)通过 seedlink 并未存到本地SC 3目录。Seedlink 模块无法访问台站库信息,也无法处理台站响应,因此无法支持完整的 seed 数据。Arclink 可以弥补以上缺失的功能。

打开 Scconfig 界面,进入Bindings,在 arclink 和 slarchive 下面分别创建 bindings,命名分别为 arclink 和 slarchive。然后拖到左边台网中。保存。

# 更新配置
$ seiscomp update-config

# 打开 arclink 和 slarchive 模块
$ seiscomp enable arclink
$ seiscomp enable slarchive

# 开启所有打开的模块
$ seiscomp start

此时,实时数据已经通过 arclink 缓存到了本地,路径为: ~/seiscomp3/var/lib/archive/year/net/station/channel/

$ cd ~/seiscomp3/var/lib/archive/2019/II/AAK/BHZ.D/

# 查看 miniseed 波形文件
$ ls
$ II.AAK.00.BHZ.D.2019.297

Miniseed 命名格式为 net.station.location.channel.year.julian_date。即一天一个文件。可以用 scart 命令自定义起止时间截选波形数据:

$ scart -dsvE -t '<start-time>~<end-time>' <SDS archive> > file.mseed

除了 scart,slinktool 命令也可以自定义起止时间获取数据,不同的是,slinktool 不是访问本地,而是直接通过 seedlink 访问 IRIS:

$ slinktool -tw "$begin_time":"$end_time" -S "$stations" -o "$dir/$out_data" "$host_post"

注: slinktool 命令还可以检测 seedlink 是否可以访问 IRIS,类似于 ping 功能:

$ slinktool -Q rtserve.iris.washington.edu:18000

3. Miniseed to SAC

实时数据一般是 minseed 格式,可以利用 mseed2sac,rdseed 等软件转化为 SAC。

$ mseed2sac IU.mseed

mseed2sac 软件直接转化的 SAC 文件,缺失台站经纬度等信息,因而需要手动添加台站信息。或者,在解压时利用 mseed2sac -m 选项,自动加入台站数据 metadata。

$ mseed2sac -m IU.metadata IU.mseed

此处台站的 metadata 有一定的格式:

A metadata file should be a list of parameters in the order shown below. 
Each parameter should be separated with a comma or a vertical bar (|)

#net|sta|loc|chan|lat|lon|elev|depth|azimuth|SEEDdip|instrument|scale|scalefreq|scaleunits|samplerate|start|end
IU|ANMO|00|BH1|34.945981|-106.457133|1671|145|328|0|Geotech KS-54000|3456610000|0.02|M/S|20|2008-06-30T20:00:00|2599-12-31T23:59:59
IU|ANMO|00|BH2|34.945981|-106.457133|1671|145|58|0|Geotech KS-54000|3344370000|0.02|M/S|20|2008-06-30T20:00:00|2599-12-31T23:59:59
IU|ANMO|00|BHZ|34.945981|-106.457133|1671|145|0|-90|Geotech KS-54000|3275080000|0.02|M/S|20|2008-06-30T20:00:00|2599-12-31T23:59:59

可以通过Web Service Fetch Scripts下载 metadata:

$ FetchMetadata -N _IU -C BHZ -S 2019-10-01T00:00:00 -L 00 -e 2019-10-10T00:30:00 -o IU_BHZ_00.metadata

此外,还可以利用 dataless 文件和 rdseed 命令对 minseed 进行解压:

$ rdseed -df IU.mseed -g IU.dataless

下一篇内容:SeisComP3 自动探测(Automatic Detection)事件