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?