Wie führe ich eine If-Anweisung im Feldrechner von ArcGIS for Desktop durch?


10

Ich habe ein Shapefile mit zwei numerischen Feldern ("Dist_1" und "Dist_2"). Ich möchte eine Feldberechnung, die ein zusätzliches Feld ("Ergebnis") mit einer von drei Antworten ausfüllt:

Erstens, wenn Dist_1 größer als Dist_2 ist, füllen Sie das Ergebnis mit 'True'. Zweitens, wenn Dist_1 kleiner als Dist_2 ist, füllen Sie mit 'False' und drittens, wenn Dist_1 und Dist_2 gleich sind, füllen Sie mit "Equal".


Bitte fügen Sie als Antwort kein "Danke" hinzu. Sobald Sie einen ausreichenden Ruf haben , können Sie Fragen und Antworten abstimmen , die Sie als hilfreich empfunden haben. - Aus dem Rückblick
Midavalo

Antworten:


15

Parser:

Python

Codeblock:

def calc(f1,f2):

    if f1 > f2:
        return "True"
    elif f1 < f2:
        return "False"
    else:
        return "Equal"

Ausdruck:

calc(!Dist_1!, !Dist_2!)

Oder grafisch (hier können Sie leider nicht den gesamten Codeblock sehen)

Geben Sie hier die Bildbeschreibung ein


PolyGeo danke - aber es wird ein Fehler angezeigt 000989 - Analysefehler: unindent entspricht keiner äußeren Einrückungsstufe (Zeile 3). Kannst du das entschlüsseln? !!
Chris U

2
Halten Sie einen konsistenten Abstand für die if-, elif-, else-Anweisungen (2) sowie die return-Anweisungen (4) ein. Jeder sollte in einer eigenen Zeile sein.
Paul

1
Paul / PolyGeo, vielen Dank, das ist ein Vergnügen!
Chris U
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.