赞
踩
**写在前面:**TAUP地震走时软件是计算地震波传播路径和走时的开源软件,可以用于解决地震波传播路径和速度模型的相关问题。
其中中文的参考网址:Tapu_SeisMan
ObsPy TauP
Pyrocko Manual另一个python版本的地学软件
一小时介绍ObsPy全英视频
pip install obspy
主要用到这个包:obspy.taup - Ray theoretical travel times and paths
from obspy.taup import TauPyModel
model = TauPyModel(model="iasp91")
obspy中提供的一维速度模型有
简单的近源是速度模型,感觉不同模型之间没啥区别,当然你也可以自己定义模型。我没有找到什么很简单的方法,甚至无法在python上实现,只能用JAVA上的taup上面计算。下面是我所有的笔记,做了3天,实在没做出来,只能用笨办法了。
使用Pyrocko Manual插件(python)计算P波到时(没做出来版本,中途改用taup了)
如果你没有什么更改原始模型的需求,那么只是想简单的计算一下到时,可以用我这个function
(免责声明:我也是刚接触python所以用的真的不是很精,如果有更好的方法,希望各位未来院士可以分享给我)
这个只能计算直达波P波
from obspy.taup import TauPyModel def get_p_and_s_arrival_times(source_depth_in_km, distance): """ **Theoretical p&s wave arrival time** reference page:https://docs.obspy.org/packages/obspy.taup.html Parameters: - model: 地震模型,如 "ak135" 或 "prem" - source_depth_in_km: event deepth(单位:千米) - distance_in_degree: epicenter(unit:degree)--use epicenter(km)/111 Return: - P wave arrival time---travel_time_p,travel_time_s - S wave arrival time-travel_time_s """ distance_in_degree = distance / 111 # 创建 TauPyModel 实例 model = TauPyModel(model="herrin") # 获取 P 波到时 try: arrival_p = model.get_travel_times(source_depth_in_km=source_depth_in_km, distance_in_degree=distance_in_degree, phase_list=["p"]) except ValueError: arrival_p = model.get_travel_times(source_depth_in_km=source_depth_in_km, distance_in_degree=distance_in_degree, phase_list=["P"]) travel_time_p = round(arrival_p[0].time, 3) # 获取 S 波到时 try: arrival_s = model.get_travel_times(source_depth_in_km=source_depth_in_km, distance_in_degree=distance_in_degree, phase_list=["s"]) except ValueError: arrival_s = model.get_travel_times(source_depth_in_km=source_depth_in_km, distance_in_degree=distance_in_degree, phase_list=["S"]) travel_time_s = round(arrival_s[0].time, 3) return travel_time_p, travel_time_s
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。