Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. import rasterio, fiona
  2. from rasterio import features
  3.  
  4. uidfield = #whatever field contains unique values for extraction
  5. infile = #input shapefile
  6. inraster = #input raster
  7.  
  8. with rasterio.open(inraster, 'r') as src:
  9. rasArr = src.read_band(band_no)
  10. oshape = src.shape
  11. otrans = src.transform
  12.  
  13.  
  14. with fiona.open(infile, 'r') as shp:
  15. fields = list(set(feat['properties'][uidfield] for feat in shp))
  16. sampleRaster = features.rasterize(
  17. ((feat['geometry'], feat['properties'][uidfield]) for feat in shp),
  18. out_shape=oshape,
  19. transform=otrans)
  20.  
  21. #list of unique values
  22. values = list(np.mean(rasArr[np.where(sampleRaster == i)]) for i in fields)
  23.  
  24. print values
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement