Revision: 6589
          http://sourceforge.net/p/jump-pilot/code/6589
Author:   ma15569
Date:     2020-10-08 15:08:04 +0000 (Thu, 08 Oct 2020)
Log Message:
-----------
Added Raster to bypass java hip space on building  a double array of cell values
if cols*rows is big (large rasters)

Modified Paths:
--------------
    
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
        2020-10-08 10:39:29 UTC (rev 6588)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
        2020-10-08 15:08:04 UTC (rev 6589)
@@ -20,7 +20,11 @@
 
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
+import java.awt.image.DataBuffer;
+import java.awt.image.WritableRaster;
 
+import javax.media.jai.RasterFactory;
+
 import org.openjump.core.rasterimage.sextante.ISextanteLayer;
 import org.openjump.core.rasterimage.sextante.ISextanteRasterLayer;
 
@@ -44,6 +48,9 @@
        int m_iNX;
        int m_iNY;
        Envelope m_Envelope;
+       //Added Raster to bypass java hip space on building  a double array of 
cell values
+       //if cols*rows is big (large rasters)
+    WritableRaster m_Raster;
 
        public GridExtent(){}
 
@@ -118,6 +125,49 @@
        }
 
        /**
+        * Method to build a GridExtent with a defined Raster
+        * 
+        * @param double cellSize along X
+        * @param double cellSize along Y
+        * @param Envelope envelope
+        * @param double nodata value
+        */
+
+          public void setValuesAndRaster(double cellSizeX, double cellSizeY, 
Envelope envelope, double nodata) {
+                  m_dCellSizeX = cellSizeX;
+                  m_dCellSizeY = cellSizeY;    
+                  m_dXMin = Math.min(envelope.getMinX(), envelope.getMaxX());
+                  m_dXMax = Math.max(envelope.getMinX(), envelope.getMaxX());
+                  m_dYMin = Math.min(envelope.getMinY(), envelope.getMaxY());
+                  m_dYMax = Math.max(envelope.getMinY(), envelope.getMaxY());
+                  recalculateNXAndNY();
+                  m_iNX = this.getNX();
+                  m_iNY = this.getNY();
+                  m_Raster = RasterFactory.createBandedRaster(
+                       DataBuffer.TYPE_FLOAT, m_iNX , m_iNY , 1, null);
+              for (int i = 0; i < m_iNX; i++) {
+                   for (int j = 0; j < m_iNY; j++) {
+                       m_Raster.setSample(i, j, 0, nodata);
+                   }
+               }                   
+               }
+        
+       
+
+               
+               public WritableRaster getRaster() {
+                       return m_Raster;
+               }
+        
+               /**
+                * Returns the extension of Grid as 
com.vividsolutions.jts.geom.Envelope
+                * @return Envelope
+                */
+               public Envelope getEnvelope() {
+                       return new Envelope(m_dXMin,m_dXMax,m_dYMin, m_dYMax );
+               }
+       
+       /**
         * Returns the number of columns in the extent
         * @return the number of columns
         */
@@ -136,16 +186,8 @@
                return m_iNY;
 
        }
-
-       /**
-        * Returns the extension of Grid as com.vividsolutions.jts.geom.Envelope
-        * @return Envelope
-        */
+ 
        
-       public Envelope getEnvelope() {
-               return m_Envelope;
-       }
-       
        private void recalculateNXAndNY(){
 
                m_iNY = (int) Math.floor((m_dYMax - m_dYMin) / m_dCellSizeY);



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to