插值并找到表面上方的高度

问题描述 投票:0回答:1

我有一个 xyz 坐标的 NumPy 数组,除了一个坐标外,所有数组都代表地面。我想对地面进行插值并找到一个点高于表面的高度:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

arr = np.array([[0,0,0,2,2,4,5,5,2],
        [0,3,5,0,5,2,0,5,2],
        [80,70,50,90,40,75,60,46,220]])

x,y,z = arr
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, zdir='z', c= 'red')
plt.show()

我正在寻找这个的术语,而不是解决方案(我不知道要搜索什么)。

python numpy interpolation point-clouds
1个回答
1
投票

由于您的地面数据似乎不在您可以使用的网格上 线性ND插值器。它使用 Delaunay 三角测量并且非常稳健。

我可以推荐的另一个算法是Rbf(径向基函数)

两者都可以在 scipy 中使用并且可以处理 n 维数据。

使用这两者之一对地面进行插值,然后计算与单个值的差异。

© www.soinside.com 2019 - 2024. All rights reserved.