从一个shapefile开始给我区(非凸)多边形(可能有洞),如果我只对它们的区域感兴趣,我可以选择将多边形视为平面和使用rgeos::gArea
(关注方向btw)或(更好!)考虑地球的曲率并与geosphere::areaPolygon()
一起(不关心方向并以适当的单位给出答案) )。
现在,我想要整合更复杂的功能,而不是常量的1功能(它给我区域)。例如有polyCub::polyCub.midpoint
表示平面情况。是否还考虑了曲率?
一些想法:
rgl::triangulate
(或者甚至更好,因为前者给了我segfaults RTriangle::triangulate
)将多边形切割成三角形。geosphere::randomCoordinates
沿着那个方向前进,除了(1)它假设一个球形地球和(2)一个人需要能够将输出至少限制在前面的多边形的边界矩形,否则一个人有丢弃太多的积分。关于如何在椭球here上进行均匀采样的想法,但我发现mathematica代码很难理解。 更新:我现在推出了自己的解决方案。步骤:1。使用RTriangle::triangulate
进行三角测量。 2.评估通过geosphere::centroid
(简单高斯求积法)计算的每个质心的函数。 3.与通过geosphere::areaPolygon
计算的面积相乘。总而言之。