Я получаю эту ошибку при использовании cascaded_union
(я также пробовал unary_union
, который выдает ту же ошибку):
ValueError: No Shapely geometry can be created from null value
Я подтвердил, что мои полигоны действительны. Изначально polyB
недействителен, но он преобразуется в допустимый многоугольник с помощью buffer(0)
.
Любая идея о том, что я делаю неправильно? Вот мой код:
from shapely.geometry import Polygon
from shapely.ops import cascaded_union
def 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
Вот ссылка на значения для polyA, polyB и pols (после подтверждения их правильности) . На моем сервере Ubuntu 14.04 установлены следующие версии:
- питон-стройный 1.3.0
- libgeos 3.4.2
- питон 2.7