我想使用R从栅格中提取值。基本上,我的栅格的值为0-6,我想为每个像素提取相应的值。所以我最后有一个包含这两个变量的数据表。
感谢您的帮助,我希望我的解释足够。
答案 0 :(得分:1)
示例数据
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
答案 1 :(得分:0)
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)
,您将获得包含每个单元格值的数据框。
答案 2 :(得分:0)
简单地做怎么样
as.data.frame(s, xy=TRUE) # s is your raster file