<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>