微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么使用缓冲区时 raster::extract 会返回多个值?

如何解决为什么使用缓冲区时 raster::extract 会返回多个值?

我正在尝试从基于点的栅格中提取值。当我运行此代码

library(raster)

raster::extract(my_raster,my_points,method='simple')

我为每个点获得一个栅格值。但是,当我尝试对缓冲区执行相同操作时

raster::extract(my_raster,method='simple',buffer=250)

每个点我都会得到几个值。我详细阅读了该函数的文档,但我不明白为什么在我的点周围绘制缓冲区时会得到多个栅格值,或者如何避免这种情况。

谢谢。

解决方法

这是浓缩自 ?extract

library(raster)
r <- raster(ncol=36,nrow=18,vals=1:(18*36))
xy <- cbind(-50,seq(-80,80,by=20))

## no function 
extract(r,xy[1:3,],buffer=1000000)
#[[1]]
# [1] 586 587 588 589 590 591 592 593 620 621 622 623 624 625 626 627 628 629 630 631
#[[2]]
#[1] 517 518 552 553 554 555
#[[3]]
#[1] 445 446 481 482

## mean works
extract(r,buffer=1000000,fun=mean)
#[1] 611.1 541.5 463.5

## but "mean" fails
extract(r,fun="mean")
#Error in fun(x) : could not find function "fun"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。