/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.geotools.demo.coverage;
import org.geotools.coverage.CoverageFactoryFinder;
import org.geotools.coverage.grid.GridCoordinates2D;
import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverage.grid.GridCoverageFactory;
import org.geotools.geometry.jts.ReferencedEnvelope;
/**
* @author Michael Bedward
*/
public class WritableGridDemo {
private static final int WIDTH = 512;
public static void main(String[] args) {
GridCoverageFactory gcf = CoverageFactoryFinder.getGridCoverageFactory(null);
float[][] data = new float[WIDTH][WIDTH];
GridCoverage2D cov = gcf.create("cov", data, new ReferencedEnvelope(0, WIDTH, 0, WIDTH, null));
WritableGridCoverage2D writableCov = new WritableGridCoverage2D(cov);
double centre = WIDTH / 2;
for (int y = 0; y < WIDTH; y++) {
double dy = (y - centre) / centre;
double dy2 = dy*dy;
for (int x = 0; x < WIDTH; x++) {
double dx = (x - centre) / centre;
double d = Math.sqrt(dx*dx + dy2);
GridCoordinates2D coords = new GridCoordinates2D(x, y);
writableCov.setValue(coords, (float) Math.sin(8 * Math.PI * d));
}
}
writableCov.show();
}
}