Ich versuche, die Python-Syntax im Feldrechner von ArcGIS 10 zu verwenden, und bin völlig verwirrt. Bisher scheitern die grundlegendsten Berechnungen an mir, und ich verstehe nicht warum. Ich versuche, eine Funktion zu erstellen, mit der nur die Werte aller Zellen in einer Spalte als Vielfaches des von mir übergebenen Arguments festgelegt werden (ich wollte etwas Einfaches ausprobieren, um es zu testen, da alles, was ich versucht habe, auch fehlgeschlagen ist ).
Die Fehlermeldungen sagen mir jedoch, dass meine Syntax falsch ist:
aber ich kann nicht verstehen, was falsch ist.
Abgesehen davon bin ich auch entsetzt darüber, wie schwierig es ist, lesbares Python in das Feldrechnerfeld zu schreiben, da es keine Syntaxhervorhebung oder klare Einrückung gibt. Es wäre schneller und einfacher, ein externes Python-Skript zu schreiben, um diese Berechnung durchzuführen, aber ich möchte versuchen, herauszufinden, wie diese neue Funktion innerhalb des Programms funktioniert.
code-block
; Ich wollte nur eine schnelle Art und Weise eine komplizierte Berechnung zu tun , alsa + b
def test(var1): return var1*2
), dann den Codeblock zu kopieren und mit der rechten Maustaste in das interaktive Fenster zu klicken, indem Sie "Python-Code aus der Zwischenablage ausführen" auswählen und dann die Funktion mit möglichen Werten fürvar1
(z.test(4)
sollte 8) zurückgeben. Es ist eine reine Python-Methode zum Entwickeln und Testen des Codeblocks, bevor er in ArcGIS eingeführt wird.Antworten:
Dies kann daran liegen, dass Sie einen Feldnamen verwenden, in den ein Parametername eingefügt werden soll.
Versuchen Sie stattdessen etwas wie:
quelle
!field!
Konvention funktioniert nur innerhalb des Ausdrucks, nicht im Codeblock. Sie können auch einfach10
als Ausdruck einfügen und den Codeblock leer lassen.!field!
in Ihrem Codeblock.Wie Jason Scheirer kommentierte, können Sie! Field nicht verwenden! innerhalb der Pre-Script-Logik.
Pre-Script-Logik:
avg_miles =
Hinweis: Ein "Trick", mit dem Sie dieses Durcheinander vereinfachen können ... Sie können das interaktive Befehlsfenster in ArcMap verwenden, um Python-Code zu erstellen und zu testen (z. B. Methoden definieren). Sobald Sie die Dinge zum Laufen gebracht haben, können Sie im Fenster "Feld berechnen" auf eine Python-Methode verweisen, die im interaktiven Fenster erstellt wurde.
quelle