Hello.
This is with GeoTools 14.0.
I have a GridCoverage2D that I have read from a BAG file using NetCDF. Not
using GeoTools NetCDFReader, but NetCDF-java directly. The GridCoverage2D works
fine with GridCoverageRenderer.
I then write out the GridCoverage2D (from BAG) to a GeoTIFF file using
GeoTiffWriter and then read it back in using GeoTiffReader. The returned
GridCoverage2D seem to have all the same metadata like dimensions. The crs of
the grid from the read GeoTIFF is almost the same as the one in the grid from
the BAG. They are below. This new GridCoverage2D does not longer work with the
GridCoverageRenderer.
The problem seem to be that the rendering process creates a very very large
image. The size of the BAG and the GeoTIFF on disc is 2901x5716. If I zoom far
in, I get an exception like "Dimensions (width=176427 height=247285) are too
large” as seen below. This is all with the same GeoTIFF file. If I zoom even
further in, I get an exception message like "Dimensions (width=194885
height=273156) are too large”. If I zoom out to a more sensible zoom range,
then I get an exception with message "Cannot construct DataBuffer” also seen
below.
I write out the GeoTIFF file like this:
GeoTiffWriter w = new GeoTiffWriter(file);
w.write(fromBag, null);
w.dispose();
And then read it back in like this:
GeoTiffReader r = new GeoTiffReader(file);
GridCoverage2D scaled = r.read(null);
GridCoverageRenderer.affine in line 619 uses
GridCoverageRendererUtilities.layoutHelper on a finalRasterTransformation to
calculate the too large image dimensions.
I would like the grid to work in the same way after it has been written to the
GeoTIFF and read back in.
Any tips to where I should continue looking?
Regards,
Tore Halset.
Exception when zoomed far in:
Caused by: java.lang.IllegalArgumentException: Dimensions (width=176427
height=247285) are too large
at java.awt.image.SampleModel.<init>(SampleModel.java:130) ~[?:1.8.0_31]
at
java.awt.image.ComponentSampleModel.<init>(ComponentSampleModel.java:146)
~[?:1.8.0_31]
at
java.awt.image.PixelInterleavedSampleModel.<init>(PixelInterleavedSampleModel.java:87)
~[?:1.8.0_31]
at
it.geosolutions.jaiext.classifier.LinearColorMap.getSampleModel(LinearColorMap.java:461)
~[jt-classifier-1.0.6.jar:?]
at
it.geosolutions.jaiext.classifier.RasterClassifierOpImage.prepareLayout(RasterClassifierOpImage.java:94)
~[jt-classifier-1.0.6.jar:?]
at
it.geosolutions.jaiext.classifier.RasterClassifierOpImage.<init>(RasterClassifierOpImage.java:53)
~[jt-classifier-1.0.6.jar:?]
at
it.geosolutions.jaiext.classifier.RasterClassifierCRIF.create(RasterClassifierCRIF.java:56)
~[jt-classifier-1.0.6.jar:?]
at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_31]
at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_31]
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
~[jai_core.jar:1.1.3]
at
javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
~[jai_core.jar:1.1.3]
at
it.geosolutions.jaiext.ConcurrentOperationRegistry.invokeFactory(ConcurrentOperationRegistry.java:576)
~[jt-utilities-1.0.6.jar:?]
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
~[jai_core.jar:1.1.3]
at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819)
~[jai_core.jar:1.1.3]
at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867)
~[jai_core.jar:1.1.3]
at javax.media.jai.RenderedOp.getColorModel(RenderedOp.java:2242)
~[jai_core.jar:1.1.3]
at
org.geotools.renderer.lite.gridcoverage2d.ColorMapNode.execute(ColorMapNode.java:302)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.ColorMapNode.execute(ColorMapNode.java:57)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter$1.execute(StyleVisitorCoverageProcessingNodeAdapter.java:101)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.checkExecuted(BaseCoverageProcessingNode.java:238)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:341)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:46)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter.getOutput(StyleVisitorCoverageProcessingNodeAdapter.java:141)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.ContrastEnhancementNode.execute(ContrastEnhancementNode.java:240)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.ContrastEnhancementNode.execute(ContrastEnhancementNode.java:77)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter$1.execute(StyleVisitorCoverageProcessingNodeAdapter.java:101)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.checkExecuted(BaseCoverageProcessingNode.java:238)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:341)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:46)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter.getOutput(StyleVisitorCoverageProcessingNodeAdapter.java:141)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.SubchainStyleVisitorCoverageProcessingAdapter.execute(SubchainStyleVisitorCoverageProcessingAdapter.java:116)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.execute(RasterSymbolizerHelper.java:78)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.execute(RasterSymbolizerHelper.java:58)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter$1.execute(StyleVisitorCoverageProcessingNodeAdapter.java:101)
~[gt-render-14.0.jar:?]
at
org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.checkExecuted(BaseCoverageProcessingNode.java:238)
~[gt-render-14.0.jar:?]
Exception when zoomed out:
INFO: Problem occurs when computing a tile by the owner.
java.lang.RuntimeException: Cannot construct DataBuffer.
at
com.sun.media.jai.util.DataBufferUtils.constructDataBuffer(DataBufferUtils.java:132)
at
com.sun.media.jai.util.DataBufferUtils.createDataBufferFloat(DataBufferUtils.java:214)
at
javax.media.jai.ComponentSampleModelJAI.createDataBuffer(ComponentSampleModelJAI.java:271)
at
javax.media.jai.RecyclingTileFactory.createTile(RecyclingTileFactory.java:389)
at
javax.media.jai.PlanarImage.createWritableRaster(PlanarImage.java:1982)
at javax.media.jai.PlanarImage.getData(PlanarImage.java:2160)
at javax.media.jai.PlanarImage.getData(PlanarImage.java:2016)
at
it.geosolutions.jaiext.classifier.RasterClassifierOpImage.computeRect(RasterClassifierOpImage.java:106)
at javax.media.jai.OpImage.computeTile(OpImage.java:1221)
at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:728)
at
com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
at javax.media.jai.OpImage.getTile(OpImage.java:1129)
at javax.media.jai.RenderedOp.getTile(RenderedOp.java:2257)
at
sun.java2d.SunGraphics2D.drawTranslatedRenderedImage(SunGraphics2D.java:2820)
at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2707)
at
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paintImage(GridCoverageRenderer.java:1177)
at
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:1110)
at
org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:1071)
CRS WKT from BAG:
PROJCS["UTM-32N",
GEOGCS["unnamed",
DATUM["WGS_1984",
SPHEROID["WGS_1984", 6378137.0, 298.2572201434276],
TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]],
PRIMEM["Greenwich", 0.0],
UNIT["degree", 0.017453292519943295],
AXIS["Longitude", EAST],
AXIS["Latitude", NORTH]],
PROJECTION["Transverse_Mercator"],
PARAMETER["central_meridian", 9.0],
PARAMETER["latitude_of_origin", 0.0],
PARAMETER["scale_factor", 0.9996],
PARAMETER["false_easting", 500000.0],
PARAMETER["false_northing", 0.0],
UNIT["m", 1.0],
AXIS["x", EAST],
AXIS["y", NORTH]]
CRS WKT from GeoTIFF:
PROJCS["UTM-32N|UTM-32N",
GEOGCS["unnamed",
DATUM["WGS_1984",
SPHEROID["WGS_1984", 6378137.0, 298.2572201434276]],
PRIMEM["Greenwich", 0.0],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH]],
PROJECTION["Transverse_Mercator"],
PARAMETER["central_meridian", 9.0],
PARAMETER["latitude_of_origin", 0.0],
PARAMETER["scale_factor", 0.9996],
PARAMETER["false_easting", 500000.0],
PARAMETER["false_northing", 0.0],
UNIT["m", 1.0],
AXIS["Easting", EAST],
AXIS["Northing", NORTH]]
------------------------------------------------------------------------------
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users