我会用几篇的博客内容来记录对 SeisComP3 的学习总结。这篇主要回答两个问题,我为什么用 SeisComP3 以及如何安装它。

1. Why is SeisComP3?

从事实时地震学,意味着要第一手获取到地震数据,提及实时数据,就绕不开一个传输协议或者软件 seedlink。目前,大多数地震台网或系统都支持SeedLink 通讯协议,例如美国地震学联合研究会(IRIS)地震数据中心、全球地震台网(GSN)、欧洲 GEOFON 台网、 Earthworm 系统、Antelope 系统等。利用 seedlink,实现获取实时地震数据的途径,我所了解的有以下几条:

1.1 Iris DMC 提供的 ringserver 软件以及官网介绍的几种软件: http://ds.iris.edu/ds/nodes/dmc/services/seedlink/

1.2 ObsPy 软件可以连接 seedlink: docs.obspy.org/tutorial/code_snippets/easyseedlink.html

1.3 利用IRIS Fetch 脚本下载Web Service Fetch Scripts

1.4 SeisComP3,简称SC 3。seedlink 本来就是 SeisComP 的核心组成部分,由(GEOFON & GFZ)研发和维护。 SC 3远不止应用于实时数据获取,关于它的历史和应用范围请看官方介绍:SeisComP3 - Introduction and Scope

2. 硬件要求

SC 3支持系统: SUSE, (K)Ubuntu, Debian, CentOS。

硬件 用于数据储存 用于数据处理  用于图形交互 
CPU ≥ 1颗 ≥ 1颗 ≥ 1颗
内存 ≥ 2 GB ≥ 2 GB ≥ 4 GB
硬盘 Raid1/5/0+1 ≥ 200 GB Raid1/5/0+1 ≥ 100 GB ≥ 50 GB

附几个查询计算机硬件的命令:

# 查看物理CPU个数
$ cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
$ cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看内存信息
$ sudo dmidecode -t memory | grep Size

# 查看磁盘信息
$ sudo fdisk -l

3. 用户和许可证

SeisComP3 如果在非个人的共享Unix 服务器上运行,建议专门为此创建一个新用户,官网教程以’Sysop’为例。

# 进入root帐号
$ su 
Password:

# 创建用户及密码
$ cd
$ adduser sysop
Enter new UNIX password:
Retype new UNIX password:
...

# 给予新用户管理权限
$ usermod -aG sudo sysop

然后之后的操作都在sysop 超级用户下执行。

关于许可证(License key),官方网站说明很详细。下载协议,签字(最好是领导),扫描,发邮件到GFZ(geofon@gfz-potsdam.de),邮件内容可以简短说明下使用SC3 的方法和用途,三个工作日左右就可以收到回信。

4. 安装软件包

https://www.seiscomp3.org/downloader/ 处下载适合自己系统和版本的软件压缩包(seiscomp3-jakarta-[version]-[OS]-[arch].tar.gz),地图压缩包(seiscomp3-[release]-maps.tar.gz),和文档压缩包(seiscomp3-jakarta-[version]-doc.tar.gz)。拷贝这三份压缩文件到主目录下。例如:

$ cd
$ ls *.tar.gz
seiscomp3-jakarta-2017.334.05-ubuntu16.04-x86_64.tar.gz
seiscomp3-jakarta-maps.tar.gz
seiscomp3-jakarta-2017.334-doc.tar.gz

挨个解压:

$ tar xzf seiscomp3-jakarta-2017.334.05-ubuntu16.04-x86_64.tar.gz
$ tar xzf seiscomp3-jakarta-maps.tar.gz
$ tar xzf seiscomp3-jakarta-2017.334-doc.tar.gz

至此,主目录下有个名为 seiscomp3 的文件夹,里面有了基本的文件结构,如 /bin, /lib, /share, /etc等。

5. 安装依赖包

5.1 Python

首个依赖包是Python。不解地是,SC3 目前仍然依赖Python 2,而Python 2将于2020年停止维护。

# 安装
# sudo apt install -y python

如果设备已经安装了Python 3,可能会出现系列错误。对于python 2和3共存的方法,似乎并不适用于SC 3。 如果不想修改系统的python 3环境,对SC 3环境调教,也是可行的。

# 查看系统python 版本
$ python -V

# 查看系统环境路径
$ which env

# 查看系统环境下python和python2 对应的版本号
$ /usr/bin/env python
$ /usr/bin/env python2

常见错误1:

File "seiscomp3/bin/seiscomp", line 44

except Exception, e:
                ^
SyntaxError: invalid syntax

是因为python2中的Exception,e 的写法不再支持,需要修改成Exception as e。更为省心的修改方法是将 SC 3 运行环境改为 python 2。

修改方法:

$ sudo vi seiscomp3/bin/seiscomp

将第一行: #!/usr/bin/env python 改为 #!/usr/bin/env python2

常见错误2:

Traceback (most recent call last):
File "/home/lenovo/seiscomp3/bin/import_inv", line 19, in <module>
import seiscomp3.Client
File "/home/lenovo/seiscomp3/lib/python/seiscomp3/__init__.py", line 1, in <module>
import sys,DLFCN
ModuleNotFoundError: No module named 'DLFCN'

解决办法:

$ cd ~/seiscomp3/bin

# 查看命令中的Python调用版本,默认结果是#!usr/bin/env python
$ grep 'python' -r .

# 而经过前面测试,调用python字样,如果版本是python3,需要改为python2
# 当前文件夹下所有文件中,如果第一行到第一行中,有python字样,替换为python2
$ sed -i '1,1s/python/python2/g' ./*

# 复查一遍
$ grep 'python' -r .

5.2 Mysql and GUI

MySQL 是一个关系型数据库管理系统。GUI 是图形界面,一般情况下设备已经安装。 FDSN Web Services 用于获取FDSN 数据资料,可以忽略。

步骤1:

$ seiscomp3/bin/seiscomp install-deps base mysql-server gui fdsnws

Yes always!

如果seiscomp3 install-deps未起作用,那么

$ cd seiscomp3/share/deps/ubuntu/16.04/
$ chmod +x *
$ sudo ./install.base.sh

如果上一步还出现问题,则需要手动安装:

$ sudo apt install -y libboost-dev libboost-all-dev libssl-dev libncurses5-dev libmysql++-dev libpython-dev libsofthsm2-dev libqt4-dev flex

然后,

$ sudo ./install-mysql-server.sh
$ sudo ./install-gui.sh
$ sudo ./install-fdsnws.sh

步骤2:

一些没有自动安装,可能需要补充的依赖包:

sudo apt install -y libcanberra-gtk-module libcanberra-gtk3-module

官方推荐调整 Innodb 的内存:

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

添加或修改:

innodb_buffer_pool_size = 64M
innodb_flush_log_at_trx_commit = 2

重启 MySQL 服务:

$ sudo service mysql restart

原理见ubuntu16.04上调整使用Innodb存储引擎的MySQL性能

有关 MySQL 问题,请转至下一章节。


安装步骤都已完成。接下来见SC 3的配置