J'ai 3 fichiers GeoTIFF 1 bande distincts. L'interprétation des couleurs pour la bande est grise. Je veux un fichier RVB 3 bandes. J'ai utilisé gdal_merge.py
gdal_merge.py -separate file1.tif file2.tif file3.tif -o output_file.tif
Mais l'interprétation des couleurs pour les 3 bandes du fichier output_file.tif résultant est grise, indéfinie, indéfinie. En dehors de cela, tous les pixels sont à 0 .
Si j'exécute pct2rgb.py, j'obtiens un fichier RGB:
pct2rgb.py output_file.tif output_file_rgb.tif
Mais bien sûr, les pixels sont également à 0. Donc, j'ai 3 questions:
- Gdal_merge.py est-il le bon outil pour combiner 3 fichiers 1 bande en un seul fichier RVB 3 bandes?
- Pourquoi ai-je une interprétation des couleurs indéfinie pour les bandes?
- Pct2rgb est-il le bon outil pour transformer des fichiers 3 bandes avec cette interprétation des couleurs en fichiers RVB?
MISE À JOUR : Les rasters n'ont pas de table de couleurs. Juste interprétation des couleurs: gris.
D'autre part, les valeurs des pixels vont de 0 à 1023 (c'est délibéré)
Plus de données: ce sont des rasters en rotation (pas vers le nord), mais tous ont la même géotransformation.
MISE À JOUR 2 : Je peux déformer les images pour les faire remonter vers le nord, construire un VRT et ajouter ColorInterp pour chaque bande, mais j'obtiens toujours une interprétation des couleurs comme grise, indéfinie, indéfinie dans le résultat de sortie.
Le problème est que je dois créer une table des couleurs dans, au moins, la première bande. Je sais comment les créer , mais je ne sais pas combien d'entrées ma table doit contenir. Pourquoi y a-t-il 13 entrées dans l'exemple de FAQ GDAL Raster? Tous les pixels ont des valeurs comprises entre 0 et 1023, si cela aide.
MISE À JOUR 3 : Apparemment, il n'y a aucun moyen dans le format TIFF de vraiment spécifier l'interprétation des couleurs de chaque bande. La façon dont GDAL construit l'interprétation des couleurs lors de la lecture d'un fichier TIFF est une combinaison de la valeur des balises PHOTOMETRIC et EXTRASAMPLES .
Lire sur ces balises:
PHOTOMÉTRIQUE représente l'espace colorimétrique des données d'image. Une valeur de 2 signifie que les composants d'une valeur de pixel sont RVB, mais cela suppose des pixels d'octet et j'ai des pixels UInt16 (j'ai essayé
-co "PHOTOMETRIC=rgb"
et obtenu une erreur). Donc, je ne peux pas spécifier de balise PHOTOMETRIC pour le fichier de sortie.EXTRASAMPLES spécifie que chaque pixel a N composants supplémentaires. Je ne sais pas comment utiliser cette balise pour créer mon fichier fusionné. Ou si j'en ai besoin.
Donc, dans la mise à jour 2, je suggère la création d'un ColorTable, mais comment? Dans mes 3 fichiers d'entrée, les valeurs des pixels vont de 0 à 1023. Dois-je les faire correspondre avec des couleurs? Dois-je créer un ColorTable avec 1024 entrées? Comment?
Dans la mise à jour 3, il semble que je pourrais utiliser certaines balises GeoTIFF lors de la création du fichier fusionné, mais je ne sais pas si je peux vraiment les utiliser, ni comment.
la source
Réponses:
gdal_merge.py est l'outil approprié pour «empiler» vos images d'entrée.
En supposant que votre premier groupe possède une table de couleurs valide, vous pouvez utiliser:
gdal_merge.py -separate -pct -o output_file.tif file1.tif file2.tif file3.tif
Remarque: La commande a été reformatée avec
-o output_file.tif
avant la liste des entrées.De la documentation:
Je testerais votre sortie avec
gdalinfo -stats
pour m'assurer qu'elle est correctement empilée.Mis à jour pour OP
Dans la liste osgeo , il semble que vous puissiez essayer un autre format pour vérifier les résultats:
-Evan (l'affiche) connaît GDAL à l'intérieur comme à l'extérieur.
la source
La première façon dont je peux penser est de construire un vrt, d'éditer et de traduire:
ajoutez la balise interp couleur si nécessaire:
et alors:
la source
Votre bande d'entrée en niveaux de gris a des valeurs de 0 à 1024, mais RVB n'autorise que des valeurs de 0 à 255 pour chaque bande.
Vous pouvez utiliser
gdal_translate -scale [src_min src_max [dst_min dst_max]]
pour redimensionner votre fichier source.Dans un deuxième temps, vous pouvez empiler vos trois bandes avec gdal_merge.py et appliquer
-co "PHOTOMETRIC=rgb"
.la source