17.11. 向量计算器

备注

在本课中,我们将了解如何使用向量计算器,基于数学表达式向向量层添加新属性。

我们已经知道如何使用栅格计算器通过数学表达式创建新的栅格图层。向量层可以使用类似的算法,它会生成一个具有与输入层相同的属性的新层,以及一个带有输入的表达式结果的额外层。该算法被称为 Field calculator 并具有以下参数对话框。

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

备注

在较新的处理版本中,界面有了很大的变化,它更强大,更容易使用。

以下是使用该算法的几个示例。

首先,让我们计算每个多边形中白人的人口密度,这代表了一次人口普查。我们在属性表中有两个可用于此目的的字段,即 WHITESHAPE_AREA 。我们只需将它们相除,再乘以一百万(每平方公里的密度),这样我们就可以在相应的领域使用以下公式

( "WHITE" / "SHAPE_AREA" ) * 1000000

参数对话框应按如下所示进行填充。

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

这将生成一个名为的新字段 WHITE_DENS

现在让我们计算一下这两个参数之间的比率 MALESFEMALES 字段来创建一个新的字段,以指示男性人口在数量上是否高于女性人口。

输入以下公式

"MALES" / "FEMALES"

这一次,在按下 OK 纽扣。

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

在早期版本中,由于两个字段都是整数类型,因此结果将被截断为整数。在这种情况下,公式应为: 1.0 *  "MALES"  /  "FEMALES" ,表示我们想要一个浮点数的结果。

我们可以使用条件函数来创建一个新字段 malefemale 文本字符串,而不是那些比率值,使用以下公式:

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

参数窗口应该如下所示。

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

中提供了一个python字段计算器。 Advanced Python field calculator ,在此不再详述

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