Ich möchte ein Grass-Modul (v.to.db) in QGis ohne die Grass-Toolbox verwenden.
Ich habe es mit der Python-Konsole versucht, aber ohne Erfolg:
- Mit dem Sextante-Plugin kannte es aber offensichtlich nicht alle Grasmodule.
aus sextante.core.Sextante Sextante importieren
Sextante.alghelp ("Gras: v.to.db")
-> Algorithmus nicht gefunden
- Ein anderer Test:
grass.run_command ("v.to.db", map = 'bl @ PERMANENT', layer = '2', option = 'start', Einheiten = 'meter', Spalten = 'X, Y, Z')
-> Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, im Modul
NameError: Name 'Gras' ist nicht definiert
Wissen Sie, ob es eine andere Möglichkeit gibt, das Grasmodul zu verwenden? Ich möchte es nicht in der Gras-Toolbox verwenden, da ich nur eine Spalte im "Attributfeld" auswählen kann und mehrere Spalten auswählen möchte.
Antworten:
Um Grasfunktionen von einem Plugin oder von der Konsole aus zu verwenden, müssen Sie zuerst das Grasmodul wie folgt importieren:
Wenn Sie den Import vergessen, wird der NameError für ausgelöst
grass
.Befolgen Sie die detaillierten Anweisungen zur Verwendung von Gras in Python
Wenn Sie unter Windows ausgeführt werden und beim Importieren von Gras der Fehler "Handle" angezeigt wird, ist dies auf einen ungelösten Python-Fehler zurückzuführen, der auf einigen Fenstersystemen auftritt. Um das Problem zu umgehen, fügen Sie den Code, der Gras importiert und aufruft, in ein separates Skript ein. Führen Sie dieses Skript dann als unabhängigen Prozess in Ihrem Plugin aus.
Viel Glück!
quelle