root / trunk / extensions / extRasterTools-SE / src-test / org / gvsig / fmap / raster / grid / roi / TestRoiStatisticAdvanced.java @ 13589
History | View | Annotate | Download (2.22 KB)
1 | 13458 | amunoz | 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 | } |