我试图在一对空间启用的数据框架之间做一些简单的叠加。这些层来自功能服务,使用查询(…as_df = True).
当我尝试覆盖,我得到以下消息,或类似的东西:
TopologyException:输入geom1无效:孔位于外壳外或靠近点处
在很多情况下,这完全是无稽之谈,因为所讨论的几何结构没有洞。它甚至不是多部分的!
稍微挖掘一下就会发现,这是右手定则的问题,多边形中顶点的顺序导致了这种行为。问题是,我找不到任何方法在多边形上“反转方向”,除了可能分开SHAPE列和反转顶点数组。
在我做这些麻烦之前,我想看看是否有人遇到过这种情况。有什么建议吗?
编辑:我在一个自定义的python环境,所以我的sdf来作为形状几何。Arcpy能够处理这个问题,但如果可能的话,我希望只使用ArcGIS Python API来保持这个过程的可用性。生成的脚本可以在不同的设置下由不同的用户运行,并不是所有用户都能够使用arcpy。
如果python api没有内置的方法来自动做到这一点,我会感到惊讶,因为必须使用“orient”来改变多边形顶点的顺序似乎是可行的。
也许其他的空间表现形式在幕后进行了重新定位
pyqgis -将QGIS几何形状转换为形状几何形状,以使用在形状- Geogr中定义的定向方法。
哈,不,我只是说polygon子模块和polygon几何对象在字面上是不相等的,也就是说,不同的东西。(我可能应该在我的叙述文本中去掉代码约定)。
的东方method以多边形作为参数,所以它是
shapely.geometry.polygon。东方(Polygon(some WKT or something))
我希望我可以简单地调用一个多边形对象上的定向,Polygon.orient (),但没有这样的运气。绝对不会将实际的形状与其他任何东西进行比较。