#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