AbstractGridFormat format = createMock(AbstractGridFormat.class); expect(reader.getOriginalEnvelope()).andReturn(new GeneralEnvelope(envelope)).anyTimes(); expect(reader.getCoordinateReferenceSystem()) .andReturn(envelope.getCoordinateReferenceSystem()) .anyTimes(); expect(reader.getOriginalGridRange()).andReturn(gridRange).anyTimes(); expect(reader.getImageLayout()).andReturn(layout).anyTimes(); expect(reader.getFormat()).andReturn(format).anyTimes(); expect(reader.getGridCoverageCount()).andReturn(1); expect(reader.getOriginalGridToWorld(EasyMock.anyObject(PixelInCell.class))) .andReturn(new AffineTransform2D(gridToWorld)) .anyTimes(); expect(reader.read(EasyMock.anyObject(GeneralParameterValue[].class))).andReturn(null); expect(reader.getGridCoverageNames()).andReturn(new String[] {"TheCoverage"}); replay(reader); expect(format.getReader(EasyMock.eq(rasterSource), EasyMock.anyObject(Hints.class)))
/** * Forcing disposal of this {@link AbstractGridCoverage2DReader} which may keep an {@link * ImageInputStream} open. */ @Override protected void finalize() throws Throwable { dispose(); super.finalize(); }
@Override public String getMetadataValue(String coverageName, String name) { return super.getMetadataValue(name); }
@Override public void createIndividuals() { LOG.info("Loading population from raster file {}", sourceFilename); try { File rasterFile = new File(sourceFilename); // determine file format and CRS, then load raster AbstractGridFormat format = GridFormatFinder.findFormat(rasterFile); AbstractGridCoverage2DReader reader = format.getReader(rasterFile); GridCoverage2D coverage = reader.read(null); this.coverageCRS = coverage.getCoordinateReferenceSystem(); GridGeometry2D gridGeometry = coverage.getGridGeometry(); GridEnvelope2D gridEnvelope = gridGeometry.getGridRange2D(); gridGeometry.getGridToCRS(); // because we may want to produce an empty raster rather than loading one, alongside the coverage we // store the row/col dimensions and the referenced envelope in the original coordinate reference system. this.cols = gridEnvelope.width; this.rows = gridEnvelope.height; this.createIndividuals0(); } catch (Exception ex) { throw new IllegalStateException("Error loading population from raster file: ", ex); } LOG.info("Done loading raster from file."); }
final AbstractGridCoverage2DReader reader = (AbstractGridCoverage2DReader) meta .createReader(HINTS); final ParameterValueGroup params = reader.getFormat().getReadParameters(); final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(); final BoundingBoxType bbox = request.getDomainSubset().getBoundingBox(); final CoordinateReferenceSystem nativeCRS = originalEnvelope destinationEnvelopeInSourceCRS = reader.getOriginalEnvelope(); destinationEnvelope = destinationEnvelopeInSourceCRS; targetCRS = reader.getOriginalEnvelope().getCoordinateReferenceSystem(); else targetCRS = CRS.decode(gridCRS.getGridBaseCRS()); MathTransform gridToCRS = reader.getOriginalGridToWorld(PixelInCell.CELL_CORNER); if (gridCRS != null) { Double[] origin = (Double[]) gridCRS.getGridOrigin(); final Map parameters = CoverageUtils.getParametersKVP(reader.getFormat() .getReadParameters()); final GeneralEnvelope intersected = new GeneralEnvelope(destinationEnvelopeInSourceCRS); parameters.put(AbstractGridFormat.READ_GRIDGEOMETRY2D.getName().toString(), destinationGridGeometry); coverage = (GridCoverage2D) reader.read(CoverageUtils.getParameters(reader.getFormat() .getReadParameters(), parameters, true)); if ((coverage == null) || !(coverage instanceof GridCoverage2D)) {
final GeneralEnvelope envelope = inReader.getOriginalEnvelope(); message = new StringBuilder("Original envelope is ").append(envelope .toString()); final GridEnvelope range = inReader.getOriginalGridRange(); final int w = range.getSpan(0); final int h = range.getSpan(1); gc = (GridCoverage2D) inReader.read(null); } catch (IOException e) { LOGGER.log(Level.SEVERE, e.getLocalizedMessage(), e);
@Override public ReferencedEnvelope getBounds() { if (reader != null) { CoordinateReferenceSystem crs = reader.getCrs(); GeneralEnvelope envelope = reader.getOriginalEnvelope(); if (envelope != null) { return new ReferencedEnvelope(envelope); } else if (crs != null) { return new ReferencedEnvelope(crs); } } return null; }
.getOriginalEnvelope()).getCoordinateReferenceSystem(); final MathTransform GCCRSTodeviceCRSTransformdeviceCRSToGCCRSTransform = CRS .findMathTransform(cvCRS, sourceCRS, true); new GridGeometry2D(new GeneralGridRange(destinationSize), destinationEnvelopeInSourceCRS)); final GridCoverage coverage = coverageReader.read(CoverageUtils.getParameters( coverageReader.getFormat().getReadParameters(), parameters, true));
private boolean renewCachedCoverage(DirectPosition centrePos) { final Rectangle queryRect = createQueryGridEnvelope(centrePos); if (queryRect.isEmpty()) { return false; } final AbstractGridCoverage2DReader reader = sourceRef.get(); GeneralParameterValue parameter = new Parameter( AbstractGridFormat.READ_GRIDGEOMETRY2D, new GridGeometry2D(new GridEnvelope2D(queryRect), reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER), reader.getCrs())); try { cachedCoverage = (GridCoverage2D) reader.read(new GeneralParameterValue[]{parameter}); return cachedCoverage != null; } catch (Exception ex) { throw new RuntimeException(ex); } }
GeneralEnvelope envelope = (GeneralEnvelope) coverageReader.getOriginalEnvelope(); CoordinateReferenceSystem actualCRS = coverageReader.getCrs(); if(coverageReader!=null) coverageReader.dispose(); } catch (Throwable e) {
layout = gcReader.getDatasetLayout(); if (heterogeneousGranules) { this.granuleBBOX = ReferencedEnvelope.reference(gcReader.getOriginalEnvelope()); boolean isMultidim = spiProvider.isMultidim(); if (!isMultidim) { this.granuleEnvelope = gcReader.getOriginalEnvelope(); gcReader.dispose(); } catch (Throwable t) {
envelope = inReader.getOriginalEnvelope(); inReader.dispose();
/** * Retrieves the {@link GeneralEnvelope} for this {@link AbstractGridCoverage2DReader}. * * @return the {@link GeneralEnvelope} for this {@link AbstractGridCoverage2DReader}. */ public GeneralEnvelope getOriginalEnvelope() { return getOriginalEnvelope(coverageName); }
if (choice == 0) { w = getOriginalGridRange(coverageName).getSpan(0); h = getOriginalGridRange(coverageName).getSpan(1); selectedRes[0] = getHighestRes()[0]; selectedRes[1] = getHighestRes()[1]; } else { w = (int) Math.round(getOriginalEnvelope(coverageName).getSpan(0) / selectedRes[0]); h = (int) Math.round(getOriginalEnvelope(coverageName).getSpan(1) / selectedRes[1]);
if (!checkName(coverageName)) { throw new IllegalArgumentException( "The specified coverageName " + coverageName + "is not supported"); final GridToEnvelopeMapper geMapper = new GridToEnvelopeMapper( getOriginalGridRange(coverageName), getOriginalEnvelope(coverageName)); geMapper.setPixelAnchor(PixelInCell.CELL_CENTER); raster2Model = geMapper.createTransform();
final double[][] compareLevels ) throws IndexOutOfBoundsException, IOException { double[] res = CoverageUtilities.getResolution((AffineTransform) coverageReader.getOriginalGridToWorld(PixelInCell.CELL_CORNER)); resolutionLevels[0][0] = res[0]; resolutionLevels[1][0] = res[1]; resolutionLevels[0][k] = resolutionLevels[0][0]*coverageReader.getOriginalGridRange().getSpan(0)/(1.0*imageioReader.getWidth(k)); resolutionLevels[1][k] = resolutionLevels[1][0]*coverageReader.getOriginalGridRange().getSpan(1)/(1.0*imageioReader.getHeight(k)); if (checkLevels) { if (Math.abs(resolutionLevels[0][k] - compareLevels[0][k]) > RESOLUTION_TOLERANCE_FACTOR * compareLevels[0][k] ||
int width = reader.getOriginalGridRange().getSpan(0); int height = reader.getOriginalGridRange().getSpan(1); if (reader != null) { try { reader.dispose(); } catch (Exception ee) { LOGGER.log(Level.FINE,
AbstractGridCoverage2DReader reader = format.getReader(file); DatasetLayout layout = reader.getDatasetLayout(); CoordinateReferenceSystem crs = reader.getCoordinateReferenceSystem(); final SimpleFeatureType indexSchema = sf.getFeatureType(); if (crs != null ReferencedEnvelope.reference(reader.getOriginalEnvelope()); Polygon nativeFootprint = JTS.toGeometry(envelope); SimpleFeatureType ftNative = FeatureTypes.transform( indexSchema, reader.getCoordinateReferenceSystem()); SimpleFeatureBuilder fb = new SimpleFeatureBuilder(ftNative); fb.init(sf);
coverageName, image, getCoordinateReferenceSystem(coverageName), raster2Model, bands, coverageName, image, new GeneralEnvelope(getOriginalEnvelope(coverageName)), bands, null,