Could anyone please explain this to me? The polygons all have valid geometry but the resulting multipolygon somehow doesn't. The following script:
from shapely.geometry import Polygon, MultiPolygon
polygon1 = Polygon([(0,0), (1,0), (1,1), (0,1), (0,0)])
polygon2 = Polygon([(1,1), (2,1), (2,2), (1,2), (1,1)])
polygon3 = Polygon([(1,0), (2,0), (2,1), (1,1), (1,0)])
polygon_list = [polygon1,polygon2, polygon3]
mpolygon = MultiPolygon(polygon_list)
for item in polygon_list:
print(item.is_valid)
for item in mpolygon:
print(item.is_valid)
print(mpolygon.is_valid)
returns the following:
True
True
True
True
True
True
False
I believe this is causing me problems as I need to intersect a multilinestring with a multipolygon, and the intersection method requires for all the polygon geometries to be valid.
Why are the individual polygons valid while the full multipolygon is not?
item.buffer(0).is_valid