28
28
29
29
import os
30
30
31
+ from qgis .core import (QgsRasterFileWriter ,
32
+ QgsProcessingParameterRasterLayer ,
33
+ QgsProcessingParameterBand ,
34
+ QgsProcessingParameterNumber ,
35
+ QgsProcessingParameterBoolean ,
36
+ QgsProcessingParameterRasterDestination )
37
+
31
38
from processing .algs .gdal .GdalAlgorithm import GdalAlgorithm
32
- from processing .core .parameters import ParameterRaster
33
- from processing .core .parameters import ParameterBoolean
34
- from processing .core .parameters import ParameterNumber
35
- from processing .core .outputs import OutputRaster
36
39
from processing .algs .gdal .GdalUtils import GdalUtils
37
40
38
41
pluginPath = os .path .split (os .path .split (os .path .dirname (__file__ ))[0 ])[0 ]
@@ -45,40 +48,42 @@ class roughness(GdalAlgorithm):
45
48
COMPUTE_EDGES = 'COMPUTE_EDGES'
46
49
OUTPUT = 'OUTPUT'
47
50
48
- def group (self ):
49
- return self .tr ('Raster analysis' )
50
-
51
51
def __init__ (self ):
52
52
super ().__init__ ()
53
53
54
54
def initAlgorithm (self , config = None ):
55
- self .addParameter (ParameterRaster (self .INPUT , self .tr ('Input layer' )))
56
- self .addParameter (ParameterNumber ( self . BAND ,
57
- self .tr ('Band number' ), 1 , 99 , 1 ))
58
- self .addParameter (ParameterBoolean ( self . COMPUTE_EDGES ,
59
- self .tr ('Compute edges' ), False ))
55
+ self .addParameter (QgsProcessingParameterRasterLayer (self .INPUT , self .tr ('Input layer' )))
56
+ self .addParameter (QgsProcessingParameterBand (
57
+ self . BAND , self .tr ('Band number' ), parentLayerParameterName = self . INPUT ))
58
+ self .addParameter (QgsProcessingParameterBoolean (
59
+ self . COMPUTE_EDGES , self .tr ('Compute edges' ), defaultValue = False ))
60
60
61
- self .addOutput ( OutputRaster (self .OUTPUT , self .tr ('Roughness' )))
61
+ self .addParameter ( QgsProcessingParameterRasterDestination (self .OUTPUT , self .tr ('Roughness' )))
62
62
63
63
def name (self ):
64
64
return 'roughness'
65
65
66
66
def displayName (self ):
67
67
return self .tr ('Roughness' )
68
68
69
+ def group (self ):
70
+ return self .tr ('Raster analysis' )
71
+
69
72
def getConsoleCommands (self , parameters , context , feedback ):
70
73
arguments = ['roughness' ]
71
- arguments .append (str (self .getParameterValue (self .INPUT )))
72
- output = str (self .getOutputValue (self .OUTPUT ))
73
- arguments .append (output )
74
+ inLayer = self .parameterAsRasterLayer (parameters , self .INPUT , context )
75
+ arguments .append (inLayer .source ())
76
+
77
+ out = self .parameterAsOutputLayer (parameters , self .OUTPUT , context )
78
+ arguments .append (out )
74
79
75
80
arguments .append ('-of' )
76
- arguments .append (GdalUtils . getFormatShortNameFromFilename ( output ))
81
+ arguments .append (QgsRasterFileWriter . driverForExtension ( os . path . splitext ( out )[ 1 ] ))
77
82
78
83
arguments .append ('-b' )
79
- arguments .append (str (self .getParameterValue ( self .BAND )))
84
+ arguments .append (str (self .parameterAsInt ( parameters , self .BAND , context )))
80
85
81
- if self .getParameterValue ( self .COMPUTE_EDGES ):
86
+ if self .parameterAsBool ( parameters , self .COMPUTE_EDGES , context ):
82
87
arguments .append ('-compute_edges' )
83
88
84
89
return ['gdaldem' , GdalUtils .escapeAndJoin (arguments )]
0 commit comments