From d14461e7b62be5986612a5f0c62eef668028ef35 Mon Sep 17 00:00:00 2001 From: Peter Petrik Date: Tue, 7 May 2019 13:23:35 +0200 Subject: [PATCH] fix #389 force grib output from saga flow alg --- crayfish/processing/saga_flow_to_grib.py | 25 +++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/crayfish/processing/saga_flow_to_grib.py b/crayfish/processing/saga_flow_to_grib.py index 7ac43fb5..f02d0bce 100644 --- a/crayfish/processing/saga_flow_to_grib.py +++ b/crayfish/processing/saga_flow_to_grib.py @@ -36,8 +36,9 @@ QgsRasterBlock, QgsRasterFileWriter, QgsProcessingParameterRasterLayer, - QgsProcessingParameterRasterDestination, - QgsProcessingAlgorithm + QgsProcessingParameterFileDestination, + QgsProcessingAlgorithm, + QgsProcessingException ) from qgis.utils import iface @@ -69,16 +70,22 @@ def createInstance(self): return SagaFlowToGribAlgorithm() def initAlgorithm(self, config): - self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input raster'))) - self.addParameter(QgsProcessingParameterRasterDestination(self.OUTPUT, self.tr('Resulting raster'))) + self.addParameter(QgsProcessingParameterRasterLayer( + self.INPUT, + self.tr('Input raster'))) + + self.addParameter(QgsProcessingParameterFileDestination( + self.OUTPUT, + self.tr('Output file (GRIB)'), + self.tr('GRIB files (*.grb)'), + optional=False)) def processAlgorithm(self, parameters, context, feedback): inp_rast = self.parameterAsRasterLayer(parameters, self.INPUT, context) - grib_filename = self.parameterAsOutputLayer( - parameters, - self.OUTPUT, - context - ) + + grib_filename = self.parameterAsString(parameters, self.OUTPUT, context) + if not grib_filename: + raise QgsProcessingException(self.tr('You need to specify output filename.')) idp = inp_rast.dataProvider() map_settings = iface.mapCanvas().mapSettings()