SeisComp3 - Real-time data acquisition
Contents
我会用几篇的博客内容来记录对 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
Author Qiang
LastMod 2019-10-23