/** * Returns a default processor instance. * * <p><strong>Note:</strong> this is a temporary method, until we have GeoAPI interface for * coverage processor and a factory finder for their implementations. */ public static synchronized CoverageProcessor getInstance() { return getInstance(null); }
/** * Creates a new instance using the specified hints. * * @param hints The hints, or {@code null} if none. */ public Operations(final RenderingHints hints) { if (hints != null && !hints.isEmpty()) { processor = CoverageProcessor.getInstance(new Hints(hints)); } else { processor = CoverageProcessor.getInstance(); } }
final boolean all = arguments.getFlag("-all"); args = arguments.getRemainingArguments(Integer.MAX_VALUE); final CoverageProcessor processor = getInstance(); try { if (args.length == 0) {
/** * Returns the processor, creating one if needed. */ private CoverageProcessor getProcessor() { // No need to synchronize. if (processor == null) { processor = CoverageProcessor.getInstance(); } return processor; }
/** * Returns a default processor instance. * <p> * <strong>Note:</strong> this is a temporary method, until we have GeoAPI interface for * coverage processor and a factory finder for their implementations. */ public static synchronized CoverageProcessor getInstance() { return getInstance(null); }
@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); }
@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); }
/** * Creates a new instance using the specified hints. * * @param hints The hints, or {@code null} if none. */ public Operations(final RenderingHints hints) { if (hints != null && !hints.isEmpty()) { processor = CoverageProcessor.getInstance(new Hints(hints)); } // Otherwise, will creates the processor only when first needed. }
final CoverageProcessor processor = CoverageProcessor.getInstance(hints); for (int i = 0; i < sources.length; i++) { if (sources[i] == null) {
final boolean all = arguments.getFlag("-all"); args = arguments.getRemainingArguments(Integer.MAX_VALUE); final CoverageProcessor processor = getInstance(); try { if (args.length == 0) {
public GridCoverage2D execute(GridCoverage2D inputCoverage, ReferencedEnvelope extent) { GeneralEnvelope bounds = new GeneralEnvelope(extent); // perform the crops final CoverageProcessor coverageProcessor = CoverageProcessor.getInstance(); final Operation cropOperation = coverageProcessor.getOperation("CoverageCrop"); final ParameterValueGroup param = cropOperation.getParameters(); param.parameter("Source").setValue(inputCoverage); param.parameter("Envelope").setValue(bounds); param.parameter("ROITolerance").setValue(roiTolerance); // default return doOperation(param, null); }
? CoverageProcessor.getInstance() : CoverageProcessor.getInstance(hints); final Operation operation = processor.getOperation("Resample"); final ParameterValueGroup parameters = operation.getParameters();
} else { final Operation operation = CoverageProcessor.getInstance().getOperation("Warp"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(coverage); CoverageProcessor.getInstance().doOperation(parameters, hints);
final Polygon poly, final Resolution resolution) { final CoverageProcessor processor = CoverageProcessor.getInstance(); final AbstractOperation op = (AbstractOperation) processor.getOperation("Histogram"); final ParameterValueGroup params = op.getParameters();
} else { final Operation operation = CoverageProcessor.getInstance().getOperation("Warp"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(sourceGC); CoverageProcessor.getInstance().doOperation(parameters, hints); sourceMinX, sourceMinY, this.adjustedTargetSizeX, this.adjustedTargetSizeY); hints.add(new Hints(JAI.KEY_IMAGE_LAYOUT, layout)); final Operation operation = CoverageProcessor.getInstance().getOperation("Warp"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(sourceGC); (GridCoverage2D) CoverageProcessor.getInstance().doOperation(parameters, hints); return gc;
final CoverageProcessor coverageProcessor = CoverageProcessor.getInstance(); final Operation cropOperation = coverageProcessor.getOperation("CoverageCrop");
CoverageProcessor.getInstance().getOperation("Warp"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(sourceGC); CoverageProcessor.getInstance(hints).doOperation(parameters, hints); final Operation operation = CoverageProcessor.getInstance().getOperation("Scale"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(sourceGC); parameters.parameter("yTrans").setValue(0.0); return (GridCoverage2D) CoverageProcessor.getInstance(hints).doOperation(parameters, hints);
CoverageProcessor.getInstance().getOperation("Warp"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(sourceGC); CoverageProcessor.getInstance(hints).doOperation(parameters, hints); final Operation operation = CoverageProcessor.getInstance().getOperation("Scale"); final ParameterValueGroup parameters = operation.getParameters(); parameters.parameter("Source").setValue(sourceGC); parameters.parameter("yTrans").setValue(0.0); return (GridCoverage2D) CoverageProcessor.getInstance(hints).doOperation(parameters, hints);
} else { geometry = geometry.intersection(sceneShape); final CoverageProcessor processor = CoverageProcessor.getInstance(); final AbstractOperation op = (AbstractOperation) processor.getOperation("CoverageCrop"); final ParameterValueGroup params = op.getParameters();
} else { geometry = geometry.intersection(sceneShape); final CoverageProcessor processor = CoverageProcessor.getInstance(); final AbstractOperation op = (AbstractOperation) processor.getOperation("CoverageCrop"); final ParameterValueGroup params = op.getParameters();