18.11. ベクター計算機

ノート

このレッスンでは、ベクター演算を使用して、数式に基づいてベクターレイヤーに新しい属性を追加する方法について説明します。

数学的な式を使用して新しいラスターレイヤーを作成するためにラスター計算機を使用する方法はすでに知っています。ベクターレイヤーに対して同様のアルゴリズムが使用可能であり、入力レイヤーと同じ属性を持つ新しいレイヤー、に加えて入力された式の結果を持つ新しいレイヤーを生成します。このアルゴリズムは、 フィールド計算機 と呼ばれ、以下の[パラメーター]ダイアログボックスを持っています。

../../../_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"

次の式を使用して、 male または female テキスト文字列の代わりに、それらの比の値で新しいフィールドを持つように、条件付きの関数を使用できます:

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

パラメーターウィンドウは、次のようになります。

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

Pythonのフィールドの計算は、ここでは詳述しない 高度なPythonのフィールド計算機 、で提供されています

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