Как выполнить оператор If в полевом калькуляторе ArcGIS for Desktop?


10

У меня есть шейп-файл, содержащий два числовых поля ("Dist_1" и "Dist_2"). Я хочу вычисление поля, которое заполнит дополнительное поле («Результат») одним из трех ответов:

Во-первых, если Dist_1 больше, чем Dist_2, заполните «True». Во-вторых, если Dist_1 меньше, чем Dist_2, введите «False», а в-третьих, если Dist_1 и Dist_2 равны, введите «Equal».


Пожалуйста, не добавляйте «спасибо» в качестве ответа. Как только вы наберете достаточную репутацию , вы сможете голосовать за вопросы и ответы , которые показались вам полезными. - Из обзора
Midavalo

Ответы:


15

Parser:

Python

Блок кода:

def calc(f1,f2):

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

Выражение:

calc(!Dist_1!, !Dist_2!)

Или графически (к сожалению, вы не видите весь блок кода здесь)

введите описание изображения здесь


PolyGeo спасибо - но получаю ошибку 000989 - Ошибка разбора: unindent не соответствует ни одному внешнему уровню отступа (строка 3). Вы можете расшифровать это? !!
Крис U

2
Сохраняйте постоянный интервал для операторов if, elif, else (2), а также для операторов return (4). Каждый должен быть на своей линии.
Пол

1
Пол / PolyGeo, большое спасибо, это работает удовольствие!
Крис U
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.