2017-02-09 56 views
1

分配「ID級別」我已經在R中的下列光柵提取「名稱值」:從光柵而不是由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 

我相信我缺少一些基本的命令,但我想不出它出來了,有什麼想法?先謝謝你!

回答

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