Skip to content

Commit

Permalink
[processing] restore roughness algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
alexbruy committed Oct 11, 2017
1 parent f663ceb commit 56863b8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 21 deletions.
4 changes: 2 additions & 2 deletions python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py
Expand Up @@ -43,6 +43,7 @@
from .pct2rgb import pct2rgb
from .polygonize import polygonize
from .rgb2pct import rgb2pct
from .roughness import roughness
from .slope import slope
from .translate import translate
from .tpi import tpi
Expand All @@ -60,7 +61,6 @@
# from .fillnodata import fillnodata
# from .extractprojection import ExtractProjection
# from .gdal2xyz import gdal2xyz
# from .roughness import roughness
# from .GridInvDist import GridInvDist
# from .GridAverage import GridAverage
# from .GridNearest import GridNearest
Expand Down Expand Up @@ -144,6 +144,7 @@ def loadAlgorithms(self):
pct2rgb(),
polygonize(),
rgb2pct(),
roughness(),
slope(),
translate(),
tpi(),
Expand All @@ -160,7 +161,6 @@ def loadAlgorithms(self):
# fillnodata(),
# ExtractProjection(),
# gdal2xyz(),
# roughness(),
# GridInvDist(),
# GridAverage(),
# GridNearest(),
Expand Down
43 changes: 24 additions & 19 deletions python/plugins/processing/algs/gdal/roughness.py
Expand Up @@ -28,11 +28,14 @@

import os

from qgis.core import (QgsRasterFileWriter,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
QgsProcessingParameterNumber,
QgsProcessingParameterBoolean,
QgsProcessingParameterRasterDestination)

from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
from processing.core.parameters import ParameterRaster
from processing.core.parameters import ParameterBoolean
from processing.core.parameters import ParameterNumber
from processing.core.outputs import OutputRaster
from processing.algs.gdal.GdalUtils import GdalUtils

pluginPath = os.path.split(os.path.split(os.path.dirname(__file__))[0])[0]
Expand All @@ -45,40 +48,42 @@ class roughness(GdalAlgorithm):
COMPUTE_EDGES = 'COMPUTE_EDGES'
OUTPUT = 'OUTPUT'

def group(self):
return self.tr('Raster analysis')

def __init__(self):
super().__init__()

def initAlgorithm(self, config=None):
self.addParameter(ParameterRaster(self.INPUT, self.tr('Input layer')))
self.addParameter(ParameterNumber(self.BAND,
self.tr('Band number'), 1, 99, 1))
self.addParameter(ParameterBoolean(self.COMPUTE_EDGES,
self.tr('Compute edges'), False))
self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer')))
self.addParameter(QgsProcessingParameterBand(
self.BAND, self.tr('Band number'), parentLayerParameterName=self.INPUT))
self.addParameter(QgsProcessingParameterBoolean(
self.COMPUTE_EDGES, self.tr('Compute edges'), defaultValue=False))

self.addOutput(OutputRaster(self.OUTPUT, self.tr('Roughness')))
self.addParameter(QgsProcessingParameterRasterDestination(self.OUTPUT, self.tr('Roughness')))

def name(self):
return 'roughness'

def displayName(self):
return self.tr('Roughness')

def group(self):
return self.tr('Raster analysis')

def getConsoleCommands(self, parameters, context, feedback):
arguments = ['roughness']
arguments.append(str(self.getParameterValue(self.INPUT)))
output = str(self.getOutputValue(self.OUTPUT))
arguments.append(output)
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
arguments.append(inLayer.source())

out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
arguments.append(out)

arguments.append('-of')
arguments.append(GdalUtils.getFormatShortNameFromFilename(output))
arguments.append(QgsRasterFileWriter.driverForExtension(os.path.splitext(out)[1]))

arguments.append('-b')
arguments.append(str(self.getParameterValue(self.BAND)))
arguments.append(str(self.parameterAsInt(parameters, self.BAND, context)))

if self.getParameterValue(self.COMPUTE_EDGES):
if self.parameterAsBool(parameters, self.COMPUTE_EDGES, context):
arguments.append('-compute_edges')

return ['gdaldem', GdalUtils.escapeAndJoin(arguments)]

0 comments on commit 56863b8

Please sign in to comment.