Guest User

Untitled

a guest
Jul 16th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. import os, sys
  2. from osgeo import ogr,gdal
  3.  
  4. def multipoly2poly(in_lyr, out_lyr):
  5. for in_feat in in_lyr:
  6. geom = in_feat.GetGeometryRef()
  7. if geom.GetGeometryName() == 'MULTIPOLYGON':
  8. for geom_part in geom:
  9. addPolygon(geom_part.ExportToWkb(), out_lyr)
  10. else:
  11. addPolygon(geom.ExportToWkb(), out_lyr)
  12.  
  13. def addPolygon(simplePolygon, out_lyr):
  14. featureDefn = out_lyr.GetLayerDefn()
  15. polygon = ogr.CreateGeometryFromWkb(simplePolygon)
  16. out_feat = ogr.Feature(featureDefn)
  17. out_feat.SetGeometry(polygon)
  18. out_lyr.CreateFeature(out_feat)
  19. print 'Polygon added.'
  20.  
  21.  
  22. gdal.UseExceptions()
  23. driver = ogr.GetDriverByName('ESRI Shapefile')
  24. in_ds = driver.Open('poly.shp', 0)
  25. in_lyr = in_ds.GetLayer()
  26. outputshp = 'polys.shp'
  27. if os.path.exists(outputshp):
  28. driver.DeleteDataSource(outputshp)
  29.  
  30. out_ds = driver.CreateDataSource(outputshp)
  31. out_lyr = out_ds.CreateLayer('polys', geom_type=ogr.wkbPolygon)
  32. multipoly2poly(in_lyr, out_lyr)
Add Comment
Please, Sign In to add comment