Revision 1028 org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/ClippingProcess.java

View differences:

ClippingProcess.java
31 31
import org.gvsig.app.project.ProjectManager;
32 32
import org.gvsig.app.project.documents.Document;
33 33
import org.gvsig.app.project.documents.view.BaseViewDocument;
34
import org.gvsig.fmap.dal.DALLocator;
35
import org.gvsig.fmap.dal.DataManager;
36
import org.gvsig.fmap.dal.DataServerExplorer;
37
import org.gvsig.fmap.dal.DataServerExplorerParameters;
34 38
import org.gvsig.fmap.dal.coverage.RasterLibrary;
35 39
import org.gvsig.fmap.dal.coverage.RasterLocator;
36 40
import org.gvsig.fmap.dal.coverage.RasterManager;
......
39 43
import org.gvsig.fmap.dal.coverage.datastruct.NoData;
40 44
import org.gvsig.fmap.dal.coverage.datastruct.Params;
41 45
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
42
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
43 46
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
44 47
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
45 48
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
46 49
import org.gvsig.fmap.dal.coverage.process.IncrementableTask;
47
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
48 50
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
49 51
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
50
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
52
import org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters;
51 53
import org.gvsig.fmap.dal.coverage.store.parameter.RemoteStoreParameters;
52 54
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
53 55
import org.gvsig.fmap.dal.coverage.store.props.ColorTable;
54 56
import org.gvsig.fmap.dal.coverage.util.RasterUtils;
55 57
import org.gvsig.fmap.dal.exception.CloseException;
58
import org.gvsig.fmap.dal.exception.DataException;
59
import org.gvsig.fmap.dal.exception.InitializeException;
60
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
61
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
56 62
import org.gvsig.fmap.mapcontext.layers.FLayer;
57 63
import org.gvsig.fmap.mapcontext.layers.FLayers;
58 64
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster;
......
70 76
 */
71 77
public class ClippingProcess extends RasterProcess {
72 78
	private String                        fileName            = "";
73
	private DataServerWriter              writerBufferServer  = null;
74 79
	private FLyrRaster                    rasterSE            = null;
75
	private AffineTransform               affineTransform     = new AffineTransform();
76 80
	private boolean                       oneLayerPerBand     = false;
77 81
	private int[]                         drawableBands       = { 0, 1, 2 };
78 82
	private double[]                      pValues             = null;
79
	private RasterWriter                  rw                  = null;
80 83
	private int                           interpolationMethod = Buffer.INTERPOLATION_Undefined;
81 84
	private String                        viewName            = "";
82 85
	private Params                        params              = null;
83 86
	private ColorInterpretation           colorInterp         = null;
84 87
	private ArrayList<VectorialROI>       selectedRois        = null;
85

  
88
	private AffineTransform               affineTransform     = null;
86 89
	private double[]                      wcValues            = null;
87 90
	private RasterManager                 rManager            = RasterLocator.getManager();
91
	private NewRasterStoreParameters      sparams             = null; 
88 92
	
89 93
	/**
90 94
	 * Variables de la resoluci?n de salida
......
113 117
	@SuppressWarnings("unchecked")
114 118
	public void init() {
115 119
		fileName = getStringParam("filename");
116
		writerBufferServer = (DataServerWriter) getParam("datawriter");
117 120
		viewName = getStringParam("viewname");
118 121
		pValues = getDoubleArrayParam("pixelcoordinates");
119 122
		wcValues = getDoubleArrayParam("realcoordinates");
......
268 271
			
269 272
			
270 273
			insertLineLog(RasterToolsUtil.getText(this, "salvando_imagen"));
271

  
274
			
275
			DataManager manager = DALLocator.getDataManager();
276
			String provider = "Gdal Store";
277
			DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
278
			
272 279
			String finalFileName = "";
273 280
			if (oneLayerPerBand) {
274 281
				long[] milis = new long[drawableBands.length];
275 282
				String[] fileNames = new String[drawableBands.length];
276 283
				for (int i = 0; i < drawableBands.length; i++) {
277 284
					fileNames[i] = fileName + "_B" + drawableBands[i] + ".tif";
278
					writerBufferServer.setBuffer(buffer, i);
279
					Params p = null;
280
					if (params == null)
281
						p = rManager.createWriter(fileNames[i]).getParams();
282
					else
283
						p = params;
284
					rw = rManager.createWriter(writerBufferServer, fileNames[i], 1,
285
							affineTransform, buffer.getWidth(), buffer.getHeight(),
286
							buffer.getDataType(), p, null);
287
					rw.setColorBandsInterpretation(new String[]{ColorInterpretation.GRAY_BAND});
288
					rw.setWkt(dstoreCopy.getWktProjection());
289
					rw.dataWrite();
290
					rw.writeClose();
285
					
286
					int index = fileNames[i].lastIndexOf(File.separator);
287
					if(index < 0)
288
						index = fileNames[i].length();
289
					String path = fileNames[i].substring(0, index);
290
					String file = fileNames[i].substring(index + 1, fileNames[i].length());
291
					
292
					eparams.setDynValue("initialpath", path);
293
					DataServerExplorer serverExplorer = manager.openServerExplorer(eparams.getExplorerName(), eparams);
294

  
295
					sparams = (NewRasterStoreParameters)serverExplorer.getAddParameters(provider);
296
					sparams.setDestination(path, file);
297
					sparams.setBuffer(buffer);
298
					sparams.setColorInterpretation(new String[]{ColorInterpretation.GRAY_BAND});
299
					sparams.setWktProjection(dstoreCopy.getWktProjection());
300
					sparams.setBand(i);
301
					sparams.setAffineTransform(affineTransform);
302
					
303
					serverExplorer.add(provider, sparams, true);
304
					
305
//					writerBufferServer.setBuffer(buffer, i);
306
//					Params p = null;
307
//					if (params == null)
308
//						p = rManager.createWriter(fileNames[i]).getParams();
309
//					else
310
//						p = params;
311
//					rw = rManager.createWriter(writerBufferServer, fileNames[i], 1,
312
//							affineTransform, buffer.getWidth(), buffer.getHeight(),
313
//							buffer.getDataType(), p, null);
314
//					rw.setColorBandsInterpretation(new String[]{ColorInterpretation.GRAY_BAND});
315
//					rw.setWkt(dstoreCopy.getWktProjection());
316
//					rw.dataWrite();
317
//					rw.writeClose();
291 318
					saveToRmf(fileNames[i]);
292 319
					t2 = new java.util.Date().getTime();
293 320
					milis[i] = (t2 - t1);
......
325 352
					f.delete();
326 353
				}
327 354
				f = null;
328
				writerBufferServer.setBuffer(buffer, -1);
329
				if (params == null) {
330
					finalFileName = fileName + ".tif";
331
					params = rManager.createWriter(finalFileName).getParams();
332
				} else
333
					finalFileName = fileName;
334
				rw = rManager.createWriter(writerBufferServer, finalFileName,
335
						buffer.getBandCount(), affineTransform, buffer.getWidth(),
336
						buffer.getHeight(), buffer.getDataType(), params, null);
355
				
356
				finalFileName = fileName + ".tif";
357
				
358
				int index = finalFileName.lastIndexOf(File.separator);
359
				if(index < 0)
360
					index = finalFileName.length();
361
				String path = finalFileName.substring(0, index);
362
				String file = finalFileName.substring(index + 1, finalFileName.length());
363
				
364
				eparams.setDynValue("initialpath", path);
365
				DataServerExplorer serverExplorer = manager.openServerExplorer(eparams.getExplorerName(), eparams);
366

  
367
				sparams = (NewRasterStoreParameters)serverExplorer.getAddParameters(provider);
368
				sparams.setDestination(path, file);
369
				sparams.setBuffer(buffer);
337 370
				if(colorInterp != null)
338
					rw.setColorBandsInterpretation(colorInterp.getValues());
339
				rw.setWkt(dstoreCopy.getWktProjection());
340
				rw.dataWrite();
341
				rw.writeClose();
371
					sparams.setColorInterpretation(colorInterp.getValues());
372
				sparams.setWktProjection(dstoreCopy.getWktProjection());
373
				sparams.setAffineTransform(affineTransform);
374
				
375
				serverExplorer.add(provider, sparams, true);
376
				
377
//				writerBufferServer.setBuffer(buffer, -1);
378
//				if (params == null) {
379
//					finalFileName = fileName + ".tif";
380
//					params = rManager.createWriter(finalFileName).getParams();
381
//				} else
382
//					finalFileName = fileName;
383
//				rw = rManager.createWriter(writerBufferServer, finalFileName,
384
//						buffer.getBandCount(), affineTransform, buffer.getWidth(),
385
//						buffer.getHeight(), buffer.getDataType(), params, null);
386
//				if(colorInterp != null)
387
//					rw.setColorBandsInterpretation(colorInterp.getValues());
388
//				rw.setWkt(dstoreCopy.getWktProjection());
389
//				rw.dataWrite();
390
//				rw.writeClose();
342 391
				saveToRmf(finalFileName);
392
				
393
				
343 394
				t2 = new java.util.Date().getTime();
344 395
				if (incrementableTask != null) {
345 396
					incrementableTask.processFinalize();
......
355 406
				cutFinalize(finalFileName, (t2 - t1));
356 407
			}
357 408

  
358
		} catch (NotSupportedExtensionException e) {
359
			RasterToolsUtil.messageBoxError("error_not_suported_extension", this, e);
360 409
		} catch (RasterDriverException e) {
361 410
			RasterToolsUtil.messageBoxError("error_writer", this, e);
362
		} catch (IOException e) {
411
		} catch (ValidateDataParametersException e) {
363 412
			RasterToolsUtil.messageBoxError("error_georasterwriter", this, e);
413
		} catch (ProviderNotRegisteredException e) {
414
			RasterToolsUtil.messageBoxError("error_georasterwriter", this, e);
415
		} catch (InitializeException e) {
416
			RasterToolsUtil.messageBoxError("error_georasterwriter", this, e);
417
		} catch (DataException e) {
418
			RasterToolsUtil.messageBoxError("error_georasterwriter", this, e);
419
		} catch (Exception e) {
420
			e.printStackTrace();
364 421
		} finally {
365 422
			if (dstoreCopy != null)
366 423
				try {
......
477 534
				return task.getPercent();
478 535
		}
479 536
		
480
		return (writerBufferServer != null) ? writerBufferServer.getPercent() : 0;
537
		return (sparams != null) ? sparams.getPercent() : 0;
481 538
	}
482 539

  
483 540
	/*

Also available in: Unified diff