[GRASS-dev] [GRASS GIS] #2512: r.out.gdal wrongly messes with SetColorInterpretation

GRASS GIS trac at osgeo.org
Fri Dec 19 14:09:47 PST 2014


#2512: r.out.gdal wrongly messes with SetColorInterpretation
------------------------+---------------------------------------------------
 Reporter:  rouault     |       Owner:  grass-dev@…              
     Type:  defect      |      Status:  new                      
 Priority:  normal      |   Milestone:  6.4.5                    
Component:  Raster      |     Version:  svn-trunk                
 Keywords:  r.out.gdal  |    Platform:  All                      
      Cpu:  All         |  
------------------------+---------------------------------------------------
 r.out.gdal export_band.c currently contains

 {{{
     CPLPushErrorHandler(CPLQuietErrorHandler);
     GDALSetRasterColorInterpretation(hBand, GPI_RGB);
     CPLPopErrorHandler();
 }}}

 This is a wrong usage of the GDAL API. GDALSetRasterColorInterpretation()
 expects an enumerated value from the GDALColorInterp enumeration, whereas
 GPI_RGB is a value from the GDALPaletteInterp enumeration. Consequently,
 due to the fact that GPI_RGB = 1 and GCI_GrayIndex=1, the above snippet
 will effectively force the color interpreation to be Gray level.

 On GeoTIFF this was without effect before GDAL 1.11, since in those
 versions, SetColorInterpration() in the GeoTIFF driver has no effect. But
 in GDAL 1.11, the SetColorInterpration() in the GeoTIFF driver can modify
 the default PHOTOMETRIC TIFF tag. For example, for a 3 band GeoTIFF file,
 at creation time, the GeoTIFF driver defaults to PHOTOMETRIC=RGB, but if
 later, SetRasterColorInterpretation(GCI_GrayIndex) is called, it will undo
 that setting to fallback to PHOTOMETRIC=MINISBLACK.

 All in all, I suggest just to remove those 3 lines. The
 CPLPushErrorHandler(CPLQuietErrorHandler) / CPLPopErrorHandler()
 surrounding is a hint that this call is wrong.

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/2512>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list