SeisComp3 - Introduction and Installation
Contents
我会用几篇的博客内容来记录对 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的配置。
Author Qiang
LastMod 2019-10-08