Revision 14446 trunk/extensions/extRemoteSensing/src-test/org/gvsig/remotesensing/processtest/TTasseledCapProcess.java

View differences:

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