こんにちは
「フィルターをかけ」た結果、合致する地物のみ表示するのか、抽出するのか、選択するのかなど
目的によって操作が異なります。
・レイヤプロパティを開き、ソースタブのプロバイダ地物フィルタに条件式を設定(非編集状態に限る)
→ 条件に合致した地物のみが読み込まれる(データレベルでの絞り込み)
・レイヤプロパティを開き、シンボロジタブのルールによる定義にて条件式を設定し
合致しない場合はシンボロジを設定しない
→ 条件に合致した地物のみが表示され、それ以外は非表示。データは存在する
・プロセシングツールの「 QGIS 式による抽出」
→ 条件に合致した地物のみを抽出した新規レイヤを作成
・プロセシングツールの「 QGIS 式による選択」
・属性テーブルあるいはツールバーの「式による地物選択」
→ 条件に合致した地物を選択状態にする
また、別の式として、集計する対象の属性が area のとき、下記の式で順位を計算することができます。
( true のとき昇順(小さい順)、 true を false に変えると降順(大きい順))
array_find(
array_sort(array_agg("area"), true),
"area"
) + 1
最後に +1 しているのは1番から順の順位にするためで、不要なら削除してかまいません。
一旦、この式による順位をたとえば rank 属性などとして作成し、 rank 属性に対し「10以下」という
条件でフィルタリングしてもよいですし、直接上記式に <= 10 を付与し、条件式化してもよいです。
また count("area") で地物数が得られるので、下式でパーセンタイルの計算ができ、上位10%といった
フィルタリングも可能です。
array_find(
array_sort(array_agg("area"), true),
"area"
) / (count("area")-1) * 100
2024年10月13日日曜日 16:56:47 UTC+9 Satoshi Itoh: