Statistics
| Revision:

root / trunk / extensions / extRasterTools-SE / src-test / org / gvsig / fmap / raster / grid / roi / TestRoiStatisticAdvanced.java @ 13589

History | View | Annotate | Download (2.22 KB)

1
package org.gvsig.fmap.raster.grid.roi;
2

    
3
import junit.framework.TestCase;
4

    
5
import org.gvsig.raster.buffer.RasterBufferInvalidException;
6
import org.gvsig.raster.dataset.IBuffer;
7
import org.gvsig.raster.grid.Grid;
8
import org.gvsig.raster.grid.GridExtent;
9

    
10
import com.iver.cit.gvsig.fmap.core.GeneralPathX;
11
import com.iver.cit.gvsig.fmap.core.IGeometry;
12
import com.iver.cit.gvsig.fmap.core.ShapeFactory;
13

    
14

    
15
/**Test calculo de estadisticas avanzadas (Matriz de varianza covarianza) para una ROI*/
16
public class TestRoiStatisticAdvanced extends TestCase {
17

    
18
        Grid inputGrid = null;
19
        GridExtent extent = null;
20
        int cellSize = 1;
21
        double xMin = 0;
22
        double xMax = 3;
23
        double yMin = 0;
24
        double yMax = 3;
25
        int bands[] ={0,1};
26
        VectorialROI roi = null;
27
        GeneralPathX path = null;
28
        IGeometry geometry = null;
29
        
30
        static{
31
        //        RasterLibrary.wakeUp();
32
        }
33
        
34
        public void start() {
35
                this.setUp();
36
                this.testStack();
37
        }
38
        
39
        public void setUp() {
40
                int bands[] = {0,1};
41
                extent = new GridExtent();
42
                extent.setCellSize(cellSize);
43
                extent.setXRange(xMin, xMax);
44
                extent.setYRange(yMin, yMax);
45
                
46
                try {
47
                        
48
                        inputGrid = new Grid(extent, extent, IBuffer.TYPE_BYTE, bands);
49
                        
50
                        //inputGrid.getRasterBuf().setLineInBandByte(new byte[]{94,3,50}, 0, 0);
51
                        inputGrid.getRasterBuf().setLineInBandByte(new byte[]{68,66,64}, 1, 0);
52
                        inputGrid.getRasterBuf().setLineInBandByte(new byte[]{74,66,62}, 2, 0);
53
                        
54
                        
55
                        //inputGrid.getRasterBuf().setLineInBandByte(new byte[]{48,40,96}, 0, 1);
56
                        inputGrid.getRasterBuf().setLineInBandByte(new byte[]{84,80,78}, 1, 1);
57
                        inputGrid.getRasterBuf().setLineInBandByte(new byte[]{90,84,78}, 2, 1);
58
                } catch (RasterBufferInvalidException e) {
59
                        // TODO Auto-generated catch block
60
                        e.printStackTrace();
61
                }
62
                
63
        }
64
        
65
        public void testStack(){
66
                VectorialROI r= new VectorialROI(inputGrid);
67
        
68
                path = new GeneralPathX();
69
                
70
                path.moveTo(3,3);
71
                path.lineTo(0,3);
72
                path.lineTo(0,0);
73
                path.lineTo(3,0);
74
                path.closePath();
75
                geometry=ShapeFactory.createPolygon2D(path);
76
                r.addGeometry(geometry);
77
                
78
                double[][] resultado ={{14.2222,15.11111},{15.1111,17.8888}};
79
                double matrix[][]=r.getVarCovMatrix();
80
                for (int i=0; i< matrix.length;i++)
81
                        for(int j=0; j<matrix[0].length;j++){
82
                                assertEquals(matrix[i][j],resultado[i][j],0.01);
83
                        }
84
        }
85
        
86
}