我在R中有以下栅格:
> veg
class : RasterLayer
dimensions : 22142, 18123, 401279466 (nrow, ncol, ncell)
resolution : 28.5, 28.5 (x, y)
extent : 329232, 845737.5, 8487420, 9118467 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=20 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
data source : C:\Users\Desktop\RO SICAR\ibge_raster
names : ibge_raster
values : 1, 39 (min, max)
attributes :
ID COUNT NM_UVEG
from: 1 953 Contato Savana / Floresta Estacional
to : 39 57506 Savana Parque sem floresta-de-galeria
我对光栅包不是很熟悉,但我试图得到与R分配给这些名称的因子水平(“ID”)相关的名称列表(“NM_VEG”)。我试过了:
unique(values(veg))
但是R返回级别“ID”而不是“NM_UVEG”中的名称:
> unique(values(veg))
[1] NA 5 8 4 14 34 2 13 12 28 36 26 11 25 10 16 17 33 38 3
[21] 15 9 23 29 27 32 22 31 37 6 39 35 7 1 20 24 30 19 18 21
我确信我错过了一些基本命令,但我无法弄清楚,有什么想法吗?提前谢谢!
答案 0 :(得分:1)
levels(veg)[[1]]
是您正在寻找的咒语。
为了表明这是有效的,这里(from here)是一些适当的可重复数据......
library(raster)
## Example data
r <- raster(ncol=4, nrow=2)
r[] <- sample(1:4, size=ncell(r), replace=TRUE)
r <- as.factor(r)
## Add a landcover column to the Raster Attribute Table
rat <- levels(r)[[1]]
rat[["landcover"]] <- c("land","ocean/lake", "rivers","water bodies")
levels(r) <- rat
...这里是一个提取data.frame
的调用,它提供与每个级别相关的属性:
levels(r)[[1]]
# ID landcover
# 1 1 land
# 2 2 ocean/lake
# 3 3 rivers
# 4 4 water bodies