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