JTS.toGeometry((Envelope) new ReferencedEnvelope(grid.getEnvelope2D())); if (coverageBounds.intersects(rasterFilter)) { final ParameterValueGroup param = cropParams.clone(); param.parameter("source").setValue(grid); param.parameter("ROI").setValue(rasterFilter);
public ParameterValueGroup getWriteParameters() { if (this.writeParameters == null) throw new UnsupportedOperationException( "This format does not support usage of write parameters."); return this.writeParameters.clone(); }
public ParameterValueGroup getReadParameters() { if (this.readParameters == null) throw new UnsupportedOperationException( "This format does not support usage of read parameters."); return this.readParameters.clone(); }
/** Returns the parameter values. */ @Override public ParameterValueGroup getParameterValues() { return (parameters != null) ? parameters.clone() : super.getParameterValues(); }
/** * Constructs a conversion from a set of parameters. The properties given in argument follow the * same rules than for the {@link AbstractCoordinateOperation} constructor. * * @param properties Set of properties. Should contains at least {@code "name"}. * @param method The operation method. * @param parameters The parameter values. */ public DefiningConversion( final Map<String, ?> properties, final OperationMethod method, final ParameterValueGroup parameters) { super(properties, null, null, null, method); ensureNonNull("parameters", parameters); this.parameters = parameters.clone(); }
@Override public ParameterValueGroup getOgcParameters( ParameterValueGroup netcdfParameters) { double lonNorthPole = (Double) netcdfParameters .parameter(NetCDFUtilities.CENTRAL_MERIDIAN) .getValue(); double latNorthPole = (Double) netcdfParameters .parameter(NetCDFUtilities.LATITUDE_OF_ORIGIN) .getValue(); // Rotated pole is ambiguous so we assume an origin in the northern // hemisphere if (latNorthPole >= 90 || latNorthPole <= 0) { throw new RuntimeException( "Unexpected north pole latitude: " + latNorthPole); } double lonOrigin = LatLonPointImpl.lonNormal(lonNorthPole + 180); double latOrigin = 90 - latNorthPole; ParameterValueGroup ogcParameters = netcdfParameters.clone(); ogcParameters .parameter(NetCDFUtilities.CENTRAL_MERIDIAN) .setValue(lonOrigin); ogcParameters .parameter(NetCDFUtilities.LATITUDE_OF_ORIGIN) .setValue(latOrigin); return ogcParameters; }
ParameterValueGroup netcdfParameters = ogcParameters.clone(); netcdfParameters .parameter(NetCDFUtilities.CENTRAL_MERIDIAN)
public ParameterValueGroup getReadParameters() { if (this.readParameters == null) throw new UnsupportedOperationException( "This format does not support usage of read parameters."); return (ParameterValueGroup) this.readParameters.clone(); }
/** * @see org.opengis.coverage.grid.Format#getWriteParameters() */ public ParameterValueGroup getWriteParameters() { if (this.writeParameters == null) throw new UnsupportedOperationException( "This format does not support usage of write parameters."); return (ParameterValueGroup) this.writeParameters.clone(); }
public ParameterValueGroup getWriteParameters() { if (this.writeParameters == null) throw new UnsupportedOperationException( "This format does not support usage of write parameters."); return (ParameterValueGroup) this.writeParameters.clone(); }
/** * @see org.opengis.coverage.grid.Format#getReadParameters() */ public ParameterValueGroup getReadParameters() { if (this.readParameters == null) throw new UnsupportedOperationException( "This format does not support usage of read parameters."); return (ParameterValueGroup) this.readParameters.clone(); }
.getOperation("SelectSampleDimension") .getParameters() .clone(); param.parameter("source").setValue(gc); param.parameter("SampleDimensions").setValue(new int[] {visibleBand});
@Test public void testReprojectTransparency() throws Exception { ReferencedEnvelope re = new ReferencedEnvelope(0, 20, 20, 40, DefaultGeographicCRS.WGS84); CoordinateReferenceSystem utm32n = CRS.decode("EPSG:32632", true); ReferencedEnvelope mapExtent = re.transform(utm32n, true); // get a subset of the coverage GridCoverage2D global = worldReader.read(null); CoverageProcessor processor = CoverageProcessor.getInstance(new Hints(Hints.LENIENT_DATUM_SHIFT, Boolean.TRUE)); final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters().clone(); param.parameter("source").setValue(global); param.parameter("Envelope").setValue(re); GridCoverage2D cropped = (GridCoverage2D) ((Crop) processor.getOperation("CoverageCrop")).doOperation(param, null); // render with reprojection, the ROI should be used to create transparent pixels BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D graphics = bi.createGraphics(); GridCoverageRenderer renderer = new GridCoverageRenderer(utm32n, mapExtent, new Rectangle(0, 0, 100, 100), null); renderer.paint(graphics, cropped, new StyleBuilder().createRasterSymbolizer()); graphics.dispose(); // top left and top right corners must be transparent now, the UTM shrinks towards the pole assertPixelIsTransparent(bi, 0, 0); assertPixelIsTransparent(bi, bi.getWidth() - 1, 0); }
processor.getOperation("Mosaic").getParameters().clone(); param.parameter("sources").setValue(coverages); param.parameter("geometry").setValue(gridGeometry);
@Test public void testRenderOutsideBounds() throws Exception { ReferencedEnvelope re = new ReferencedEnvelope(0, 20, 20, 40, DefaultGeographicCRS.WGS84); // get a subset of the coverage GridCoverage2D global = worldReader.read(null); CoverageProcessor processor = CoverageProcessor.getInstance(new Hints(Hints.LENIENT_DATUM_SHIFT, Boolean.TRUE)); final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters().clone(); param.parameter("source").setValue(global); param.parameter("Envelope").setValue(re); GridCoverage2D cropped = (GridCoverage2D) ((Crop) processor.getOperation("CoverageCrop")).doOperation(param, null); ReferencedEnvelope reOutside = new ReferencedEnvelope(40, 60, 20, 40, DefaultGeographicCRS.WGS84); GridCoverageRenderer renderer = new GridCoverageRenderer( DefaultGeographicCRS.WGS84, reOutside, new Rectangle(0, 0, 100, 100), null); RasterSymbolizer symbolizer = new StyleBuilder().createRasterSymbolizer(); Interpolation interpolation = Interpolation.getInstance(Interpolation.INTERP_NEAREST); RenderedImage image = renderer.renderImage(cropped, symbolizer, interpolation, null, 256, 256); // outside coverage bounds, just return null but don't NPE assertNull(image); }
/** * Cropping the provided coverage to the requested geographic area. * * @param gc * @param envelope * @param crs * @return */ static GridCoverage2D crop( GridCoverage2D gc, GeneralEnvelope envelope, double[] background, final Hints hints) { final GeneralEnvelope oldEnvelope = (GeneralEnvelope) gc.getEnvelope(); // intersect the envelopes in order to prepare for cropping the coverage // down to the neded resolution final GeneralEnvelope intersectionEnvelope = new GeneralEnvelope(envelope); intersectionEnvelope.setCoordinateReferenceSystem(envelope.getCoordinateReferenceSystem()); intersectionEnvelope.intersect(oldEnvelope); // Do we have something to show? After the crop I could get a null // coverage which would mean nothing to show. if (intersectionEnvelope.isEmpty()) { return null; } // crop final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters().clone(); param.parameter("source").setValue(gc); param.parameter("Envelope").setValue(intersectionEnvelope); return (GridCoverage2D) ((Crop) processor.getOperation("CoverageCrop")).doOperation(param, hints); }
processor.getOperation("Resample").getParameters().clone(); param.parameter("source").setValue(gc); param.parameter("CoordinateReferenceSystem").setValue(crs);
(ParameterValueGroup) processor.getOperation("Resample").getParameters().clone(); param.parameter("source").setValue(gc); param.parameter("CoordinateReferenceSystem").setValue(gc.getCoordinateReferenceSystem2D());
public static Coverage bandSelect(final GridCoverage coverage, final int[] bands) { Coverage bandSelectedCoverage; if ((bands != null) && (bands.length > 0)) { /* Operations.DEFAULT.selectSampleDimension(coverage, bands) */ final ParameterValueGroup param = (ParameterValueGroup) bandSelectParams.clone(); param.parameter("Source").setValue(coverage); param.parameter("SampleDimensions").setValue(bands); // param.parameter("VisibleSampleDimension").setValue(bands); bandSelectedCoverage = bandSelectFactory.doOperation(param, hints); } else { bandSelectedCoverage = coverage; } return bandSelectedCoverage; } }
@Override public void actionPerformed(ActionEvent e) { final String operationName = model.operationWrapper.getName(); final ModalDialog modalDialog = new ModalDialog(parent, operationName + " - Parameters", ModalDialog.ID_OK_CANCEL, null); final ParameterValueGroup workCopy = model.parameters.clone(); final PropertyContainer propertyContainer = createValueContainer(workCopy); modalDialog.setContent(new PropertyPane(propertyContainer).createPanel()); if (modalDialog.show() == AbstractDialog.ID_OK) { vc.setValue(PARAMETERS, workCopy); } } }