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
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel