我有一个代码可以根据纬度、经度和海拔数据创建 3d 地形表面。
我正在使用ax.plot_surface,它创建了一个看起来像这样的地形表面:
有没有更好的方法来平滑网格所做的插值?
my_data 按 [lat,lon,elev] 大小(912,3)排序
下面的代码
import os
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
fig = 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) …Run Code Online (Sandbox Code Playgroud)