@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 MathTransform toSource = geometry.getGridToCRS(); MathTransform toTarget; if (CRS.equalsIgnoreMetadata(gridToCrs2D, toSource2D)) {
ps.println("Grid CRS: " + coverage.getCoordinateReferenceSystem()); ps.println("Grid range: " + coverage.getGridGeometry().getGridRange()); ps.println("Grid to world: " + coverage.getGridGeometry().getGridToCRS()); ps.println("Contents:"); RenderedImage ri = coverage.getRenderedImage();
targetRange, gg.getGridToCRS(), gg.getCoordinateReferenceSystem2D());
new GridGeometry2D( expandedRange, requestedGridGeometry.getGridToCRS(), requestedGridGeometry.getCoordinateReferenceSystem()); value.setValue(expandedGG);
MathTransform tx = g.getGridToCRS();
public double[] getFullResolution() { AffineTransform gridToCRS = (AffineTransform) gridGeometry.getGridToCRS(); return CoverageUtilities.getResolution(gridToCRS); }
int minY = gridRange.y; AffineTransform gridToCRS = (AffineTransform) gridGeometry.getGridToCRS(); double xRes = XAffineTransform.getScaleX0(gridToCRS); double yRes = XAffineTransform.getScaleY0(gridToCRS);
/** * Checks if two geometries are equal, ignoring unspecified fields. If one or both geometries * has no "gridToCRS" transform, then this properties is not taken in account. Same apply for * the grid range. * * @param sourceGG The source geometry (never {@code null}). * @param targetGG The target geometry. May be {@code null}, which is considered as equivalent. * @return {@code true} if the two geometries are equal, ignoring unspecified fields. */ private static boolean equivalent( final GridGeometry2D sourceGG, final GridGeometry2D targetGG) { if (targetGG == null || targetGG.equals(sourceGG)) { return true; } if (targetGG.isDefined(GridGeometry2D.GRID_RANGE_BITMASK) && sourceGG.isDefined(GridGeometry2D.GRID_RANGE_BITMASK)) { if (!targetGG.getGridRange().equals(sourceGG.getGridRange())) { return false; } } if (targetGG.isDefined(GridGeometry2D.GRID_TO_CRS_BITMASK) && sourceGG.isDefined(GridGeometry2D.GRID_TO_CRS_BITMASK)) { // No needs to ask for a transform relative to a corner // since we will not apply a transformation here. if (!targetGG.getGridToCRS().equals(sourceGG.getGridToCRS())) { return false; } } return true; }
private GridGeometry2D applyReadGutter(GridGeometry2D gg) { MathTransform gridToCRS = gg.getGridToCRS(); GridEnvelope2D range = new GridEnvelope2D(gg.getGridRange2D()); applyReadGutter(range); CoordinateReferenceSystem crs = gg.getEnvelope2D().getCoordinateReferenceSystem(); GridGeometry2D result = new GridGeometry2D(range, PixelInCell.CELL_CORNER, gridToCRS, crs, null); return result; }
spatialDomain.getRasterElements(false, null); final GridGeometry2D gridGeometry2D = spatialDomain.getGridGeometry(); final AffineTransform gridToCRS = (AffineTransform) gridGeometry2D.getGridToCRS(); final double[] coverageFullResolution = CoverageUtilities.getResolution(gridToCRS); final MathTransform raster2Model = gridGeometry2D.getGridToCRS(); final ReferencedEnvelope bbox = spatialDomain.getReferencedEnvelope(); final ReferencedEnvelope referencedEnvelope = new ReferencedEnvelope(bbox);
(AffineTransform2D) resampledCoverage.getGridGeometry().getGridToCRS()); finalRaster2Model.concatenate(CoverageUtilities.CENTER_TO_CORNER);
MathTransform r2m = coverage.getGridGeometry().getGridToCRS(); Envelope env = new Envelope(25, 75, 25, 75); ReferencedEnvelope read26915 = new ReferencedEnvelope(JTS.transform(env, r2m), nativeCrs);
reducedRange, gg.getGridToCRS(), gg.getCoordinateReferenceSystem());
transform = gridGeometry.getGridToCRS(PixelInCell.CELL_CORNER);
private RenderedImage performShadedRelief( ImageWorker intensityWorker, GridCoverage2D source, Hints hints) { RenderedImage ri = source.getRenderedImage(); MathTransform g2w = source.getGridGeometry().getGridToCRS(); AffineTransform af = (AffineTransform) g2w; CoordinateReferenceSystem crs = source.getCoordinateReferenceSystem();
final MathTransform toCRS = primarySource.getGridGeometry().getGridToCRS(); final RenderedImage data = createRenderedImage(parameters.parameters, hints); final Map properties = getProperties(data, crs, name, toCRS, sources, parameters);
newImage, visual.getCoordinateReferenceSystem2D(), visual.getGridGeometry().getGridToCRS(), bands, new GridCoverage[] {visual},
final MathTransform toCRS = parameters.finalGeometry.getGridToCRS(); final RenderedImage data = createRenderedImage(parameters.parameters, hints); final Map<String, ?> properties =
(AffineTransform) ((GridGeometry2D) source.getGridGeometry()) .getGridToCRS(PixelInCell.CELL_CORNER);