package org.jgrasstools.hortonmachine.models.hm;
import java.io.IOException;
import java.util.HashMap;
import org.geotools.coverage.grid.GridCoverage2D;
import org.jgrasstools.gears.utils.coverage.CoverageUtilities;
import org.jgrasstools.hortonmachine.modules.geomorphology.gradient.OmsGradient;
import org.jgrasstools.hortonmachine.utils.HMTestCase;
import org.jgrasstools.hortonmachine.utils.HMTestMaps;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
/**
* It test the {@link OmsGradient} module.
*
* @author Andrea Antonello (www.hydrologis.com)
*/
public class TestGradient extends HMTestCase {
public void testGradient() throws IOException {
HashMap<String, Double> envelopeParams = HMTestMaps.getEnvelopeparams();
CoordinateReferenceSystem crs = HMTestMaps.getCrs();
double[][] pitData = HMTestMaps.pitData;
GridCoverage2D pitfillerCoverage = CoverageUtilities.buildCoverage("elevation", pitData, envelopeParams, crs, true);
OmsGradient gradient = new OmsGradient();
gradient.inElev = pitfillerCoverage;
gradient.pm = pm;
gradient.process();
GridCoverage2D gradientCoverage = gradient.outSlope;
checkMatrixEqual(gradientCoverage.getRenderedImage(), HMTestMaps.gradientData, 0.01);
}
public void testGradientHorn() throws IOException {
HashMap<String, Double> envelopeParams = HMTestMaps.getEnvelopeparams();
CoordinateReferenceSystem crs = HMTestMaps.getCrs();
double[][] pitData = HMTestMaps.pitData;
GridCoverage2D pitfillerCoverage = CoverageUtilities.buildCoverage("elevation", pitData, envelopeParams, crs, true);
OmsGradient gradient = new OmsGradient();
gradient.inElev = pitfillerCoverage;
gradient.pm = pm;
gradient.pMode = 1;
gradient.process();
GridCoverage2D gradientCoverage = gradient.outSlope;
checkMatrixEqual(gradientCoverage.getRenderedImage(), HMTestMaps.gradientHornData, 0.01);
}
public void testGradientEvans() throws IOException {
HashMap<String, Double> envelopeParams = HMTestMaps.getEnvelopeparams();
CoordinateReferenceSystem crs = HMTestMaps.getCrs();
double[][] pitData = HMTestMaps.pitData;
GridCoverage2D pitfillerCoverage = CoverageUtilities.buildCoverage("elevation", pitData, envelopeParams, crs, true);
OmsGradient gradient = new OmsGradient();
gradient.inElev = pitfillerCoverage;
gradient.pm = pm;
gradient.pMode = 2;
gradient.process();
GridCoverage2D gradientCoverage = gradient.outSlope;
checkMatrixEqual(gradientCoverage.getRenderedImage(), HMTestMaps.gradientEvansData, 0.01);
}
}