Landsat-8の衛星画像を使って土地被覆の教師つき分類をやってみます。
まぁ、画像のどこが海や川や森、市街地なのかをトレーニングデータ(教師データ)を作っておいて、それを基準にして分類(色分け)してみようというものです。
衛星画像はどれも結構大きいので事前に対象領域を切り出しておきます。
事前準備
衛星画像を触ってみる(QGIS)の1と2、3の前半を参考にして画像のダウンロードとプラグインの導入、およびバンド1~7の読み込みをやっておきます。
読み込み後、「Create raster of band set」にチェックを入れてRunを実行して適当なフォルダーに画像を保存します。
この画像はバンド1~7の画像を1つにスタックしたものです。
xxxx_Bstack_raster.tifというような名前で保存されています。
ここから対象になる領域を切り出しておきます。
メニュで、ラスタ -> 抽出 -> 範囲によるラスタクリップ… を選びます。
クリップされた領域のところをクリックして、「キャンパス上で領域を指定する」を選びます。
領域を指定(だいたい大阪です)
名前を付けて保存して実行します。
バンド1~7がスタックされた1枚の小領域の画像が作成されます。
他の画像はもう不要です、今後はこれのみを使っていきます。
教師つき分類をやってみる
新規に上記で作成されたファイルをSCPプラグインで読み込みます。
クリップ画像を土地利用の状況が分かりやすいようにレイヤプロパティでトゥルーカラーに設定しておきます。
Redバンド -> バンド4
Greenバンド -> バンド3
Blueバンド -> バンド2
で、適用
こんな感じ
分類の基準となるトレーニングデータを作成します。
今回は水域と陸域の2つあるとして、
水域 -> 海、川
陸域 -> 森、都市
それぞれ2個づつデータを作ります。
まず「Training input」のタブを選択し、
教師つき分類に必要なトレーニングデータ(サンプルデータ)をROIというような名前で新規に保存
ROI:興味域とか関心領域という意味らしいです。Region Of Interest ?
ROIにチェックが入っているのを確認して、「Create a ROI Polygon」のアイコンをクリックして、まず海の上でクリックしながらポリゴンを作成、右クリックで終了
ここは水域なのでMC InfoにWater
海の上に作成したので、C InfoにはSeaと入力して
Saveします。
分類用にカラーをもっともらしいものにしておきます。
Colorをダブルクリックして色を選択します。
「Create a ROI Polygon」のアイコンをクリックからの一連の流れを繰り返して、複数トレーニングデータを作っておきます。
水域ー>Water->SeaとRiver
陸域ー>Land->CityとForest
Classificationタブを開きます。
AlgorithmはSpectral Angle Mappingを選択し、
UseのAlgorithmにチェックを入れ、
RUNをクリック、適当な名前で保存
こんな感じで分類されます。
トレーニングデータは正規分布している前提があるので、ヒストグラムなどでチェックしておく必要があるようですが今回はパス。
Classification
Save algorithm filesにチェックが入っていると、
signatureファイルが生成・保存されるだけです。これはGRASSを使って最尤法などで別途分類ができるようですが、使い方がわかりません….。
作製済のROIを使いまわす場合
最初に作成しておいたxxxx_Bstack_raster.tifをSCPプラグインで再読み込み。
これを使って、対象領域をクリップして保存し、再度SCPで読み込みます。
保存しておいたROIを読み込んで、ClassificationでRUN。
Leave a Reply