From b0291985ac16a1f2809979257ffc12d84004e897 Mon Sep 17 00:00:00 2001 From: volaya Date: Tue, 20 Jan 2015 12:34:17 +0100 Subject: [PATCH] [processing] added specific algorithm for saga 214 --- .../processing/algs/saga/SagaAlgorithm214.py | 75 +++++++++++++++++++ .../algs/saga/SagaAlgorithmProvider.py | 3 +- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 python/plugins/processing/algs/saga/SagaAlgorithm214.py diff --git a/python/plugins/processing/algs/saga/SagaAlgorithm214.py b/python/plugins/processing/algs/saga/SagaAlgorithm214.py new file mode 100644 index 000000000000..fda933c155ce --- /dev/null +++ b/python/plugins/processing/algs/saga/SagaAlgorithm214.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- + +""" +*************************************************************************** + SagaAlgorithm213.py + --------------------- + Date : December 2014 + Copyright : (C) 2014 by Victor Olaya + Email : volayaf at gmail dot com +*************************************************************************** +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +*************************************************************************** +""" + +__author__ = 'Victor Olaya' +__date__ = 'December 2014' +__copyright__ = '(C) 2014, Victor Olaya' + +# This will get replaced with a git SHA1 when you do a git archive + +__revision__ = '$Format:%H$' + +from qgis.core import * +from PyQt4.QtCore import * +from PyQt4.QtGui import * + +from SagaAlgorithm213 import SagaAlgorithm213 +from processing.core.ProcessingConfig import ProcessingConfig +from processing.core.ProcessingLog import ProcessingLog +from processing.core.GeoAlgorithmExecutionException import \ + GeoAlgorithmExecutionException +from processing.core.parameters import * +from processing.core.outputs import * +import SagaUtils +from processing.tools import dataobjects +from processing.tools.system import * + +sessionExportedLayers = {} + +class SagaAlgorithm214(SagaAlgorithm213): + + + def getCopy(self): + newone = SagaAlgorithm214(self.descriptionFile) + newone.provider = self.provider + return newone + + def exportRasterLayer(self, source): + global sessionExportedLayers + if source in sessionExportedLayers: + exportedLayer = sessionExportedLayers[source] + if os.path.exists(exportedLayer): + self.exportedLayers[source] = exportedLayer + return None + else: + del sessionExportedLayers[source] + layer = dataobjects.getObjectFromUri(source, False) + if layer: + filename = layer.name() + else: + filename = os.path.basename(source) + validChars = \ + 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:' + filename = ''.join(c for c in filename if c in validChars) + if len(filename) == 0: + filename = 'layer' + destFilename = getTempFilenameInTempFolder(filename + '.sgrd') + self.exportedLayers[source] = destFilename + sessionExportedLayers[source] = destFilename + return 'io_gdal -TRANSFORM -INTERPOL 0 -GRIDS "' + destFilename + '" -FILES "' + source + '"' diff --git a/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py b/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py index 89c9dae8651a..5923ce286f47 100644 --- a/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py +++ b/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py @@ -33,6 +33,7 @@ from processing.core.ProcessingLog import ProcessingLog from SagaAlgorithm212 import SagaAlgorithm212 from SagaAlgorithm213 import SagaAlgorithm213 +from SagaAlgorithm214 import SagaAlgorithm214 from SplitRGBBands import SplitRGBBands import SagaUtils from processing.tools.system import * @@ -41,7 +42,7 @@ class SagaAlgorithmProvider(AlgorithmProvider): supportedVersions = {"2.1.2": ("2.1.2", SagaAlgorithm212), "2.1.3": ("2.1.3", SagaAlgorithm213), - "2.1.4": ("2.1.3", SagaAlgorithm213)} + "2.1.4": ("2.1.3", SagaAlgorithm214)} def __init__(self): AlgorithmProvider.__init__(self)