Определение значений полей с использованием значений других полей Esri Arcmap - PullRequest
0 голосов
/ 05 марта 2020

Я использую arcMap, Esri. У меня есть слой полилинии с информацией в тексте, который мне нужно преобразовать в числовые значения. Я хочу выполнить sh это с помощью сценариев с Python в Калькуляторе полей.

Моя задача: Используя значения полей в одном поле, я хочу определить значения в другом поле. В моем случае мне нужно определить ширину дороги в цифрах, в зависимости от значения поля в тексте из другого поля. Дорога "widthNumber" будет зависеть от значения другого поля, значения "widthText".

Example

1 Ответ

0 голосов
/ 09 марта 2020

Есть несколько способов сделать это. Я предполагаю, что оба поля находятся в одном классе объектов / шейп-файле, а поле widthNumber является целым числом некоторого типа.

В идеале рекомендуется использовать регистр переключения (Java / C#), но их нет в python. Таким образом, мы можем использовать словарь для пересоздания переключателя или просто загрузить ifs '. Я фанат чистого кода, поэтому я включил логи c для словаря. Но вы всегда можете переместить это в кучу ifs ', если сочтете нужным.

Все, что вам нужно сделать, это использовать область кода сценария pre-logi c, чтобы написать функцию, которая принимает widthText и возвращает widthNumber.

def calculateValue(text):
switcher ={
    "Ones":1,
    "Fivers":5,
    "Threebs":3,
    "Twotow":2,
    "Four":4,
    "Fivers":5
}
return switcher.get(text,"Invalid")`

Затем в нижней части вы просто вызываете эту функцию и передаете атрибут.

В этом примере я не писал ни в какой обработке ошибок, чтобы иметь дело с недопустимыми значениями, в зависимости от того, как хранятся ваши значения, может быть разумно убедиться, что все в одном и том же случае (верхний / нижний) для обеспечения согласованности.

...