衛星画像から緑地(植物)がどの辺にあるのか調べることができるそうです。
ラスターデータ(画像)を使った演算処理を行います。
やってみます。
1:まずは衛星画像を手に入れます
LANDSAT-8という衛星からのデータです。
産総研のLandbrowserを使ってダウンロードします。
緯度・経度を指定してデータのある場所に移動します、今回は「万博記念公園付近」にします。
と言っても、そんなピンポイントのデータはありません、その場所を含む広大な領域の画像データにアクセスします。
135.536439,34.803620へ移動してズーム、LANDSAT8を選んで画像をSaveします。
なお、できるだけ雲に邪魔されないように、Date Selectorバーを使って2019/04/16のものを選んでみます。
これは近畿地方を含む広大な画像の一部にズームインしたものです。
LANDSAT-8は様々な波長(バンド)の電波(電磁波)を使って取得した画像データを提供してくれます。
今回はこの中からバンド2~8をダウンロードしておきます。
2:解析用のアプリを手に入れます
EISEIという解析用ツールを使ってみます(PDF内のリンクからダウンロード)。
Windowsアプリです(64bit環境でもインストール可)
各バンドの画像は単一波長の電波を使ったものなので色がありません(モノトーンです)。
3つのバンドの画像をRGBに割り当てて、カラー画像に色合成します。
RGBとなっていますが、必ずしもRed、Green、Blueを意味するものではなく、割り当て用の名前くらいに考えておきます。
ちなみに、バンド2、バンド3、バンド4を使うとBGRにマッチして、自然なカラー画像に近いものが合成できます。
こうすることで、画像を使った演算を行うことができるようになります。
3:画像を読み込んで解析
メニュの「色合成」をクリック
各バンドの画像をRGBとして読み込むメニュが開きます。
今回は植生を調べることが目的なので、青:バンド3の画像、緑:バンド4の画像、赤:バンド5の画像データを読み込みます。
読み込んだら、メニュの「色・明るさ」を選んで、「自動」を使って明るくしておきます。
こんな風に広大な領域をカバーした赤っぽいカラー画像になります。
今回の目的の場所(万博記念公園付近)にズームインします。
ちなみに、GoogleMapsで見るとこういう領域です。
色合成した画像を使って、緑地(植生)を強調した場所をさがします。
植物の活性度を測る植生指数であるNDVI(Normalized Difference vegetation index)を使ってみます。
NDVI=(IR-R)/(IR+R)
この演算を画像で実行します。
IR(近赤外線)->バンド5
R(赤色)->バンド4
メニュの「計算」->「植生指標」を開きます。
演算用の画像を指定します。
A->IR->バンド5->xxxx_B5.tif
B->R->バンド4->xxxx_B4.tif
作成された画像はメニュの「色・明るさ」を選んで、「自動」を使って明るくしておきます。
こんな感じで、植生のあるの部分が白く強調された画像になります。
赤い枠が万博記念公園、朱色の枠が万博記念競技場の天然芝、下の2つの朱色の枠がパナソニックスタジアムと練習場の天然芝。
もう一度GoogleMapsで確認
上の画像の白い部分が、Mapsで見ると緑地なのが分かります。
また、スタジアムの上の茶色い〇はフットボールフィールドでやはり芝なのですが、ここは人工芝で緑地ではない(植生が何もない)ので白く強調されていません。
同様に、赤枠左上に緑の部分があります、阪大吹田キャンパスグラウンドですがここも人工芝ですのであまり強調されていません。
これをGoogle Earthで見てみます(Earth Proを事前にインストールしておきます)。
画像サイズは大きすぎるので、適当なサイズに「切り出し」ておきます。
EISEIのメニュ->出力->GoogleEarthで表示
Earth用kmlファイルが作成されます。
Earthで見るとこんな感じ。
緑っぽい部分が見えているのはMapが3D化されているからです。
3Dを解除すれば、こんな感じ。
オーバーレイの画像の中で植生の特に強い(白い)部分をGIMPで透明にしてみました。
オーバーレイを外した状態
パナソニックスタジアムやエキスポシティーなどの人工物や、万博公園内の池などは黒くなっているのが分かります
GoogleMapsで見る場合
kmlサンプルはEarthオンリーで、MyMapsなどでは表示されません、
Maps用はこちらのコードをお試しください。
画像データを使った演算処理を使えば、いろいろな知見を得られます。
EISEIではこんな演算やら
こんな演算もできます。
その他の指数演算
(可視光)緑色を強調 GRVI
バンド2、3,4
GRVI = (B3 – B4)/(B3 + B4)
——————————————–
植物水分量 NDWI
バンド2、3,7
NDWI = (B3 – B7)/(B3 + B7)
——————————————–
正規化差分水指数 MNDWI
バンド 3,4、6
MNDWI= (B3 – B6)/(B3 + B6)
MNDWIをやってみるとなかなか凄いです、Mapsで見ても「え!こんな所に水なんてあるのか?」という場所を探してくれます。
紅葉の場所を調べる場合は….
青:植物の水分が少ない場所->-NDWI->(B3 -B7)/(B3 + B7)
緑:植生指数の高い場所->NDVI->(B5 – B4)/(B5 + B4)
赤:赤が協調された場所->-GRVI->(B4 – B3)/(B3 + B4)
この3つの指数の画像を演算して探すそうです。
画像のピクセル配列を使った線形代数の演算をやってるってこと….かな。
花粉の飛散が多そうな場所を見つけて近づかないようにする….てなこともできそうです(^^)。
演算式は?->工事中
同じ指数でも違うバンドを使うこともあります。
LANDSAT-8のデータは解像度が低いです。まぁ、地図として使うのが目的じゃないので別に問題ではないのですが、それでもちょっとストレスがかかります(解像度が低いってことは1ピクセルに多数のデータが入ってしまうという問題があるようですが)。
パンシャープンという機能を使ってもう少し解像度を上げてみます。
色合成でバンド2,3,4の画像を使います。
読み込んだら、メニュの「色・明るさ」を選んで、「自動」を使って明るくしておきます。
メニュの「開く」を使ってバンド8の画像を読み込んでおきます。
ズームインしたら目的の地域を「切り出し」ます。
この画像の解像度を上げてみます。
切り出した画像のウィンドウをアクティブしておいて、
メニュの「処理」->「パンシャープン」を選びます。
「高分解画像を選択してください」というウィンドウが開きます。
先の「切り出し」機能を使った際に、バンド8の画像も同じ領域で切り出されていますので、” [切り出し]画像ファイル[未保存] ”を選んで、続行してください。
もうちょいましな解像度の画像が作成されます。
グラウンドオーバーレイをMapsに表示
WisteriaHillは現在マップサービスを停止中なので、見えないと思います、悪しからずです。
APIキーはご自分のを使用してください。
boundsの座標はkmlサンプルに記述されているものを使用しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!DOCTYPE html> <html> <head> <style> #map_canvas { width: 600px ; height: 600px ; } </style> </head> <body> <div id="map_canvas"></div> <script src="//maps.googleapis.com/maps/api/js?key={APIキー}"></script> <script> var mapDiv = document.getElementById("map_canvas"); //GoogleMaps var gmap = new google.maps.Map(mapDiv,{ center:new google.maps.LatLng(34.809180,135.531962), zoom:11, }); //GroundOverlay var groundOverlay = new google.maps.GroundOverlay( "http://wisteriahill.sakura.ne.jp/GMAP_II/GMAP_OVERLAY_V3/earth.kml00.png", new google.maps.LatLngBounds( new google.maps.LatLng(34.7995373376885,135.519436714991), new google.maps.LatLng(34.8168433802777,135.548486143622) ),{ map:gmap, } ) ; // fit boundsで表示されたMap内にオーバーレイ画像を収める gmap.fitBounds(groundOverlay.getBounds()); </script> </body> </html> |
Next
ちなみに、衛星画像を使った解析では以下のような処理が行えます。
幾何補正
カラー合成
強調処理
パンシャープン
画像間演算処理
マスク処理
エッジ抽出・フィルター
教師付き分類
教師なし分類
主成分分析
Leave a Reply