[gdal-dev] [GRASS-user] r.out.gdal export with color table for floating-point values

Markus Metz markus.metz.giswork at googlemail.com
Tue Aug 2 06:33:20 EDT 2011


Otto Dassau:
> Am Mon, 01 Aug 2011 16:24:23 +0200
> schrieb Even Rouault <even.rouault at mines-paris.org>:
>
>> > > Hi,
>> > >
>> > > I have an elevation map in GRASS with a color table that distinguishes
>> > > decimal values based on the srtm color table, see below. I only want to
>> > > have the value 0 in aqua, and all values <> 0 shall reflect land below
>> > > or above sea level.
>> > >
>> > > -10  57 151 105
>> > > -0.000001 57 151 105
>> > > 0 aqua
>> > > 0.000001  57 151 105
>> > > 50   117 194 93
>> > > 100  230 230 128
>> > > 200  202 158 75
>> > >
>> > > When I export the raster with r.out.gdal (nor now I used GeoTiff and
>> > > ERDAS Img) the color table seems to be changed to reflect "only"
>> > > integer values. so all 0 floating point values are displayed as aqua.
>> > >
>> > > Is there a solution for this?
>> > >
>> > > Thanks a lot
>> > >  Otto
>> >
>> > Hi,
>> >
>> > fowarded from grass list, because it is probably better here with some
>> > additional notes:
>> >
>> > I used Float32 as data type for the export to ERDAS Img, so the data a
>> > floating point and there is a color table but the colortable does not
>> > reflect the floating point data.
>> >
>> > Color Table (RGB with 174 entries)
>> >     0: 0,191,191,255
>> >     1: 58,151,105,255
>> >     2: 59,152,105,255
>> >     3: 60,153,105,255
>> >     4: 61,154,105,255
>> >     5: 62,155,104,255
>> >     6: 64,156,104,255
>> >
>> > Is it possible somehow to adjust the colortable after the GRASS export
>> > to get a color table that distinguishes floating point values as it does
>> > in GRASS?
>>
>> Otto,
>>
>> In the GDAL data model, the index of a color table is necessary a
>> (positive) integer. So there's no direct way to translate the GRASS color
>> table of a floating point band into a matching GDAL object.
>>
>> There are several workarounds you could try :
>> * put your color table in a text file that can be used for example by
>> "gdaldem color-relief" . See http://gdal.org/gdaldem.html
>> * build a Raster Attribute Table from the color table and set it to the IMG
>> dataset. But be aware that R.A.T. are rarely exploited by GDAL utilities.
>>
>>
>> Best regards,
>>
>> Even
>
> Thanks a lot Even for your help,
>
> the workaround with gdaldem worked fine for me. I can use the integer output
> for nice looking visualisation in the background and the floating ERDAS Img
> for further processing.
>
> Are there any plans to be able to translate GRASS color tables of a floating
> point band into a matching GDAL object? Would it make sense to write an
> enhancement report to the GDAL bug tracker?
>
AFAIK, color table support depends on the file format and datatype,
nothing that GRASS or GDAL can change. For nice looking visualization,
r.out.tiff or r.out.png would do the job. Otherwise it is probably
safest to export the color rules and supply them as separate text file
together with the exported raster map.

Markus M


More information about the grass-user mailing list