2012年12月13日木曜日

AGU2012 Fall Meetingで行われたOSGeo Workshop参加報告

FOSS4G Advent Calendar 2012 の13日目の記事です。
http://atnd.org/events/34052

今年のFOSS4G Advent Calendarは今のところなかなかの猛者揃いで、個人的には満足です。自分も当初は「クロスプラットフォームなスクリプト作成法(GDAL、GRASS、GMT、R)」というネタを密かに考えていたのですが、AGUのOSGeoのWorkshopが面白かったのでその紹介をします。当初予定していたネタはまた別の機会に。

  1. はじめに 
  2. ハンズオンの概要 
  3. WELD (Web-Enabled Landsat Data)について 
  4. ハンズオンの内容 
  5. おわりに 

1. はじめに

12月3日(月)から7日(金)の間サンフランシスコで行われたAGU (American Geophysical Union: 米国地球惑星科学連合) Fall Meetingという、地球惑星科学系では最大の研究集会(参加者数20000名以上)に参加してきました。自分はそちらでポスター発表を行なってきたのですが、今回は個人的に注目すべきイベントとしてアメリカのOSGeoメンバーによる「オープンソースソフトウェアを用いたLandsatデータ解析」というハンズオンがありました。通常のセッション修了後の6:00 pm~10:00 pmと遅い時間だったのですが、早めの夕食を取り後輩と2人で参加してきました。

ハンズオンの会場は、AGUのメイン会場であるMoscone Centerではなく、すぐ近くのMarriott Marquisという高級そうなホテルの会議室で行われました。講師を務めたのはサウスダコタ大学の人(David RoyGiuseppe Amatulli)で、アシスタントは4名、参加者は意外と多く20数名はいました。WELDの紹介はDavid Roy教授が行なっていましたが、その他は全てDr. Giuseppe Amatulli(←じーだる発音派)が行なっていました。
 

2. ハンズオンの概要

このハンズオンは以下のような構成になっていました。

<プレゼンテーション>
6:00 pm - 6:10 pm ワークショップの概要説明とUSBドライブでのデータ(VirtualBoxイメージとインストーラ(Windows、Mac))配布。
6:10 pm - 6:30 pm WELDプロジェクトの説明 (Roy)
6.30 pm - 7.00 pm VirtualBoxのインストールと機能の説明、Linuxのコマンドの説明 (Amatulli)
7.00 pm - 7.30 pm 使用するオープンソースソフトウェアの紹介:GDAL/OGR、R、OFT、PKTOOLS (Amatulli)
7.30 pm - 7.45 pm 休憩

 <ハンズオン>
7.45 pm - 8.15 pm OpenEVでWELDデータの可視化 (Amatulli)
8.15 pm - 8.30 pm WELDデータのグリッド単位での時系列変化について (Amatulli)
8.30 pm - 9.30 pm WELDデータの森林火災エリアのマッピング:自動分類や変化の検出 (Amatulli)
9.30 pm - 9.45 pm WELDデータの大気補正前と後の比較 (Amatulli)
9.45 pm - 10.00 pm オープンディスカッション (Roy)

会場に入るとまずVirtualBoxインストーラー&イメージの入ったUSBディスクのコピーをするように言われます。VirtualBoxイメージはzip圧縮された状態で約3GB(解凍後は約8GB)で、このイメージを起動すると今回使用するオープンソースソフトウェア、使用データ、マニュアルの含まれたXubuntuが起動します。自分はこのzipファイルをWindows 7 上で解凍する際に何故か「600PB(ペタバイト)以上の空き領域が必要です」とのエラーメッセージが出て解凍できず(無理w)。デュアルブートのUbuntuで解凍して事なきを得ました。その他にも小さい危機(xubuntuのキーボードがUS設定なので記号入力に最初戸惑うなど)がありましたが、無事最後まで脱落せずについていくことができました。

前半(プレゼンテーション)では、WELDプロダクトの説明や、使用するオープンソースソフトウェアの紹介をしていました。使用したソフトウェアについては、GDAL/OGRRについてはよく知っていたのですが、OFTPKTOOLSは今回のハンズオンで初めて知りました。また、後半のハンズオンではLinuxのコマンドを多く使用するため、初歩的なLinuxコマンドの紹介(ls、less、head、awkなど)もしていました。さらりとawkを紹介している辺りに後半は荒れるなという予感がしました。

後半(ハンズオン)の大まかな流れは、WELDデータを使って森林火災エリアを含むシーンの教師付き分類をSVM(サポートベクターマシン)法とRandomforest法で行い、各プロセスが終わるごとにOpenEVあるいはQGISで結果の確認を行い、最後におまけとしてWELD version 1.5(大気補正前)とversion 2.0(大気補正後)の違いを紹介していました。


3. WELD (Web-Enabled Landsat Data)について

WELDはLandsat 7 ETM+ オルソ補正画像をモザイクしてシームレスに作成した画像プロダクトで、土地被覆分類や、様々な地表面解析を目的として、USGSとサウスダコタ大学の共同プロジェクトで作成されたプロダクトです。対象領域はアメリカ本土とアラスカのみで、30m解像度で提供されています。

複数時期のモザイクしたプロダクトのため、各グリッドに用いられた元データの時期がわかる補助データも付随しています。特定の時間での地表面状態を知りたいという研究にはあまり向いていないのですが、地表面被覆の大まかな分布がわかれば良い研究分野にとってはハンドリングが楽なデータであるといえます。US限定ですが。


4. ハンズオンの内容

4-1. OpenEVでWELDデータの可視化
gdal_mergeによりコンポジット画像を作成しOpenEVでヒストグラムの調整などをして可視化。その後はgdal_calcでログスケール変換した各バンドを同様にコンポジット→可視化。

gdal_calcはほんとうに便利で簡単なバンド演算はほとんどこれで可能。自分が従来GRASSで行なっていた単純なバンド演算のいくつかも既にgdal_calcに移行しています。

4-2. WELDデータのグリッド単位での時系列変化について
WELDではサイト上で緯度経度で指定したグリッドにおける放射量の時系列情報を得ることもできます。ハンズオンでは、CSVデータとして用意されたあるグリッドにおける時系列データをheadコマンドで確認をしつつ、awkによるデータ整形、Rによる時系列プロットを行なっていました。自分はRは普段良く使っているので問題なかったのですが、Rの未経験者にとってはなかなかしんどそうなところでした。一回目の山場です。

4-3. WELDデータの森林火災エリアのマッピング:自動分類や変化の検出
このステップは今回の二回目の山場で、脱落者も続出していました。隣席のお姉さんも途中で「オー・・・。」とかいって大きなため息をついて脱落してました。自分もついていくのが精一杯で助ける余裕はありませんでした。

まずはPKTOOLSを使って多バンドのコンポジット作成(pkcropコマンド)とマスク画像の作成(pkgetmask)。gdal_rasterizeで教師データとしての森林火災域(とおもわれる領域)のポリゴンをラスタライズを前準備として行いました。ちなみにPTOOLSはGDALライブラリを使ってC++で実装されたコマンド群です。PKTOOLSコマンドの多くはすでにあるような処理ばかりでしたが…、SVM分類などが簡単にできるのは便利だと思いました。

その後1つ目の教師付き分類(SVM)の処理に入ります。ラスタライズした教師領域の0.01%を処理時間節約のためにランダム抽出して教師データとして利用してpkclassify_svmコマンドでSVM分類。できたものはOpenEVで可視化して確認を行いました。

続いて2つ目の教師付き分類(Randomforest)の処理に入ります。ここが非常に長くて複雑。流れとしてはまずOFTを使ってK-means NN教師なし分類でセグメンテーション分類したうえで、教師データを用いてR上でRandomforestの教師付き分類を行います。ただひとつ残念なのがRでのRandomforest分類の結果は直接ラスターイメージとして出力されるのではなく、初めのセグメンテーション分類IDとRandomforest分類の対応を示すテキストファイルとして出力されるため、そこからラスターイメージに持っていくために処理が複雑化しているという部分です。この部分の個別の処理を知りたい方はリンク先の説明を参照下さい。

4-4. WELDデータの大気補正前と後の比較
ここではPKTOOLSのpkinfoコマンドで待機補正前と後のRGBバンドの画素値を、それぞれ個別のテキストファイルに出力して、それをgnuplotにて可視化して比較を行いました。

4-5. オープンディスカッション
最後にこのハンズオンセッションについて、難易度や作業量はどうだったか参加者の意見を聞いていました。自分が聞き取れた範囲では、少し作業量が多杉という意見がちらほら出ていました。


5. おわりに

このハンズオンでは多くのオープンソースソフトウェアを使用するため、VirtualBoxを使ってあらかじめ主催者側が環境設定したイメージを利用しました。おかげで複数のソフトウェアを組み合わせて一連の解析を行うという実践的な処理が可能となり、個人的には非常に勉強になるハンズオンだと感じました。

ちなみに今週土曜日に中部大学で第3回FOSS4Gツール勉強会@名古屋を行います。こちらは全然スパルタではないので安心して気軽にご参加ください。
https://sites.google.com/site/foss4gnagoya/foss4gnagoya20121215

あとAGUの通常のセッションの参加報告を研究室のブログにあげていますのでこちらも興味がありましたらどうぞ。
http://hello.ap.teacup.com/snowman/1602.html

0 件のコメント:

コメントを投稿