Skip to content

Commit f4bba54

Browse files
committed
[processing] restore Ruggedness algorithm
1 parent 05b4cc2 commit f4bba54

File tree

3 files changed

+34
-29
lines changed

3 files changed

+34
-29
lines changed

python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
from .RandomExtract import RandomExtract
7373
from .RandomExtractWithinSubsets import RandomExtractWithinSubsets
7474
from .RegularPoints import RegularPoints
75+
from .Ruggedness import Ruggedness
7576
from .SaveSelectedFeatures import SaveSelectedFeatures
7677
from .SelectByAttribute import SelectByAttribute
7778
from .SelectByExpression import SelectByExpression
@@ -147,7 +148,6 @@
147148
# from .Translate import Translate
148149
# from .SingleSidedBuffer import SingleSidedBuffer
149150
# from .PointsAlongGeometry import PointsAlongGeometry
150-
# from .Ruggedness import Ruggedness
151151
# from .Hillshade import Hillshade
152152
# from .Relief import Relief
153153
# from .IdwInterpolation import IdwInterpolation
@@ -266,6 +266,7 @@ def getAlgs(self):
266266
RandomExtract(),
267267
RandomExtractWithinSubsets(),
268268
RegularPoints(),
269+
Ruggedness(),
269270
SaveSelectedFeatures(),
270271
SelectByAttribute(),
271272
SelectByExpression(),

python/plugins/processing/algs/qgis/Ruggedness.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,21 @@
3030
from qgis.PyQt.QtGui import QIcon
3131

3232
from qgis.analysis import QgsRuggednessFilter
33-
33+
from qgis.core import (QgsProcessingParameterRasterLayer,
34+
QgsProcessingParameterNumber,
35+
QgsProcessingParameterRasterDestination)
3436
from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
35-
from processing.core.parameters import ParameterRaster
36-
from processing.core.parameters import ParameterNumber
37-
from processing.core.outputs import OutputRaster
3837
from processing.tools import raster
38+
from processing.tools.dataobjects import exportRasterLayer
3939

4040
pluginPath = os.path.split(os.path.split(os.path.dirname(__file__))[0])[0]
4141

4242

4343
class Ruggedness(QgisAlgorithm):
4444

45-
INPUT_LAYER = 'INPUT_LAYER'
45+
INPUT = 'INPUT'
4646
Z_FACTOR = 'Z_FACTOR'
47-
OUTPUT_LAYER = 'OUTPUT_LAYER'
47+
OUTPUT = 'OUTPUT'
4848

4949
def icon(self):
5050
return QIcon(os.path.join(pluginPath, 'images', 'dem.png'))
@@ -56,12 +56,13 @@ def __init__(self):
5656
super().__init__()
5757

5858
def initAlgorithm(self, config=None):
59-
self.addParameter(ParameterRaster(self.INPUT_LAYER,
60-
self.tr('Elevation layer')))
61-
self.addParameter(ParameterNumber(self.Z_FACTOR,
62-
self.tr('Z factor'), 1.0, 999999.99, 1.0))
63-
self.addOutput(OutputRaster(self.OUTPUT_LAYER,
64-
self.tr('Ruggedness index')))
59+
self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT,
60+
self.tr('Elevation layer')))
61+
self.addParameter(QgsProcessingParameterNumber(self.Z_FACTOR,
62+
self.tr('Z factor'),
63+
QgsProcessingParameterNumber.Double,
64+
1, False, 1, 999999.99))
65+
self.addParameter(QgsProcessingParameterRasterDestination(self.OUTPUT, self.tr('Ruggedness')))
6566

6667
def name(self):
6768
return 'ruggednessindex'
@@ -70,12 +71,15 @@ def displayName(self):
7071
return self.tr('Ruggedness index')
7172

7273
def processAlgorithm(self, parameters, context, feedback):
73-
inputFile = self.getParameterValue(self.INPUT_LAYER)
74-
zFactor = self.getParameterValue(self.Z_FACTOR)
75-
outputFile = self.getOutputValue(self.OUTPUT_LAYER)
74+
inputFile = exportRasterLayer(self.parameterAsRasterLayer(parameters, self.INPUT, context))
75+
zFactor = self.parameterAsDouble(parameters, self.Z_FACTOR, context)
76+
77+
outputFile = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
7678

7779
outputFormat = raster.formatShortNameFromFileName(outputFile)
7880

7981
ruggedness = QgsRuggednessFilter(inputFile, outputFile, outputFormat)
8082
ruggedness.setZFactor(zFactor)
81-
ruggedness.processRaster(None)
83+
ruggedness.processRaster(feedback)
84+
85+
return {self.OUTPUT: outputFile}

python/plugins/processing/tests/testdata/qgis_algorithm_tests.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,18 +1056,18 @@ tests:
10561056
hash: 151ea76a21b286c16567eb6b4b692925a84145b65561a0017effb1a1
10571057
type: rasterhash
10581058

1059-
# - algorithm: qgis:ruggednessindex
1060-
# name: Ruggedness index from QGIS analysis library
1061-
# params:
1062-
# INPUT_LAYER:
1063-
# name: dem.tif
1064-
# type: raster
1065-
# Z_FACTOR: 1.0
1066-
# results:
1067-
# OUTPUT_LAYER:
1068-
# hash: ff630246e8dc19c7217d81261c6b64f965c17fa04d3e41d7979c1f1e
1069-
# type: rasterhash
1070-
#
1059+
- algorithm: qgis:ruggednessindex
1060+
name: Ruggedness index from QGIS analysis library
1061+
params:
1062+
INPUT_LAYER:
1063+
name: dem.tif
1064+
type: raster
1065+
Z_FACTOR: 1.0
1066+
results:
1067+
OUTPUT_LAYER:
1068+
hash: ff630246e8dc19c7217d81261c6b64f965c17fa04d3e41d7979c1f1e
1069+
type: rasterhash
1070+
10711071
# - algorithm: qgis:hillshade
10721072
# name: Hillshade from QGIS analysis library
10731073
# params:

0 commit comments

Comments
 (0)