18.11. ベクター計算機¶
注釈
このレッスンでは、ベクター演算を使用して、数式に基づいてベクターレイヤーに新しい属性を追加する方法について説明します。
数学的な式を使用して新しいラスターレイヤーを作成するためにラスター計算機を使用する方法はすでに知っています。ベクターレイヤーに対して同様のアルゴリズムが使用可能であり、入力レイヤーと同じ属性を持つ新しいレイヤー、に加えて入力された式の結果を持つ新しいレイヤーを生成します。このアルゴリズムは、 フィールド計算機 と呼ばれ、以下の[パラメーター]ダイアログボックスを持っています。
注釈
インターフェイスが大幅に変更されたプロセッシングの新しいバージョンでは、より強力で使いやすいです。
ここでは、そのアルゴリズムを使用してのいくつかの例があります。
まずは、国勢調査を表し、各ポリゴン中の白人の人口密度を計算してみましょう。属性テーブル内の二つのフィールド、すなわち WHITE
と SHAPE_AREA
がそのために使用できます。それらを割り算し、百万で乗算する(平方キロメートルあたりの密度にするため)必要があるだけなので、対応するフィールドに次の式を使用できます
( "WHITE" / "SHAPE_AREA" ) * 1000000
以下に示すようにパラメーターダイアログが満たされる必要があります。
これは WHITE_DENS
という名前の新しいフィールドを生成します。
今度は、男性人口が女性人口に比して数値的に優位にあるかどうかを示す新しいものを作成するために、 MALES
と FEMALES
フィールド間の比率を計算してみましょう。
次の式を入力します。
"MALES" / "FEMALES"
今回は、パラメーターウィンドウは OK ボタンを押す前に、次のようになります。
両方のフィールドが整数型であるため、以前のバージョンでは、結果が整数に切り捨てられることになります。この場合、式は次のようになります。私たちは浮動小数点数に結果を望んでいることを示すために 1.0 * "MALES" / "FEMALES"
。
次の式を使用して、 male
または female
テキスト文字列の代わりに、それらの比の値で新しいフィールドを持つように、条件付きの関数を使用できます:
CASE WHEN "MALES" > "FEMALES" THEN 'male' ELSE 'female' END
パラメーターウィンドウは、次のようになります。
Pythonのフィールドの計算は、ここでは詳述しない 高度なPythonのフィールド計算機 、で提供されています