Necesita ratify
su trama y darle algunos atributos, a continuación, escribir en formato GTiff. Se escribirá tanto un archivo .tif como un archivo .tif.aux.xml, y ArcGIS puede utilizar este último para derivar la simbología (lamentablemente, QGIS no...). Ejemplo:
library(raster)
set.seed(1)
r <- raster(matrix(sample(c(1, 7:9, 19), 100, replace=TRUE), 10))
r <- ratify(r)
levels(r)[[1]]$NAME <- letters[1:nrow(levels(r)[[1]])]
# check results with levels(r)[[1]]
writeRaster(r, 'C:/DATA/r.tif')
Tenga en cuenta que no tiene mucho sentido hacer esto con datos continuos, esas superficies deben reclasificarse primero.
Si desea un .dbf RAT que Arc recogerá automáticamente, esto funcionará:
# datatype must be integer and raster must be single band
writeRaster(r, 'C:/DATA/r_2.tif', datatype = 'INT2S')
library(tidyverse)
as.data.frame(table(as.vector(r)),
stringsAsFactors = FALSE) %>%
rename(VALUE = Var1, COUNT = Freq) %>%
# you can add some more cols here,
# just keep nchar() < 254 and colnames < 8 chars:
mutate(VALUE = as.integer(VALUE)) %>%
foreign::write.dbf(., 'C:/DATA/r_2.tif.vat.dbf',
factor2char = TRUE, max_nchar = 254)