private void initReaderFromFile(Hints inHints) throws IOException { if (!this.dataDirectory.isDirectory()) { throw new IOException(this.dataDirectory + " is not a directory"); } File dataFile = null; for (String filename : this.dataDirectory.list()) { if (isDataFile(filename)) { dataFile = new File(this.dataDirectory, filename); break; } } if (dataFile == null) { throw new IOException("No data file found"); } File clazzFile = new File(dataDirectory, "clazz"); if (clazzFile.exists()) { clazz = new String(Files.readAllBytes(clazzFile.toPath())).trim(); } final GeoTiffReader geotiffReader = new GeoTiffReader(dataFile, hints); this.crs = geotiffReader.getCoordinateReferenceSystem(); this.originalGridRange = geotiffReader.getOriginalGridRange(); this.originalEnvelope = geotiffReader.getOriginalEnvelope(); }
/** Returns the original source file, is present in the metadata, and if the coverage */ private File getSourceFile(GridCoverage2D coverage) { final Object fileSource = coverage.getProperty(AbstractGridCoverage2DReader.FILE_SOURCE_PROPERTY); if (fileSource != null && fileSource instanceof String) { File file = new File((String) fileSource); if (file.exists()) { GeoTiffReader reader = null; try { reader = new GeoTiffReader(file); GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(); Envelope envelope = coverage.getEnvelope(); if (originalEnvelope.equals(envelope, 1e-9, false)) { GridCoverage2D test = reader.read(null); ImageUtilities.disposeImage(test.getRenderedImage()); return file; } } catch (Exception e) { // ok, not a geotiff! } finally { if (reader != null) { reader.dispose(); } } } } return null; }
return new GeoTiffReader(file, hints); } catch (DataSourceException e) { if (LOGGER.isLoggable(Level.WARNING)) return new GeoTiffReader(source, hints); } catch (DataSourceException e) { if (LOGGER.isLoggable(Level.WARNING))
@Before public void getData() throws IOException { MapProjection.SKIP_SANITY_CHECKS = true; coverageFile = TestData.copy(this, "geotiff/world.tiff"); assertTrue(coverageFile.exists()); reader = new GeoTiffReader(coverageFile); }
File coverageFile = TestData.copy(this, "geotiff/world.tiff"); assertTrue(coverageFile.exists()); worldReader = new GeoTiffReader(coverageFile); worldReader_0_360 = new GeoTiffReader(coverageFile); worldPaletteReader = new GeoTiffReader(coverageFile); worldRoiReader = new GeoTiffReader(coverageFile); GridCoverageRendererTest.class.getResource("test-data/sampleGrib.tif")); assertTrue(coverageFile.exists()); sampleGribReader = new GeoTiffReader(coverageFile); "test-data/multi_pixel_packed.tif")); assertTrue(coverageFile.exists()); multiPixelPacked = new GeoTiffReader(coverageFile);
@Test public void testRenderOffDateline() throws Exception { File coverageFile = DataUtilities.urlToFile( GridCoverageReaderHelperTest.class.getResource( "test-data/off_dateline.tif")); assertTrue(coverageFile.exists()); GeoTiffReader offDatelineReader = new GeoTiffReader(coverageFile); ReferencedEnvelope envelope = new ReferencedEnvelope(-180, 0, -90, 90, DefaultGeographicCRS.WGS84); GridCoverageRenderer renderer = new GridCoverageRenderer( DefaultGeographicCRS.WGS84, envelope, new Rectangle(0, 0, 450, 450), null); RasterSymbolizer symbolizer = new StyleBuilder().createRasterSymbolizer(); Interpolation interpolation = Interpolation.getInstance(Interpolation.INTERP_NEAREST); RenderedImage image = renderer.renderImage( offDatelineReader, null, symbolizer, interpolation, null, 256, 256); assertNotNull(image); File reference = new File( "src/test/resources/org/geotools/renderer/lite/gridcoverage2d/offDateline.png"); ImageAssert.assertEquals(reference, image, 0); }
@Test public void testTransformReprojectedGridReader() throws Exception { Style style = RendererBaseTest.loadStyle(this, "coverageCenter.sld"); GeoTiffReader reader = new GeoTiffReader(TestData.copy(this, "geotiff/world.tiff")); MapContent mc = new MapContent(); mc.addLayer(new GridReaderLayer(reader, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); ReferencedEnvelope reWgs84 = new ReferencedEnvelope(-70, 70, -160, 160, CRS.decode("EPSG:4326")); ReferencedEnvelope re = reWgs84.transform(CRS.decode("EPSG:3857"), true); BufferedImage image = RendererBaseTest.showRender("Lines with circle stroke", renderer, TIME, re); // if everything worked we are going to have a red dot in the middle of the map assertEquals(Color.RED, getPixelColor(image, image.getWidth() / 2, image.getHeight() / 2)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 4, image.getHeight() / 2)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 2, image.getHeight() / 4)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 4, image.getHeight() / 4)); }
@Test public void testTransformReprojectedGridCoverage() throws Exception { Style style = RendererBaseTest.loadStyle(this, "coverageCenter.sld"); GeoTiffReader reader = new GeoTiffReader(TestData.copy(this, "geotiff/world.tiff")); MapContent mc = new MapContent(); mc.addLayer(new GridCoverageLayer(reader.read(null), style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); ReferencedEnvelope reWgs84 = new ReferencedEnvelope(-70, 70, -160, 160, CRS.decode("EPSG:4326")); ReferencedEnvelope re = reWgs84.transform(CRS.decode("EPSG:3857"), true); BufferedImage image = RendererBaseTest.showRender("Lines with circle stroke", renderer, TIME, re); // if everything worked we are going to have a red dot in the middle of the map assertEquals(Color.RED, getPixelColor(image, image.getWidth() / 2, image.getHeight() / 2)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 4, image.getHeight() / 2)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 2, image.getHeight() / 4)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 4, image.getHeight() / 4)); }
@Test public void testPaintBandSelectionNonSupportingReader() throws Exception { File coverageFile = TestData.copy(this, "geotiff/worldPalette.tiff"); assertTrue(coverageFile.exists()); GridCoverage2DReader reader = new GeoTiffReader(coverageFile); RasterSymbolizer rasterSymbolizer = buildChannelSelectingSymbolizer(1); BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_3BYTE_BGR); GridCoverageRenderer renderer = new GridCoverageRenderer( DefaultGeographicCRS.WGS84, ReferencedEnvelope.reference(reader.getOriginalEnvelope()), new Rectangle(0, 0, 100, 100), null); Graphics2D graphics = (Graphics2D) bi.getGraphics(); renderer.paint( graphics, reader, null, rasterSymbolizer, Interpolation.getInstance(Interpolation.INTERP_NEAREST), Color.BLACK); graphics.dispose(); // check we got a gray image final double[] minimums = new ImageWorker(bi).getMaximums(); final double[] maximums = new ImageWorker(bi).getMaximums(); assertThat(maximums[0], equalTo(maximums[1])); assertThat(maximums[1], equalTo(maximums[2])); assertThat(minimums[0], equalTo(minimums[1])); assertThat(minimums[1], equalTo(minimums[2])); }
GridCoverageRendererTest.class.getResource("test-data/test3003.tif")); assertTrue(coverageFile.exists()); GeoTiffReader reader = new GeoTiffReader(coverageFile); try { reader = new GeoTiffReader(coverageFile); ReferencedEnvelope mapExtent = new ReferencedEnvelope(-130, -120, -40, 30, DefaultGeographicCRS.WGS84);
Layer layer = new GridReaderLayer( new GeoTiffReader(testFile), sb.createStyle(sb.createRasterSymbolizer())); MapContent mc = new MapContent(); mc.getViewport().setBounds(read3857);
DataUtilities.urlToFile(getClass().getResource("test-data/off_dateline.tif")); assertTrue(coverageFile.exists()); GeoTiffReader reader = new GeoTiffReader(coverageFile); try { reader = new GeoTiffReader(coverageFile); ReferencedEnvelope mapExtent = new ReferencedEnvelope(-180, 0, -90, 90, DefaultGeographicCRS.WGS84);
GridCoverage2DReader reader = new GeoTiffReader(coverageFile);
reader = new GeoTiffReader(coverageFile, hints);
/** * Test transparency is preserved when applying an RGB ChannelSelect and ContrastEnhancement * style to an imageMosaic with transparent color being set */ @Test public void testRGBAWithContrastEnhancementInChannelSelect() throws IOException, NoSuchAuthorityCodeException, FactoryException { GeoTiffReader reader = new GeoTiffReader(TestData.file(this, "map.tif")); GridCoverage2D gc = reader.read(null); RenderedImage ri = gc.getRenderedImage(); GridCoverage2D output = (GridCoverage2D) symbolizeRaster(gc, "ce_cs.sld"); ri = output.getRenderedImage(); // Assert the alpha band has been preserved, even with a CS+CE SLD in place assertHasAlpha(ri); disposeCoverage(output); }
GridCoverage2DReader reader = new GeoTiffReader(coverageFile);
GridCoverage2DReader reader = new GeoTiffReader(coverageFile);
@Test public void testEnvFunctionInColorMap() throws Exception { EnvFunction.setLocalValue("low", "-0.001"); EnvFunction.setLocalValue("lowColor", "#000000"); // get the source data File coverageFile = TestData.copy(this, "geotiff/float64.tif"); assertTrue(coverageFile.exists()); GridCoverage2DReader reader = new GeoTiffReader(coverageFile); // Apply the symbolizer Style style = RendererBaseTest.loadStyle(this, "float64.sld"); final MapContent mc = new MapContent(); mc.addLayer(new GridReaderLayer(reader, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); BufferedImage image = RendererBaseTest.renderImage(renderer, mc.getViewport().getBounds(), null, 50, 50); // Check the image File reference = new File( "src/test/resources/org/geotools/renderer/lite/gridcoverage2d/flippedAffineParametric.png"); ImageAssert.assertEquals(reference, image, 2); }
GridCoverage2DReader reader = new GeoTiffReader(coverageFile);
@Test public void testTransformBBOXIsCorrect() throws Exception { Style style = RendererBaseTest.loadStyle(this, "noop_colormap.sld"); GeoTiffReader reader = new GeoTiffReader(TestData.file(this, "watertemp.tiff")); MapContent mc = new MapContent(); mc.addLayer(new GridReaderLayer(reader, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); CRSAuthorityFactory factory = CRS.getAuthorityFactory(true); CoordinateReferenceSystem crs = factory.createCoordinateReferenceSystem("EPSG:4326"); ReferencedEnvelope reWgs84 = new ReferencedEnvelope( 9.848993475036622, 11.958867853088378, 40.74254816253662, 41.64941961090088, crs); BufferedImage image = RendererBaseTest.showRender("Transform BBOX", renderer, 4000, reWgs84); // last pixel is white when doing a transformation and the rendering transform BBOX // transforms are // incorrect, it shouldn't be assertNotEquals(Color.WHITE, getPixelColor(image, 299, 0)); assertEquals(new Color(133, 130, 188), getPixelColor(image, 299, 0)); }