Skip to content

Extract Value from Raster Stack Layer Determined by Different Raster's Pixel Value

6 messages · Robert J. Hijmans, Andrew Vitale

#
Andrew,
I think you can use the stackSelect function for this to shortcut the problem:

# your data
library(raster)
SOST <- raster()
SOST[] <- 1:5
r1 <- r2 <- r3 <- r4 <- r5 <- raster()
r1[] <- 10
r2[] <- 20
r3[] <- 30
r4[] <- 40
r5[] <- 50
GDD <- stack(r1,r2,r3,r4,r5)
#

x <- stackSelect(GDD, SOST)

set.seed(232)
samp <- sampleRandom(SOST, 5, xy = TRUE, na.rm = TRUE)[, -3]
extract(x, samp)

Best, Robert
On Wed, Jul 24, 2013 at 4:02 PM, Andrew Vitale <vitale232 at gmail.com> wrote:
1 day later
#
Andrew,

To avoid looping you could do:

names(SOST) <- 'SOST'
set.seed(232)
n = 5
samp <- sampleRandom(SOST, size = n, xy = TRUE)
e <- extract(GDD, samp[,1:2])[cbind(1:nrow(samp),samp[,3])]
out <- data.frame(samp, 'GDD' = e)
out

Robert
On Fri, Jul 26, 2013 at 2:40 PM, Andrew Vitale <vitale232 at gmail.com> wrote:
3 days later