Sorry for the layout of my first mail, I didn't turn off the Rich-Text Editor...

Dear all,

I hope you are all doing fine. This is my first posting and I'm not that 
familiar with GIS in general so please, be indulgent ;).

I have been using Geotools library for the past month, looking through the 
userguide, this mailing list and some other websites but I have reached a dead 
end. I'm using Geotools 13.0 with Maven through Eclipse and GDAL/OGR 1.11.1

My issue : I can't manage to display a NITF file as a layer of my mapcontent.

I have added the gt-imageio-ext-gdal jar to my pom.xml and succeeded in 
displaying the gridcoverage. Here's my source code:

File file = JFileDataStoreChooser.showOpenFile("", null);
GridCoverage2DReader reader = new NITFReader(file);
AbstractGridFormat format = GridFormatFinder.findFormat( file );
GridCoverage2DReader reader = format.getReader(file);
GridCoverage2D gc = (GridCoverage2D) reader.read(null);
gc.show();

(This code is working and it displays the NITF file in a default viewer, so it 
means that my gdal importation should be fine. Besides, I get "GDAL Native 
Library loaded (version: 1.11.1)" in the stack trace)

However, when I try to build a layer and add it too a mapContent as it is 
explained in the imageLab, I get either nothing, or a nullPointerException 
depending of the way of building the layer. Here is my source code:

File file = JFileDataStoreChooser.showOpenFile("", null);
AbstractGridFormat format = GridFormatFinder.findFormat( file );        
GridCoverage2DReader reader = format.getReader(file);
GridCoverage2D gc = (GridCoverage2D) reader.read(null);

//creating a default raster style
StyleBuilder sb = new StyleBuilder();
RasterSymbolizer raster = sb.createRasterSymbolizer();
Style rasterStyle = sb.createStyle(raster);

final MapContent map = new MapContent();
Layer rasterLayer = new GridReaderLayer(reader, rasterStyle);
map.addLayer(rasterLayer);
JMapFrame.showMap(map);

With this code, my JMapFrame is displayed but remains blank. I have checked the 
corners coordinates with gdalinfo to be sure to get the right envelope. I 
didn't get any error in the stack trace and the NITF file has everything( CRS, 
Color table (Gray))

Another method was to create the layer through this way : Layer rasterLayer = 
new GridCoverageLayer(gc, rasterStyle);
In this case, I get this error:

avr. 20, 2015 10:27:55 PM it.geosolutions.imageio.gdalframework.GDALUtilities 
loadGDAL
INFOS: GDAL Native Library loaded (version: 1.11.1)
2015-04-20T22:27:57.803+0200  WARNING  null
java.lang.NullPointerException
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.renderImage(GridCoverageRenderer.java:386)
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:962)
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:924)
        at 
org.geotools.renderer.lite.StreamingRenderer$RenderRasterRequest.execute(StreamingRenderer.java:3485)
        at 
org.geotools.renderer.lite.StreamingRenderer$PainterThread.run(StreamingRenderer.java:3654)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

2015-04-20T22:27:57.803+0200  SEVERE  null
java.lang.NullPointerException
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.renderImage(GridCoverageRenderer.java:386)
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:962)
        at 
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:924)
        at 
org.geotools.renderer.lite.StreamingRenderer$RenderRasterRequest.execute(StreamingRenderer.java:3485)
        at 
org.geotools.renderer.lite.StreamingRenderer$PainterThread.run(StreamingRenderer.java:3654)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

This method lead me to think that the layer building wasn't right. I though 
that it could come from the style and I have tried it with the styles presented 
in the tutorial : createGreyScale and createRGBStyle but nothing changed.

I tried another way of displaying it by saving the map in a jpeg file as it is 
shown here : http://docs.codehaus.org/display/GEOTDOC/01+GTRenderer (it worked 
with a geotiff file but not with my NITF file)

I would be so grateful if you could help me to figure out this problem. The 
NITF sample can be found here : 
http://www.gwg.nga.mil/ntb/baseline/software/testfile/Nitfv2_1/scen_2_1.html   
(it is the i_3001a.ntf file)

I would like to keep the layer-adding pattern to display it because it would 
allow me to draw features layer on it.

Guillaume

                                          
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to