查找由不规则数据点定义的体积 - python

Pet*_*r Q 4 python numpy scipy

我试图使用 python 找到给定一组数据点 (x,y,z) 的体积。这些数据点是从实验中收集的样本(因此绘制的表面可能非常不规则)。我已经弄清楚了如何创建 3D 绘图,但没有弄清楚如何使用 python 计算体积。

X, Y = np.meshgrid(x, y)
Z = griddata(xpts, ypts, zpts, x, y)
fig = plt.figure()
ax = fig.gca(projection='3d')               
surf = ax.plot_surface(X, Y, Z,           
                       rstride=5,           
                       cstride=5,           
                       cmap=cm.jet,         
                       linewidth=0,         
                       antialiased=True,
                       vmin=np.nanmin(Z),
                       vmax = np.nanmax(Z))
Run Code Online (Sandbox Code Playgroud)

这是一个类似的问题,使用 python 查找不规则表面下的面积, 由数据点定义的“平面”下的体积 - python。这可以用来求体积吗?任何帮助表示赞赏。谢谢。

Sté*_*ane 6

我会偷懒,像黑盒子一样使用 ConvexHull:

import scipy.spatial as ss
import numpy as np
npoints = 6
ndimensions = 3
points = np.random.rand(npoints, ndimensions)
hull = ss.ConvexHull(points)
print('volume inside points is: ',hull.volume)
Run Code Online (Sandbox Code Playgroud)

尽管这可能不是 CPU 优化的,因为 ConvexHull 计算了很多东西。

希望这可以帮助。