2009年11月12日

調査地のGISデータベース構築に挑戦(6) ETM+画像データをGRASSデータベースにとりこむ


いよいよ、第3回でダウンロードしたランドサット画像をGRASSにとりこむ。

下準備

ダウンロードファイル、elp185r062_7t20000806.tar.gzを解凍して中身を見る。

> tar zxvf elp185r062_7t20000806.tar.gz
> cd elp185r062_7t20000806
> ls
p185r062_7k20000806_z32_nn61.tif  p185r062_7t20000806_z32_nn20.tif
p185r062_7k20000806_z32_nn62.tif  p185r062_7t20000806_z32_nn30.tif
p185r062_7p20000806_z32_nn80.tif  p185r062_7t20000806_z32_nn40.tif
p185r062_7t20000806.met          p185r062_7t20000806_z32_nn50.tif
p185r062_7t20000806_z32_nn10.tif  p185r062_7t20000806_z32_nn70.tif

雰囲気でだいたいわかるが、拡張子".tif"のついているファイルが衛星画像で、拡張子の直前の番号がバンド名。拡張子が".met"のものはテキストファイルで、この衛星画像のメタ情報が記されている。

このメタ情報をもとにGRASSのロケーションを作成する。

GRASSロケーション作成

GRASSを起動する。ここでは、wxPythonを使ったGUIを用いる。

> grass -wx # -wx オプションでwxPython GUIを指定。

  • 起動画面右の「Location wizard」をクリック
  • 次画面でデータディレクトリとロケーション名を入力
  • 次画面で「Use coordinate system of selected georeferenced file」をチェックする。

ダウンロードしたETM+画像はGeoTIFF形式で、画像の測地系、楕円体、投影法の情報がメタファイルに記されている。上記を選択することで、GRASSが選択されたTIFFファイルの地理情報を読みとってくれるのだ。ちなみにダウンロードされたファイルは、WGS84測地系(WGS84楕円体)にもとづき、UTM(ゾーン32、赤道のY値は0)に投影されたものである。

  • 次画面で、どのバンドでもよいからtifファイルを選択。
  • 次画面で「Finish」をクリックすると、「Do you want to set the default region extents and resolution now?」と表示されるので、「はい」を選択する。

ここで、ロケーションのデフォルト範囲と地上解像度を設定する。.metファイルの以下の行を参考に、東西南北の座標値を入力する。

SCENE_UL_CORNER_MAPX = 596362.500   # 画像の左上のX座標値
SCENE_UL_CORNER_MAPY = -216514.500  # 同、Y座標値
SCENE_UR_CORNER_MAPX = 778164.000   # 画像の右上のX座標値
SCENE_UR_CORNER_MAPY = -243019.500  # 同、Y座標値
SCENE_LL_CORNER_MAPX = 557631.000   # 画像の左下のX座標値
SCENE_LL_CORNER_MAPY = -396406.500  # 同、Y座標値
SCENE_LR_CORNER_MAPX = 739489.500   # 画像の右下のX座標値
SCENE_LR_CORNER_MAPY = -422940.000  # 同、Y座標値

地上解像度は、もっとも高解像度のバンド8、すなわちパンクロ画像にあわせる。.metファイルを見ると、

GRID_CELL_SIZE_PAN = 14.250   # パンクロ画像の地上解像度
GRID_CELL_SIZE_THM = 57.000   # 赤外線画像の地上解像度
GRID_CELL_SIZE_REF = 28.500   # 可視光画像の地上解像度

とあり、14.250mとわかる。x,yとも同じ値を記入する。

これでロケーションが作成され、自動的に「PARMANENT」というマップセットがその中に作られる。

GUIで今作成したロケーションのマップセットPARMANENTを選択して左下の「Start GRASS」をクリックすると、GRASSが起動する。

GRASSへの衛星画像のインポート

GRASSの「GIS Layer Manager」画面で、File → import raster map → Multiple raster data import using GDAL を選択する。
「Choose directory」で、ETM+画像を格納したディレクトリを指定する。Select file extensio を "tif"として、「import」ボタンをクリックすると、ディレクトリ内のすべてのtif画像をGRASS GISにインポートしてくれる。

インポートされたデータの名前は、それぞれのファイル名と同じになっている。

これは、コマンドラインでの操作としては、それぞれのファイルに対し

r.in gdal -o input="filename" output="filename"

を行なったのと同じことになる。

必要に応じて、インポートした地図データの名前は変更できる。

次回はSRTM画像をGRASSにとりこみ、SRTMの標高データをもとに等高線地図を作成する。

2009年11月 7日

調査地のGISデータベース構築に挑戦(5) GRASSの準備

前回、次はランドサットデータをGRASSにとりこむと記したが、その前にGRASS GISについておさらいし、データベース構築の方針を決めておく。

GRASS GISとは

GRASS GISとは、オープンソースのGISソフトウェアで、主としてラスター解析を得意とするが、次第にベクター解析も充実してきている。LinuxおよびMacOSXで動作し、WindowsではCygwin環境でのみ使えていたが、最近Windows版もリリースされた。

ガボンの研究機関にGISを導入する際、有償ソフトウェアだと、その後のサポートやメンテナンス、あるいは拡張にお金がかかる可能性があるため、オープンソースソフトウェアを使うことは有意義だ。

GRASS GISの詳細情報は下記のウェブサイトが参考になる。

参考書はこちら。わかりやすい英語で記してある。



GRASS データベース構築の方針

GRASS GISでは、ひとつのデータベースの中に複数の「ロケーション(location)」をもつことができる。そして、おのおののロケーションには一つまたは複数の「地図セット (mapset)」を置くことができる。

それぞれのロケーションは、固有の座標系 (coordinate system)と投影法 (projection)、および範囲 (region) によって定義づけられる。つまり、同じロケーションの中にある地図は、座標系と投影法が共通で、ロケーションの範囲内の情報しか得られない。

ひとつのロケーションで用いる地図は、同じテーマや作成者、利用者といったカテゴリによって区分することができる。その区分が地図セットだ。

さて、現在手持ちのデータセットは、第2回に記した4種類、すなわちGPSデータ、Landsat ETM+、SRTM標高データ、そしてCarpe作成の植生図等だ。今後、QuickBirdの画像や、手持ちの空中写真も加えてゆきたい。

データベース構築にあたっては、まずデータセット毎に、データソースの座標系や投影法にあわせた、個別のロケーションを作成することにする。そして、作業用のロケーションを別途作成し、最終的にすべてのデータソースをそこに統合する形をとることにする。

次回こそ、衛星データをGRASSにとりこむ。

2009年11月 2日

第54回プリマーテス研究会

やっと案内がきた。

第54回プリマーテス研究会「里山 -持続可能な自然利用-」
  • 日時: 2009年11月28日(土): 10:25-17:20
  • 場所: (財)日本モンキーセンター ビジターセンター
  • 参加費: 一般1,000円、大学生以下は500円 (懇親会費 2,000円)
去年にひきつづき、今年も大テーマは「里山」。 滋賀県立大の黒田さんが日本でやっている焼畑の話をする。楽しみ。田端さんのお話を聞けるのも、学部生のとき以来だ。

上記のサイトのフォーム、または電子メール、または電話で参加申し込みができる。当日参加も可能だが、事前申し込みをしておくと入園料を免除してもらえる...はずなんだけど、チラシ、ポスター、ウェブサイトのどこにもそれが書いてないぞ。(事務局に確認したら、やっぱり入園料免除になるそうだ。)