Pysal无法识别某些多边形邻居

时间:2017-08-18 13:46:02

标签: python polygons pysal

我正在使用Pysal工具分析几个包含QGIS中完成的分段结果的shapefile(类型多边形)。

我使用

加载shapefile

segshp = pysal.weights.Queen.from_shapefile(vect)

是vect相应shapefile的名称。

问题在于,当我查看邻居字典时,如果多边形共享小于2个像素,则不会将其视为邻居。让我表现得更好一点:

使用ArcGIS,我计算多边形邻域(分析工具 - > Proximity --->多边形邻居),例如,多边形1227有4个邻居,如图所示。

Neighbors calculated with ArcGIS

但是当使用Pysal在Python中加载时,多边形1227只有3个邻居,缺少的是3307,它只共享2像素边框。与仅共享1或2个像素的其他多边形也是如此。这个2像素的“阈值”正是我所看到的分析一些多边形。

Neighbors calculated with Pysal

为了考虑所有邻居,有没有改变那个“门槛”?我在Pysal文档中看到过,并认为它可能与命令

有关

pysal.weights.user.min_threshold_dist_from_shapefile

或类似的东西,老实说我不知道​​。

我也尝试过使用pysal.weights.Rook ...选项,但它可识别较少的邻居并找到更多岛屿。

非常感谢

2 个答案:

答案 0 :(得分:1)

谢谢@Charles。

确实这似乎是个问题。检查顶点,尽管多边形1227和3307共享一个公共边框,但它们不会共享任何顶点。一旦我手动编辑它们并修正了新顶点的共距离中的一个小差异,Pysal工具就会将它们识别为邻居。检查shapefile的几何图形不会在Arcgis或QGIS中生成任何无效的几何图形。

我试图找到一种方法来创造"缺失"在这些情况下的顶点,所以我可以修复" Pysal线之前的几何形状(欢迎任何关于此事的想法)。

无论如何,就目前而言,尊重原始问题,这个问题已经解决了。

答案 1 :(得分:0)

即使在当前最新版本中,Pysal也无法处理某些情况,例如像这样的常见MultiPoints:

enter image description here

使用凸面船体可能不是效率的最佳选择,但是我需要更多的正确性...