Revision 14446 trunk/extensions/extRemoteSensing/src-test/org/gvsig/remotesensing/processtest/TTasseledCapProcess.java
TTasseledCapProcess.java | ||
---|---|---|
4 | 4 |
|
5 | 5 |
import org.gvsig.raster.RasterLibrary; |
6 | 6 |
import org.gvsig.raster.buffer.BufferFactory; |
7 |
import org.gvsig.raster.buffer.RasterBuffer; |
|
7 | 8 |
import org.gvsig.raster.buffer.RasterBufferInvalidAccessException; |
8 | 9 |
import org.gvsig.raster.buffer.RasterBufferInvalidException; |
10 |
import org.gvsig.raster.dataset.IBuffer; |
|
9 | 11 |
import org.gvsig.raster.dataset.NotSupportedExtensionException; |
10 | 12 |
import org.gvsig.raster.dataset.RasterDataset; |
11 | 13 |
import org.gvsig.raster.dataset.RasterDriverException; |
... | ... | |
86 | 88 |
|
87 | 89 |
|
88 | 90 |
/**Caso LandSat TM*/ |
89 |
TasseledCapProcess tC= new TasseledCapProcess(g,null,1,"LandSatTM",f1.getAffineTransform());
|
|
91 |
TasseledCapProcess tC= new TasseledCapProcess(ds1.getDataSource(),null,1,"LandSatTM");
|
|
90 | 92 |
tC.run(); |
91 | 93 |
try { |
92 |
compare(tC.getGridResult(),enviResultTM);
|
|
94 |
compare(tC.getBufferResult(),enviResultTM.getRasterBuf());
|
|
93 | 95 |
} catch (RasterBufferInvalidAccessException e) { |
94 | 96 |
e.printStackTrace(); |
95 | 97 |
} |
... | ... | |
97 | 99 |
|
98 | 100 |
/**Caso LandSat ETM*/ |
99 | 101 |
|
100 |
tC= new TasseledCapProcess(g,null,2,"LandSat ETM",f1.getAffineTransform());
|
|
102 |
tC= new TasseledCapProcess(ds1.getDataSource(),null,2,"LandSat ETM");
|
|
101 | 103 |
tC.run(); |
102 | 104 |
try { |
103 |
compare(tC.getGridResult(),enviResultETM);
|
|
105 |
compare(tC.getBufferResult(),enviResultETM.getRasterBuf());
|
|
104 | 106 |
} catch (RasterBufferInvalidAccessException e) { |
105 | 107 |
e.printStackTrace(); |
106 | 108 |
} |
... | ... | |
112 | 114 |
} catch (RasterBufferInvalidException e1) { |
113 | 115 |
e1.printStackTrace(); |
114 | 116 |
} |
115 |
tC= new TasseledCapProcess(g,null,0,"LandSat MSS",f1.getAffineTransform());
|
|
117 |
tC= new TasseledCapProcess(ds1.getDataSource(),null,0,"LandSat MSS");
|
|
116 | 118 |
tC.run(); |
117 | 119 |
/** La imagen LandSat MSS No se compara porque los coeficientes utilizados por ENVI no son similares |
118 | 120 |
a los de la matriz de coeficientes proporcionados por Jose */ |
... | ... | |
130 | 132 |
/**Metodo que compara celda a celda cada uno de los valores de dos grids. |
131 | 133 |
* Para imagenes LandSat ETM, la sexta banda no se compara porque envi realiza una transformacion |
132 | 134 |
* para evitar los numeros negativos */ |
133 |
private void compare(Grid g1, Grid g2) throws RasterBufferInvalidAccessException { |
|
134 |
assertEquals(g1.getBandCount(),g2.getBandCount()); |
|
135 |
for(int band=0; band<g1.getBandCount();band++){ |
|
136 |
g1.setBandToOperate(band); |
|
137 |
g2.setBandToOperate(band); |
|
135 |
private void compare(IBuffer buffer, IBuffer buffer2) throws RasterBufferInvalidAccessException { |
|
136 |
assertEquals(buffer.getBandCount(),buffer2.getBandCount()); |
|
137 |
for(int band=0; band<buffer.getBandCount();band++){ |
|
138 | 138 |
if(band<5){ |
139 |
for(int line = 0; line < g2.getNY(); line++){
|
|
140 |
for(int col = 0; col < g2.getNX(); col++){
|
|
141 |
assertEquals(g2.getCellValueAsFloat(col,line), g1.getCellValueAsDouble(col, line),0.1);
|
|
139 |
for(int line = 0; line < buffer2.getHeight(); line++){
|
|
140 |
for(int col = 0; col < buffer2.getWidth(); col++){
|
|
141 |
assertEquals(buffer2.getElemFloat(col,line,band), buffer.getElemFloat(col, line,band),0.1);
|
|
142 | 142 |
} |
143 | 143 |
} |
144 | 144 |
} |
Also available in: Unified diff