从rasterBrick或rasterStack中提取值时出错

时间:2015-06-11 01:01:43

标签: r r-raster

我无法从类- (id)init:(NSInteger)aSpecialTag { [self setAutoresizesSubviews:NO]; // <- Here is the solution _mTag = aSpecialTag; // … } rasterStack的多波段栅格中提取值或点。 “提取”适用于各个栅格,但在应用于rasterBrickrasterStack时会发错。

brick

这适用于单个栅格但是使用堆栈/块失败并且只有在我使用缓冲区参数时才会引发错误。

1 个答案:

答案 0 :(得分:1)

请花更多时间询问(R)问题。尽可能构建一个工作R示例来说明错误。像这样:

library(raster)
b <- brick(nrow=89, ncol=180, nl=34, xmn=-179, xmx=181, ymn=-89, ymx=89, crs="+proj=longlat +datum=WGS84")
b[] <- 1

p <- matrix(c(166.2790,-10.2690,26.9000,-33.6000,153.6209,-28.7001,113.8333,-28.6833,153.6335,-28.6591,153.5836,-28.4643,32.6833,-27.5333,32.6880,-27.5260,32.6880,-27.5260,32.6880,-27.5260), ncol=2, byrow=TRUE)

v <- extract(b, p, buffer=50000, na.rm=TRUE, fun=mean)

这确实给出了您报告的错误,可能是由于栅格包中的错误。这是一个解决方法:

v <- extract(b, p, buffer=15000000)
# get the mean for each point (buffer) by layer
vv <- lapply(v, function(x) ifelse(is.matrix(x), colMeans(x, na.rm=TRUE), x))
# combine
do.call(rbind, vv)