mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-17 00:04:02 -04:00
additional parameters support in gdalinfo algorithm
This commit is contained in:
parent
5b27b72191
commit
1e7704ab60
@ -25,6 +25,8 @@ import os
|
|||||||
|
|
||||||
from qgis.PyQt.QtGui import QIcon
|
from qgis.PyQt.QtGui import QIcon
|
||||||
from qgis.core import (QgsProcessingException,
|
from qgis.core import (QgsProcessingException,
|
||||||
|
QgsProcessingParameterDefinition,
|
||||||
|
QgsProcessingParameterString,
|
||||||
QgsProcessingParameterRasterLayer,
|
QgsProcessingParameterRasterLayer,
|
||||||
QgsProcessingParameterBoolean,
|
QgsProcessingParameterBoolean,
|
||||||
QgsProcessingParameterFileDestination)
|
QgsProcessingParameterFileDestination)
|
||||||
@ -41,6 +43,7 @@ class gdalinfo(GdalAlgorithm):
|
|||||||
STATS = 'STATS'
|
STATS = 'STATS'
|
||||||
NO_GCP = 'NOGCP'
|
NO_GCP = 'NOGCP'
|
||||||
NO_METADATA = 'NO_METADATA'
|
NO_METADATA = 'NO_METADATA'
|
||||||
|
EXTRA = 'EXTRA'
|
||||||
OUTPUT = 'OUTPUT'
|
OUTPUT = 'OUTPUT'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -62,6 +65,13 @@ class gdalinfo(GdalAlgorithm):
|
|||||||
self.tr('Suppress metadata info'),
|
self.tr('Suppress metadata info'),
|
||||||
defaultValue=False))
|
defaultValue=False))
|
||||||
|
|
||||||
|
extra_param = QgsProcessingParameterString(self.EXTRA,
|
||||||
|
self.tr('Additional command-line parameters'),
|
||||||
|
defaultValue=None,
|
||||||
|
optional=True)
|
||||||
|
extra_param.setFlags(extra_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
|
||||||
|
self.addParameter(extra_param)
|
||||||
|
|
||||||
self.addParameter(QgsProcessingParameterFileDestination(self.OUTPUT,
|
self.addParameter(QgsProcessingParameterFileDestination(self.OUTPUT,
|
||||||
self.tr('Layer information'),
|
self.tr('Layer information'),
|
||||||
self.tr('HTML files (*.html)')))
|
self.tr('HTML files (*.html)')))
|
||||||
@ -94,10 +104,14 @@ class gdalinfo(GdalAlgorithm):
|
|||||||
arguments.append('-nogcp')
|
arguments.append('-nogcp')
|
||||||
if self.parameterAsBoolean(parameters, self.NO_METADATA, context):
|
if self.parameterAsBoolean(parameters, self.NO_METADATA, context):
|
||||||
arguments.append('-nomd')
|
arguments.append('-nomd')
|
||||||
|
|
||||||
|
if self.EXTRA in parameters and parameters[self.EXTRA] not in (None, ''):
|
||||||
|
extra = self.parameterAsString(parameters, self.EXTRA, context)
|
||||||
|
arguments.append(extra)
|
||||||
|
|
||||||
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
|
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
|
||||||
if raster is None:
|
if raster is None:
|
||||||
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
|
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
|
||||||
|
|
||||||
arguments.append(raster.source())
|
arguments.append(raster.source())
|
||||||
return [self.commandName(), GdalUtils.escapeAndJoin(arguments)]
|
return [self.commandName(), GdalUtils.escapeAndJoin(arguments)]
|
||||||
|
|
||||||
|
@ -1290,6 +1290,16 @@ class TestGdalAlgorithms(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
|
|||||||
['gdalinfo',
|
['gdalinfo',
|
||||||
'-stats "' + source + '"'])
|
'-stats "' + source + '"'])
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
alg.getConsoleCommands({'INPUT': source,
|
||||||
|
'MIN_MAX': False,
|
||||||
|
'NOGCP': False,
|
||||||
|
'NO_METADATA': False,
|
||||||
|
'STATS': False,
|
||||||
|
'EXTRA': '-proj4 -listmdd -checksum'}, context, feedback),
|
||||||
|
['gdalinfo',
|
||||||
|
'-proj4 -listmdd -checksum "' + source + '"'])
|
||||||
|
|
||||||
def testGdalTindex(self):
|
def testGdalTindex(self):
|
||||||
context = QgsProcessingContext()
|
context = QgsProcessingContext()
|
||||||
feedback = QgsProcessingFeedback()
|
feedback = QgsProcessingFeedback()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user