[Geoserver-users] Invalid Gdal/Geoserver GeoTiff interpretations

Hi all,

I am having some issues with GeoTiff when using some cell types:

My tests consists of a map for each cell type, the top half of the map with Min value, and bottom half with Max value.
So i found some issues:
1 ) Type: Unsigned 32 Bit Integer
Error: The value 4294967295 is interpreted as -1.

2 ) Type: Signed 16 Bit Integer
Error : The value -32768 cant be styled using colormap.
3 ) Type: Signed 32 Bit Integer
Error : The value -2147483648 cant be styled using colormap.

I need to know if there is a solution to this issues, and/or if there is a way to force the GeoTiff format be read using Gdal?

More information about these tests:

1 ) Unsigned 32 Bit Integer : ( 0 and 4.294967295E9 )

Failed, the geoserver interprets 4.294967295 as -1.
So, at the color map must use -1 instead of 4294967295, ( wrong )

Gdal Info:

Band 1 Block=500x4 Type=UInt32, ColorInterp=Gray
Description = layer_0
Min=0.000 Max=4294967295.000
Minimum=0.000, Maximum=4294967295.000, Mean=2156073582.090, StdDev=2147466467.
562
NoData Value=42
Metadata:
STATISTICS_MINIMUM=0
STATISTICS_MAXIMUM=4294967295

2 ) Signed 16 Bit Integer : ( -32768 and 32767 )

This Style:
sld:Rule
sld:RasterSymbolizer
</sld:RasterSymbolizer>
</sld:Rule>

Ok, show both values, blue you cant choose the colors. ( Inspecting cell value, the right values are shown ).

But this Style:
sld:Rule

sld:RasterSymbolizer
sld:ChannelSelection
sld:GrayChannel
sld:SourceChannelName1</sld:SourceChannelName>
</sld:GrayChannel>
</sld:ChannelSelection>
<sld:ColorMap type=“values”>
<sld:ColorMapEntry color=“#0000FF” opacity=“1” quantity=“-32768” label=“-32768”/>
<sld:ColorMapEntry color=“#FF0100” opacity=“1” quantity=“32767” label=“32767”/>
</sld:ColorMap>
</sld:RasterSymbolizer>
</sld:Rule>
Fail, only the value 32767 is shown, the other value “-32768” is ignored.

Gdal info:

Band 1 Block=500x8 Type=Int16, ColorInterp=Gray
Description = layer_0
Minimum=-32768.000, Maximum=32767.000, Mean=130.570, StdDev=32767.238
NoData Value=42
Metadata:
STATISTICS_MINIMUM=-32768
STATISTICS_MAXIMUM=32767

3 ) Signed 32 Bit Integer : ( -2.147483648E9 and 2.147483647E9 )

Exacly as in Signed 16 Bit Integer only when i remove the ColorMap the values are shown.

Gdal info:

Band 1 Block=500x4 Type=Int32, ColorInterp=Gray
Description = layer_0
Minimum=-2147483648.000, Maximum=2147483647.000, Mean=8589934.090, StdDev=2147
466467.562
NoData Value=42
Metadata:
STATISTICS_MINIMUM=-2147483648
STATISTICS_MAXIMUM=2147483647