17.11. Калькулятор для векторов
Примечание
В этом уроке мы добавим новые атрибуты в векторный слой, используя математические выражения Векторного калькулятора.
Мы уже знакомы с процессом использования калькулятора растров для того, чтобы создать растровый слой на основе математических выражений. Подобный алгоритм существут для вектроных слов. Он создает новый слой с такими же атрибутами, как и у входного слоя, добавляя новое поле с результатами вычислений математического выражения. Этот алогормит называется «Калькулятор полей» со следующим набором параметров.

Примечание
В более новых версиях интерфейс панели иструментов Обработки значительно изменился - он стал более понятным и легким в использовании.
Здесь приведены примеры того, как используется алгоритм.
Сначала давайте посчитайм плотность белого населения в каждом полигоне, который представляет перепись населения. В таблице атрибутов есть два поля, которые будут использованы для вычислений WHITE` и SHAPE_AREA
. Нам нужно лишь разделить одно на другое и умножить на один миллион ( чтобы получить плотность населения на километр), для этого воспользуемся следующей формулой
( "WHITE" / "SHAPE_AREA" ) * 1000000
Диалоговое окно должно быть заполнено следующими параметрами.

после чего будет создано новое поле WHITE_DENS
Далее давайте посчитаем отношение мужчин и женщин , чтобы создать новое поле, которое будет отображать информацию о том доминирует ли численность мужского населения над женским.
Введите формулу
"MALES" / "FEMALES"
Перед тем , как нажать кнопку ОК убедитесь. что окно параметров выглядит следуюищм образом

В ранних версиях , если оба поля были типа integer, то результаты вычисления будут сокращены до типа integer. В данном случае формула должна выглядеть: 1.0 * "MALES" / "FEMALES"
, чтобы указать, что результат должен содержать значения с плавающей десятичной запятой.
Мы можем воспользоваться фукциями с условиями, чтобы создать новое поле с текстовыми значениями male
(мужчина) или female
(женщина) вместо значения соотношения количества мужчин и женщин.
CASE WHEN "MALES" > "FEMALES" THEN 'male' ELSE 'female' END
Окно параметров должно выглядеть следующим образом.

Калькулятор полей, исплозующий язык программирования питон, доступен в Advanced Python field calculator. В этом уроке он не будет освещен.
