1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フィールド計算機を使った既存レイヤを更新する属性結合

Last updated at Posted at 2025-12-06

はじめに

QGISのプロセッシングの処理結果は新規レイヤとして出力されます。
しかし、ソースファイルと複数のレイヤに依存関係がありソースファイルのパスを変えたくないなどの理由で、入力レイヤに処理結果を追加したいことがあります。
そこで、レイヤを直接更新できるフィールド計算機を使って、プロセッシングの処理結果を入力レイヤに追加する方法を紹介します。

既存レイヤに追加する属性結合イメージ

入力レイヤとして九州各県のポリゴンレイヤ、出力レイヤとしてゾーン統計(ベクタ)で最高標高を付加したポリゴンレイヤをサンプルとします。ソースファイルはgpkg形式で共通のfidフィールドが入力・出力レイヤ両方にあります。
ここで、入力レイヤに対してフィールド計算機を使用して、出力レイヤのdem_maxレイヤを属性結合します。

01イメージ.PNG

使用する関数

今回、フィールド計算機で使用する関数は、get_feature関数とattribute関数です。
関数の説明はフィールド計算機の関数・変数ツリー(名前が不明なので仮称)から見ることができます。get_feature関数でfidが一致するフィーチャ(地物)を取ってきて、attribute関数でそのフィーチャから属性値を取得します。

04関数説明.PNG

フィールド計算機による結合の式

2つの関数を組み合わせて、式を作りました。/* */の中と--の右はコメントです。

/*
 フィールド計算機による結合
*/
attribute(
  get_feature(
   '結合レイヤ名', -- 地図のレイヤ → 結合レイヤ
   'fid',  -- 地図のレイヤ → 結合レイヤ → キー属性
   "fid" ), -- フィールドと値 → キー属性
  '取得属性名' -- 地図のレイヤ → 結合レイヤ → 取得属性
)

式の編集

フィールド計算機を開いて、作成する属性の名前と型を指定します。
上記の式をペーストし、パラメータを関数・変数ツリーをダブルクリックして入れ替えていきます。結合レイヤ名は、ダブルクリックするとIDになります。この例では、fidはそのままで大丈夫です。
フィールド計算機を実行すると、入力レイヤに最高標高の属性が追加されます。

02フィールド計算機.PNG

ユーザ式の登録

ユーザ式に登録しておくと便利です。
03式登録.PNG

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?