Gibt es Iteratoren, die in QGIS Graphical Modeler verwendet werden können, um das oben gezeigte Modell zu vereinfachen? Wenn nicht, gibt es eine bessere Möglichkeit, das Modell zu vereinfachen?
Die erste Spalte repräsentiert meine Eingabe-Layer, die zweite Spalte ist die Kreuzung, die dritte Spalte ist die Ausgabe der Operation "Kreuzung", die vierte Spalte ist die Operation "Attribut nach Position verbinden" und die fünfte Spalte ist das Ergebnis der Verknüpfungsoperation.
Ich möchte Operationen "Schnittmenge" und "Attribut nach Standort verbinden" für eine Analyse der Wasserscheide ausführen. Ziel ist die Berechnung von linearen morphometrischen Parametern wie der Gesamtlänge und der mittleren Länge von Strömen unterschiedlicher Ordnung, des Stromverhältnisses und des Bifurkationsverhältnisses.
Der erste Schritt besteht darin, "Order1-Ströme" mit der Wasserscheide zu schneiden und dann die "Order2-Ströme" mit derselben Wasserscheide zu schneiden. Wenn ein Shapefile "order3 stream" bereitgestellt wird, sollte der Schnittpunkt für diese neue Ebene ausgeführt werden. Daher sind nur "order1 streams" und "order2 streams" obligatorisch, der Rest hängt von der bereitgestellten Wasserscheide ab. Wenn es sich bei der Wasserscheide beispielsweise um eine Wasserscheide der Ordnung 4 handelt, sind bis zu "Ströme der Ordnung 4" erforderlich.
Sobald die Überschneidung für alle verfügbaren Eingabe-Layer abgeschlossen ist, werden sie durch die Position mit der Wasserscheide verbunden. Dabei haben Sie die Möglichkeit, die Summe und den Mittelwert der überschnittenen Streams abzurufen.
Das Bild zeigt die korrekte Vorgehensweise. Wenn ich die Operation außerhalb des Modellierers durchführe, sind die Ergebnisse korrekt. Wenn ich das Modell laufen lasse, erhalte ich diesen Fehler.
"Fehler beim Ausführen des Algorithmus Order5_plus_wshed 'NoneType' Objekt hat kein Attribut 'dataProvider'".
Dies tritt auf, wenn ich für einen der optionalen Parameter keine Eingabe gemacht habe (z. B. "order4 streams"). Wenn ich jedoch alle Eingaben mache, erhalte ich die Ergebnisse, die ich brauche.
Daher möchte ich fragen, ob es einen besseren Weg gibt, diese Aufgabe einzurichten.