我正在使用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 ...选项,但它可识别较少的邻居并找到更多岛屿。
非常感谢
答案 0 :(得分:1)
谢谢@Charles。
确实这似乎是个问题。检查顶点,尽管多边形1227和3307共享一个公共边框,但它们不会共享任何顶点。一旦我手动编辑它们并修正了新顶点的共距离中的一个小差异,Pysal工具就会将它们识别为邻居。检查shapefile的几何图形不会在Arcgis或QGIS中生成任何无效的几何图形。
我试图找到一种方法来创造"缺失"在这些情况下的顶点,所以我可以修复" Pysal线之前的几何形状(欢迎任何关于此事的想法)。
无论如何,就目前而言,尊重原始问题,这个问题已经解决了。
答案 1 :(得分:0)