我正在使用ax.plot_surface,它创建一个如下所示的地形表面:
我想平滑数据以创建一个看起来更像这样的图片:
有没有更好的方法来平滑网格所做的插值?
my_data按[lat,lon,elev]大小排序(912,3)
代码如下
import osimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltfrom scipy.interpolate import grIDdatafig = plt.figure()ax = Axes3D(fig)my_data = np.genfromtxt('2014_0.01_v3_HDF5.txt',delimiter = ',',skip_header = 1)my_data[my_data==0] = np.nan my_data = my_data[~np.isnan(my_data).any(axis=1)]X = my_data[:,0] Y = my_data[:,1]Z = my_data[:,2]xi = np.linspace(X.min(),X.max(),(len(Z)/3))yi = np.linspace(Y.min(),Y.max(),(len(Z)/3))zi = grIDdata((X,Y),Z,(xi[None,:],yi[:,None]),method='nearest')xig,yig = np.meshgrID(xi,yi)surf = ax.plot_surface(xig,yig,zi,cmap='gist_earth')fig.colorbar(surf,shrink=0.5,aspect=5)ax.set_Title('2014 ATM Data 0.01 Degree Spacing')ax.set_xlabel('Latitude')ax.set_ylabel('Longitude')ax.set_zlabel('Elevation (m)')ax.set_zlim3d(0,8000)解决方法 您可以将插值方法从最近的立方体替换为立方体.它为您提供了更好的表面.
zi = grIDdata((X,method='cubic')总结
以上是内存溢出为你收集整理的使用matplotlib从地形数据创建平滑的曲面图全部内容,希望文章能够帮你解决使用matplotlib从地形数据创建平滑的曲面图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)