Skip to content

Commit 1964a7c

Browse files
committed
[processing] added box with console commands for gdal/ogr algs
1 parent 90ce59c commit 1964a7c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+172
-117
lines changed

python/plugins/processing/algs/gdal/ClipByExtent.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def defineCharacteristics(self):
5656
self.tr('Additional creation parameters'), '', optional=True))
5757
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Clipped')))
5858

59-
def processAlgorithm(self, progress):
59+
def getConsoleCommands(self):
6060
out = self.getOutputValue(self.OUTPUT)
6161
noData = str(self.getParameterValue(self.NO_DATA))
6262
projwin = str(self.getParameterValue(self.PROJWIN))
@@ -82,5 +82,4 @@ def processAlgorithm(self, progress):
8282
arguments.append(self.getParameterValue(self.INPUT))
8383
arguments.append(out)
8484

85-
GdalUtils.runGdal(['gdal_translate',
86-
GdalUtils.escapeAndJoin(arguments)], progress)
85+
return ['gdal_translate', GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/ClipByMask.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def defineCharacteristics(self):
6666
self.tr('Additional creation parameters'), '', optional=True))
6767
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Output layer')))
6868

69-
def processAlgorithm(self, progress):
69+
def getConsoleCommands(self):
7070
out = self.getOutputValue(self.OUTPUT)
7171
mask = self.getParameterValue(self.MASK)
7272
noData = str(self.getParameterValue(self.NO_DATA))
@@ -104,5 +104,4 @@ def processAlgorithm(self, progress):
104104
arguments.append(self.getParameterValue(self.INPUT))
105105
arguments.append(out)
106106

107-
GdalUtils.runGdal(['gdalwarp', GdalUtils.escapeAndJoin(arguments)],
108-
progress)
107+
return ['gdalwarp', GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/ColorRelief.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def defineCharacteristics(self):
6565

6666
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Color relief')))
6767

68-
def processAlgorithm(self, progress):
68+
def getConsoleCommands(self):
6969
arguments = ['color-relief']
7070
arguments.append(unicode(self.getParameterValue(self.INPUT)))
7171
arguments.append(unicode(self.getParameterValue(self.COLOR_TABLE)))
@@ -87,5 +87,4 @@ def processAlgorithm(self, progress):
8787
elif mode == 2:
8888
arguments.append('-nearest_color_entry')
8989

90-
GdalUtils.runGdal(['gdaldem',
91-
GdalUtils.escapeAndJoin(arguments)], progress)
90+
return ['gdaldem', GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/GdalAlgorithm.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
***************************************************************************
1818
"""
1919

20+
2021
__author__ = 'Victor Olaya'
2122
__date__ = 'August 2012'
2223
__copyright__ = '(C) 2012, Victor Olaya'
@@ -29,14 +30,25 @@
2930
from PyQt4 import QtGui
3031
from processing.script.ScriptAlgorithm import ScriptAlgorithm
3132
from processing.core.GeoAlgorithm import GeoAlgorithm
33+
from processing.algs.gdal.GdalAlgorithmDialog import GdalAlgorithmDialog
34+
from processing.algs.gdal.GdalUtils import GdalUtils
3235

3336

3437
class GdalAlgorithm(GeoAlgorithm):
3538

3639
def getIcon(self):
3740
return QtGui.QIcon(os.path.dirname(__file__) + '/../../images/gdal.png')
3841

42+
def getCustomParametersDialog(self):
43+
return GdalAlgorithmDialog(self)
44+
45+
def processAlgorithm(self, progress):
46+
GdalUtils.runGdal(self.getConsoleCommands(), progress)
47+
3948
class GdalScriptAlgorithm(ScriptAlgorithm):
4049

4150
def getIcon(self):
4251
return QtGui.QIcon(os.path.dirname(__file__) + '/../../images/gdal.png')
52+
53+
def getCustomParametersDialog(self):
54+
return GdalAlgorithmDialog(self)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
2+
from PyQt4.QtGui import *
3+
from processing.gui.AlgorithmDialog import AlgorithmDialog
4+
from processing.gui.AlgorithmDialogBase import AlgorithmDialogBase
5+
from processing.gui.ParametersPanel import ParametersPanel
6+
7+
class GdalAlgorithmDialog(AlgorithmDialog):
8+
9+
def __init__(self, alg):
10+
AlgorithmDialogBase.__init__(self, alg)
11+
12+
self.alg = alg
13+
14+
self.mainWidget = GdalParametersPanel(self, alg)
15+
self.setMainWidget()
16+
self.mainWidget.parametersHaveChanged()
17+
18+
class GdalParametersPanel(ParametersPanel):
19+
20+
def __init__(self, parent, alg):
21+
ParametersPanel.__init__(self, parent, alg)
22+
23+
w = QWidget()
24+
layout = QVBoxLayout()
25+
layout.setMargin(9)
26+
layout.setSpacing(6)
27+
label = QLabel()
28+
label.setText("GDAL/OGR console call")
29+
layout.addWidget(label)
30+
self.text = QPlainTextEdit()
31+
self.text.setEnabled(False)
32+
layout.addWidget(self.text)
33+
w.setLayout(layout)
34+
self.layout().addWidget(w)
35+
36+
self.connectParameterSignals()
37+
self.parametersHaveChanged()
38+
39+
def connectParameterSignals(self):
40+
for w in self.widgets.values():
41+
if isinstance(w, QLineEdit):
42+
w.textChanged.connect(self.parametersHaveChanged)
43+
elif isinstance(w, QComboBox):
44+
w.currentIndexChanged.connect(self.parametersHaveChanged)
45+
elif isinstance(w, QCheckBox):
46+
w.stateChanged.connect(self.parametersHaveChanged)
47+
48+
def parametersHaveChanged(self):
49+
try:
50+
self.parent.setParamValues()
51+
for output in self.alg.outputs:
52+
if output.value is None:
53+
output.value = "[temporary file]"
54+
commands = self.alg.getConsoleCommands()
55+
commands = [c for c in commands if c not in ['cmd.exe', '/C ']]
56+
self.text.setPlainText(" ".join(commands))
57+
except:
58+
self.text.setPlainText("")

python/plugins/processing/algs/gdal/GridAverage.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def defineCharacteristics(self):
7676

7777
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Average')))
7878

79-
def processAlgorithm(self, progress):
79+
def getConsoleCommands(self):
8080
arguments = ['-l']
8181
arguments.append(
8282
os.path.basename(os.path.splitext(
@@ -101,5 +101,4 @@ def processAlgorithm(self, progress):
101101
arguments.append(unicode(self.getParameterValue(self.INPUT)))
102102
arguments.append(unicode(self.getOutputValue(self.OUTPUT)))
103103

104-
GdalUtils.runGdal(['gdal_grid',
105-
GdalUtils.escapeAndJoin(arguments)], progress)
104+
return ['gdal_grid',GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/GridDataMetrics.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def defineCharacteristics(self):
8282

8383
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Interpolated metrics')))
8484

85-
def processAlgorithm(self, progress):
85+
def getConsoleCommands(self):
8686
arguments = ['-l']
8787
arguments.append(
8888
os.path.basename(os.path.splitext(
@@ -120,5 +120,4 @@ def processAlgorithm(self, progress):
120120
arguments.append(unicode(self.getParameterValue(self.INPUT)))
121121
arguments.append(unicode(self.getOutputValue(self.OUTPUT)))
122122

123-
GdalUtils.runGdal(['gdal_grid',
124-
GdalUtils.escapeAndJoin(arguments)], progress)
123+
return ['gdal_grid', GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/GridInvDist.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def defineCharacteristics(self):
8686

8787
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Interpolated IDW')))
8888

89-
def processAlgorithm(self, progress):
89+
def getConsoleCommands(self):
9090
arguments = ['-l']
9191
arguments.append(
9292
os.path.basename(os.path.splitext(
@@ -114,5 +114,4 @@ def processAlgorithm(self, progress):
114114
arguments.append(unicode(self.getParameterValue(self.INPUT)))
115115
arguments.append(unicode(self.getOutputValue(self.OUTPUT)))
116116

117-
GdalUtils.runGdal(['gdal_grid',
118-
GdalUtils.escapeAndJoin(arguments)], progress)
117+
return ['gdal_grid', GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/GridNearest.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def defineCharacteristics(self):
7474

7575
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Interpolated nearest neighbor')))
7676

77-
def processAlgorithm(self, progress):
77+
def getConsoleCommands(self):
7878
arguments = ['-l']
7979
arguments.append(
8080
os.path.basename(os.path.splitext(
@@ -98,5 +98,4 @@ def processAlgorithm(self, progress):
9898
arguments.append(unicode(self.getParameterValue(self.INPUT)))
9999
arguments.append(unicode(self.getOutputValue(self.OUTPUT)))
100100

101-
GdalUtils.runGdal(['gdal_grid',
102-
GdalUtils.escapeAndJoin(arguments)], progress)
101+
return ['gdal_grid', GdalUtils.escapeAndJoin(arguments)]

python/plugins/processing/algs/gdal/aspect.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def defineCharacteristics(self):
6666

6767
self.addOutput(OutputRaster(self.OUTPUT, 'Aspect'))
6868

69-
def processAlgorithm(self, progress):
69+
def getConsoleCommands(self):
7070
arguments = ['aspect']
7171
arguments.append(unicode(self.getParameterValue(self.INPUT)))
7272
output = unicode(self.getOutputValue(self.OUTPUT))
@@ -91,5 +91,4 @@ def processAlgorithm(self, progress):
9191
if self.getParameterValue(self.ZERO_FLAT):
9292
arguments.append('-zero_for_flat')
9393

94-
GdalUtils.runGdal(['gdaldem',
95-
GdalUtils.escapeAndJoin(arguments)], progress)
94+
return ['gdaldem', GdalUtils.escapeAndJoin(arguments)]

0 commit comments

Comments
 (0)