使用matplotlib从地形数据创建平滑的曲面图

使用matplotlib从地形数据创建平滑的曲面图,第1张

概述我有一个代码,可以从lat,lon和elev数据创建一个3d地形表面. 我正在使用ax.plot_surface,它创建一个如下所示的地形表面: 我想平滑数据以创建一个看起来更像这样的图片: 有没有更好的方法来平滑网格所做的插值? my_data按[lat,lon,elev]大小排序(912,3) 代码如下 import osimport numpy as npfrom mpl_toolkit 我有一个代码,可以从lat,lon和elev数据创建一个3d地形表面.

我正在使用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从地形数据创建平滑的曲面图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1196004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存