Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Wed 15 November 2023 07:36

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

GDAL Python et ColorTable

Bonjour,

Avec GDAL sous Python, je crée un raster geotiff à partir de plusieurs dalles raster en passant par les raster virtuel (ff contient la liste des dalles initiales, geotiff le chemin du raster final).

Code:

vrt_options = gdal.BuildVRTOptions(resampleAlg='cubic', addAlpha=True, outputSRS="EPSG:2154")
vrt = gdal.BuildVRT('my.vrt', ff, options=vrt_options)
gdal.Translate(geotiff, vrt)

ça ça marche, mais je voudrais ajouter une colortable prédéfinie dans le raster final. j'ai essayé ce code :

Code:

stats = vrt.GetRasterBand(1).GetStatistics(True, True)
min = round(stats[0])
max = round(stats[1])

colors = gdal.ColorTable()
colors.CreateColorRamp(min, (94, 79, 162), max, (50, 136, 189))

vrt.GetRasterBand(1).SetRasterColorTable(colors)
vrt.GetRasterBand(1).SetRasterColorInterpretation(gdal.GCI_PaletteIndex)
gdal.Translate(geotiff, vrt)

Mais il me renvoie un message d'erreur:

Code:

ERROR 1: ./tmp/monfichier.tif: Unable to export color table to GeoTIFF file. Color tables can only be written to 1 band or 2 bands Byte or UInt16 GeoTIFF files.

Or mes données sont en Float32, ce sont des altitudes

J'ai bien essayé d'ajouter des options, mais ça ne change rien:

Code:

        options_string = " ".join(
            [
                "-b 1",
                "-ot Byte",
                "-expand rgb",
            ]
        )

        gdal.Translate(geotiff, vrt, options=options_string)

Comment faire pour gérer des données en Float32?

Merci,
Nico

Hors ligne

 

Pied de page des forums

Powered by FluxBB