I exported a model as script using the properly option in QGIS 3.8. The Script works perfectly, but the output name is changed.
Heres a print of the model:
I want that the script´s output name, from the Processing Toolbox, be the one that I designed in the def initAlgorithm section, and not the given default name.
In the model, the output name comes as "output_name" and in the script, the output name comes as "Reprojected".
Here's the converted Script:
from qgis.core import QgsProcessing
from qgis.core import QgsProcessingAlgorithm
from qgis.core import QgsProcessingMultiStepFeedback
from qgis.core import QgsProcessingParameterVectorLayer
from qgis.core import QgsProcessingParameterFeatureSink
from qgis.core import QgsCoordinateReferenceSystem
import processing
class Rename(QgsProcessingAlgorithm):
def initAlgorithm(self, config=None):
self.addParameter(QgsProcessingParameterVectorLayer('shapeinput', 'ShapeInput', types=[QgsProcessing.TypeVector], defaultValue=None))
self.addParameter(QgsProcessingParameterFeatureSink('Output_name', 'output_name', type=QgsProcessing.TypeVectorAnyGeometry, createByDefault=True, defaultValue=None))
def processAlgorithm(self, parameters, context, model_feedback):
# Use a multi-step feedback, so that individual child algorithm progress reports are adjusted for the
# overall progress through the model
feedback = QgsProcessingMultiStepFeedback(1, model_feedback)
results = {}
outputs = {}
# Reproject Layer
alg_params = {
'INPUT': parameters['shapeinput'],
'TARGET_CRS': QgsCoordinateReferenceSystem('EPSG:4326'),
'OUTPUT': parameters['Output_name']
}
outputs['ReprojectLayer'] = processing.run('native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True)
results['Output_name'] = outputs['ReprojectLayer']['OUTPUT']
return results
def name(self):
return 'rename'
def displayName(self):
return 'rename'
def group(self):
return 'rename'
def groupId(self):
return ''
def createInstance(self):
return Rename()
No comments:
Post a Comment