如何从R中的栅格中提取值

时间:2017-07-06 14:17:47

标签: r extract raster

我想使用R从栅格中提取值。基本上,我的栅格的值为0-6,我想为每个像素提取相应的值。所以我最后有一个包含这两个变量的数据表。

感谢您的帮助,我希望我的解释足够。

3 个答案:

答案 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