Hi there.. We managed to fix the problem so I wanted to respond to my own post 
in case anyone else has similar problems displaying zero values in a raster 
(geotiffs) in a multi layer germap request...

After reading the thread here relating to a similar bug -- 
https://sourceforge.net/p/geoserver/mailman/message/34791663/ -- we, installed 
the JAI-EXT extension.
At first, this altered/reversed the problem.. Instead of zeros being 
interpreted as nodata, it seemed that nodata was now interpreted as zeros.
We then enabled the extension as described here -- 
http://docs.geoserver.org/stable/en/user/webadmin/server/JAI.html .
This activated the JAI/JAIEXT Setup panel available from the left menu item on 
Geoserver.
Then experimenting with moving items over from the JAIEXT Operations to JAI 
Operations panels produced varying results in the output png image. The problem 
was finally resolved when "Scale" was the only item moved over to the JAI 
Operations panel. Then zeros and nodata values were being rendered as expected.
No idea why that works, but it does. Hope this info helps anyone with similar 
problem.
John



Subject: Problem rendering geotiff zero cell values in multilayer getmap 
request url


Hi there list,

I am stumped... I've constructed a GetMap request url (see sample url below) 
that includes multiple layers served from our GeoServer (running version 2.8.0 
on an Amazon Web Server). The map includes a few basemap layers (shapefiles), 
and a raster (geotiff) layer. The geotiffs contain the following 
characteristics:

Data type: GDT_Float32 - Thirty two bit floating point
No Data Value: -3.40282e+38
Number of bands: 1

The result image (png) from this multilayer getmap request displays all layers 
as expected, however, all zero ("0") values from the geotiff layer are 
missing... ?? The same problem occurs when substituting any of the various 
maptype geotiff layers that include zero as a legitimate value, whether it 
contains discrete classes (where raster contains 5 classes 0-4), or continuous 
range of values.

It is important to note that when I remove all of those additional basemap 
layers from the getmap request url, the resulting png image looks normal, with 
the zero values showing up as expected.. The problem occurs ONLY when any 
additional layer is included in the url getmap request.. I have tried several 
layer combinations and layer order with no success.  Also note, when viewing 
the geotiff layer from GeoServer Layer Preview, it appears normal... Also, when 
exporting the geotiff from geoserver and displaying in Qgis, the layer looks 
fine and the zero values are included as expected... As a test, I have 
reclassed the grid to assign those zeros a nother number, and they show up.. 
(but I need to retain the zeros;)

I first suspected this to be an issue with the SLD, but I have tried many 
different modifications to my SLD (colormap types = values, intervals etc) 
without any success. (See one of my current SLDs below). It seems that it is 
treating the zero values as nodata, and rendering them transparent, however if 
I set the sld to display the actual nodata values with an opacity ="1", the 
zero value pixels are still not shown.

I have tried the same url pointing to the same layers, but on an older version 
of geoserver (insltalled on a different local server) and it works perfectly. 
Is it possible this is a bug with GeoServer 2.8.0? Or something else in the SLD?

Here is the SLD used for one particular geotiff layer that includes cell values 
0-4:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
 xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
 xmlns="http://www.opengis.net/sld";
 xmlns:ogc="http://www.opengis.net/ogc";
 xmlns:xlink="http://www.w3.org/1999/xlink";
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <NamedLayer>
    <Name>cffdrs_fdr</Name>
    <UserStyle>
      <Title>cffdrs_fdr</Title>
      <Abstract>fdr colour classes</Abstract>
     <FeatureTypeStyle>
     <Rule>
       <RasterSymbolizer>
        <ColorMap type="intervals">
           <ColorMapEntry color="#FFFFFF" quantity="0" opacity="1"/>
           <ColorMapEntry color="#0000FF" quantity="1"/>
           <ColorMapEntry color="#00E000" quantity="2"/>
           <ColorMapEntry color="#FFFF00" quantity="3"/>
           <ColorMapEntry color="#E0A000" quantity="4"/>
           <ColorMapEntry color="#FF0000" quantity="5"/>
         </ColorMap>
       </RasterSymbolizer>
     </Rule>
   </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>


Note, this is running through an Amazon Web Server (no public access).. Here is 
a sample url:
http://AWS-server-name-here.amazonaws.com/geoserver/public/wms?service=WMS%20&version=1.1.0%20&request=GetMap%20&layers=public:basemap_latlong,basemap_land,fdr20150808,basemap_na_lakes,basemap_inside_bndry%20&styles=%20&bbox=-2500000.0,-880000.0,3150000.0,3970000.0%20&width=880%20&height=760%20&srs=EPSG:42304%20&format=image%2Fpng%20

Thanks so much for any a help or suggestions!

John


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to