Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os, sys
- from osgeo import ogr,gdal
- def multipoly2poly(in_lyr, out_lyr):
- for in_feat in in_lyr:
- geom = in_feat.GetGeometryRef()
- if geom.GetGeometryName() == 'MULTIPOLYGON':
- for geom_part in geom:
- addPolygon(geom_part.ExportToWkb(), out_lyr)
- else:
- addPolygon(geom.ExportToWkb(), out_lyr)
- def addPolygon(simplePolygon, out_lyr):
- featureDefn = out_lyr.GetLayerDefn()
- polygon = ogr.CreateGeometryFromWkb(simplePolygon)
- out_feat = ogr.Feature(featureDefn)
- out_feat.SetGeometry(polygon)
- out_lyr.CreateFeature(out_feat)
- print 'Polygon added.'
- gdal.UseExceptions()
- driver = ogr.GetDriverByName('ESRI Shapefile')
- in_ds = driver.Open('poly.shp', 0)
- in_lyr = in_ds.GetLayer()
- outputshp = 'polys.shp'
- if os.path.exists(outputshp):
- driver.DeleteDataSource(outputshp)
- out_ds = driver.CreateDataSource(outputshp)
- out_lyr = out_ds.CreateLayer('polys', geom_type=ogr.wkbPolygon)
- multipoly2poly(in_lyr, out_lyr)
Add Comment
Please, Sign In to add comment