Revision 882 org.gvsig.raster.netcdf/trunk/org.gvsig.raster.netcdf/org.gvsig.raster.netcdf.io/src/main/java/org/gvsig/raster/netcdf/io/NetCDFProvider.java

View differences:

NetCDFProvider.java
49 49
import org.gvsig.raster.cache.tile.provider.TileListener;
50 50
import org.gvsig.raster.cache.tile.provider.TileServer;
51 51
import org.gvsig.raster.impl.DefaultRasterManager;
52
import org.gvsig.raster.impl.datastruct.DefaultNoData;
52 53
import org.gvsig.raster.impl.datastruct.ExtentImpl;
53 54
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
54 55
import org.gvsig.raster.impl.provider.RasterProvider;
......
181 182
			DataStoreProviderServices storeServices) throws NotSupportedExtensionException, OpenException {
182 183
		
183 184
		if(((RasterFileStoreParameters)params).getFile().exists()) {
185
			String fileName = ((RasterFileStoreParameters)params).getFile().getAbsolutePath();
184 186
            try { 
185
            	gridNetCDF = GridDataset.open(((RasterFileStoreParameters)params).getFile().getAbsolutePath());
187
            	gridNetCDF = GridDataset.open(fileName);
186 188
            	gridList = gridNetCDF.getGrids();
187 189
            	if(gridList.size() == 0)
188 190
            		throw new OpenException("There is not a grid variable", null);
......
202 204
			setParam(storeServices, params);
203 205
			reloadMetadataFromGrid();
204 206
			
207
			noData = new DefaultNoData(Double.NaN, Double.NaN, fileName);
205 208
			load();
206 209
		} else
207 210
			setParam(storeServices, params);
208 211
		
209 212
		super.init();
210

  
213
		selectSubdataset(getId(0, 0, 0));
211 214
		try {
212 215
			loadFromRmf(getRmfBlocksManager());
213 216
		} catch (ParsingException e) {
......
524 527
					if(gridList.get(j).getName().compareTo(variable) == 0) {
525 528
						selectedGridDataType = gridList.get(j);
526 529
						reloadMetadataFromGrid();
527
						String id = j + "-" + getLevelValue() + "-" +  p.getFieldTime();
528
						super.selectSubdataset(id);
530
						super.selectSubdataset(getId(j, getLevelValue(), p.getFieldTime()));
529 531
					}
530 532
				}
531 533
			}
532 534
		}
533 535
	}
536

  
537
	/**
538
	 * Gets the identifier of a subdataset
539
	 * @param grid
540
	 * @param level
541
	 * @param time
542
	 * @return
543
	 */
544
	private String getId(int grid, int level, int time) {
545
		return grid + "-" + level + "-" +  time;
546
	}
534 547
	
535 548
	/**
536 549
	 * Loads a Buffer object from an netCDF Array. 

Also available in: Unified diff