Kann eine Speicherschicht als Eingabe und / oder Ausgabe mit runalg verwendet werden ?
Mit runandload bekomme ich folgendes zum Laufen :
processing.runandload("qgis:mergevectorlayers","memory:bufferOne", "memory:bufferTwo", r"memory:merged")
processing.runandload("qgis:dissolve", r"memory:merged", True, '', r"D:\PythonTesting\dissolved.shp")
Parameter 2 und 3 sind die Eingabeebenen, die sich bereits im Speicher befinden, und Parameter 3 ist die Ausgabeebene, die in den Speicher geschrieben und im folgenden Tool (Auflösen) verwendet wird. Dies funktioniert einwandfrei , aber wenn ich versuche, dieselbe Logik mit runalg zu verwenden , scheint meine zusammengeführte Ebene im Speicher nicht erstellt zu werden, da das Auflösungswerkzeug nie ausgeführt wird. Folgendes würde beispielsweise nicht funktionieren:
processing.runalg("qgis:mergevectorlayers","memory:bufferOne", "memory:bufferTwo", r"memory:merged")
processing.runandload("qgis:dissolve", r"memory:merged", True, '', r"D:\PythonTesting\datenschrott\dissolved.shp")
Kann ich davon ausgehen, dass runalg entweder keine im Speicher befindlichen Ebenen akzeptiert oder keine ausgeben kann?
qgis
pyqgis
qgis-processing
BritishSteel
quelle
quelle
Antworten:
Sie sind sich nicht ganz sicher, warum Ihre Methode nicht funktioniert, aber eine andere Methode ist die Verwendung
None
bei der Verwendung,runalg
da dies auch eine Ausgabe im Speicher erzeugt. Im Folgenden habe ich den ersten Prozess als definiertoutput_0
und das Ergebnis als Eingabe für den zweiten Prozess bezeichnet:Ergebnis:
Getestet auf QGIS 2.16.0-Nødebo mit dem Processing Plugin v2.12.2.
Beachten Sie, dass
qgis:mergevectorlayers
jetzt eine Liste der Eingabeebenen erforderlich ist.quelle
http://gis.stackexchange.com/q/76594/22646 wirft mehr Licht auf Runalg, Runandload und Speicherschicht. Laut http://gis.stackexchange.com/a/184802 hängt die Art und Weise, wie auf die resultierende Speicherschicht verwiesen wird, von der Verarbeitungsversion ab.
quelle