<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hi all,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=EN-GB>I am getting my feet wet with the new QGIS 3 Processing script syntax. In my script I want to use some other processing scripts from the toolbox. I think I got most things right, but I do not get a result back. For testing I just try to use ‘qgis:pointsalonglines’ on a temporary polygon layer and return the points as a result. Here’s what I have so far:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>def initAlgorithm(self, config=None):<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        self.addParameter(<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            QgsProcessingParameterFeatureSource(<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>                self.INPUT,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>                self.tr("Vector Polygon Layer"),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>                [QgsProcessing.TypeVectorPolygon]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            )<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        )<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        […]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        self.addParameter(<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            QgsProcessingParameterFeatureSink(<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>                self.OUTPUT,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>                self.tr('Center line'),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>                QgsProcessing.TypeVectorAnyGeometry<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            )<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        )<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>    def processAlgorithm(self, parameters, context, feedback):<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        source = self.parameterAsSource(parameters, self.INPUT, context)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        # turn QgsProcessingParameterFeature - the source -  into a <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        # QgsVectorLayer apparently self.parameterAsVectorLayer() does <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        # not work on temporary layers so this step is required to use<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        # the input layer in processing algorithms<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        source_vl = source.materialize(QgsFeatureRequest())<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        pt_value = […]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        # qgis:pointsalonglines<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        params = {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            'INPUT': source_vl, <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            'DISTANCE': pt_value,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            'START_OFFSET': 0,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            'END_OFFSET': 0,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            'OUTPUT': 'memory:'<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        points = processing.run(<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            'qgis:pointsalonglines', <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>            params, context=context, feedback=feedback<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        )['OUTPUT']<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>        return {self.OUTPUT: points}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB>running the script gives the following output in the processing window (including some debug info not included above):<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>Eingabeparameter:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>{ 'DISTANCE' : 10, 'INPUT' : 'Polygon?crs=EPSG:31466&uid={e1a2d6cf-0cac-46f5-b1c8-ee208c497d22}', 'OUTPUT' : 'memory:' }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'><class 'qgis._core.QgsProcessingFeatureSource'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>Ergebnisse: {'OUTPUT': 'output_953bb179_3f12_4312_89e4_5ffa13e8336b'}<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'><class 'qgis._core.QgsVectorLayer'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>Ausführung nach 0.03 Sekunden abgeschlossen<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>Ergebisse:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>{'OUTPUT': <PyQt5.QtCore.QObject object at 0x0000023FC2CEBC18>}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>Lade Ergebnis Layer<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='font-family:"Courier New"'>Algorithmus 'None' beendet<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB>The last output line does not look right to me, any idea what I am doing wrong here?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB>Many thanks,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB>Frank<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p><p class=MsoNormal>Dipl. Geogr. Frank Broniewski<o:p></o:p></p><p class=MsoNormal>Waldhölzbacher Str. 51<o:p></o:p></p><p class=MsoNormal>66679 Losheim am See<o:p></o:p></p><p class=MsoNormal>06872 509 068 4<o:p></o:p></p><p class=MsoNormal>0176 611 26 9 2 6<o:p></o:p></p><p class=MsoNormal><a href="http://www.frankbroniewski.com"><span style='color:#0563C1'>www.frankbroniewski.com</span></a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>