我希望使用
我正在运行R 3.0.1、raster 2.1-49和rgdal 0.8-10。
我的输入栅格数据如下:
这会导致一个带有属性的栅格图像:
我尝试将栅格和其关联的 RAT 一起写入:
writeRaster
函数来写入我在R中构建的栅格属性表(RAT)。我正在运行R 3.0.1、raster 2.1-49和rgdal 0.8-10。
我的输入栅格数据如下:
r <-raster("F:/test.img")
class : RasterLayer
dimensions : 3, 3, 9 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 347325, 347415, 4301655, 4301745 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : F:\test.img
names : test
values : 1, 19 (min, max)
我接着建立属性表:
r <- ratify(r)
rat <- levels(r)[[1]]
rat$Pixel_Values <- c(1, 7, 8, 9, 19)
rat$Class_Names <- c("A", "B", "C", "D", "E")
levels(r) <- rat
这会导致一个带有属性的栅格图像:
raster
。r
# class : RasterLayer
# dimensions : 3, 3, 9 (nrow, ncol, ncell)
# resolution : 30, 30 (x, y)
# extent : 347325, 347415, 4301655, 4301745 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
# data source : F:\test.img
# names : test
# values : 1, 19 (min, max)
# attributes :
# ID Pixel_Values Class_Names
# 1 1 A
# 7 7 B
# 8 8 C
# 9 9 D
# 19 19 E
我尝试将栅格和其关联的 RAT 一起写入:
ratRaster <- "F:/testRat.img"
writeRaster(r, filename=ratRaster, datatype="INT1U", RAT=TRUE, progress="window", overwrite=TRUE)
但是当我将其读回到R中时,很明显属性没有保留:
r2 <- raster(ratRaster)
r2
# class : RasterLayer
# dimensions : 3, 3, 9 (nrow, ncol, ncell)
# resolution : 30, 30 (x, y)
# extent : 347325, 347415, 4301655, 4301745 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
# data source : F:\testRat.img
# names : testRat
# values : 1, 19 (min, max)
在R语言中快速构建和导出光栅数据,同时保留关联的区域属性表(RAT),这将是非常方便且令人惊叹的。您需要如何实现?
library(raster); set.seed(1); r <- raster(matrix(sample(c(1, 7:9, 19), 100, replace=TRUE), 10))
将提供一个可复制的栅格示例。 - jbaums