とらりもんHOME  Index  Search  Changes  Login

とらりもん - GRASS GISとは Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

筑波大学農林工学系 奈佐原顕郎
!GRASS GISとは?

[[GRASS|http://grass.fbk.eu/index.php]]は無料のGISソフトである。

 一般に普及しているGISソフトは、ArcGISをはじめ、高価であり、しかも毎年の保守料金がかかるが、GRASSは無料のGISソフトであり、しかも機能的には商用GISに比肩する。GRASSはプログラムのソースコードを含めて全ての情報を無料公開し、ユーザーに取得・改変・再配布の自由を(ある規約の下で)許している。そのようなソフトウェアのことを「オープンソースソフトウェア」と呼ぶ。GRASSを含め、多くのオープンソース・ソフトウェアは[[GNU|http://www.gnu.org/]]というプロジェクトとして開発され、GNUの規約である[[GPL|http://www.gnu.org/licenses/gpl.html]]というルールの下で配布されている。

 GISは全地球人のためのツールである。経済的・社会的なアドバンテージによって一部の国や機関や個人が独占してはならない。とりわけ、開発途上国の現場や、市民活動などには、低コストで本格的なGIS環境を提供する必要がある。GRASSはその要請に答えることができる。

 ただし、GRASSはUNIXというシステムの上に構築されているため、パソコンの一般的なOSであるWindowsの上で直接動かすことはできない(ただし、Windowsの上に、Cygwinという、擬似的なUNIX環境を入れれば、その上でGRASSを走らせることができる。Cygwinも、GRASS同様にフリーソフトである。また、最近はCygwinを介さない、nativeなGRASSもWindowsで動くようになったとか。詳しくは[[こちら|http://grass.fbk.eu/platforms/wingrass.html]]を参照)。そのため、GRASSを使うには、UNIXを習得しなければならない。UNIXの習得は、人によっては骨が折れるかもしれない。しかし、GRASSには、既に成熟した世界的なユーザーコミュニティがあり、トラブルや疑問をメーリングリストなどで解決できる。

 UNIXは近年、LinuxやFree-BSDなどという形でパソコンにも移植されている。これらのUNIX(LinuxやFree-BSD)は GRASSと同様に無料で配布されている「オープンソースソフトウェア」である。従って、パソコンが1台あれば、LinuxとGRASSを導入することで、全く無料で本格的なGIS環境を構築することができる。

!GRASSの特長
*オープンソースである。
*LinuxとかMacOSXなどのUnixベースのソフトだが、Windowsでも動く。
*機能も充実している。
*UNIXのシェルの上に構築されているので、パイプ・リダイレクト・エイリアス・ヒストリ・シェル変数・スクリプトなどの便利な機能をそのまま使える。いわば、GRASSはGIS用に拡張されたUNIXシェルである。
*コマンドラインでの操作が基本なので、なんとなく使っていくうちになんとなく習得できるようなシステムではない。
*GUIインターフェースも提供されているが、コマンドが基本。
*GRASSを覚えようとするなら、覚悟を決めて、UNIXとGISの基礎を勉強しながらやろう。
*Markus Neteler(開発者。僕と同い年らしい)の書いた、[["Open Source GIS: A GRASS GIS Approach"(第3版)|http://www.amazon.co.jp/Open-Source-GIS-GRASS-Approach/dp/038735767X]]という本が標準的な教科書([[和訳|http://www.amazon.co.jp/dp/4759101276/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1432590036&sr=1-1-catcorr&keywords=%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9GIS]])。
*グラフィクスはOKだが、文字や凡例、スケールなどの見栄えはしょぼい(やぼったい)。
*表示周辺のインターフェースは、[[QGIS|http://qgis.org/ja/site/]]という別のオープンソースソフトにやらせるのが通のやりかた。
*[[Mapserver|http://mapserver.org/]]という、オープンソースのウェブGISソフトとリンクさせて、インターネットで公開GISをするのが、GRASSの真価らしい(商用だと数百万円するとか)。

!GRASSでできること(最初に勉強する時は読み飛ばしてOK)
いろいろできるらしいが、私がやっているのは、

*衛星データの読み込み:SPOT-Vegetation(HDF), MODIS(HDF-EOS->raw binary), Landsat (HDF, Geo-TIFF), ASTER (HDF->raw binary), Ikonos (GeoTIFF), *QuickBird (GeoTIFF), NOAA/AVHRR/SIDAB (raw-binary), NOAA/AVHRR/PAL (raw-binary)
*地形データの読み込み:GTOPO30(raw binary), 国土地理院50mDEM(ascii->raw binary)
*その他、地理情報の読み込み:環境省植生図(asciiからraw binary)、土地被覆図(IGBP)
*これらのデータの表示(カラー合成)、立体表示(鳥瞰図)、抽出、投影変換(UTM <-> 緯度経度直交座標系など)
*衛星データの雲除去、植生指標計算、変化抽出
*衛星データのパンシャープン処理、フィルター処理
*x-y-zデータの読み込みと補間
*マスク処理

などである。これらは、GRASSの中でそれぞれに専用の機能が実装されているというより、いくつかの汎用的な機能の組合せで実現される。データの読み込みで、HDFやasciiデータ(テキストデータ)を扱うには、前処理を[[HDFライブラリのいろいろな機能|http://ryuiki.envr.tsukuba.ac.jp/~nishida/MEMO/HDF.html]]や、C言語による簡単なプログラム、awkスクリプトなどで施すことが必要だったりする。

!雑記(最初に勉強する時は読み飛ばしてOK)
 GRASSはよくできたシステムである。あまりに便利な機能が揃っているので、学生さんには教育上、よくないのではないかと思うくらいだ。ちょっと複雑なアルゴリズムも、GRASSのコマンドで実装できるので、Cなどでプログラムする必要がなくなってしまった。

 現在の私の作業の流れはこういうかんじである: まず、解析対象地域について、最も汎用性の高い投影法(多くの場合はlat-lon)でLOCATIONを作る。次に、大量の衛星データ(数100シーン)とかDEMとかを用意し、時・場所・属性からなる統一的命名法を定めて、シェルスクリプトで片っ端からGRASSにインポートする。分解能や範囲がまちまちでも問題ない。そしていくつかのトレーニングサイトで全ての画像のピクセル値をごっそり(時系列で)抜きだしたり、特定の小領域でテストデータを作ったりする。

 雲除去アルゴリズムとかも、ほとんどGRASSとシェルスクリプトで実装できる。NDVIをはじめとする各種の分光指標の処理などは朝飯前である。面的な結果はGRASSで表示し、時系列などの1次元データはGRASSの出力をawkなどで整形してGNUPLOTで表示する。一連の処理はすべてシェル上で行われるので、作業手順はすべてスクリプトとして記録する。こうしておけば、どこかのステップを少し変えて全ての処理をやりなおす、ということが簡単にできるし、ミスを追跡することも容易だし、ノウハウの蓄積としても便利である。

 こういう時世では、たとえ研究費が絶たれても、最低限の研究活動を維持できるような体勢にしておかねばならない。そういう点からも、GRASSはこういう分野の研究者・技術者にとって最後の砦である。

 一方、GISの世界も、寡占と同時に競争が進んできた。高い初期コストとランニングコスト(ライセンス料)に、ユーザーは不満を募らせている。勝ち組(ArcGIS、ERDAS、ENVIあたり)以外のソフトは値下げで対抗せざるをえないだろう。計算機の機能がドラスティックに向上して、様々な応用サイドからGISのポテンシャルが注目されてきたので、今後に急速にマーケットが拡大する可能性がある。そうなると勝ち組もうかうかしていられないだろう。つまり、商用GISは、いつ価格破壊が起きてもおかしくない状態だと思う。その日が来るまではGRASSでしのぐという戦略もアリではないだろうか。