Важно

Translation is a community effort you can join. This page is currently translated at 93.75%.

17.11. Калькулятор для векторов

Примечание

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

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

../../../_images/field_calculator.png

Примечание

В более новых версиях интерфейс панели иструментов Обработки значительно изменился - он стал более понятным и легким в использовании.

Здесь приведены примеры того, как используется алгоритм.

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

( "WHITE" / "SHAPE_AREA" ) * 1000000

Диалоговое окно должно быть заполнено следующими параметрами.

../../../_images/density1.png

после чего будет создано новое поле WHITE_DENS

Далее давайте посчитаем отношение мужчин и женщин , чтобы создать новое поле, которое будет отображать информацию о том доминирует ли численность мужского населения над женским.

Введите формулу

"MALES" / "FEMALES"

Перед тем , как нажать кнопку ОК убедитесь. что окно параметров выглядит следуюищм образом

../../../_images/ratio.png

В ранних версиях , если оба поля были типа integer, то результаты вычисления будут сокращены до типа integer. В данном случае формула должна выглядеть: 1.0 * "MALES" / "FEMALES" , чтобы указать, что результат должен содержать значения с плавающей десятичной запятой.

Мы можем воспользоваться фукциями с условиями, чтобы создать новое поле с текстовыми значениями male (мужчина) или female  (женщина) вместо значения соотношения количества мужчин и женщин.

CASE WHEN  "MALES" > "FEMALES"  THEN 'male' ELSE 'female' END

Окно параметров должно выглядеть следующим образом.

../../../_images/predominance.png

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

../../../_images/advanced.png