30
30
from qgis .PyQt .QtGui import QIcon
31
31
32
32
from qgis .analysis import QgsRuggednessFilter
33
-
33
+ from qgis .core import (QgsProcessingParameterRasterLayer ,
34
+ QgsProcessingParameterNumber ,
35
+ QgsProcessingParameterRasterDestination )
34
36
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
38
37
from processing .tools import raster
38
+ from processing .tools .dataobjects import exportRasterLayer
39
39
40
40
pluginPath = os .path .split (os .path .split (os .path .dirname (__file__ ))[0 ])[0 ]
41
41
42
42
43
43
class Ruggedness (QgisAlgorithm ):
44
44
45
- INPUT_LAYER = 'INPUT_LAYER '
45
+ INPUT = 'INPUT '
46
46
Z_FACTOR = 'Z_FACTOR'
47
- OUTPUT_LAYER = 'OUTPUT_LAYER '
47
+ OUTPUT = 'OUTPUT '
48
48
49
49
def icon (self ):
50
50
return QIcon (os .path .join (pluginPath , 'images' , 'dem.png' ))
@@ -56,12 +56,13 @@ def __init__(self):
56
56
super ().__init__ ()
57
57
58
58
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' )))
65
66
66
67
def name (self ):
67
68
return 'ruggednessindex'
@@ -70,12 +71,15 @@ def displayName(self):
70
71
return self .tr ('Ruggedness index' )
71
72
72
73
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 )
76
78
77
79
outputFormat = raster .formatShortNameFromFileName (outputFile )
78
80
79
81
ruggedness = QgsRuggednessFilter (inputFile , outputFile , outputFormat )
80
82
ruggedness .setZFactor (zFactor )
81
- ruggedness .processRaster (None )
83
+ ruggedness .processRaster (feedback )
84
+
85
+ return {self .OUTPUT : outputFile }
0 commit comments