RGB値をもったラスタの処理方法

949 views
Skip to first unread message

sakuya_izayoi

unread,
Aug 14, 2018, 9:00:59 AM8/14/18
to QGIS初心者質問グループ
こちらsakuya_izayoiのsakuyaです。お世話になります。
RGB値を持ったラスタ画像の処理についてアドバイスを頂きたいです。
QGISのバージョンはどれでも大丈夫です。

現在、100km四方程度のRGBの3バンドを持ったラスタがあり、解像度が一ピクセル当たり2mとなっています。
このラスタにこちらで作成した30m四方のメッシュをかぶせて、30mあたりの平均を作ろうと試みております。

当初はいつも通りラスタを点群に変換しようとしてXYZ形式への変換でと思ったのですが、XYZ形式は、経度、緯度、標高といった
形式であるため、これではポイント変換しても意味がないと実行した後に気が付きました。
以前、福岡さまが記載していただいております
にありました「GRASS - Raster - r.to.vect」を使って全部点群にした後に処理をしようとし、時間がかかっているので本日は計算を実施させたまま帰宅しました。

そこで質問なのですが、RGBの3バンドをもったラスタに任意のメッシュをかぶせて、メッシュ単位でかぶさっているラスタ内の
①最大値を抽出
②平均値計算をする
③最小値を抽出する
といった場合の簡単な方法はありますでしょうか?

私の現在考えている方法は
1.ラスタを点群データに変換する。→2.30mメッシュと点群データで属性結合を行い上記の計算を行わさせる。
といった方法です。
この方法の欠点として、ラスタを点群データに変換するときにかなりの時間と、データ容量が必要であるため、そこを解消したいです。

お知恵を貸してください。

adachi

unread,
Aug 14, 2018, 9:18:00 PM8/14/18
to QGIS初心者質問グループ
sakuya様

バージョン3.2での操作ですが、それ以前のバージョンでも同じかと推察します。

アウトプットについてですが、ラスタのまま作業し
1つのセルの大きさが30m四方のラスタが3枚できる(それぞれ2mセルの最小値、平均値、最大値を30mセルに与えたもの)というイメージでも良いでしょうか。
この方法では「ベースとなるラスタの解像度を変える」ような操作なので、「すでに準備された30mグリッドにピッタリ合うように作りたい」というケースには向かないかもしれません。

・「ラスタ」→「ラスタを揃える」
・右上の「+」をクリック
・「入力ラスタ」にベースとなる2mラスタ、「出力ラスタ」でアウトプットデータを指定
・「リサンプリング方法」で最小、最大、平均のいずれかを指定 → 「OK」
 ※「セルサイズに応じて~」はなんだかそれっぽいですがチェックを入れてしまうとおかしなデータができるのでチェックは外したまま
・「セルサイズ」のチェックボックスをONにし、得たいラスタの1セルあたりのサイズを指定
・「OK」

できたラスタの、レイヤパネル上の最大~最小の表示はもとのラスタとずれがありますが
実際のラスタ値を見てみるとちゃんと最大値等で計算されているように見受けられました。

adachi

unread,
Aug 14, 2018, 9:37:49 PM8/14/18
to QGIS初心者質問グループ
また自己レスになってしまいすみませんが
上記の方法、「ワープ(再投影)」でもできました。こっちのほうがややこしい操作もなくスッキリかもしれません。

また、30mメッシュがベクタデータで用意できるのであれば、「地域統計」ツールでは用を足せませんでしょうか。
この場合、バンドが1つしか選べないので、メッシュポリゴンに対して同じ操作を3回繰り返す必要がありますが…

sakuya_izayoi

unread,
Aug 15, 2018, 2:04:20 AM8/15/18
to QGIS初心者質問グループ
adachiさま

仰られる通り3枚のデータを作ったのちに、最終的には30mメッシュのshpにデータを転記したいという結構無茶な事をやっております。

情報ありがとうございます。外から帰ったら実施してみます。

できたラスタの最大値最小値にずれができる場合は添付図の赤→緑→青の枠の順番で操作してやれば一致するかもです。

sakuya_izayoi

unread,
Aug 16, 2018, 1:56:11 AM8/16/18
to QGIS初心者質問グループ
adachiさま
こちらsakuyaです。お世話になります。

さっそく実行してみたところ、望んだとおりのデータを得る事ができました。
この方法は知りませんでした。
ありがとうございます。
Reply all
Reply to author
Forward
0 new messages