计算多边形的圆度/紧密度?


13

我正在尝试找到定量描述各种多边形形状的方法。在我的项目中,这些多边形代表湖泊,河流,泻湖和公园。因此,它们几乎可以是任何形状。一种简单的度量标准是计算周长与面积的关系,这充其量只是一种稍微有用的度量标准。但是我也非常想能够谈谈多边形的“圆度”。或在地图上如何“压缩”形状。

我可以想到的唯一简便方法是计算每个多边形相对于该多边形(我已经拥有)的边界框的面积。但这似乎是一个糟糕的解决方案。

所以现在我正在考虑这样的事情-以多边形的质心为基础,添加一系列面积增加的缓冲区(例如50%,100%,150%),然后比较每个缓冲区与原始多边形。一个完美的圆在100%处将具有完美的重叠,我可以使用50%和150%的缓冲区来判断每个多边形的差异程度和方式。

但是,即使那样感觉也很麻烦,而且对于其他人可能已经发现更好的解决方案,它就像一个糟糕的解决方法。

作为参考,我至少需要能够查看所得的各种多边形形状的索引,并能够对其来源进行有根据的猜测(河流?树突状水库?湖/泻湖?公园? ?)


2
一定要查看Roundness Wikipedia文章,以对该主题进行更深入的思考。为什么不只是在质心周围创建与多边形完全相同的缓冲区,然后测量缓冲区外部的面积以创建某种类型的分数?您是要获取该数据集中的对象之间的相对圆度,还是需要绝对圆度,以便可以将其与该数据集之外的其他多边形进行比较?
Taylor H.

感谢您的回应,这绝对有帮助。我的挑战之一是仅比较面积是不够的-椭圆形的椭圆度可能与使用该索引的树突形状具有相同的“圆度指数”。也许将此圆度指数与周长/面积关系结合使用也可以捕获这些差异,我之前没有进行过此类分析,因此我需要考虑一下。最后,我只需要比较一个数据集中的形状,但是它相当大(多边形数为1000)
user25201 2014年

是的,但是您可以使用面积与周长度量标准过滤这些结果,以至少对形状进行简单分类。树状形状具有相对较低的面积周长比(完美的圆的比例为1,方形的比例为0.5,依此类推),这绝对不是一个容易的问题!您将不得不使用我想象的多个指标才能获得可靠的“圆度得分”。
Taylor H.

感谢您的输入-从现在开始,我认为我必须尝试这些索引并查看可以管理的结果。然后,如果需要的话,也许我可以带一个更明智的问题寻求进一步的帮助。感谢您的宝贵时间!
user25201 2014年

请记住,内部环(孔)和多个零件将使面积与周长的比较无效。您可以仅使用外圈来生成度量标准,但是各个部分的权重值可能是一个挑战。
文斯2014年

Answers:


18

可以使用Polsby-Popper测试通过确定Polsby-Popper(PP)分数来测量对象的紧密度。PP得分是通过将多边形的面积乘以4pi并除以周长平方来确定的。使用此功能,圆的得分为1,其他任何几何形状的比例都较小。

光盘:(4 * PI)* PI *R²/4PI²R²= 1

平方:(4 * PI)*C²/ 16 *C²= PI / 4〜= 0.78

另一个有用的索引可能是最小封闭矩形的长度/宽度(请参见最小边界几何工具)。但是在这种情况下,正方形和圆形是相似的,并且凹度被忽略。

作为最后的建议,如果您使用周长,则在计算索引之前“平滑”对象很有用,以避免“分形”效应(尤其是如果多边形是从栅格到多边形的转换)


这会有所帮助,谢谢。我的多边形不是来自栅格,但这是我什至没有考虑过的一个极好点!我一定会的。
user25201 2014年

公式的来源?
Taylor H.

抱歉,我不记得了:-〜。可能在有关景观生态学的论文中。我很久以前第一次使用它,并且为了更方便起见添加了“规范化”。
radouxju 2014年

3
@Taylor这是“紧凑”的许多可能特征之一。典型的方法是将特征的面积与曲折度或空间范围进行比较。后者的度量不仅可以包括周长,还可以包括边界特征的直径和大小(例如最小区域边界框,最小区域边界椭圆和外接圆)。更多奇异的将包括各种缓冲区的面积和估计的分形维数。在大多数情况下,挑战不在于计算这些度量,而是在于确定与应用最相关的度量。
ub

4

我遇到了类似的问题,最终解决了圆周和圆周面积的方程,使它们彼此相等,如下所示:

2 * pi * r = c <=> r = c / 2 * pi pi * r ^ 2 = a <=> r = sqrt(a / pi)

c / 2 * pi = sqrt(a / pi)<=>

sqrt(a / pi)

-------------- = 1

c / 2 * pi

该索引介于0和1之间,其中1是一个完美的圆。我不知道这是一种既定的方法,但是我很想听听其他人是否曾听过它。


从零开始的良好发展。这是我在博文中提到的Polby-Popper的基本原理,只是您采用了平方根。基本上,如果您将其平方根(或不平方根),它都不会改变排名
radouxju

3

除了radouxju在其响应中概述的圆度公式以及其他类似多边形的面积与最小边界圆的面积之比外,ST_Area(geom)/(ST_Area(ST_MinimumBoundingCircle(geom)) as rnd_check在PostGIS中:我发现它通常有助于检查顶点中顶点/点的数量。 “可疑”几何- ST_NPoints(geom)在PostGIS中。

我所做的工作与您所描述的不同,但是我发现NPoints过滤器有助于区分属性包(当然实际上可能很长很细)和河流以及其他很长的自然特征。在河边有一个奇特的,细长的土地块,但是异常检查是为什么我们要付大笔钱(HA!)的原因:它们总是有一侧(至少)是直的,且直角占要素长度的很大一部分,这样工作就完成了。

另外,(在我的工作流程中)很少有不能被带上的aspatial标识符,无论如何我都做了很多工作,以便我们分析“ delta”(随时间的变化)因此,如果T = 0处的数据是干净的,并且没有人为T∈[0,t-1]引入“负增强”,则整个状态的增量T=t|t-1可以在半天内完成。

在一个又长又瘦的东西中没有很多点,没有任何一条直线可能是一条河。

具有树枝状形状的水库肯定会挑战该猜测,但是如果整个河流是一个多边形(我们应该很幸运),或者从中找到路径的数量,则很有可能对形状的整个长度进行过滤可能会产生结果。 “窄”端到胖端(分支数)。

湖泊与公园的对比...考虑到我的不胜枚举,我会尝试通过航空/卫星图像来做到这一点:使用陆/水分类器比已知的方法更容易解决问题,而不是尝试识别和提取图片中未知水域的水域。

我还发现这个答案(针对另一个问题)对于区分长形特征非常有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.