Skip to content

Commit ab2886d

Browse files
committed
Port gdal assign projection to new api
1 parent 19e5886 commit ab2886d

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929

3030
from qgis.PyQt.QtGui import QIcon
3131

32+
from qgis.core import (QgsProcessingParameterRasterLayer,
33+
QgsProcessingParameterCrs,
34+
QgsProcessingOutputRasterLayer)
3235
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
33-
from processing.core.parameters import ParameterRaster
34-
from processing.core.parameters import ParameterCrs
35-
from processing.core.outputs import OutputRaster
3636
from processing.algs.gdal.GdalUtils import GdalUtils
3737

3838
from processing.tools.system import isWindows
@@ -50,11 +50,11 @@ def __init__(self):
5050
super().__init__()
5151

5252
def initAlgorithm(self, config=None):
53-
self.addParameter(ParameterRaster(self.INPUT, self.tr('Input layer'), False))
54-
self.addParameter(ParameterCrs(self.CRS,
55-
self.tr('Desired CRS'), ''))
53+
self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer'), optional=False))
54+
self.addParameter(QgsProcessingParameterCrs(self.CRS,
55+
self.tr('Desired CRS')))
5656

57-
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Layer with projection'), True))
57+
self.addOutput(QgsProcessingOutputRasterLayer(self.OUTPUT, self.tr('Layer with projection')))
5858

5959
def name(self):
6060
return 'assignprojection'
@@ -69,9 +69,10 @@ def group(self):
6969
return self.tr('Raster projections')
7070

7171
def getConsoleCommands(self, parameters, context, feedback):
72-
fileName = self.getParameterValue(self.INPUT)
73-
crs = self.getParameterValue(self.CRS)
74-
output = self.getOutputValue(self.OUTPUT) # NOQA
72+
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
73+
fileName = inLayer.source()
74+
75+
crs = self.parameterAsCrs(parameters, self.CRS, context).authid()
7576

7677
arguments = []
7778
arguments.append('-a_srs')

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class GdalAlgorithm(QgsProcessingAlgorithm):
4545

4646
def __init__(self):
4747
super().__init__()
48+
self.output_values = {}
4849

4950
def icon(self):
5051
return QgsApplication.getThemeIcon("/providerGdal.svg")
@@ -89,14 +90,21 @@ def getOgrCompatibleSource(self, parameter_name, parameters, context, feedback):
8990
ogr_layer_name = GdalUtils.ogrLayerName(input_layer.dataProvider().dataSourceUri())
9091
return ogr_data_path, ogr_layer_name
9192

93+
def setOutputValue(self, name, value):
94+
self.output_values[name] = value
95+
9296
def processAlgorithm(self, parameters, context, feedback):
9397
commands = self.getConsoleCommands(parameters, context, feedback)
9498
GdalUtils.runGdal(commands, feedback)
9599

96100
# auto generate outputs
97101
results = {}
98102
for o in self.outputDefinitions():
99-
results[o.name()] = parameters[o.name()]
103+
if o.name() in parameters:
104+
results[o.name()] = parameters[o.name()]
105+
for k, v in self.output_values.items():
106+
results[k]=v
107+
100108
return results
101109

102110
def helpUrl(self):

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from processing.core.ProcessingConfig import ProcessingConfig, Setting
3434
from .GdalUtils import GdalUtils
3535

36+
from .AssignProjection import AssignProjection
3637
from .aspect import aspect
3738
from .warp import warp
3839
# from .nearblack import nearblack
@@ -69,8 +70,7 @@
6970
# from .rasterize_over import rasterize_over
7071
# from .retile import retile
7172
# from .gdal2tiles import gdal2tiles
72-
# from .AssignProjection import AssignProjection
73-
#
73+
7474
from .ogr2ogrpointsonlines import Ogr2OgrPointsOnLines
7575
from .ogr2ogrtopostgis import Ogr2OgrToPostGis
7676

@@ -143,6 +143,7 @@ def loadAlgorithms(self):
143143
self.algs = [
144144
# nearblack(),
145145
# information(),
146+
AssignProjection(),
146147
aspect(),
147148
warp(),
148149
# translate(),
@@ -176,7 +177,6 @@ def loadAlgorithms(self):
176177
# rasterize_over(),
177178
# retile(),
178179
# gdal2tiles(),
179-
# AssignProjection(),
180180
# ----- OGR tools -----
181181
Ogr2OgrPointsOnLines(),
182182
Ogr2OgrToPostGis(),

0 commit comments

Comments
 (0)