python-2.7 – ValueError:No可以从null值创建Shapely几何体

python-2.7 – ValueError:No可以从null值创建Shapely几何体,第1张

概述我在使用cascaded_union时遇到此错误(我也尝试过unary_union,它会产生相同的错误): ValueError: No Shapely geometry can be created from null value 我已经验证我的多边形是有效的.最初polyB无效,但使用buffer(0)将其转换为有效多边形. 对我做错了什么的想法?这是我的代码: from shapely.ge 我在使用cascaded_union时遇到此错误(我也尝试过unary_union,它会产生相同的错误):

ValueError: No Shapely geometry can be created from null value

我已经验证我的多边形是有效的.最初polyB无效,但使用buffer(0)将其转换为有效多边形.

对我做错了什么的想法?这是我的代码:

from shapely.geometry import polygonfrom shapely.ops import cascaded_uniondef combineborders(a,b):    polyA = polygon(a)    polyB = polygon(b)    pols = [polyA,polyB]    for p in pols:        if p.is_valID == False:            p = p.buffer(0)        print(p.is_valID)

True

True

newShape = cascaded_union(pols) # THIS IS WHERE THE ERROR KEEPS SHOWING UP    return newShape

Here is a link到polyA,polyB和pols的值(确认它们有效后).我的Ubuntu 14.04服务器上安装了以下版本:

> python-shapely 1.3.0
> libgeos 3.4.2
> python 2.7

解决方法 问题中的问题是缓冲的多边形没有放回列表pols中,因此无效的几何体被传递给cascaded_union

您可以通过以下方式使这更加简单和通用,可以采用任意数量的多边形几何(不仅仅是两个).

def combineborders(*geoms):    return cascaded_union([        geom if geom.is_valID else geom.buffer(0) for geom in geoms    ])polyC = combineborders(polyA,polyB)
总结

以上是内存溢出为你收集整理的python-2.7 – ValueError:No可以从null值创建Shapely几何体全部内容,希望文章能够帮你解决python-2.7 – ValueError:No可以从null值创建Shapely几何体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1193421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存