/**
* This file is hereby placed into the Public Domain. This means anyone is
* free to do whatever they wish with this file.
*/
package mil.nga.giat.process.elasticsearch;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverage.processing.CoverageProcessor;
import org.geotools.coverage.processing.Operations;
import org.geotools.geometry.GeneralEnvelope;
import org.opengis.geometry.Envelope;
import org.opengis.parameter.ParameterValueGroup;
public class GridCoverageUtil {
public static GridCoverage2D scale(GridCoverage2D coverage, float width, float height) {
final RenderedImage renderedImage = coverage.getRenderedImage();
final Raster renderedGrid = renderedImage.getData();
float yScale = width/renderedGrid.getWidth();
float xScale = height/renderedGrid.getHeight();
final Operations ops = new Operations(null);
return (GridCoverage2D) ops.scale(coverage, xScale, yScale, 0, 0);
}
public static GridCoverage2D crop(GridCoverage2D coverage, Envelope envelope) {
final CoverageProcessor processor = new CoverageProcessor();
final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters();
final GeneralEnvelope crop = new GeneralEnvelope(envelope);
param.parameter("Source").setValue( coverage );
param.parameter("Envelope").setValue( crop );
return (GridCoverage2D) processor.doOperation(param);
}
}