Важно

Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.

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

Примечание

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

We already know how to use the raster calculator to create new raster layers using mathematical expressions. A similar algorithm is available for vector layers, and generates a new layer with the same attributes of the input layer, plus an additional one with the result of the expression entered. The algorithm is called Field calculator and has the following parameters dialog.

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

Примечание

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

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

First, let’s calculate the population density of white people in each polygon, which represents a census. We have two fields in the attributes table that we can use for that, namely WHITE and SHAPE_AREA. We just have to divide them and multiply by one million (to have density per square km), so we can use the following formula in the corresponding field:

( "WHITE" / "SHAPE_AREA" ) * 1000000

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

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

This will generate a new field named WHITE_DENS.

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

Enter the following formula:

"MALES" / "FEMALES"

This time the parameters window should look like this before pressing the OK button.

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

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

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

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

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

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

A python field calculator is available in the Advanced Python field calculator, which will not be detailed here.

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