public GridCoverageReader getGridCoverageReader(ProgressListener listener, Hints hints) throws IOException { return delegate.getGridCoverageReader(listener, hints); }
@Test public void testPreserveStructuredReader() throws IOException { // we have to make sure time ranges native name is set to trigger the bug in question CoverageInfo ci = getCatalog().getCoverageByName(getLayerId(TIMERANGES)); assertTrue(ci.getGridCoverageReader(null, null) instanceof StructuredGridCoverage2DReader); String name = ci.getGridCoverageReader(null, null).getGridCoverageNames()[0]; ci.setNativeCoverageName(name); getCatalog().save(ci); ci = getCatalog().getCoverageByName(getLayerId(TIMERANGES)); assertTrue(ci.getGridCoverageReader(null, null) instanceof StructuredGridCoverage2DReader); }
reader = (GridCoverage2DReader) cinfo.getGridCoverageReader(null, GeoTools.getDefaultHints());
@Test public void testBandsFlagsView() throws Exception { // creation in the setup would have failed before the fix for // [GEOT-6168] CoverageView setup fails if one of the source bands has an indexed color // model CoverageInfo info = getCatalog().getCoverageByName(BANDS_FLAGS_VIEW); GridCoverageReader reader = info.getGridCoverageReader(null, null); GridCoverage2D coverage = (GridCoverage2D) reader.read(null); assertEquals(11, coverage.getRenderedImage().getSampleModel().getNumBands()); coverage.dispose(true); } }
expect(c.getGridCoverageReader(null, null)).andReturn(reader).anyTimes(); } catch (IOException e) {
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); } } }
new ReferencedEnvelope(0, 1000, 0, 1000, UTM32N))); GridCoverage2DReader reader = (GridCoverage2DReader) info.getGridCoverageReader(null, null); coverage = reader.read(new GeneralParameterValue[] {gg}); assertNull(coverage);
r = (GridCoverage2DReader) ci.getGridCoverageReader(null, GeoTools.getDefaultHints()); assertTrue( CRS.equalsIgnoreMetadata( r = (GridCoverage2DReader) ci.getGridCoverageReader(null, null); assertTrue( CRS.equalsIgnoreMetadata(
@Test public void testCoverageViewGranuleSource() throws Exception { final String VIEW_NAME = "view"; CoverageInfo info = buildHeterogeneousResolutionView( VIEW_NAME, cv -> { cv.setSelectedResolution(SelectedResolution.BEST); }, "B02", "B03", "B04"); StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) info.getGridCoverageReader(null, null); GranuleSource source = reader.getGranules(VIEW_NAME, true); Query query = new Query(VIEW_NAME); // used to throw exception here SimpleFeatureCollection granules = source.getGranules(query); // just check we can pull data from it DataUtilities.first(granules); // there are three bands, so three granules making up the coverage assertEquals(3, granules.size()); }
@Test public void testDropCoverageStore() throws Exception { // build the store Catalog cat = getCatalog(); CatalogBuilder cb = new CatalogBuilder(cat); CoverageStoreInfo store = cb.buildCoverageStore("dem"); store.setURL(MockData.class.getResource("tazdem.tiff").toExternalForm()); store.setType("GeoTIFF"); cat.add(store); // build the coverage cb.setStore(store); CoverageInfo ci = cb.buildCoverage(); cat.add(ci); // build the layer LayerInfo layer = cb.buildLayer(ci); cat.add(layer); // grab a reader just to inizialize the code ci.getGridCoverage(null, null); ci.getGridCoverageReader(null, GeoTools.getDefaultHints()); // now drop the store CascadeDeleteVisitor visitor = new CascadeDeleteVisitor(cat); visitor.visit(store); // and reload (GEOS-4782 -> BOOM!) getGeoServer().reload(); }
@Test public void testCoverageViewGranuleSourceAggregation() throws Exception { final String VIEW_NAME = "viewAggregate"; CoverageInfo info = buildHeterogeneousResolutionView( VIEW_NAME, cv -> { cv.setSelectedResolution(SelectedResolution.BEST); }, "B02", "B03", "B04", "B01"); StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) info.getGridCoverageReader(null, null); GranuleSource source = reader.getGranules(VIEW_NAME, true); Query query = new Query(VIEW_NAME); // used to throw exception here SimpleFeatureCollection granules = source.getGranules(query); MinVisitor visitor = new MinVisitor("location"); granules.accepts(visitor, null); assertEquals("20170410T103021026Z_fullres_CC2.1989_T32TMT_B01.tif", visitor.getMin()); }
@Test public void testMissingNullValuesInCoverageDimensions() throws IOException { CoverageInfo ci = getCatalog().getCoverageByName(getLayerId(MockData.TASMANIA_DEM)); List<CoverageDimensionInfo> dimensions = ci.getDimensions(); // legacy layers have no null value list dimensions.get(0).getNullValues().clear(); getCatalog().save(ci); // and now go back and ask for the reader ci = getCatalog().getCoverageByName(getLayerId(MockData.TASMANIA_DEM)); GridCoverageReader reader = ci.getGridCoverageReader(null, null); GridCoverage2D gc = null; try { // check that we maintain the native info if we don't have any gc = (GridCoverage2D) reader.read(null); assertEquals(-9999d, CoverageUtilities.getNoDataProperty(gc).getAsSingleValue(), 0d); } finally { if (gc != null) { RenderedImage ri = gc.getRenderedImage(); if (gc instanceof GridCoverage2D) { gc.dispose(true); } if (ri instanceof PlanarImage) { ImageUtilities.disposePlanarImageChain((PlanarImage) ri); } } } }
try { GridCoverage2DReader reader = (GridCoverage2DReader) info.getGridCoverageReader(null, null); assertEquals(6100, reader.getResolutionLevels()[0][0], 1); assertEquals(6100, reader.getResolutionLevels()[0][1], 1);
(GridCoverage2DReader) info.getGridCoverageReader(null, null); assertEquals(1007, reader.getResolutionLevels()[0][0], 1); assertEquals(1007, reader.getResolutionLevels()[0][1], 1);
(GridCoverage2DReader) info.getGridCoverageReader(null, null); assertEquals(1007, reader.getResolutionLevels()[0][0], 1); assertEquals(1007, reader.getResolutionLevels()[0][1], 1);
public GridCoverageReader getCoverageReader() throws IOException { if (type != TYPE_RASTER) { throw new IllegalArgumentException("Layer type is not raster"); } CoverageInfo resource = (CoverageInfo) layerInfo.getResource(); return resource.getGridCoverageReader(null, GeoTools.getDefaultHints()); }
@Override public String getMimeType(CoverageInfo ci) throws IOException { GridCoverageReader reader = ci.getGridCoverageReader(null, null); if (formatName.equals(reader.getFormat().getName())) { return mime; } return null; } }
public String getCoverageName(CoverageInfo ci) throws IOException { return ci.getNativeCoverageName() != null ? ci.getNativeCoverageName() : ci.getGridCoverageReader(null, null).getGridCoverageNames()[0]; } }
@Before public void setup() throws Exception { // check we can read it as a TIFF and it is similare to the origina one sourceCoverage = (GridCoverage2D) this.getCatalog() .getCoverageByName("BlueMarble") .getGridCoverageReader(null, null) .read(null); }
private CoverageInfo addRasterToMap(QName typeName) throws Exception { CoverageInfo coverageInfo = getCatalog().getCoverageByName(typeName.getNamespaceURI(), typeName.getLocalPart()); GridCoverage2DReader reader = (GridCoverage2DReader) coverageInfo.getGridCoverageReader(null, null); Style style = getCatalog().getStyleByName("rainfall").getStyle(); this.map.addLayer(new GridReaderLayer(reader, style)); return coverageInfo; }