从光栅中提取 'name-values' 而不是 R 指定的 'ID levels'
Extracting 'name-values' from raster instead of the 'ID levels' assigned by 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 returns 关卡' "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
我确定我遗漏了一些基本命令,但我想不出来,有什么想法吗?提前致谢!
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
的调用,该 data.frame
给出与每个级别关联的属性:
levels(r)[[1]]
# ID landcover
# 1 1 land
# 2 2 ocean/lake
# 3 3 rivers
# 4 4 water bodies
我在 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 returns 关卡' "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
我确定我遗漏了一些基本命令,但我想不出来,有什么想法吗?提前致谢!
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
的调用,该 data.frame
给出与每个级别关联的属性:
levels(r)[[1]]
# ID landcover
# 1 1 land
# 2 2 ocean/lake
# 3 3 rivers
# 4 4 water bodies