mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
more tests for nearblack algorithm
and add support for additional command line parameters
This commit is contained in:
parent
629afb685c
commit
09102c7e7b
@ -46,6 +46,7 @@ class nearblack(GdalAlgorithm):
|
||||
NEAR = 'NEAR'
|
||||
WHITE = 'WHITE'
|
||||
OPTIONS = 'OPTIONS'
|
||||
EXTRA = 'EXTRA'
|
||||
OUTPUT = 'OUTPUT'
|
||||
|
||||
def __init__(self):
|
||||
@ -72,6 +73,13 @@ class nearblack(GdalAlgorithm):
|
||||
'class': 'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'}})
|
||||
self.addParameter(options_param)
|
||||
|
||||
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(QgsProcessingParameterRasterDestination(self.OUTPUT, self.tr('Nearblack')))
|
||||
|
||||
def name(self):
|
||||
@ -117,4 +125,8 @@ class nearblack(GdalAlgorithm):
|
||||
if options:
|
||||
arguments.extend(GdalUtils.parseCreationOptions(options))
|
||||
|
||||
if self.EXTRA in parameters and parameters[self.EXTRA] not in (None, ''):
|
||||
extra = self.parameterAsString(parameters, self.EXTRA, context)
|
||||
arguments.append(extra)
|
||||
|
||||
return [self.commandName(), GdalUtils.escapeAndJoin(arguments)]
|
||||
|
||||
@ -63,6 +63,7 @@ from processing.algs.gdal.gdal2xyz import gdal2xyz
|
||||
from processing.algs.gdal.polygonize import polygonize
|
||||
from processing.algs.gdal.pansharp import pansharp
|
||||
from processing.algs.gdal.merge import merge
|
||||
from processing.algs.gdal.nearblack import nearblack
|
||||
|
||||
from processing.tools.system import isWindows
|
||||
|
||||
@ -2736,6 +2737,50 @@ class TestGdalAlgorithms(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
|
||||
'-o ' + outdir + '/check.tif ' +
|
||||
'--optfile mergeInputFiles.txt'])
|
||||
|
||||
def testNearblack(self):
|
||||
context = QgsProcessingContext()
|
||||
feedback = QgsProcessingFeedback()
|
||||
source = os.path.join(testDataPath, 'dem.tif')
|
||||
alg = nearblack()
|
||||
alg.initAlgorithm()
|
||||
|
||||
with tempfile.TemporaryDirectory() as outdir:
|
||||
# defaults
|
||||
self.assertEqual(
|
||||
alg.getConsoleCommands({'INPUT': source,
|
||||
'OUTPUT': outdir + '/check.tif'}, context, feedback),
|
||||
['nearblack',
|
||||
source + ' -of GTiff -o ' + outdir + '/check.tif ' +
|
||||
'-near 15'])
|
||||
|
||||
# search white pixels
|
||||
self.assertEqual(
|
||||
alg.getConsoleCommands({'INPUT': source,
|
||||
'WHITE': True,
|
||||
'OUTPUT': outdir + '/check.tif'}, context, feedback),
|
||||
['nearblack',
|
||||
source + ' -of GTiff -o ' + outdir + '/check.tif ' +
|
||||
'-near 15 -white'])
|
||||
|
||||
# additional parameters
|
||||
self.assertEqual(
|
||||
alg.getConsoleCommands({'INPUT': source,
|
||||
'EXTRA': '-nb 5 -setalpha',
|
||||
'OUTPUT': outdir + '/check.tif'}, context, feedback),
|
||||
['nearblack',
|
||||
source + ' -of GTiff -o ' + outdir + '/check.tif ' +
|
||||
'-near 15 -nb 5 -setalpha'])
|
||||
|
||||
# additional parameters and creation options
|
||||
self.assertEqual(
|
||||
alg.getConsoleCommands({'INPUT': source,
|
||||
'OPTIONS': 'COMPRESS=JPEG|JPEG_QUALITY=75',
|
||||
'EXTRA': '-nb 5 -setalpha',
|
||||
'OUTPUT': outdir + '/check.tif'}, context, feedback),
|
||||
['nearblack',
|
||||
source + ' -of GTiff -o ' + outdir + '/check.tif ' +
|
||||
'-near 15 -co COMPRESS=JPEG -co JPEG_QUALITY=75 -nb 5 -setalpha'])
|
||||
|
||||
def testRearrangeBands(self):
|
||||
context = QgsProcessingContext()
|
||||
feedback = QgsProcessingFeedback()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user