36
36
ParameterSelection ,
37
37
ParameterCrs ,
38
38
ParameterNumber ,
39
- ParameterString )
39
+ ParameterString ,
40
+ ParameterBoolean )
40
41
from processing .core .outputs import OutputRaster
41
42
from processing .algs .gdal .GdalUtils import GdalUtils
42
43
@@ -56,6 +57,7 @@ class warp(GdalAlgorithm):
56
57
EXT_CRS = 'EXT_CRS'
57
58
RTYPE = 'RTYPE'
58
59
OPTIONS = 'OPTIONS'
60
+ MULTITHREADING = 'MULTITHREADING'
59
61
60
62
METHOD_OPTIONS = ['near' , 'bilinear' , 'cubic' , 'cubicspline' , 'lanczos' ]
61
63
TYPE = ['Byte' , 'Int16' , 'UInt16' , 'UInt32' , 'Int32' , 'Float32' , 'Float64' ]
@@ -105,6 +107,10 @@ def defineCharacteristics(self):
105
107
self .tr ('Additional creation options' ),
106
108
optional = True ,
107
109
metadata = {'widget_wrapper' : 'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper' }))
110
+ self .addParameter (ParameterBoolean (self .MULTITHREADING ,
111
+ self .tr ('Use multithreaded warping implementation' ),
112
+ False
113
+ ))
108
114
self .addParameter (ParameterSelection (self .RTYPE ,
109
115
self .tr ('Output raster type' ),
110
116
self .TYPE , 5 ))
@@ -118,6 +124,7 @@ def getConsoleCommands(self):
118
124
rastext_crs = self .getParameterValue (self .EXT_CRS )
119
125
opts = self .getParameterValue (self .OPTIONS )
120
126
noData = self .getParameterValue (self .NO_DATA )
127
+ multithreading = self .getParameterValue (self .MULTITHREADING )
121
128
122
129
if noData is not None :
123
130
noData = str (noData )
@@ -165,6 +172,9 @@ def getConsoleCommands(self):
165
172
arguments .append ('-co' )
166
173
arguments .append (opts )
167
174
175
+ if multithreading :
176
+ arguments .append ('-multi' )
177
+
168
178
if GdalUtils .version () in [2010000 , 2010100 ]:
169
179
arguments .append ("--config GDALWARP_IGNORE_BAD_CUTLINE YES" )
170
180
0 commit comments