public GridCoverage2D read(GeneralParameterValue[] parameters) throws IllegalArgumentException, IOException { return delegate.read(parameters); }
public GridCoverage2D read(GeneralParameterValue[] parameters) throws IllegalArgumentException, IOException { return delegate.read(coverageName, parameters); }
public GridCoverage2D read(String coverageName, GeneralParameterValue[] parameters) throws IllegalArgumentException, IOException { return delegate.read(coverageName, parameters); }
public GridCoverage2D read(String coverageName, GeneralParameterValue[] parameters) throws IllegalArgumentException, IOException { checkCoverageName(coverageName); return delegate.read(coverageName, parameters); }
reader.read(CoverageUtils.getParameters(readParams, parameters, true)); final GridSampleDimension[] sampleDimensions; if (gc != null) {
.toArray(GeneralParameterValue[]::new); GridCoverage2D coverage = reader.read(filteredParameters); if (coverage == null) { if (handler.isHomogeneousCoverages()
GridCoverage2D grid = delegate.read(parameters);
GridCoverage2D gc = (GridCoverage2D) reader.read(CoverageUtils.getParameters(readParams, parameters, true));
public void checkBandSelectionResolution( CoverageInfo info, int[] bands, double expectedResolutionX, double expectedResolutionY) throws IOException { GridCoverage2D coverage = null; try { GridCoverage2DReader reader = (GridCoverage2DReader) info.getGridCoverageReader(null, null); ParameterValue<int[]> bandsValue = AbstractGridFormat.BANDS.createValue(); bandsValue.setValue(bands); coverage = reader.read(new GeneralParameterValue[] {bandsValue}); assertNotNull(coverage); assertCoverageResolution(coverage, expectedResolutionX, expectedResolutionY); } finally { getCatalog().remove(info); if (coverage != null) { coverage.dispose(true); } } }
GridCoverage2DReader reader = (GridCoverage2DReader) info.getGridCoverageReader(null, null); coverage = reader.read(new GeneralParameterValue[] {gg}); assertNull(coverage); } finally {
coverage = reader.read(null); } finally { getCatalog().remove(info);
coverage = reader.read(null); assertCoverageResolution(coverage, 1007, 1007);
private boolean renewCachedCoverage(DirectPosition centrePos) { final Rectangle queryRect = createQueryGridEnvelope(centrePos); if (queryRect.isEmpty()) { return false; } final GridCoverage2DReader reader = sourceRef.get(); GeneralParameterValue parameter = new Parameter( AbstractGridFormat.READ_GRIDGEOMETRY2D, new GridGeometry2D( new GridEnvelope2D(queryRect), reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER), reader.getCoordinateReferenceSystem())); try { cachedCoverage = (GridCoverage2D) reader.read(new GeneralParameterValue[] {parameter}); return cachedCoverage != null; } catch (Exception ex) { throw new RuntimeException(ex); } }
coverage = reader.read(null); assertCoverageResolution(coverage, 1007, 1007); Envelope coverageEnvelope = coverage.getEnvelope();
@Test public void testNullSymbolizer() throws Exception { CoordinateReferenceSystem googleMercator = CRS.decode("EPSG:3857"); ReferencedEnvelope mapExtent = new ReferencedEnvelope( -20037508.34, 20037508.34, -20037508.34, 20037508.34, googleMercator); Rectangle screenSize = new Rectangle(200, (int) (mapExtent.getHeight() / mapExtent.getWidth() * 200)); AffineTransform w2s = RendererUtilities.worldToScreenTransform(mapExtent, screenSize); GridCoverageRenderer renderer = new GridCoverageRenderer(googleMercator, mapExtent, screenSize, w2s); GridCoverage2D coverage = worldReader.read(null); RenderedImage image = renderer.renderImage( coverage, null, Interpolation.getInstance(Interpolation.INTERP_BICUBIC), Color.RED, 256, 256); File reference = new File( "src/test/resources/org/geotools/renderer/lite/gridcoverage2d/googleMercatorBicubic.png"); ImageAssert.assertEquals(reference, image, 0); }
@Test public void testInterpolationBicubic() throws Exception { CoordinateReferenceSystem googleMercator = CRS.decode("EPSG:3857"); ReferencedEnvelope mapExtent = new ReferencedEnvelope( -20037508.34, 20037508.34, -20037508.34, 20037508.34, googleMercator); Rectangle screenSize = new Rectangle(200, (int) (mapExtent.getHeight() / mapExtent.getWidth() * 200)); AffineTransform w2s = RendererUtilities.worldToScreenTransform(mapExtent, screenSize); GridCoverageRenderer renderer = new GridCoverageRenderer(googleMercator, mapExtent, screenSize, w2s); RasterSymbolizer rasterSymbolizer = new StyleBuilder().createRasterSymbolizer(); GridCoverage2D coverage = worldReader.read(null); RenderedImage image = renderer.renderImage( coverage, rasterSymbolizer, Interpolation.getInstance(Interpolation.INTERP_BICUBIC), Color.RED, 256, 256); File reference = new File( "src/test/resources/org/geotools/renderer/lite/gridcoverage2d/googleMercatorBicubic.png"); ImageAssert.assertEquals(reference, image, 0); }
@Test public void testReprojectGoogleMercator() throws Exception { CoordinateReferenceSystem googleMercator = CRS.decode("EPSG:3857"); ReferencedEnvelope mapExtent = new ReferencedEnvelope( -20037508.34, 20037508.34, -20037508.34, 20037508.34, googleMercator); Rectangle screenSize = new Rectangle(200, (int) (mapExtent.getHeight() / mapExtent.getWidth() * 200)); AffineTransform w2s = RendererUtilities.worldToScreenTransform(mapExtent, screenSize); GridCoverageRenderer renderer = new GridCoverageRenderer(googleMercator, mapExtent, screenSize, w2s); RasterSymbolizer rasterSymbolizer = new StyleBuilder().createRasterSymbolizer(); GridCoverage2D coverage = worldReader.read(null); RenderedImage image = renderer.renderImage( coverage, rasterSymbolizer, Interpolation.getInstance(Interpolation.INTERP_NEAREST), Color.RED, 256, 256); // always set ROI on reprojection assertThat(image.getProperty("roi"), instanceOf(ROI.class)); File reference = new File( "src/test/resources/org/geotools/renderer/lite/gridcoverage2d/googleMercator.png"); ImageAssert.assertEquals(reference, image, 0); }
@Test public void testReprojectTransparency() throws Exception { ReferencedEnvelope re = new ReferencedEnvelope(0, 20, 20, 40, DefaultGeographicCRS.WGS84); CoordinateReferenceSystem utm32n = CRS.decode("EPSG:32632", true); ReferencedEnvelope mapExtent = re.transform(utm32n, true); // get a subset of the coverage GridCoverage2D global = worldReader.read(null); CoverageProcessor processor = CoverageProcessor.getInstance(new Hints(Hints.LENIENT_DATUM_SHIFT, Boolean.TRUE)); final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters().clone(); param.parameter("source").setValue(global); param.parameter("Envelope").setValue(re); GridCoverage2D cropped = (GridCoverage2D) ((Crop) processor.getOperation("CoverageCrop")).doOperation(param, null); // render with reprojection, the ROI should be used to create transparent pixels BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D graphics = bi.createGraphics(); GridCoverageRenderer renderer = new GridCoverageRenderer(utm32n, mapExtent, new Rectangle(0, 0, 100, 100), null); renderer.paint(graphics, cropped, new StyleBuilder().createRasterSymbolizer()); graphics.dispose(); // top left and top right corners must be transparent now, the UTM shrinks towards the pole assertPixelIsTransparent(bi, 0, 0); assertPixelIsTransparent(bi, bi.getWidth() - 1, 0); }
@Test public void testRenderOutsideBounds() throws Exception { ReferencedEnvelope re = new ReferencedEnvelope(0, 20, 20, 40, DefaultGeographicCRS.WGS84); // get a subset of the coverage GridCoverage2D global = worldReader.read(null); CoverageProcessor processor = CoverageProcessor.getInstance(new Hints(Hints.LENIENT_DATUM_SHIFT, Boolean.TRUE)); final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters().clone(); param.parameter("source").setValue(global); param.parameter("Envelope").setValue(re); GridCoverage2D cropped = (GridCoverage2D) ((Crop) processor.getOperation("CoverageCrop")).doOperation(param, null); ReferencedEnvelope reOutside = new ReferencedEnvelope(40, 60, 20, 40, DefaultGeographicCRS.WGS84); GridCoverageRenderer renderer = new GridCoverageRenderer( DefaultGeographicCRS.WGS84, reOutside, new Rectangle(0, 0, 100, 100), null); RasterSymbolizer symbolizer = new StyleBuilder().createRasterSymbolizer(); Interpolation interpolation = Interpolation.getInstance(Interpolation.INTERP_NEAREST); RenderedImage image = renderer.renderImage(cropped, symbolizer, interpolation, null, 256, 256); // outside coverage bounds, just return null but don't NPE assertNull(image); }