assertNotNull(cv); assertNotNull(cv.getGrid()); assertNotNull(cv.getGrid().getGridRange()); assertNotNull(cv.getCRS()); assertNotNull(cv.getGrid().getGridToCRS()); assertEquals(cv.getGrid().getGridRange().getLow(0), 0);
final int dimensions = geometry.getGridRange().getDimension(); String lower = ""; String upper = ""; for (int i = 0; i < dimensions; i++) { lower = lower + geometry.getGridRange().getLow(i) + " "; upper = upper + geometry.getGridRange().getHigh(i) + " ";
/** * Creates a new grid geometry with the same values than the given grid geometry. This is a copy * constructor useful when the instance must be a {@code GeneralGridGeometry}. * * @param other The other grid geometry to copy. * @since 2.5 */ public GeneralGridGeometry(final GridGeometry other) { if (other instanceof GeneralGridGeometry) { // Uses this path when possible in order to accept null values. final GeneralGridGeometry general = (GeneralGridGeometry) other; gridRange = general.gridRange; // Do not clone; we assume it is safe to share. gridToCRS = general.gridToCRS; cornerToCRS = general.cornerToCRS; envelope = general.envelope; } else { gridRange = other.getGridRange(); gridToCRS = other.getGridToCRS(); if (gridRange != null && gridToCRS != null) { envelope = new GeneralEnvelope(gridRange, PixelInCell.CELL_CENTER, gridToCRS, null); } else { envelope = null; } } }
/** * Creates a new grid geometry with the same values than the given grid geometry. This * is a copy constructor useful when the instance must be a {@code GeneralGridGeometry}. * * @param other The other grid geometry to copy. * * @since 2.5 */ public GeneralGridGeometry(final GridGeometry other) { if (other instanceof GeneralGridGeometry) { // Uses this path when possible in order to accept null values. final GeneralGridGeometry general = (GeneralGridGeometry) other; gridRange = general.gridRange; // Do not clone; we assume it is safe to share. gridToCRS = general.gridToCRS; cornerToCRS = general.cornerToCRS; envelope = general.envelope; } else { gridRange = other.getGridRange(); gridToCRS = other.getGridToCRS(); if (gridRange!=null && gridToCRS!=null) { envelope = new GeneralEnvelope(gridRange, PixelInCell.CELL_CENTER, gridToCRS, null); } else { envelope = null; } } }
gridRange = gridGeometry.getGridRange(); gridGeometry = new GridGeometry2D(gridRange, target);
lowers += (grid.getGridRange().getLower(r) + " "); upers += (grid.getGridRange().getUpper(r) + " "); tempResponse.append("\n <gml:offsetVector>" + (gridToCRS != null ? ((AffineTransform) gridToCRS).getScaleX() + " " + ((AffineTransform) gridToCRS).getShearX() : ((cvEnvelope != null) ? ((cvEnvelope.getUpperCorner().getOrdinate(0) - cvEnvelope.getLowerCorner().getOrdinate(0)) / (grid.getGridRange().getUpper(0) - grid.getGridRange().getLower(0))) : 0.0) + " 0.0") + "</gml:offsetVector>"); tempResponse.append("\n <gml:offsetVector>" + (gridToCRS != null ? ((AffineTransform) gridToCRS).getShearY() + " " + ((AffineTransform) gridToCRS).getScaleY() : "0.0 " + ((cvEnvelope != null) ? ((cvEnvelope.getLowerCorner().getOrdinate(1) - cvEnvelope.getUpperCorner().getOrdinate(1)) / (grid.getGridRange().getUpper(1) - grid.getGridRange().getLower(1))) : -0.0)) + "</gml:offsetVector>"); tempResponse.append("\n </gml:RectifiedGrid>");
range = coverage.getGridGeometry().getGridRange(); if (range==null || range.getDimension()<=dimension) { return null;
final GridEnvelope gridRange = originalGrid.getGridRange(); final AffineTransform2D gridToCRS = (AffineTransform2D) originalGrid.getGridToCRS(); final int gridDimension = (gridToCRS != null ? gridToCRS.getSourceDimensions() : 0);
final GridEnvelope gridEnvelope = gridCoverage.getGridGeometry().getGridRange();
final GridGeometry geometry = element.getGridGeometry(); if (geometry != null) { final GridRange range = geometry.getGridRange(); final MathTransform transform = geometry.getGridToCRS(); final int dimension = transform.getSourceDimensions();
cinfo.setGrid(new GridGeometry2D(grid.getGridRange(), grid.getGridToCRS(), resourceInfo.getCRS()));
@Test public void testRotated() throws Exception { final String layerId = getLayerId(MockData.ROTATED_CAD); // do the request Map<String, Object> raw = baseMap(); raw.put("identifier", layerId); raw.put("format", "image/geotiff"); raw.put( "BoundingBox", "7.7634301664746515,45.14713380418506,7.764350661575157,45.14763319238466,EPSG:4326"); GridCoverage[] coverages = executeGetCoverageKvp(raw); // System.out.println(coverages[0]); // check the envelope Envelope envelope = coverages[0].getEnvelope(); // System.out.println(envelope); CoordinateReferenceSystem targetCRS = CRS.decode("urn:x-ogc:def:crs:EPSG:3003"); assertEquals(targetCRS, envelope.getCoordinateReferenceSystem()); // check we did not get a massive raster out GridEnvelope range = coverages[0].getGridGeometry().getGridRange(); assertEquals(482, range.getSpan(0)); assertEquals(447, range.getSpan(1)); }
GridEnvelope range = coverages[0].getGridGeometry().getGridRange(); assertEquals(360, range.getSpan(0)); assertEquals(499, range.getSpan(1));
final GridEnvelope e = resampledCoverage.getGridGeometry().getGridRange(); boolean resize = false;
@Test public void testTinyRasterBboxContained() throws Exception { CoverageInfo coverageInfo = addRasterToMap(MockData.TASMANIA_DEM); Envelope env = coverageInfo.boundingBox(); Coordinate center = env.centre(); GridEnvelope range = coverageInfo.getGrid().getGridRange(); double offset = (env.getMaxX() - env.getMinX()) / range.getSpan(0) / 10.0; Rectangle imageBounds = produceMap( center.x + offset, center.x + 2 * offset, center.y + offset, center.y + 2 * offset); assertNotBlank("testTinyRasterBboxContained", this.image); assertEquals("Mosaic", this.op.getOperationName()); Rectangle roiBounds = getRoiBounds(); assertTrue( "Expected " + imageBounds + " to contain " + roiBounds, imageBounds.contains(roiBounds)); }
cinfo.setGrid( new GridGeometry2D( grid.getGridRange(), grid.getGridToCRS(), resourceInfo.getCRS()));
@Test public void testTinyRasterBboxIntersection() throws Exception { CoverageInfo coverageInfo = addRasterToMap(MockData.TASMANIA_DEM); Envelope env = coverageInfo.boundingBox(); GridEnvelope range = coverageInfo.getGrid().getGridRange(); double offset = (env.getMaxX() - env.getMinX()) / range.getSpan(0) / 20.0; Rectangle imageBounds = produceMap( env.getMinX() - offset, env.getMinX() + offset, env.getMaxY() - offset, env.getMaxY() + offset); assertNotBlank("testTinyRasterBboxIntersection", this.image); assertEquals("Mosaic", this.op.getOperationName()); Rectangle roiBounds = getRoiBounds(); assertTrue( "Expected " + imageBounds + " to contain " + roiBounds, imageBounds.contains(roiBounds)); }
@Test public void testTinyRasterBboxNoIntersection() throws Exception { CoverageInfo coverageInfo = addRasterToMap(MockData.TASMANIA_DEM); Envelope env = coverageInfo.boundingBox(); GridEnvelope range = coverageInfo.getGrid().getGridRange(); double offset = (env.getMaxX() - env.getMinX()) / range.getSpan(0) / 10.0; Rectangle imageBounds = produceMap( env.getMaxX() + offset, env.getMaxX() + 2 * offset, env.getMinY() - 2 * offset, env.getMinY() - offset); assertNotBlank("testTinyRasterBboxNoIntersection", this.image); assertEquals("Mosaic", this.op.getOperationName()); Rectangle roiBounds = getRoiBounds(); assertTrue( "Expected " + imageBounds + " to contain " + roiBounds, imageBounds.contains(roiBounds)); }
gridRange = gridGeometry.getGridRange(); gridGeometry = new GridGeometry2D(gridRange, target);
GridEnvelope originalRange = original.getGridGeometry().getGridRange(); GridEnvelope resultRange = gc.getGridGeometry().getGridRange(); assertEquals(originalRange.getSpan(0) * 2, resultRange.getSpan(0)); assertEquals(originalRange.getSpan(1) * 2, resultRange.getSpan(1));