Revision 21615 trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSDoubleAdjustToExtentBufferEcw.java
TDSDoubleAdjustToExtentBufferEcw.java | ||
---|---|---|
1 |
/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
|
|
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
|
2 | 2 |
* |
3 | 3 |
* Copyright (C) 2007 IVER T.I. and Generalitat Valenciana. |
4 | 4 |
* |
... | ... | |
26 | 26 |
import org.gvsig.raster.dataset.NotSupportedExtensionException; |
27 | 27 |
import org.gvsig.raster.dataset.RasterDataset; |
28 | 28 |
import org.gvsig.raster.dataset.io.RasterDriverException; |
29 |
|
|
30 | 29 |
/** |
31 | 30 |
* Este test prueba el acceso a datos a traves de un DataSource sin resampleo |
32 | 31 |
* para un ECW con coordenadas reales. |
... | ... | |
42 | 41 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
43 | 42 |
* |
44 | 43 |
*/ |
45 |
public class TDSDoubleAdjustToExtentBufferEcw extends TestCase{ |
|
44 |
public class TDSDoubleAdjustToExtentBufferEcw extends TestCase { |
|
45 |
private String baseDir = "./test-images/"; |
|
46 |
private String path = baseDir + "miniraster30x30.jp2"; |
|
46 | 47 |
|
47 |
private String baseDir = "./test-images/"; |
|
48 |
private String path = baseDir + "miniraster30x30.jp2"; |
|
49 |
private RasterDataset f = null; |
|
50 |
private BufferFactory ds = null; |
|
51 |
|
|
52 |
public void start(){ |
|
48 |
public void start() { |
|
53 | 49 |
this.setUp(); |
54 | 50 |
this.testStack(); |
55 | 51 |
} |
56 |
|
|
52 |
|
|
57 | 53 |
public void setUp() { |
58 | 54 |
System.err.println("TDSDoubleAdjustToExtentBufferEcw running..."); |
59 |
//System.out.println("TestDataSource (Real Coord) Adjust To Extent With Buffer [Ecw] running..."); |
|
60 | 55 |
} |
61 | 56 |
|
62 |
static{ |
|
57 |
static {
|
|
63 | 58 |
RasterLibrary.wakeUp(); |
64 | 59 |
} |
65 |
|
|
60 |
|
|
66 | 61 |
public void testStack() { |
67 |
int[] drawableBands = {0, 1, 2}; |
|
62 |
RasterDataset f; |
|
63 |
int[] drawableBands = { 0, 1, 2 }; |
|
68 | 64 |
try { |
69 | 65 |
f = RasterDataset.open(null, path); |
70 | 66 |
} catch (RasterDriverException e) { |
... | ... | |
72 | 68 |
} catch (NotSupportedExtensionException e) { |
73 | 69 |
return; |
74 | 70 |
} |
75 |
ds = new BufferFactory(f); |
|
71 |
BufferFactory ds = new BufferFactory(f);
|
|
76 | 72 |
ds.setDrawableBands(drawableBands); |
77 | 73 |
//Se selecciona un ?rea mayor que el extent para probar que lo ajusta a este |
78 | 74 |
try { |
... | ... | |
84 | 80 |
} catch (InterruptedException e) { |
85 | 81 |
e.printStackTrace(); |
86 | 82 |
} |
87 |
//print();
|
|
88 |
dataTest1(); |
|
83 |
// print(ds.getRasterBuf());
|
|
84 |
dataTest1(ds.getRasterBuf());
|
|
89 | 85 |
|
90 | 86 |
try { |
91 | 87 |
ds.setAreaOfInterest(645860.0, 4923870.0, 645986.0, 4923744.0, 2, 2); |
... | ... | |
96 | 92 |
} catch (InterruptedException e) { |
97 | 93 |
e.printStackTrace(); |
98 | 94 |
} |
99 |
dataTest2();
|
|
100 |
//print();
|
|
95 |
// print(ds.getRasterBuf());
|
|
96 |
dataTest2(ds.getRasterBuf());
|
|
101 | 97 |
} |
102 |
|
|
103 |
private void dataTest2(){ |
|
104 |
IBuffer raster = ds.getRasterBuf(); |
|
105 |
//Upper Left |
|
106 |
assertEquals((int)(raster.getElemByte(0, 0, 0) & 0xff), 43); |
|
107 |
assertEquals((int)(raster.getElemByte(0, 0, 1) & 0xff), 53); |
|
108 |
assertEquals((int)(raster.getElemByte(0, 0, 2) & 0xff), 26); |
|
109 |
//Upper Right |
|
110 |
assertEquals((int)(raster.getElemByte(0, 1, 0) & 0xff), 109); |
|
111 |
assertEquals((int)(raster.getElemByte(0, 1, 1) & 0xff), 111); |
|
112 |
assertEquals((int)(raster.getElemByte(0, 1, 2) & 0xff), 97); |
|
113 |
//Lower Left |
|
114 |
assertEquals((int)(raster.getElemByte(1, 0, 0) & 0xff), 159); |
|
115 |
assertEquals((int)(raster.getElemByte(1, 0, 1) & 0xff), 168); |
|
116 |
assertEquals((int)(raster.getElemByte(1, 0, 2) & 0xff), 146); |
|
117 |
//Lower Right |
|
118 |
assertEquals((int)(raster.getElemByte(1, 1, 0) & 0xff), 18); |
|
119 |
assertEquals((int)(raster.getElemByte(1, 1, 1) & 0xff), 39); |
|
120 |
assertEquals((int)(raster.getElemByte(1, 1, 2) & 0xff), 41); |
|
98 |
|
|
99 |
private void dataTest1(IBuffer raster) { |
|
100 |
int band0[] = { 43, 14, 87, 166, 174, 109, 90, 93, 190, 143, 85, 93, 103, 112, 138, 94, 138, 192, 180, 196, 99, 209, 41, 98, 168, 170, 89, 141, 158, 199, 108, 71, 67, 92, 131, 176, 243, 98, 163, 141, 157, 170, 94, 159, 233, 114, 144, 62, 147, 173, 159, 173, 184, 94, 56, 18, 69, 78, 83, 115, 95, 37, 80, 57, 68, 68, 55, 59, 58, 101, 69, 44, 24, 58, 115, 40, 58, 56, 68, 111, 84, 117, 55, 88, 170, 135, 169, 99, 74, 42, 114, 223, 171, 67, 216, 104, 167, 83, 66, 45 }; |
|
101 |
int band1[] = { 53, 15, 109, 154, 164, 111, 109, 93, 189, 151, 89, 102, 107, 111, 142, 100, 143, 195, 178, 190, 100, 192, 61, 108, 154, 172, 99, 149, 160, 206, 122, 74, 81, 94, 136, 195, 248, 105, 173, 141, 158, 162, 98, 158, 226, 114, 132, 66, 150, 176, 168, 172, 175, 105, 82, 39, 85, 89, 73, 104, 92, 51, 80, 71, 88, 84, 71, 74, 68, 106, 82, 62, 37, 74, 129, 49, 78, 67, 89, 126, 100, 132, 71, 107, 164, 145, 154, 108, 85, 48, 130, 210, 164, 66, 209, 115, 160, 85, 90, 61 }; |
|
102 |
int band2[] = { 26, 11, 82, 145, 165, 97, 86, 71, 191, 135, 74, 75, 85, 110, 117, 82, 115, 186, 179, 183, 91, 181, 43, 85, 139, 178, 78, 133, 152, 206, 98, 61, 71, 109, 118, 181, 244, 82, 144, 117, 144, 159, 83, 155, 231, 98, 108, 60, 136, 163, 146, 170, 162, 111, 102, 41, 62, 60, 64, 68, 97, 26, 74, 50, 64, 70, 47, 48, 56, 70, 54, 35, 19, 50, 91, 35, 48, 52, 62, 101, 73, 91, 35, 80, 140, 119, 140, 91, 58, 36, 112, 202, 146, 66, 192, 81, 131, 71, 63, 37 }; |
|
103 |
compareRaster(raster, band0, band1, band2); |
|
121 | 104 |
} |
122 |
|
|
123 |
private void dataTest1(){ |
|
124 |
IBuffer raster = ds.getRasterBuf(); |
|
125 |
//Upper Left |
|
126 |
assertEquals((int)(raster.getElemByte(0, 0, 0) & 0xff), 43); |
|
127 |
assertEquals((int)(raster.getElemByte(0, 0, 1) & 0xff), 53); |
|
128 |
assertEquals((int)(raster.getElemByte(0, 0, 2) & 0xff), 26); |
|
129 |
//Upper Right |
|
130 |
assertEquals((int)(raster.getElemByte(0, 9, 0) & 0xff), 144); |
|
131 |
assertEquals((int)(raster.getElemByte(0, 9, 1) & 0xff), 157); |
|
132 |
assertEquals((int)(raster.getElemByte(0, 9, 2) & 0xff), 141); |
|
133 |
//Lower Left |
|
134 |
assertEquals((int)(raster.getElemByte(9, 0, 0) & 0xff), 113); |
|
135 |
assertEquals((int)(raster.getElemByte(9, 0, 1) & 0xff), 130); |
|
136 |
assertEquals((int)(raster.getElemByte(9, 0, 2) & 0xff), 111); |
|
137 |
//Lower Right |
|
138 |
assertEquals((int)(raster.getElemByte(9, 9, 0) & 0xff), 28); |
|
139 |
assertEquals((int)(raster.getElemByte(9, 9, 1) & 0xff), 43); |
|
140 |
assertEquals((int)(raster.getElemByte(9, 9, 2) & 0xff), 24); |
|
141 |
|
|
142 |
assertEquals((int)(raster.getElemByte(6, 6, 0) & 0xff), 54); |
|
143 |
assertEquals((int)(raster.getElemByte(6, 6, 1) & 0xff), 71); |
|
144 |
assertEquals((int)(raster.getElemByte(6, 6, 2) & 0xff), 46); |
|
145 |
|
|
146 |
assertEquals((int)(raster.getElemByte(6, 9, 0) & 0xff), 91); |
|
147 |
assertEquals((int)(raster.getElemByte(6, 9, 1) & 0xff), 94); |
|
148 |
assertEquals((int)(raster.getElemByte(6, 9, 2) & 0xff), 53); |
|
149 |
|
|
150 |
assertEquals((int)(raster.getElemByte(9, 6, 0) & 0xff), 166); |
|
151 |
assertEquals((int)(raster.getElemByte(9, 6, 1) & 0xff), 160); |
|
152 |
assertEquals((int)(raster.getElemByte(9, 6, 2) & 0xff), 131); |
|
153 |
|
|
154 |
assertEquals((int)(raster.getElemByte(2, 3, 0) & 0xff), 89); |
|
155 |
assertEquals((int)(raster.getElemByte(2, 3, 1) & 0xff), 105); |
|
156 |
assertEquals((int)(raster.getElemByte(2, 3, 2) & 0xff), 79); |
|
157 |
|
|
158 |
assertEquals((int)(raster.getElemByte(3, 1, 0) & 0xff), 71); |
|
159 |
assertEquals((int)(raster.getElemByte(3, 1, 1) & 0xff), 73); |
|
160 |
assertEquals((int)(raster.getElemByte(3, 1, 2) & 0xff), 61); |
|
161 |
|
|
162 |
assertEquals((int)(raster.getElemByte(0, 2, 0) & 0xff), 87); |
|
163 |
assertEquals((int)(raster.getElemByte(0, 2, 1) & 0xff), 109); |
|
164 |
assertEquals((int)(raster.getElemByte(0, 2, 2) & 0xff), 81); |
|
105 |
|
|
106 |
private void dataTest2(IBuffer raster) { |
|
107 |
int band0[] = { 43, 109, 160, 18 }; |
|
108 |
int band1[] = { 53, 111, 168, 39 }; |
|
109 |
int band2[] = { 26, 97, 146, 41 }; |
|
110 |
compareRaster(raster, band0, band1, band2); |
|
165 | 111 |
} |
166 |
|
|
112 |
|
|
113 |
public void compareRaster(IBuffer raster, int band0[], int band1[], int band2[]) { |
|
114 |
int cont = 0; |
|
115 |
for (int line = 0; line < raster.getHeight(); line++) { |
|
116 |
for (int col = 0; col < raster.getWidth(); col++) { |
|
117 |
assertEquals((int) (raster.getElemByte(line, col, 0) & 0xff), band0[cont]); |
|
118 |
assertEquals((int) (raster.getElemByte(line, col, 1) & 0xff), band1[cont]); |
|
119 |
assertEquals((int) (raster.getElemByte(line, col, 2) & 0xff), band2[cont]); |
|
120 |
cont++; |
|
121 |
} |
|
122 |
} |
|
123 |
} |
|
124 |
|
|
167 | 125 |
/** |
168 | 126 |
* Imprime todos los pixels de la fuente de datos en RGB |
169 | 127 |
*/ |
170 |
/*private void print(){ |
|
171 |
IBuffer raster = ds.getRasterBuf(); |
|
172 |
for(int line = 0; line < raster.getHeight(); line++){ |
|
173 |
for(int col = 0; col < raster.getWidth(); col++) |
|
174 |
System.out.print("(" + (int)(raster.getElemByte(line, col, 0) & 0xff) + " " + (int)(raster.getElemByte(line, col, 1) & 0xff) + " " + (int)(raster.getElemByte(line, col, 2) & 0xff) + ")"); |
|
175 |
System.out.println(); |
|
128 |
public void print(IBuffer raster) { |
|
129 |
System.out.println(""); |
|
130 |
for (int band = 0; band < 3; band++) { |
|
131 |
System.out.print("int band" + band + "[] = { "); |
|
132 |
int cont = 0; |
|
133 |
for (int line = 0; line < raster.getHeight(); line++) { |
|
134 |
for (int col = 0; col < raster.getWidth(); col++) { |
|
135 |
if (cont != 0) |
|
136 |
System.out.print(", "); |
|
137 |
System.out.print(((int) (raster.getElemByte(line, col, band) & 0xff))); |
|
138 |
cont++; |
|
139 |
} |
|
140 |
} |
|
141 |
System.out.println("};"); |
|
176 | 142 |
} |
177 |
}*/ |
|
178 |
|
|
143 |
} |
|
179 | 144 |
} |
Also available in: Unified diff