Revision: 4434
          http://sourceforge.net/p/jump-pilot/code/4434
Author:   bertazza
Date:     2015-05-11 15:52:42 +0000 (Mon, 11 May 2015)
Log Message:
-----------
Sextante raster layers: added ability to handle rasters with different x and y 
cell sizes.

Modified Paths:
--------------
    core/trunk/ChangeLog
    core/trunk/src/org/openjump/core/rasterimage/RasterImageIOUtils.java
    core/trunk/src/org/openjump/core/rasterimage/WorldFileHandler.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/AbstractSextanteRasterLayer.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/ISextanteRasterLayer.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/OpenJUMPSextanteRasterLayer.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapper.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperInterpolated.java
    
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperNotInterpolated.java
    
core/trunk/src/org/openjump/core/ui/plugin/raster/CreatePolygonGridFromSelectedImageLayerPlugIn.java
    core/trunk/src/org/openjump/core/ui/plugin/raster/ProfileGraphTool.java
    
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java

Modified: core/trunk/ChangeLog
===================================================================
--- core/trunk/ChangeLog        2015-05-11 06:39:01 UTC (rev 4433)
+++ core/trunk/ChangeLog        2015-05-11 15:52:42 UTC (rev 4434)
@@ -1,5 +1,8 @@
 # for display continuity sake please use 2 spaces instead of tabs
 
+2015-05-11 bertaz
+  * Sextante raster layers: added ability to handle rasters with different x 
and y cell sizes.
+
 2015-05-10 mmichaud <m.michael.mich...@orange.fr>
   * Repair and improve SaveViewAsBeanTool
 

Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageIOUtils.java
===================================================================
--- core/trunk/src/org/openjump/core/rasterimage/RasterImageIOUtils.java        
2015-05-11 06:39:01 UTC (rev 4433)
+++ core/trunk/src/org/openjump/core/rasterimage/RasterImageIOUtils.java        
2015-05-11 15:52:42 UTC (rev 4434)
@@ -405,13 +405,13 @@
             defaultNoData = rstLayer.getNoDataValue();
 
             Double xcMin = Double.valueOf(rLayer.getActualImageEnvelope()
-                    .getMinX() + 0.5D * rstLayer.getLayerCellSize());
+                    .getMinX() + 0.5D * rstLayer.getLayerCellSize().x);
             Double ycMin = Double.valueOf(rLayer.getActualImageEnvelope()
-                    .getMinY() + 0.5D * rstLayer.getLayerCellSize());
+                    .getMinY() + 0.5D * rstLayer.getLayerCellSize().y);
             Double xcMax = Double.valueOf(rLayer.getActualImageEnvelope()
-                    .getMaxX() - 0.5D * rstLayer.getLayerCellSize());
+                    .getMaxX() - 0.5D * rstLayer.getLayerCellSize().x);
             Double ycMax = Double.valueOf(rLayer.getActualImageEnvelope()
-                    .getMaxY() - 0.5D * rstLayer.getLayerCellSize());
+                    .getMaxY() - 0.5D * rstLayer.getLayerCellSize().y);
 
             PrintStream po = new PrintStream(out);
             po.println("DSAA");

Modified: core/trunk/src/org/openjump/core/rasterimage/WorldFileHandler.java
===================================================================
--- core/trunk/src/org/openjump/core/rasterimage/WorldFileHandler.java  
2015-05-11 06:39:01 UTC (rev 4433)
+++ core/trunk/src/org/openjump/core/rasterimage/WorldFileHandler.java  
2015-05-11 15:52:42 UTC (rev 4434)
@@ -44,6 +44,8 @@
 import org.openjump.core.apitools.HandlerToMakeYourLifeEasier;
 
 import com.vividsolutions.jts.geom.Envelope;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
 
 /**
  * 
@@ -165,20 +167,31 @@
             //this.logger.printError("Can not read worldfile: " + 
e.getMessage());
             return null;
         }
-        //[sstein] Feb.2009 -- the use of CoordX (Easting) and CoordY 
(Northing) below does not
-        //                     respect that the coordinates are given for the
-        //                     center of the upper left pixel and not the 
corner.
-        minx = faktorA * 0. + faktorC * 0. + CoordX;
-        maxy = faktorB * 0. + faktorD * 0. + CoordY;
-        maxx = faktorA * imgWidth + faktorC * imgHeight + CoordX;
-        miny = faktorB * imgWidth + faktorD * imgHeight + CoordY;
-        //-- [sstein] Feb.2009 -- so we move the final envelope by 0.5 pixel
-        double px05x = ((maxx-minx) / imgWidth)*0.5;
-        double px05y = ((maxy-miny) / imgHeight)*0.5; // I am using different 
params for x,y due to possible image transforms
-        minx = minx-px05x; maxx = maxx-px05x;
-        miny = miny+px05y; maxy = maxy+px05y;
-        //-- sstein:end
-        return new Envelope(minx, maxx, miny, maxy);
+//        //[sstein] Feb.2009 -- the use of CoordX (Easting) and CoordY 
(Northing) below does not
+//        //                     respect that the coordinates are given for the
+//        //                     center of the upper left pixel and not the 
corner.
+//        minx = faktorA * 0. + faktorC * 0. + CoordX;
+//        maxy = faktorB * 0. + faktorD * 0. + CoordY;
+//        maxx = faktorA * imgWidth + faktorC * imgHeight + CoordX;
+//        miny = faktorB * imgWidth + faktorD * imgHeight + CoordY;
+//        //-- [sstein] Feb.2009 -- so we move the final envelope by 0.5 pixel
+//        double px05x = ((maxx-minx) / imgWidth)*0.5;
+//        double px05y = ((maxy-miny) / imgHeight)*0.5; // I am using 
different params for x,y due to possible image transforms
+//        minx = minx-px05x; maxx = maxx-px05x;
+//        miny = miny-px05y; maxy = maxy+px05y;
+//        //-- sstein:end
+////        return new Envelope(minx, maxx, miny, maxy);
+        
+        AffineTransform affTrans = new AffineTransform(
+                faktorA, faktorB, faktorC, faktorD, CoordX, CoordY);
+
+        Point2D ulPoint = new Point2D.Double();
+        ulPoint = affTrans.transform(new Point2D.Double(-0.5, -0.5), ulPoint);
+        Point2D lrPoint = new Point2D.Double();
+        lrPoint = affTrans.transform(new Point2D.Double(imgWidth-0.5, 
imgHeight-0.5), lrPoint);
+        
+        return new Envelope(ulPoint.getX(), lrPoint.getX(), ulPoint.getY(), 
lrPoint.getY());
+        
     }
     
     /**

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/AbstractSextanteRasterLayer.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/AbstractSextanteRasterLayer.java
      2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/AbstractSextanteRasterLayer.java
      2015-05-11 15:52:42 UTC (rev 4434)
@@ -154,7 +154,7 @@
 
        }
 
-       public double getWindowCellSize(){
+       public java.awt.Point.Double getWindowCellSize(){
 
                return m_GridWrapper.getCellSize();
 
@@ -319,16 +319,17 @@
        private void setConstants(){
 
                int i;
-               double dCellSize = getWindowCellSize();
-
+               double dCellSizeX = getWindowCellSize().x;
+                double dCellSizeY = getWindowCellSize().y;
+                
                m_dDist = new double[8];
 
            for (i = 0; i < 8; i++){
-               m_dDist[i] = Math.sqrt ( m_iOffsetX[i] * dCellSize * 
m_iOffsetX[i] * dCellSize
-                               + m_iOffsetY[i] * dCellSize * m_iOffsetY[i] * 
dCellSize );
+               m_dDist[i] = Math.sqrt ( m_iOffsetX[i] * dCellSizeX * 
m_iOffsetX[i] * dCellSizeX
+                               + m_iOffsetY[i] * dCellSizeY * m_iOffsetY[i] * 
dCellSizeY );
            }
 
-           _2DX = dCellSize * 2;
+           _2DX = dCellSizeX * 2;
 
        }
 

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/ISextanteRasterLayer.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/ISextanteRasterLayer.java 
    2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/ISextanteRasterLayer.java 
    2015-05-11 15:52:42 UTC (rev 4434)
@@ -56,13 +56,13 @@
         * Return the cellsize of the query window. X and Y cellsizes are 
assumed to be equal
         * @return the cellsize of the query window
         */
-       public double getWindowCellSize();
+       public java.awt.Point.Double getWindowCellSize();
 
        /**
         * Return the original cellsize of the layer. X and Y cellsizes are 
assumed to be equal
         * @return the original cellsize of the layer
         */
-       public double getLayerCellSize();
+       public java.awt.Point.Double getLayerCellSize();
 
 
        public void assign(double dValue);

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/OpenJUMPSextanteRasterLayer.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/OpenJUMPSextanteRasterLayer.java
      2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/OpenJUMPSextanteRasterLayer.java
      2015-05-11 15:52:42 UTC (rev 4434)
@@ -75,8 +75,9 @@
                        m_sFilename = layer.getImageFileName();
                        Envelope env = layer.getActualImageEnvelope();
                        m_LayerExtent = new GridExtent();
-                       m_LayerExtent.setCellSize((env.getMaxX() - 
env.getMinX())
-                                       / (double)m_Raster.getWidth());
+                       m_LayerExtent.setCellSize(
+                                (env.getMaxX() - env.getMinX()) / 
(double)m_Raster.getWidth(),
+                                (env.getMaxY() - env.getMinY()) / 
(double)m_Raster.getHeight());
                        m_LayerExtent.setXRange(env.getMinX(), env.getMaxX());
                        m_LayerExtent.setYRange(env.getMinY(), env.getMaxY());
                        m_dNoDataValue = layer.getNoDataValue();
@@ -98,8 +99,9 @@
                        // since setting the ranges will update NX, NY and 
MaxX, MaxY values - dependent
                        // on cell size
                        // TODO: check if elsewhere setCellSize() is used, and 
set after setXRange/setYRange
-                       m_LayerExtent.setCellSize((env.getMaxX() - 
env.getMinX())
-                                       / (double)m_Raster.getWidth());
+                       m_LayerExtent.setCellSize(
+                                (env.getMaxX() - env.getMinX()) / 
(double)m_Raster.getWidth(),
+                                (env.getMaxY() - env.getMinY()) / 
(double)m_Raster.getHeight());
                        m_LayerExtent.setXRange(env.getMinX(), env.getMaxX());
                        m_LayerExtent.setYRange(env.getMinY(), env.getMaxY());
                        m_dNoDataValue = layer.getNoDataValue();
@@ -194,17 +196,17 @@
 
        }
 
-       public double getLayerCellSize() {
+       public java.awt.Point.Double getLayerCellSize() {
 
                if (m_LayerExtent != null){
                        return m_LayerExtent.getCellSize();
                }
                else{
-                       return 0;
+                       return new java.awt.Point.Double(0, 0);
                }
 
        }
-
+        
        public GridExtent getLayerGridExtent() {
 
                return m_LayerExtent;

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
        2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridExtent.java
        2015-05-11 15:52:42 UTC (rev 4434)
@@ -37,7 +37,8 @@
        double m_dYMin;
        double m_dXMax;
        double m_dYMax;
-       double m_dCellSize = 1;
+       double m_dCellSizeX = 1;
+        double m_dCellSizeY = 1;
        int m_iNX;
        int m_iNY;
 
@@ -57,7 +58,8 @@
 
                if(layer instanceof ISextanteRasterLayer){
                        ISextanteRasterLayer rasterLayer = 
(ISextanteRasterLayer) layer;
-                       m_dCellSize = 
rasterLayer.getLayerGridExtent().getCellSize();
+                       m_dCellSizeX = 
rasterLayer.getLayerGridExtent().getCellSize().x;
+                        m_dCellSizeY = 
rasterLayer.getLayerGridExtent().getCellSize().y;
                }
 
                recalculateNXAndNY();
@@ -98,19 +100,16 @@
         * Returns the cellsize of this extent
         * @return the cells size of this extent
         */
-       public double getCellSize() {
+       public java.awt.Point.Double getCellSize() {
 
-               return m_dCellSize;
+               return new java.awt.Point.Double(m_dCellSizeX, m_dCellSizeY);
 
        }
+        
+       public void setCellSize(double cellSizeX, double cellSizeY) {
 
-       /**
-        * Sets a new cellsize for this extent
-        * @param cellSize the new cellsize
-        */
-       public void setCellSize(double cellSize) {
-
-               m_dCellSize = cellSize;
+               m_dCellSizeX = cellSizeX;
+                m_dCellSizeY = cellSizeY;
                recalculateNXAndNY();
 
        }
@@ -137,10 +136,10 @@
 
        private void recalculateNXAndNY(){
 
-               m_iNY = (int) Math.floor((m_dYMax - m_dYMin) / m_dCellSize);
-               m_iNX = (int) Math.floor((m_dXMax - m_dXMin) / m_dCellSize);
-               m_dXMax = m_dXMin + m_dCellSize * m_iNX;
-               m_dYMax = m_dYMin + m_dCellSize * m_iNY;
+               m_iNY = (int) Math.floor((m_dYMax - m_dYMin) / m_dCellSizeY);
+               m_iNX = (int) Math.floor((m_dXMax - m_dXMin) / m_dCellSizeX);
+               m_dXMax = m_dXMin + m_dCellSizeX * m_iNX;
+               m_dYMax = m_dYMin + m_dCellSizeY * m_iNY;
 
        }
 
@@ -240,15 +239,18 @@
                double dOffsetRows;
                final double MIN_DIF = 0.00001;
 
-               if (extent.getCellSize() != this.getCellSize()){
+               if (extent.getCellSize().x != this.getCellSize().x){
                        return false;
                }
+                if (extent.getCellSize().y != this.getCellSize().y){
+                       return false;
+               }
                dOffset = Math.abs(extent.getXMin() - this.getXMin());
-               dOffsetCols = dOffset / this.getCellSize();
+               dOffsetCols = dOffset / this.getCellSize().x;
                bFitsX = (dOffsetCols - Math.floor(dOffsetCols + 0.5) < 
MIN_DIF);
 
                dOffset = Math.abs(extent.getYMax() - this.getYMax());
-               dOffsetRows = dOffset / this.getCellSize();
+               dOffsetRows = dOffset / this.getCellSize().y;
                bFitsY = (Math.abs(dOffsetRows - Math.floor(dOffsetRows + 0.5)) 
< MIN_DIF);
 
                return bFitsX && bFitsY;
@@ -266,7 +268,8 @@
                        && m_dXMax == extent.getXMax()
                        && m_dYMin == extent.getYMin()
                        && m_dYMax == extent.getYMax()
-                       && m_dCellSize == extent.getCellSize();
+                       && m_dCellSizeX == extent.getCellSize().x
+                        && m_dCellSizeY == extent.getCellSize().y;
 
        }
 
@@ -281,7 +284,8 @@
                m_dXMax = Math.max(extent.getXMax(), m_dXMax);
                m_dYMin = Math.min(extent.getYMin(), m_dYMin);
                m_dYMax = Math.max(extent.getYMax(), m_dYMax);
-               m_dCellSize = Math.min(extent.getCellSize(), m_dCellSize);
+               m_dCellSizeX = Math.min(extent.getCellSize().x, m_dCellSizeX);
+                m_dCellSizeY = Math.min(extent.getCellSize().y, m_dCellSizeY);
                recalculateNXAndNY();
 
        }
@@ -294,8 +298,8 @@
         */
        public GridCell getGridCoordsFromWorldCoords(Point2D pt){
 
-               int x = (int)Math.floor((pt.getX() - m_dXMin) / m_dCellSize);
-               int y = (int)Math.floor((m_dYMax - pt.getY()) / m_dCellSize);
+               int x = (int)Math.floor((pt.getX() - m_dXMin) / m_dCellSizeX);
+               int y = (int)Math.floor((m_dYMax - pt.getY()) / m_dCellSizeY);
 
                GridCell cell = new GridCell(x, y, 0.0);
 
@@ -325,8 +329,8 @@
         */
        public Point2D getWorldCoordsFromGridCoords(GridCell cell){
 
-               double x = m_dXMin + (cell.getX() + 0.5) * m_dCellSize;
-               double y = m_dYMax - (cell.getY() + 0.5) * m_dCellSize;
+               double x = m_dXMin + (cell.getX() + 0.5) * m_dCellSizeX;
+               double y = m_dYMax - (cell.getY() + 0.5) * m_dCellSizeY;
 
                Point2D pt = new Point2D.Double(x, y);
 
@@ -347,13 +351,15 @@
 
        }
 
+        @Override
        public String toString(){
 
                String s = Double.toString(m_dXMin) + ", "
                                        + Double.toString(m_dYMin) + ", "
                                        + Double.toString(m_dXMax) + ", "
                                        + Double.toString(m_dYMax) + ", "
-                                       + Double.toString(m_dCellSize);
+                                       + Double.toString(m_dCellSizeX) + ", "
+                                        + Double.toString(m_dCellSizeY);
 
                return s;
 
@@ -376,10 +382,10 @@
         */
        public void enlargeOneCell() {
 
-               m_dYMin = m_dYMin - m_dCellSize;
-               m_dXMin = m_dXMin - m_dCellSize;
-               m_dXMax = m_dXMax + m_dCellSize;
-               m_dYMax = m_dYMax + m_dCellSize;
+               m_dYMin = m_dYMin - m_dCellSizeY;
+               m_dXMin = m_dXMin - m_dCellSizeX;
+               m_dXMax = m_dXMax + m_dCellSizeX;
+               m_dYMax = m_dYMax + m_dCellSizeY;
                this.recalculateNXAndNY();
 
        }

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapper.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapper.java
       2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapper.java
       2015-05-11 15:52:42 UTC (rev 4434)
@@ -49,7 +49,7 @@
        protected int m_iOffsetY;
 
        private int m_iInterpolationMethod = INTERPOLATION_BSpline;
-       private double m_dCellSize; //cellsize of the layer, not the window
+       private java.awt.Point.Double m_dCellSize; //cellsize of the layer, not 
the window
 
        protected GridExtent m_WindowExtent;
 
@@ -115,7 +115,7 @@
 
        }
 
-       public double getCellSize(){
+       public java.awt.Point.Double getCellSize(){
 
                return m_WindowExtent.getCellSize();
 
@@ -139,8 +139,8 @@
                double  dx, dy;
                double dValue;
 
-               x       = (int) Math.floor(xPosition = (xPosition - 
m_Layer.getLayerGridExtent().getXMin()) / m_dCellSize);
-               y       = (int) Math.floor(yPosition = 
(m_Layer.getLayerGridExtent().getYMax() - yPosition ) / m_dCellSize);
+               x = (int) Math.floor(xPosition = (xPosition - 
m_Layer.getLayerGridExtent().getXMin()) / m_dCellSize.x);
+               y = (int) Math.floor(yPosition = 
(m_Layer.getLayerGridExtent().getYMax() - yPosition ) / m_dCellSize.y);
 
                dValue = getCellValueInLayerCoords(x,y,band);
 

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperInterpolated.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperInterpolated.java
   2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperInterpolated.java
   2015-05-11 15:52:42 UTC (rev 4434)
@@ -103,8 +103,8 @@
 
        private double getCellValue(int x, int y, int band){
 
-               double dX = m_WindowExtent.getXMin() + 
m_WindowExtent.getCellSize() * (x + 0.5);
-               double dY = m_WindowExtent.getYMax() - 
m_WindowExtent.getCellSize() * (y + 0.5);
+               double dX = m_WindowExtent.getXMin() + 
m_WindowExtent.getCellSize().x * (x + 0.5);
+               double dY = m_WindowExtent.getYMax() - 
m_WindowExtent.getCellSize().y * (y + 0.5);
 
                double dValue = getValueAt(dX, dY, band);
 

Modified: 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperNotInterpolated.java
===================================================================
--- 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperNotInterpolated.java
        2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/rasterimage/sextante/rasterWrappers/GridWrapperNotInterpolated.java
        2015-05-11 15:52:42 UTC (rev 4434)
@@ -56,9 +56,9 @@
                GridExtent layerExtent = m_Layer.getLayerGridExtent();
 
                m_iOffsetX = (int) ((m_WindowExtent.getXMin() - 
layerExtent.getXMin() )
-                               / m_WindowExtent.getCellSize());
+                               / m_WindowExtent.getCellSize().x);
                m_iOffsetY = (int) ((layerExtent.getYMax() - 
m_WindowExtent.getYMax() )
-                                / m_WindowExtent.getCellSize());
+                                / m_WindowExtent.getCellSize().y);
 
 //             dMinX = Math.min(Math.max(m_WindowExtent.getXMin(), 
layerExtent.getXMin()), layerExtent.getXMax());
 //             //dMinY = Math.min(Math.max(m_WindowExtent.getYMin(), 
layerExtent.getYMin()), layerExtent.getYMax());

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/raster/CreatePolygonGridFromSelectedImageLayerPlugIn.java
===================================================================
--- 
core/trunk/src/org/openjump/core/ui/plugin/raster/CreatePolygonGridFromSelectedImageLayerPlugIn.java
        2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/raster/CreatePolygonGridFromSelectedImageLayerPlugIn.java
        2015-05-11 15:52:42 UTC (rev 4434)
@@ -169,7 +169,8 @@
                monitor.report(sCreatingPolygons);
                int nx = rstLayer.getLayerGridExtent().getNX();
                int ny = rstLayer.getLayerGridExtent().getNY();
-               double halfCellDim = 0.5 * 
rstLayer.getLayerGridExtent().getCellSize();
+               double halfCellDimX = 0.5 * 
rstLayer.getLayerGridExtent().getCellSize().x;
+                double halfCellDimY = 0.5 * 
rstLayer.getLayerGridExtent().getCellSize().y;
                int numPoints = nx * ny;
                if(numPoints > this.maxCells){
                        context.getWorkbenchFrame().warnUser(sToManyPolygons + 
": " + numPoints + " > " + this.maxCells);
@@ -180,10 +181,10 @@
                                Feature ftemp = new BasicFeature(fs); 
                                Point2D pt = 
rstLayer.getLayerGridExtent().getWorldCoordsFromGridCoords(x, y);               
           
                                Coordinate[] coords = new Coordinate[5];
-                               coords[0] = new 
Coordinate(pt.getX()-halfCellDim , pt.getY()+halfCellDim); //topleft
-                               coords[1] = new 
Coordinate(pt.getX()+halfCellDim , pt.getY()+halfCellDim); //topright
-                               coords[2] = new 
Coordinate(pt.getX()+halfCellDim , pt.getY()-halfCellDim); //lowerright
-                               coords[3] = new 
Coordinate(pt.getX()-halfCellDim , pt.getY()-halfCellDim); //lowerleft
+                               coords[0] = new 
Coordinate(pt.getX()-halfCellDimX , pt.getY()+halfCellDimY); //topleft
+                               coords[1] = new 
Coordinate(pt.getX()+halfCellDimX , pt.getY()+halfCellDimY); //topright
+                               coords[2] = new 
Coordinate(pt.getX()+halfCellDimX , pt.getY()-halfCellDimY); //lowerright
+                               coords[3] = new 
Coordinate(pt.getX()-halfCellDimX , pt.getY()-halfCellDimY); //lowerleft
                                //-- to close poly
                                coords[4] = (Coordinate)coords[0].clone(); 
//topleft
                                //-- create the cell poly

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/raster/ProfileGraphTool.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/raster/ProfileGraphTool.java     
2015-05-11 06:39:01 UTC (rev 4433)
+++ core/trunk/src/org/openjump/core/ui/plugin/raster/ProfileGraphTool.java     
2015-05-11 15:52:42 UTC (rev 4434)
@@ -457,15 +457,15 @@
 
         if (dx > 0.0 || dy > 0.0) {
             if (dx > dy) {
-                dx /= this.rstLayer.getWindowCellSize();
+                dx /= this.rstLayer.getWindowCellSize().x;
                 n = dx;
                 dy /= dx;
-                dx = this.rstLayer.getWindowCellSize();
+                dx = this.rstLayer.getWindowCellSize().x;
             } else {
-                dy /= this.rstLayer.getWindowCellSize();
+                dy /= this.rstLayer.getWindowCellSize().y;
                 n = dy;
                 dx /= dy;
-                dy = this.rstLayer.getWindowCellSize();
+                dy = this.rstLayer.getWindowCellSize().y;
             }
 
             if (x2 < x) {

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java
===================================================================
--- 
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java
     2015-05-11 06:39:01 UTC (rev 4433)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java
     2015-05-11 15:52:42 UTC (rev 4434)
@@ -68,7 +68,8 @@
     private int datatype;
     private String meanVal;
     private String directory;
-    private String cellSize;
+    private String cellSizeX;
+    private String cellSizeY;
     private String name_raster;
     private String name;
     private int X;
@@ -394,9 +395,11 @@
 
             name = rLayer.getName();// Name of Layer
             extent = rLayer.getWholeImageEnvelope();// Extent of Layer
-            double cellSize = (extent.getMaxX() - extent.getMinX())
+            double cellSizeX = (extent.getMaxX() - extent.getMinX())
                     / pi.getWidth();// Cell size
-
+            double cellSizeY = (extent.getMaxY() - extent.getMinY())
+                    / pi.getHeight();// Cell size
+            
             infotext = LAYER_NAME + ": " + "\t" + name + "\n" + "\n" + NAMEFILE
                     + "\n" + "\t" + NAME + ": " + LAYER_IN_MEMORY + "\n" + "\t"
                     + TYPE + ": " + "..." + "\n" + "\t" + DIMENSION + ": "
@@ -409,9 +412,9 @@
                     + df.format(extent.getHeight() * extent.getWidth()) + "  ("
                     + df.format(extent.getWidth()) + " X "
                     + df.format(extent.getHeight()) + ")" + "\n" + "\t"
-                    + CELL_SIZE + ": " + df.format(cellSize) + "\n" + "\t"
+                    + CELL_SIZE + ": " + df.format(cellSizeX) + ", " + 
df.format(cellSizeY) + "\n" + "\t"
                     + CELL_NUM + ": " + (pi.getWidth() * pi.getHeight())
-                    / (cellSize * cellSize) + "\n" + "\n" + RASTER + "\n"
+                    / (cellSizeX * cellSizeY) + "\n" + "\n" + RASTER + "\n"
                     + "\t" + DATATYPE + ": " + dataType(context, rLayer) + "\n"
                     + "\t" + COLORDEPTH + ": " + colordepth + " bpp" + "\n"
                     + "\t" + RASTER_SIZE + ": "
@@ -441,7 +444,8 @@
 
             directory = image.getParent(); // Directory of file
             colordepth = cm.getPixelSize();// Color depth
-            cellSize = df.format(rstLayer.getLayerCellSize());// Cell size
+            cellSizeX = df.format(rstLayer.getLayerCellSize().x);// Cell size
+            cellSizeY = df.format(rstLayer.getLayerCellSize().y);// Cell size
             name_raster = rstLayer.getName();// Name of layer
             name = image.getName();// Name of file
             X = rstLayer.getNX(); // Number of columns
@@ -509,7 +513,7 @@
             infotext += "<tr><td></td> <td><b>" + AREA + "</b></td><td>" + area
                     + " (" + width + " X " + height + ")" + "</td></tr>";// 
Extension
             infotext += "<tr><td></td> <td><b>" + CELL_SIZE + "</b></td><td>"
-                    + cellSize + "</td></tr>"; // Extension fo a cell
+                    + cellSizeX + ", " + cellSizeY + "</td></tr>"; // 
Extension fo a cell
             infotext += "<tr><td></td> <td><b>" + CELL_NUM + "</td><td>"
                     + cellnumber + "</td></tr>"; // Number of cells
             infotext += "</table>";


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to