2021.8-利用机器学习到时构建高精度地震目录流程环境配置

前言

第七届“地震学算法与程序培训班” 于2021年8月9日–11日举办,本篇基于2021.8.10上午张淼老师的讲座搭建实验环境,程序及说明文档下载链接已提供,笔者使用的是Ubuntu18.04(虚拟机)系统,以此记录环境配置过程进行学习,特意在此感谢老师的开源资料!十分用心!

一、软件包下载+环境配置

1、软件包下载

1)PhaseNet[contains Obspy], REAL, VELEST,HYPOINVERSE, hypoDD, GrowClust, FDTCC, Match&Locate软件包下载:网址
进入LOC-FLOW文件夹:cd src
python software_download.py

#software_download.py
import warnings
import os

os.system('git clone https://github.com/Dal-mzhang/REAL.git')
os.system('git clone https://github.com/wayneweiqiang/PhaseNet.git') #Note: it is a new version
os.system('wget http://www.ldeo.columbia.edu/~felixw/HYPODD/HYPODD_1.3.tar.gz -N')
os.system('tar -zxvf HYPODD_1.3.tar.gz')
os.system('rm HYPODD_1.3.tar.gz')
os.system('git clone https://github.com/dttrugman/GrowClust.git')
os.system('git clone https://github.com/Dal-mzhang/MatchLocate2.git')
os.system('git clone https://github.com/MinLiu19/FDTCC')

2)安装软件、依赖包
SAC、gfortran、gawk

①编译FDTCC:安装包下bin目录已包含可执行文件,但是显示报错./FDTCC: 无法执行二进制文件: 可执行文件格式错误

cd src
make clean
#make报错显示/usr/bin/ld: 最后的链结失败: 输出不可表示的节
#修改Makefile,在CFLAGS这一句加上-no-pie禁pie
make

②编译GrowClust

cd SRC
sudo apt-get install gfortran
#修改Makefile,在CFLAGS这一句加上-no-pie禁pie
make
make all

③编译HYPODD

一、hypoDD
cd src
cd hypodd
#修改Makefile,将FC=g77改为FC=gfortran,CC= gcc -no-pie,FC= gfortran -no-pie
make
二、ph2dt
cd src
cd ph2dt
#修改Makefile,将FC=g77改为FC=gfortran,CC= gcc -no-pie,FC= gfortran -no-pie
make

④编译MatchLocate2

cd src
#修改Makefile,基于linux系统,选择第五行的编译器语句
#另外在CC这一句加上-no-pie禁pie
#,否则Ubuntu18.04的小伙伴有错误提示“最后的链结失败:输出不可表示的节”
make clean
make
#编译成功后bin文件夹下有四个可执行文件:MatchLocate2、SelectFinal、SHIFT、lsac、ccsacc

⑤编译REAL

一、pick2real
#如果已经有.o后缀的文件记得先make clean删除一下
#修改makefile文件,在CC命令加上-no-pie
make clean
make
二、REAL
#修改makefile文件,编译器语句选择Linuxmp那条命令,在CC命令加上-no-pie
make
三、VELEST
#修改makefile文件,在FC命令加上-no-pie
make

⑥官网下载HYPOINVERSE(hyp1.4)未果,找老师拿软件安装包,听说github有

cd source
#修改makefile文件:1、将cp地址改为自己的路径。2、将g77改为gfortran -no-pie
make

完成编译后生成的可执行文件如下,不是这个图标的一般是共享库文件哦,要注意!在这里插入图片描述

2、环境配置

1)首先将编译好的可执行文件统一移动到目录的bin文件下,执行run_install.sh

#可以直接运行run_install.sh,或者手动cp
...
cp ./FDTCC/bin/FDTCC ../bin/            #need SAC lib in Makefile
cp ./GrowClust/SRC/growclust ../bin/    
cp ./HYPODD/src/hypoDD/hypoDD ../bin/   #change g77 to gfortran or similar complier
cp ./HYPODD/src/ph2dt/ph2dt ../bin/     #change g77 to gfortran or similar complier
cp ./MatchLocate2/bin/* ../bin/         #need SAC lib in Makefile
cp ./REAL/bin/* ../bin/                 #change gcc-10 (on Mac) to gcc as needed
cp ./hyp1.40/source/hyp1.40  ../bin     #change f77 to gfortran or similar complier

2)配置环境变量
gedit ~/.bashrc
export PATH=${your path}/LOC-FLOW/bin/:$PATH
source ~/.bashrc

3、问题

1)官网没有软件HYPOINVERSE——解决:直接找一个hpy1.40安装包

aa@ubuntu:~/2021.8.SEIS_PROGRAM/LOC-FLOW/src$ wget ftp://ehzftp.wr.usgs.gov/klein/hyp1.40
--2021-08-05 21:26:33--  ftp://ehzftp.wr.usgs.gov/klein/hyp1.40
           => “hyp1.40”
正在解析主机 ehzftp.wr.usgs.gov (ehzftp.wr.usgs.gov)... 137.227.224.179, 2001:49c8:8000:120c::179
正在连接 ehzftp.wr.usgs.gov (ehzftp.wr.usgs.gov)|137.227.224.179|:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。    ==> PWD ... 完成。
==> TYPE I ... 完成。  ==> CWD (1) /klein ... 完成。
==> SIZE hyp1.40 ... 完成。

==> PASV ... 完成。    ==> RETR hyp1.40 ... 
文件 “hyp1.40” 不存在。
#运行run_install.sh,报错cp: 无法获取'./hyp1.40/source/hyp1.40' 的文件状态(stat): 没有那个文件或目录

2)编译过程报错提示“最后的链结失败:输出不可表示的节”——解决
3) Phasenet安装虚拟环境conda env create -f env.yml卡在solving…
手动安装:
1、环境conda create --name phasenet python=3.11
2、python库:numpy…
conda install numpy spicy matplotlib pandas scikit-learn tqdm obspy unicorn fastapi kafka-python keras pymongo
找到原因了,是卡在了tensorflow:pip3 install tensorflow
单独使用上面这条命令,还是不行的话去官网下载whl文件,不知道安装在什么地方,暂时没有装,安装代码pip install tensorflow-2.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
第二天重启Ubuntu,一度飙到2M/s,可谓是胜利在望,成功!

二、下载数据

cd Data
python waveform_download_mseed.py
python waveform_download.py
python phasenet_input.py

三、运行

source activate
conda activate phasenet
bash run_all.sh

报错1——运行bash run_all.sh报错如下:
在这里插入图片描述
查的原因是出自FDTCC命令(主要是hypoDD文件夹),没有生成IN/dt.cc在这里插入图片描述

aa@ubuntu:~/2021.8.SEIS_PROGRAM/LOC-FLOW/hypoDD_dtcc$ FDTCC -F-3 -B2/8 -C1/1/1 -W1.0/1.0/0.3/1.0/1.5/0.5 -D0.01/0.6/1/2 -G1.4/20/0.01/1 ../Data/station.dat ../REAL/tt_db/ttdb.txt ../Data/waveform_sac ./event.sel ./dt.ct ./hypoDD.pha
已杀死

解决——修改参数?

更新:2023/8/2
Data/waveform_sac根据station_all.dat下载了2016-10-14头3000s(50mins)的sac格式波形数据,三分量,重采样到100Hz,去均值去线性,滤波[0.002,25],去仪器响应
ENZ分量分别有:46、49、48共143个波形信号
0.下载数据【使用2016年10月14日意大利中部地震检测定位为例。三角:台站;红点:目录地震】
在这里插入图片描述

1-1.STALTA在这里插入图片描述
在这里插入图片描述
拾取P波到时:44
拾取S波到时:46
1-2.Phasenet
在这里插入图片描述
在这里插入图片描述
拾取P波到时:50
拾取S波到时:48
👉文件存储格式(REAL需要的到时文件格式)
年月日/台网.台站.P.txt
年月日/台网.台站.S.txt

2、生成走时表ttbd.txt
3、REAL关联
在这里插入图片描述
查看结果:
1)X/T curves for P and S(50min关联后结果)
在这里插入图片描述
2)check waveforms and picks to verify events.eg.ID40
在这里插入图片描述
3)3Dlocation
在这里插入图片描述

4、绝对定位
👉VELEST(hypo=1,mode=1)
【得到初步目录catalog1】
在这里插入图片描述
5、相对定位
👉hypoDD双差定位(hypo=1)
【得到catalog2】
在这里插入图片描述

6、获取高精度定位结果(互相关)
👉FDTCC
【加入互相关再进行hypoDD,catalog3】
在这里插入图片描述
👉GrowClust
【catalog4】【跟FDTCC+hypoDD的目录做对比】
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
👉Match&Locate(先模板匹配再GrowClust)
在这里插入图片描述

7、精确的计算震级
在这里插入图片描述

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值