I am back to working with GeoTools after several months away due to commitments 
to other projects. When I left off on my GeoTools work (rather reluctantly I 
might add, since it GeoTools is pretty interesting stuff), I was stuck on a 
problem with GeoTiff files and hoping that it would be fixed by the then new 
release 2.3.0   Unfortunately, I'm now using 2.3.0, I'm still having no luck, 
and am beginning to think that there is a bug in the GeoTiff implementation.

Basically, I took the MapViewer.java demo and added some lines of code (shown 
below) as a the "loadTiff" method to attempt to add the GeoTiff to the 
MapViewer picture (loadTiff is called after the existing MapViewer "load" 
method). This code has worked for some other GeoTiff products, but is still not 
working for the GeoTiff in which I am most interested.  When I run the 
MapViewer demo, I often get ProjectionExceptions and IllegalArgumentExceptions. 
 Some of them appear to relate to the proximity of the map to the North Pole (I 
am using a global scale Shape file). But even when I zoom in to the area of 
interest for the GeoTiff, GeoTools doesn't always throw an exception but still 
declines to produce an image

The GeoTiff is in a Lambert Conic Conformal projection, but the MapViewer is 
set to use good old CRS "EPSG:4326"

Can anyone offer me guidance?

Gary

-----------------------------------------------------------------
Using GeoTools 2.3.0 
The source data for the GeoTiffs is available at
http://avn.faa.gov/index.asp?xml=naco/catalog/charts/digital/Raster_Sectional_Sample/Raster


-----------------------------------------------------------------
The code added to the "loadFiff" method is
        File tiffFile       = new 
File("C:/Downloads/FaaSectionalMap/sample.tif");
        AbstractGridCoverage2DReader rdr = new GeoTiffReader(tiffFile);
        CoordinateReferenceSystem crs = rdr.getCrs();
        ReferencedEnvelope dataEnvelope = new 
ReferencedEnvelope(rdr.getOriginalEnvelope(), crs);
        
        StyleBuilder               sb       = new StyleBuilder();
        RasterSymbolizer           rsDem    = sb.createRasterSymbolizer();
        org.geotools.styling.Style demStyle = sb.createStyle(rsDem);
        MapContext context = mp.getContext();
        context.addLayer(rdr, demStyle);    


---------------------------------------------------------------------
The exceptions are 

WARNING: Unable to get the resolution
org.geotools.data.DataSourceException: Unable to get the resolution
        at 
org.geotools.data.coverage.grid.AbstractGridCoverage2DReader.getResolution(AbstractGridCoverage2DReader.java:587)
        at 
org.geotools.data.coverage.grid.AbstractGridCoverage2DReader.setReadParams(AbstractGridCoverage2DReader.java:228)
        at org.geotools.gce.geotiff.GeoTiffReader.read(GeoTiffReader.java:376)
        at 
org.geotools.renderer.lite.StreamingRenderer.renderRaster(StreamingRenderer.java:1792)
        at 
org.geotools.renderer.lite.StreamingRenderer.processSymbolizers(StreamingRenderer.java:1586)
        at 
org.geotools.renderer.lite.StreamingRenderer.process(StreamingRenderer.java:1530)
        at 
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1472)
        at 
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:543)
        at 
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:406)
        at com.sonalysts.gui.swing.JMapPane.paintComponent(JMapPane.java:414)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
        at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
        at javax.swing.JComponent._paintImmediately(Unknown Source)
        at javax.swing.JComponent.paintImmediately(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at 
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.geotools.referencing.operation.projection.ProjectionException: 
Latitude 90°00.0'S is too close to a pole.
        at 
org.geotools.referencing.operation.projection.LambertConformal.transformNormalized(LambertConformal.java:215)
        at 
org.geotools.referencing.operation.projection.MapProjection.transform(MapProjection.java:636)
        at 
org.geotools.referencing.operation.projection.MapProjection.transform(MapProjection.java:677)
        at 
org.geotools.referencing.operation.transform.AbstractMathTransform.transform(AbstractMathTransform.java:235)
        at 
org.geotools.referencing.operation.transform.ConcatenatedTransformDirect.transform(ConcatenatedTransformDirect.java:68)
        at org.geotools.resources.CRSUtilities.transform(CRSUtilities.java:531)
        at 
org.geotools.data.coverage.grid.AbstractGridCoverage2DReader.getResolution(AbstractGridCoverage2DReader.java:579)

----------------------------------------------------------------


Feb 28, 2007 9:37:22 AM org.geotools.renderer.lite.StreamingRenderer 
renderRaster
WARNING: The number of image bands (3) differs from the number of supplied 
'SampleDimension' objects (1).
java.lang.IllegalArgumentException: The number of image bands (3) differs from 
the number of supplied 'SampleDimension' objects (1).
        at 
org.geotools.coverage.grid.Grid2DSampleDimension.create(Grid2DSampleDimension.java:118)
        at 
org.geotools.coverage.grid.GridCoverage2D.<init>(GridCoverage2D.java:271)
        at 
org.geotools.coverage.processing.operation.ScaledGridCoverage2D.<init>(ScaledGridCoverage2D.java:180)
        at 
org.geotools.coverage.processing.operation.ScaledGridCoverage2D.create(ScaledGridCoverage2D.java:172)
        at 
org.geotools.coverage.processing.operation.Scale.doOperation(Scale.java:158)
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.scale(GridCoverageRenderer.java:736)
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:482)
        at 
org.geotools.renderer.lite.StreamingRenderer.renderRaster(StreamingRenderer.java:1795)
        at 
org.geotools.renderer.lite.StreamingRenderer.processSymbolizers(StreamingRenderer.java:1586)
        at 
org.geotools.renderer.lite.StreamingRenderer.process(StreamingRenderer.java:1530)
        at 
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1472)
        at 
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:543)
        at 
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:406)
        at com.sonalysts.gui.swing.JMapPane.paintComponent(JMapPane.java:414)
        at javax.swing.JComponent.paint(Unknown Source)




---
Gary W. Lucas, Senior Software Engineer
Sonalysts, Inc
215 Parkway North
Waterford, CT 06320
(860) 326-3682

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to