Revision: 6122 http://sourceforge.net/p/jump-pilot/code/6122 Author: ma15569 Date: 2019-01-28 15:32:59 +0000 (Mon, 28 Jan 2019) Log Message: ----------- Added methods to copy raster to array limiting to a min/max values (to use in a histogram)
Modified Paths: -------------- core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridRasterWrapper.java Modified: core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridRasterWrapper.java =================================================================== --- core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridRasterWrapper.java 2019-01-25 11:44:24 UTC (rev 6121) +++ core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridRasterWrapper.java 2019-01-28 15:32:59 UTC (rev 6122) @@ -95,6 +95,54 @@ } /** + * Convert a band of OpenJUMPSextanteRasterLayer to a 1D Array as + * double. Limit the array to min/max values + * + * @param OpenJUMPSextanteRasterLayer + * @param int band + * @param double min + * @param double max + * @return + */ + public static double[] rasterToArray(OpenJUMPSextanteRasterLayer rstLayer, + int band, double min, double max) { + final int nx = rstLayer.getLayerGridExtent().getNX(); + final int ny = rstLayer.getLayerGridExtent().getNY(); + final GridWrapperNotInterpolated gwrapper = new GridWrapperNotInterpolated( + rstLayer, rstLayer.getLayerGridExtent()); + final double[] data = new double[nx * ny]; + int i = 0; + for (int x = 0; x < nx; x++) {// cols + for (int y = 0; y < ny; y++) {// rows + final double value = gwrapper.getCellValueAsDouble(x, y, band); + if (value != rstLayer.getNoDataValue() & value > min + & value < max) { + data[i] = value; + i++; + } + } + } + final double[] data2 = new double[i]; + System.arraycopy(data, 0, data2, 0, i); + return data2; + } + + /** + * Convert the first band of of OpenJUMPSextanteRasterLayer to a 1D Array as + * double. Limit the array to min/max values + * + * @param OpenJUMPSextanteRasterLayer + * @param double min + * @param double max + * @return + */ + + public static double[] rasterToArray(OpenJUMPSextanteRasterLayer rstLayer, + double min, double max) { + return rasterToArray(rstLayer, 0, min, max); + } + + /** * Convert a 2DArray (Matrix) as double to java.awt.image.Raster, to band 0 * * @param 2D Array as double _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel