[gdal-dev] [GRASS-user] r.out.gdal export with color table for
floating-point values
Otto Dassau
dassau at gbd-consult.de
Tue Aug 2 08:06:48 EDT 2011
Am Tue, 2 Aug 2011 12:33:20 +0200
schrieb Markus Metz <markus.metz.giswork at googlemail.com>:
> 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
Hi Markus,
yes, for nice looking visualization r.out.png would be an option, too. I
didn't have that in mind - thanks. But r.out.tiff also changes the colors
when it changes the values from floating to integer so that's not really an
option and I need to come back to some sort of gdaldem workaround.
Regards,
Otto
More information about the gdal-dev
mailing list