[R-sig-Geo] Elevation histogram for each region

Robert J. Hijmans r.hijmans at gmail.com
Wed May 26 18:44:39 CEST 2010


Clélia,

The optimal solution would depend a bit on your data. If the regions
are not too large, you could loop over the zones

library(raster)
lst = list()
for (i in 1:nzones) {
  p <- rasterToPoints(r, fun=function(x){x==i})
  lst[[i]] = histogram(p[,3])
}

If you also have the zones as polygons you could alternatively look
over the polygons and use  polygonValues in stead of rasterToPoints

Another, more elaborate, option could be to, in your loop, reclassify
the regions raster (1 / 0 ), multiply that with the elevation data;
trim the output raster, make a histogram (set maxpixels to
ncell(raster)) (this may take a long time to finish)

You could also first aggregate the rasters; unless you care much about
the extreme values.

Hope this helps,
Robert


On Wed, May 26, 2010 at 2:08 AM, Clélia Bilodeau
<clelia.bilodeau at gmail.com> wrote:
> Dear list,
>
> I have two rasters, one is a Digital Elevation Model, and the other is
> a region file.
> I am looking for a method that allows me to plot the elevation
> histogram or density for each region.
>
> My first try was to do this with a function and to use "Zonal" from
> the "raster" package, but I have a very large file, so I have this
> error:
> "RasterLayers are too large. You can use fun='sum', 'mean', 'min', or
> 'max', but not a function"
>
> Is there another way to do this?
>
> Thank you.
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>



More information about the R-sig-Geo mailing list