外部からGRASSの機能を呼び出したいの

++ 以下よりFOSS4Gアドベントカレンダー2013への投稿記事となります ++

最初からタイトル間違ったんじゃないかと疑いたくなる話題ですが

  • >>FOSS4G 勉強会 in 函館

11/30-12/1 と2日間にわたり
FOSS4G 函館勉強会
(於 北海道大学函館キャンパス)
に参加してきました。
まずは会場の雰囲気をお届けしますね。

IMG_2298_coreday

1日目の事例紹介セッションの様子です。
質問がよく出ていました。

IMG_2312_handson

これは 2日目 QGISハンズオン
の様子です。
主要な参加者は学生さんだったのですが
地元企業の方もいらっしゃっており
道南ユーザのよい顔合わせとなったのではと思います。

さて私は1日目の事例紹介セッションで
お話させて頂きました。
内容をどうしようかと考えた挙句
みんな QGIS QGIS ってチヤホヤしやがって・・・
との嫉妬心からGRASSの話にしました(ウソ)

  • >>外部からGRASSの機能をつかおう

客層と内容が合致してなかった残念なプレゼンはさておき(さておくなよ)
発表の中ででもちょっとだけ紹介しました
外部からPythonを介してGRASSの機能を使用する
ことについて書きます。
ここでやっとタイトルの内容です。

エクストリームなpython使いの方には
いまさらな話だとおもいますが
取り組みだした当初、日本語で解説したサイトが見つからず
ちょっと苦労したこともあり、気にせず書くことにします。

以降

OSがWindows
OSGeo4W経由でGRASS6.4.3をインストール済み

ということを前提に進めていきますね。

内容まちがってる!てのにお気づきのかたは

ぜひぜひご指摘いただければと思います。

  • >>システム環境変数

最初にシステム環境変数を追加・編集する必要があるので
それについて。

Pythonの環境変数PATHの設定がまだの場合は
以下の場所の情報を参考にして行ってみてください。
http://www.pythonweb.jp/install/setup/index1.html

なお上記の設定中に出てくるフォルダ
Python26はPython27と読み替えて設定願います。
インストールしているソフトウェアによっては
より下位のディレクトリにpython.exe
が入っていることもあります。
それに伴って設定するpathも変更してください。

さてシステム環境変数を
新規追加または既存のものを編集していきます。

以下より

変数名 変数値

の順番で書いていきます。
なお単一の変数名に対して変数値が複数にわたる場合は
セミコロンで区切って入力してください。



こんなところです。
ちょっと多くて面倒ですね。
(マシンを換えるたびに あれ、どーやるんだっけ と思いメモを検索してます)

  • >>スクリプトを書くよ

実際にスクリプトを書く際には



てなのを最初に書いておき
あとは自分の行いたい処理を書いていきます。
自分のあまりに具体的な処理を載せるのもアレですので
あっさりとした繰り返し処理のサンプルを書いておきます。



これでスケール間比較を行いたいから
複数(たくさんの)パターンのデータを作って欲しい
といういかにもありがちなリクエストにも
お答えできるやもしれません。