Um die äußeren Koordinaten zu erhalten, muss ich ein formschönes MultiPolygon in ein Polygon konvertieren. So mach ich es:
if poly.geometry.type == 'Polygon':
x, y = poly.geometry.exterior.xy
elif poly.geometry.type == 'MultiPolygon':
allparts = [p.buffer(0) for p in poly.geometry]
poly.geometry = shapely.ops.cascaded_union(allparts)
x, y = poly.geometry.exterior.xy # here happens the error
Dies ist sehr oft erfolgreich, aber es gibt auch Fälle, in denen das Polygon offensichtlich ein MultiPolygon bleibt, da der folgende Fehler immer noch auftritt:
AttributeError: 'MultiPolygon' object has no attribute 'exterior'
Ich habe jedoch überprüft, dass jeder Teil des MultiPolygons ein Polygon und nicht selbst ein MultiPolygon ist:
>>>>[p.type for p in poly.geometry]
['Polygon', 'Polygon']
Irgendwelche Ideen, warum dies passiert und wie man es behebt?
geometry
in a Polygon
, aber geom_type
?