[R-sig-Geo] extracting and manipulating a RasterStack
lestes at princeton.edu
Tue Aug 9 05:30:01 CEST 2011
The following is slightly different from what you are trying to do,
but should give you an area value for cells of a given value, without
having to stack your rasters:
r <- raster(ncol = 10, nrow = 10)
res(r) <- 10 # Giving it a square grid cell, which remakes raster
into 18 rows & 36 columns
r <- 1:ncell(r)
z <- ((r == 50) | (r == 75)) * 1 # Binary raster
# The following would give you area in hectares for the selected cells,
# assuming that your actual raster is projected in units of meters
# (e.g. UTM, Albers) unlike the dummy raster here
(sum(getValues(z)) * res(r)^2) / 10000
I hope that is somewhat on the mark.
Interestingly, I get the following error when I try to use area:
> t <- area(r)
# Error in b - a : 'b' is missing
On Mon, Aug 8, 2011 at 6:07 PM, Sara Maxwell <smaxwell at ucsc.edu> wrote:
> I have been struggling with something seemingly straightforward for several days now, and am hoping for some assistance.
> I have calculated the area for cells within a raster, and now want to extract the area for specific cells and sum the area of those cells together. I have tried a number of functions such as stackSelect, but think I have had trouble using the proper syntax in my logical statements. I am new to the raster package, however, so this may be my issue.
> For example, if I have data that looks like this:
> r <- raster(ncol=10, nrow=10)
> t <- area(r)
> s <- stack(r, t)
> for all values in first layer of s (equivalent to the raster r) with the values 50 and 75, I want to take the corresponding values in the second layer (equivalent to t), create a new raster (call it 'z') where the remaining cells are given a value of 0 (or NA) and finally sum the values of the z.
> Any suggestions appreciated.
> Thank you,
> [[alternative HTML version deleted]]
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
More information about the R-sig-Geo