I want writeRaster to write the RAT (raster attribute table) that I created in R.
I am running R 3.0.1, raster 2.1-49 and rgdal 0.8-10.
My input raster view looks like this:
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)
Then I create an attribute table:
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
The result is raster with attributes:
r
Then I try to write my raster file along with my RAT:
ratRaster <- "F:/testRat.img" writeRaster(r, filename=ratRaster, datatype="INT1U", RAT=TRUE, progress="window", overwrite=TRUE)
But when I read it back to R, it becomes obvious that the attributes were not saved:
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)
It would be quick and amazing to create a RAT in R. How can I create and export a raster file and save the RAT?