Similaire à la question soulevée dans R: Crop GeoTiff Raster using packages "rgdal" and "raster" J'essaie de recadrer une carte de l'Office fédéral de topographie avec les paquets "rgdal" et " raster "tout en préservant la table des couleurs d'origine. Pour un fichier * .tif à bande unique, l'image recadrée perd les informations de la table de couleurs et n'est donc pas affichée correctement (l'image résultante est presque noire).R: Convertir un rasterLayer à une seule bande avec une table de couleurs en un rasterStack RVB 3 bandes
Le fichier d'entrée peut être téléchargé here et doit être extrait dans le dossier "C:/files". Voici le code:
## install.packages("rgdal")
## install.packages("raster")
library("rgdal")
library("raster")
input <- "C:/files/PK25_KOMB_20L_2004_1_1.tif"
output <- "C:/files/cropped.tif"
r <- raster(input)
ex <- extent(c(600500, 601500, 196500, 197500))
cropped <- crop(r, ex)
writeRaster(cropped, output, format="GTiff", datatype='INT1U', overwrite=TRUE)
La solution présentée dans le post dont nous avons parlé seulement travaillé pour un * .tif 3 bandes, mais pas pour une 1 bande * .tif (tels que le fichier exemple).
Une solution qui devrait fonctionner est de convertir le rasterLayer simple bande qui inclut une table de couleurs dans un rasterStack RVB à 3 bandes (comme indiqué dans un commentaire dans le post précédemment mentionné) qui conserve apparemment la table de couleurs.
Cependant, je ne sais pas comment convertir une bande * .tif simple en une bande raster RGB à 3 bandes tout en préservant la table de couleurs. Est-ce que quelqu'un sait comment cette conversion peut être faite ou quelqu'un a-t-il une meilleure idée pour résoudre le problème?