ラスターレイヤーとベクターレイヤー(ポリゴン)の2つのレイヤーがあります。ラスターピクセルの値を表示できますが、それらをポリゴンレイヤーの情報と組み合わせる方法がわかりません。具体的には、次のことを行います。
- ポリゴンの境界線内のすべてのピクセルの値の合計
- ポリゴンの境界内の特定の値を持つピクセルの数を数える
QGISでこれを行う方法について誰かが助けてアドバイスできますか?
ラスターレイヤーとベクターレイヤー(ポリゴン)の2つのレイヤーがあります。ラスターピクセルの値を表示できますが、それらをポリゴンレイヤーの情報と組み合わせる方法がわかりません。具体的には、次のことを行います。
QGISでこれを行う方法について誰かが助けてアドバイスできますか?
回答:
これまでは、GRASSプラグインでv.rast.statsを使用する必要がありましたが、ラスターメニューで組み込みのゾーン統計を使用できるようになりました。
読み込まれたポリゴンレイヤーとラスターがあります。メニュー項目を実行します。
それはあなたの質問のa)の部分に答えます。
v.rast.statsなどのツールを使用すると、より詳細な出力が得られますが、おそらくb)の単純なワークフローは、各ポリゴンを抽出し([ラスター]、[抽出]、[クリッパー]メニューを使用)、それぞれに対してヒストグラムを実行します。データの構造、実行する頻度などによって異なります。
最初の目的としては、ウィリーが言ったようにv.rast.statモジュールを使用できます。モジュールは、探している統計値(最小値、最大値、平均値、標準偏差、カウントなど)がベクターデータベースに入力された新しい列を作成します。
2番目の質問については、しきい値より下(または上)の値を「非表示」にする必要があります。これを行う1つの方法は、qgisのラスター計算機を使用し、次の式を入力して計算することです。
(raster@1 >= 10) * raster@1
括弧はマスクを作成します。つまり、10を超えるすべての値は1の値を取り、すべての値は0の値を下回ります。次に、両方の値に元の値を掛けます。そして、明らかに0で何かは0に等しいです。
作成されたマスクラスターのnodata値を0と等しくなるように設定してから、v.rast.statsを再実行します。