在Taup中可以利用taup_pierce求出不连续界面穿透点的经纬度信息,在obspy中可以利用TauPyModel中的get_pierce_points_geo获取穿透点的经纬度信息,在此记录一下。注意其返回值是Arrival类型数据,可以从Arrival中得到获取到穿透点的震相的名称、走时、深度,穿透点的经纬度等信息。
利用get_pierce_points_geo获取穿透点信息后在通过Arrival索引并利用pandas获取经纬度信息。
其他信息可以参照obspy官网手册。
import pandas as pd
from obspy.taup import TauPyModel
model = TauPyModel(model='prem')
evdp=20;evlo=0;evla=15 # Event information
stlo=40;stla=40 # Receiver information
# Get information about pierce point
info = model.get_pierce_points_geo(source_depth_in_km=evdp, source_latitude_in_deg=evla, source_longitude_in_deg=evlo, receiver_latitude_in_deg=stla,\
receiver_longitude_in_deg=stlo, phase_list=['PcP'])
# Data type
print('Data type is :\n %s\n' % (info[0].pierce.dtype))
# Data of pierce point
data_info = pd.DataFrame(info[0].pierce)
print('Data information is : \n %s' % data_info)
# Get information of (lon,lat) on Core Mantle Boundary (PcP Phase)
depth_max_value = data_info.depth.max();depth_max_idnex = data_info.depth.idxmax()
lon = data_info.lon[depth_max_idnex]; lat = data_info.lat[depth_max_idnex]
print('\nPierce point information of PcP on CMB is : (%f,%f)' % (lon,lat))
Data type is :
[('p', '