@Test public void testRGBIrToRGB() throws IOException { Catalog cat = getCatalog(); CoverageInfo coverageInfo = cat.getCoverageByName(RGB_IR_VIEW); final ResourcePool rp = cat.getResourcePool(); GridCoverageReader reader = rp.getGridCoverageReader(coverageInfo, RGB_IR_VIEW, null); // no transparency due to footprint GeneralParameterValue[] params = buildFootprintBandParams(FootprintBehavior.None, new int[] {0, 1, 2}); GridCoverage solidCoverage = reader.read(params); try { // System.out.println(solidCoverage); assertBandNames(solidCoverage, "Red", "Green", "Blue"); } finally { disposeCoverage(solidCoverage); } // dynamic tx due to footprint params = buildFootprintBandParams(FootprintBehavior.Transparent, new int[] {0, 1, 2}); GridCoverage txCoverage = reader.read(params); try { // System.out.println(txCoverage); assertBandNames(txCoverage, "Red", "Green", "Blue", "ALPHA_BAND"); } finally { disposeCoverage(solidCoverage); } }
protected void dispose(String id, GridCoverageReader reader) { CoverageStoreInfo info = catalog.getCoverageStore(id); if (info != null) { String name = info.getName(); LOGGER.fine("Disposing coverage store '" + name + "'"); fireDisposed(info, reader); } try { reader.dispose(); } catch (Exception e) { LOGGER.warning("Error occured disposing coverage reader '" + info.getName() + "'"); LOGGER.log(Level.FINE, "", e); } } }
SampleModel sampleModel = layout.getSampleModel(null); assertEquals(5, sampleModel.getNumBands()); reader.dispose(); GeneralParameterValue[] readParams = paramList.toArray(new GeneralParameterValue[paramList.size()]); GridCoverage result = reader.read(readParams); assertEquals(8, result.getNumSampleDimensions()); RenderedImage destImage = result.getRenderedImage();
@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); }
final String[] metadataNames = bandData.reader.getMetadataNames(); if ((metadataNames != null) && (metadataNames.length > 0)) { for (final String metadataName : metadataNames) { metadata.put(metadataName, bandData.reader.getMetadataValue(metadataName));
/** * Checks if band selection is present, and can be delegated down to the reader * * @param reader * @param symbolizer * @return */ public static boolean isBandsSelectionApplicable( GridCoverageReader reader, RasterSymbolizer symbolizer) { int[] bandIndices = ChannelSelectionUpdateStyleVisitor.getBandIndicesFromSelectionChannels(symbolizer); return reader.getFormat() != null && reader.getFormat() .getReadParameters() .getDescriptor() .descriptors() .contains(AbstractGridFormat.BANDS) && bandIndices != null; }
GridCoverageReader reader = ((CoverageInfo) resource).getGridCoverageReader(null, null); if(Number.class.isAssignableFrom(type)) { String elev = reader.getMetadataValue(AbstractGridCoverage2DReader.HAS_ELEVATION_DOMAIN); if(!Boolean.parseBoolean(elev)) { disableDimension(type, configs, noAttributeMessage); String time = reader.getMetadataValue(AbstractGridCoverage2DReader.HAS_TIME_DOMAIN); if(!Boolean.parseBoolean(time)) { disableDimension(type, configs, noAttributeMessage);
private List<String> getStoreCoverages(CoverageStoreInfo coverageStore) { try { GridCoverageReader reader = coverageStore.getGridCoverageReader(null, null); return Arrays.stream(reader.getGridCoverageNames()).collect(Collectors.toList()); } catch (Exception exception) { // the read failed to retrieve the available coverages for publishing throw new RuntimeException("Error getting coverages from coverage reader.", exception); } }
final Map<String, String> metadata = new HashMap<>(); final String[] metadataNames = reader.getMetadataNames(); if ((metadataNames != null) && (metadataNames.length > 0)) { for (final String metadataName : metadataNames) { metadata.put(metadataName, reader.getMetadataValue(metadataName));
try { ParameterValueGroup readerParams = reader.getFormat().getReadParameters(); ParameterValue<?> bands = readerParams.parameter(AbstractGridFormat.BANDS.getName(null));
if (Number.class.isAssignableFrom(type)) { String elev = reader.getMetadataValue(GridCoverage2DReader.HAS_ELEVATION_DOMAIN); if (!Boolean.parseBoolean(elev)) { disableDimension(type, configs, noAttributeMessage); String time = reader.getMetadataValue(GridCoverage2DReader.HAS_TIME_DOMAIN); if (!Boolean.parseBoolean(time)) { disableDimension(type, configs, noAttributeMessage);
@Test public void testRGBIrToRed() throws IOException { Catalog cat = getCatalog(); CoverageInfo coverageInfo = cat.getCoverageByName(RGB_IR_VIEW); final ResourcePool rp = cat.getResourcePool(); GridCoverageReader reader = rp.getGridCoverageReader(coverageInfo, RGB_IR_VIEW, null); // get IR, no transparency due to footprint GeneralParameterValue[] params = buildFootprintBandParams(FootprintBehavior.None, new int[] {0}); GridCoverage solidCoverage = reader.read(RGB_IR_VIEW, params); try { // System.out.println(solidCoverage); assertBandNames(solidCoverage, "Red"); } finally { disposeCoverage(solidCoverage); } // get IR, dynamic tx due to footprint params = buildFootprintBandParams(FootprintBehavior.Transparent, new int[] {0}); GridCoverage txCoverage = reader.read(RGB_IR_VIEW, params); try { // System.out.println(txCoverage); assertBandNames(txCoverage, "Red", "ALPHA_BAND"); } finally { disposeCoverage(solidCoverage); } }
@DescribeResult(name = "result", description = "Output raster", type = GridCoverage2D.class) public GridCoverage2D execute( @DescribeParameter(name = "name", description = "Name of raster, optionally fully qualified (workspace:name)") String name, @DescribeParameter(name = "filter", description = "Filter to use on the raster data", min = 0) Filter filter) throws IOException { CoverageInfo ci = catalog.getCoverageByName(name); if (ci == null) { throw new WPSException("Could not find coverage " + name); } GridCoverageReader reader = ci.getGridCoverageReader(null, null); final ParameterValueGroup readParametersDescriptor = reader.getFormat().getReadParameters(); final List<GeneralParameterDescriptor> parameterDescriptors = readParametersDescriptor .getDescriptor().descriptors(); GeneralParameterValue[] params = new GeneralParameterValue[0]; if (filter != null) { params = CoverageUtils.mergeParameter(parameterDescriptors, params, filter, "FILTER", "Filter"); } return (GridCoverage2D) reader.read(params); }
try { reader = catalog.getResourcePool().getGridCoverageReader(coverageStore, "tazdem", null); coverage = (GridCoverage2D) reader.read("tazdem", null); GridSampleDimension sampleDim = coverage.getSampleDimension(0); double[] noDataValues = sampleDim.getNoDataValues(); reader.dispose(); } catch (Throwable t) {
public String getCoverageName(CoverageInfo ci) throws IOException { return ci.getNativeCoverageName() != null ? ci.getNativeCoverageName() : ci.getGridCoverageReader(null, null).getGridCoverageNames()[0]; } }
protected void dispose(CoverageHintReaderKey key, GridCoverageReader reader) { CoverageStoreInfo info = catalog.getCoverageStore(key.id); if (info != null) { String name = info.getName(); LOGGER.fine("Disposing coverage store '" + name + "'"); fireDisposed(info, reader); } try { reader.dispose(); } catch (Exception e) { LOGGER.warning("Error occured disposing coverage reader '" + info.getName() + "'"); LOGGER.log(Level.FINE, "", e); } } }
storeInfo.getGridCoverageReader(null, GeoTools.getDefaultHints()); String[] metadataNames = reader.getMetadataNames(); assertNotNull(metadataNames); assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN")); assertEquals( "2008-10-31T00:00:00.000Z,2008-11-01T00:00:00.000Z,2008-11-02T00:00:00.000Z", reader.getMetadataValue(metadataNames[0]));
@Override public String getMimeType(CoverageInfo ci) throws IOException { GridCoverageReader reader = ci.getGridCoverageReader(null, null); if (formatName.equals(reader.getFormat().getName())) { return mime; } return null; } }