read_dna13.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:seis_tools 作者: romaguir 项目源码 文件源码
def read_dna13(plot_3d=False):
   DNAFILE='/home/romaguir/Desktop/DNA13/DNA13/DNA13.4phase'
   f = np.loadtxt(DNAFILE,skiprows=1)

   rad = f[:,0]
   theta = f[:,1]
   phi = f[:,2]
   dvp = f[:,3]
   dvsh = f[:,4]
   dvsv = f[:,5]

   #Determine topology (model is defined on a regular grid)
   radmin = np.min(rad)
   radmax = np.max(rad)
   drad = np.max(np.diff(rad))
   rad_axis = np.arange(radmin,radmax+drad,drad)
   thetamin = np.min(theta) #latitude
   thetamax = np.max(theta)
   dtheta = np.max(np.diff(theta))
   theta_axis = np.arange(thetamin,thetamax+dtheta,dtheta)
   phimin = np.min(phi)
   phimax = np.max(phi)
   dphi = np.max(np.diff(phi))
   phi_axis = np.arange(phimin,phimax+dphi,dphi)

   dvp_array = np.reshape(dvp,(len(rad_axis),len(theta_axis),len(phi_axis)),order='F')
   dvsh_array = np.reshape(dvsh,(len(rad_axis),len(theta_axis),len(phi_axis)),order='F')
   dvsv_array = np.reshape(dvsv,(len(rad_axis),len(theta_axis),len(phi_axis)),order='F')
   #note, order = 'F' means that the inner loop is the first index (i.e., radius loops fastest)

   #plot ?
   if plot_3d:
      dvp_3d = models_3d.model_3d(radmin = radmin,radmax=radmax+drad,drad=drad,
                                  latmin = thetamin, latmax = thetamax, dlat = dtheta,
                                  lonmin = phimin, lonmax = phimax, dlon = dphi)

      dvp_3d.data = dvp_array

   interp_dvp3d = RegularGridInterpolator(points = (rad_axis,theta_axis,phi_axis),
                                          values = dvp_array,
                                          fill_value = 0)
   interp_dvsh3d = RegularGridInterpolator(points = (rad_axis,theta_axis,phi_axis),
                                           values = dvsh_array,
                                           fill_value = 0)
   interp_dvsv3d = RegularGridInterpolator(points = (rad_axis,theta_axis,phi_axis),
                                           values = dvsv_array,
                                           fill_value = 0)

   return interp_dvp3d,interp_dvsh3d,interp_dvsv3d
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号