数据点定义的“平面”下的体积-python

数据点定义的“平面”下的体积-python,第1张

据点定义的“平面”下的体积-python

如果要严格遵守梯形法则,可以执行以下 *** 作:

import numpy as npimport scipy.spatialdef main():    xyz = np.random.random((100, 3))    area_underneath = trapezoidal_area(xyz)    print area_underneathdef trapezoidal_area(xyz):    """Calculate volume under a surface defined by irregularly spaced points    using delaunay triangulation. "x,y,z" is a <numpoints x 3> shaped ndarray."""    d = scipy.spatial.Delaunay(xyz[:,:2])    tri = xyz[d.vertices]    a = tri[:,0,:2] - tri[:,1,:2]    b = tri[:,0,:2] - tri[:,2,:2]    proj_area = np.cross(a, b).sum(axis=-1)    zavg = tri[:,:,2].sum(axis=1)    vol = zavg * np.abs(proj_area) / 6.0    return vol.sum()main()

样条曲线或线性(梯形)插值是否更合适,在很大程度上取决于您的问题。



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

原文地址: http://outofmemory.cn/zaji/5668131.html

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

发表评论

登录后才能评论

评论列表(0条)

保存