我正在尝试使用QHull的SciPy包装器来获取一组点的凸包体积.
根据QHull的文档,我应该通过"FA"选项来获得总表面积和体积.
这就是我得到的......我做错了什么?
> pts
[(494.0, 95.0, 0.0), (494.0, 95.0, 1.0) ... (494.0, 100.0, 4.0), (494.0, 100.0, 5.0)]
> hull = spatial.ConvexHull(pts, qhull_options="FA")
> dir(hull)
['__class__', '__del__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_qhull', '_update', 'add_points', 'close', 'coplanar', 'equations', 'max_bound', 'min_bound', 'ndim', 'neighbors', 'npoints', 'nsimplex', 'points', 'simplices']
> dir(hull._qhull)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', …Run Code Online (Sandbox Code Playgroud) 我有一个大的网格数据点网格,我是从模拟中产生的,并且与xy平面中的每个点相关联的是az值(模拟的结果).
我将x,y,z值转储到纯文本文件中,我想要做的是测量xy平面(即z = 0)和数据点定义的"平面"之间的体积.数据点目前不是均匀间隔的,尽管它们应该在模拟完成后运行.
我一直在查看scipy文档,我不确定scipy.integrate是否提供了我需要的功能 - 似乎只有能够在2d中执行此操作,而不是我需要的3d.
首先,除非必要,我可以不进行插值,纯粹基于"梯形法则"或类似近似的积分是一个很好的基础.
任何帮助表示赞赏.
谢谢
编辑:下面描述的解决方案都运行良好.在我的情况下,事实证明使用样条曲线可以在平面中的尖锐最大值周围引起"涟漪",因此Delaunay方法效果更好,但我建议人们检查两者.