QGISのポリゴンゾーン内のピクセル値を合計しますか?


8

ラスターレイヤーとベクターレイヤー(ポリゴン)の2つのレイヤーがあります。ラスターピクセルの値を表示できますが、それらをポリゴンレイヤーの情報と組み合わせる方法がわかりません。具体的には、次のことを行います。

  1. ポリゴンの境界線内のすべてのピクセルの値の合計
  2. ポリゴンの境界内の特定の値を持つピクセルの数を数える

QGISでこれを行う方法について誰かが助けてアドバイスできますか?


QGISでのプロセス全体についてはわかりませんが、最初のステップはラスターをベクターレイヤーに変換することだと思います。QGISのポリゴン化ツールを使用して、ポリゴンレイヤーをマスクとして使用できます。
Baltok

回答:


6

これまでは、GRASSプラグインでv.rast.statsを使用する必要がありましたが、ラスターメニューで組み込みのゾーン統計を使用できるようになりました。

読み込まれたポリゴンレイヤーとラスターがあります。メニュー項目を実行します。

それはあなたの質問のa)の部分に答えます。

v.rast.statsなどのツールを使用すると、より詳細な出力が得られますが、おそらくb)の単純なワークフローは、各ポリゴンを抽出し([ラスター]、[抽出]、[クリッパー]メニューを使用)、それぞれに対してヒストグラムを実行します。データの構造、実行する頻度などによって異なります。


草の機能は、sextanteプラグインでもアクセスできることを覚えておいてください。qgis sextaneの新しいバージョンが組み込まれているため(プラグインとしてではなく、コアコンポーネントとして)、それを学ぶ良い機会でもあります。
ニックス

他の誰かが行き詰まった場合に備えて、Zonal Statisticsはプラグインメニューからインストール/有効化する必要があるプラグインです。そうでない場合、ラスターメニューに表示されません...
Owen

2

最初の目的としては、ウィリーが言ったようにv.rast.statモジュールを使用できます。モジュールは、探している統計値(最小値、最大値、平均値、標準偏差、カウントなど)がベクターデータベースに入力された新しい列を作成します。

2番目の質問については、しきい値より下(または上)の値を「非表示」にする必要があります。これを行う1つの方法は、qgisのラスター計算機を使用し、次の式を入力して計算することです。

(raster@1 >= 10) * raster@1

ここに画像の説明を入力してください

括弧はマスクを作成します。つまり、10を超えるすべての値は1の値を取り、すべての値は0の値を下回ります。次に、両方の値に元の値を掛けます。そして、明らかに0で何かは0に等しいです。

作成されたマスクラスターのnodata値を0と等しくなるように設定してから、v.rast.statsを再実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.