我想使用R从栅格中提取值。基本上,我的栅格的值为0-6,我想为每个像素提取相应的值。所以我最后有一个包含这两个变量的数据表。
谢谢你的帮助,我希望我的解释足够。
x是您尝试从中提取值的raster
对象; y可以是SpatialPoints,SpatialPolygons,SpatialLines,Extent或表示单元格数的向量(请查看?extract
)。您的代码values_raster <- extract(x = values, df=TRUE)
将无法工作,因为您正在使用任何y对象/向量来提供函数。您可以尝试使用栅格的所有单元格编号构建矢量。想象一下,你的栅格有200个细胞。如果您执行values_raster <- extract(x = values,y=seq(1,200,1), df=TRUE)
,您将获得包含每个单元格值的数据框。
示例数据
library(raster)
r <- raster(ncol=5, nrow=5, vals=1:25)
要获得所有价值,你可以做到
values(r)
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#as.matrix(r)
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 2 3 4 5
#[2,] 6 7 8 9 10
#[3,] 11 12 13 14 15
#[4,] 16 17 18 19 20
#[5,] 21 22 23 24 25
另见?getValues
您也可以使用索引
r[2,2]
#7
r[7:8]
#[1] 7 8
有关使用点,线或多边形的更复杂的提取,请参阅?extract