首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pysal不认识一些多边形邻居

Pysal不认识一些多边形邻居
EN

Stack Overflow用户
提问于 2017-08-18 13:46:02
回答 2查看 260关注 0票数 2

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

我使用以下方法加载shapefile

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

是vect对应的shapefile的名称。

问题是,当我查看邻居字典时,如果一个多边形共享的像素少于2个像素,它就不被认为是邻居。让我表现得更好一点:

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

用ArcGIS计算邻居

但是在使用Pysal加载Python时,多边形1227只有3个邻居,而缺少的一个是3307,它只共享一个2像素的边框。同样的情况发生在其他只有1或2个像素的多边形上。这两个像素的“阈值”正是我所看到的分析一些多边形。

用Pysal计算的邻居

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

pysal.weights.user.min_threshold_dist_from_shapefile

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

我也试过用pysal.weights.Rook.选项,但它识别更少的邻居和发现更多的岛屿。

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-23 08:04:44

谢谢查尔斯。

事实上,这似乎就是问题所在。检查顶点,虽然多边形1227和3307共享一个公共边界,但它们不共享任何顶点。一旦我手动编辑了它们并纠正了新顶点的坐标点中的一个小差异,Pysal工具就会将它们识别为邻居。在Arcgis或QGIS中,检查shapefile的几何形状不会生成任何无效的几何图形。

我将尝试找到在这些情况下创建“缺失”顶点的方法,这样我就可以在Pysal线之前“修复”几何图形(关于这个问题的任何想法都是受欢迎的)。

无论如何,现在这个问题已经解决了,并且尊重了原来的问题。

票数 1
EN

Stack Overflow用户

发布于 2019-01-02 04:19:16

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

对效率来说,使用convex_hull可能不是最好的,但我需要更多的正确性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45758233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档