public MathTransform getOriginalGridToWorld(PixelInCell pixInCell) { return delegate.getOriginalGridToWorld(pixInCell); }
public MathTransform getOriginalGridToWorld(PixelInCell pixInCell) { return delegate.getOriginalGridToWorld(pixInCell); }
public MathTransform getOriginalGridToWorld(String coverageName, PixelInCell pixInCell) { return delegate.getOriginalGridToWorld(coverageName, pixInCell); }
public MathTransform getOriginalGridToWorld(PixelInCell pixInCell) { return delegate.getOriginalGridToWorld(coverageName, pixInCell); }
public MathTransform getOriginalGridToWorld(String coverageName, PixelInCell pixInCell) { checkCoverageName(coverageName); return delegate.getOriginalGridToWorld(coverageName, pixInCell); }
public MathTransform getOriginalGridToWorld(String coverageName, PixelInCell pixInCell) { checkCoverageName(coverageName); return delegate.getOriginalGridToWorld(coverageName, pixInCell); }
public MathTransform getOriginalGridToWorld(PixelInCell pixInCell) { if (homogeneousCoverages) { return delegate.getOriginalGridToWorld(referenceName, pixInCell); } final GridToEnvelopeMapper geMapper = new GridToEnvelopeMapper(getOriginalGridRange(), getOriginalEnvelope()); geMapper.setPixelAnchor(PixelInCell.CELL_CENTER); MathTransform2D coverageGridToWorld2D = (MathTransform2D) geMapper.createTransform(); // we do not have to change the pixel datum if (pixInCell == PixelInCell.CELL_CENTER) return coverageGridToWorld2D; // we do have to change the pixel datum if (coverageGridToWorld2D instanceof AffineTransform) { final AffineTransform tr = new AffineTransform((AffineTransform) coverageGridToWorld2D); tr.concatenate(AffineTransform.getTranslateInstance(-0.5, -0.5)); return ProjectiveTransform.create(tr); } throw new IllegalStateException("This reader's grid to world transform is invalid!"); }
reader.getOriginalGridToWorld(PixelInCell.CELL_CORNER);
new GridGeometry2D( originalRange, reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER), nativeCRS));
new GridGeometry2D( originalRange, reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER), nativeCRS));
private Rectangle createQueryGridEnvelope(DirectPosition pos) { final GridCoverage2DReader reader = sourceRef.get(); try { MathTransform worldToGridTransform = reader.getOriginalGridToWorld(PixelInCell.CELL_CORNER).inverse(); DirectPosition midPos = worldToGridTransform.transform(pos, null); int x = (int) midPos.getOrdinate(0); int y = (int) midPos.getOrdinate(1); int halfWidth = CACHED_RASTER_WIDTH / 2; final Rectangle queryRect = new Rectangle( x - halfWidth, y - halfWidth, CACHED_RASTER_WIDTH, CACHED_RASTER_WIDTH); GridEnvelope gridEnv = reader.getOriginalGridRange(); Rectangle rect = new Rectangle( gridEnv.getLow(0), gridEnv.getLow(1), gridEnv.getSpan(0), gridEnv.getSpan(1)); XRectangle2D.intersect(queryRect, rect, queryRect); return queryRect; } catch (Exception ex) { throw new RuntimeException(ex); } } }
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); } }
/** * Computes the transformation between raster and world coordinates, taking scaling into * account. * * @return the grid-to-CRS transformation * @throws IOException */ MathTransform getGridToCRSTransform() throws IOException { // scaling transform AffineTransform scaleTransform = getScaleTransform(); // grid-to-world transformation AffineTransform g2w = (AffineTransform) reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER); // final transformation: g2w + scaling AffineTransform finalTransform = new AffineTransform(g2w); finalTransform.concatenate(scaleTransform); return ProjectiveTransform.create(finalTransform); }
/** @return the native resolution */ double[] computeNativeResolution() { double[] nativeResolution = new double[2]; MathTransform transform = reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER); AffineTransform af = (AffineTransform) transform; // getting the native resolution nativeResolution[0] = XAffineTransform.getScaleX0(af); nativeResolution[1] = XAffineTransform.getScaleY0(af); return nativeResolution; }
return reader.getOriginalGridToWorld(pixelInCell); MathTransform transform = reader.getOriginalGridToWorld(pixelInCell); AffineTransform af = (AffineTransform) transform;
MathTransform g2w = reader.getOriginalGridToWorld(PixelInCell.CELL_CORNER); if (g2w instanceof AffineTransform2D && readGG.getGridToCRS2D() instanceof AffineTransform2D) {
MathTransform g2w = reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER); GridGeometry2D gg = new GridGeometry2D(
new GridGeometry2D( reader.getOriginalGridRange(), reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER), reader.getCoordinateReferenceSystem()); handleDomainSet(gg, 2, encodedId, srsName, axisSwap);
@Before public void getRainReader() throws IOException { // get the original transform CoverageInfo ci = getCatalog().getCoverageByName(getLayerId(RAIN)); coverageReader = (GridCoverage2DReader) ci.getGridCoverageReader(null, null); originalMathTransform = (AffineTransform2D) coverageReader.getOriginalGridToWorld(PixelInCell.CELL_CORNER); }
reader.getOriginalGridToWorld(PixelInCell.CELL_CENTER)); final double scale = axisIndex == 0 ? affineTransform.getScaleX() : -affineTransform.getScaleY();