GIMMSを使った世界の植生変動解析

GIMMSに関する細かい説明はここでは省きましょう。データは、ここからダウンロードすることができます。読むべき論文も2編挙げられているので読んでおくこと。ここでは、マルチバンドのバイナリーデータをプログラムによって自由自在に扱う練習を行います。

近藤研究室ではGIMMSのすぐに使えるデータセットを \\Db_ld01\users\Projects\GIMMS に置いてあります。みんなで協働して作ったデータで、研究室の財産ですので大事に使ってください。研究室以外で使いたい方はGLCFからダウンロード頂くようお願いいたします。

ここにあるデータはER Mapperの形式になっています。ということは、GIMMS_2006は2006年のデータセットで、GIMMS_2006.ersがファイルディスクリプタです。GIMMS_200624のバンドを持ち、2091ライン×4950ピクセルのデータがBIL形式で格納されています。なぜかは自分で考えること。

まずは基本的なパラメータを求めてみましょう。getviprm.cというプログラムを作成しました。

もちろん、自分でプログラムを作成しなければ勉強にはなりません。私は甘いと言われますが、プログラムを公開しましょう。ただし、じっくり読み解いてアルゴリズムを理解すること。
プログラムをコンパイルして実行してみましょう。このプログラムでは年最大値と年積算値を求めることができます。コマンドラインの引数で出力の種類を選択できます。使い方はプログラムを解読して理解すること。VMWare/Knoppixを使って見ましょう。

年最大値、年積算値の計算ができたらば、連結して一つのファイルにします。

コマンドプロンプトで、copy/b file1+file2+.....+file25 destination を実行します。ここで、filenは各年の最大値あるいは積算値ファイル、destinationは連結後のファイル名です。バッチファイルを利用できます。後ろのコラムを参照。

GIMMSは1982年から2006年までの25年分のデータがあります。各画素ごとに単回帰分析を行い、gain(当てはめた一次式の傾き)を求めてみます。プログラム trend.c を作成しました。

プログラムをコンパイルして実行してみましょう。このプログラムでは入力ファイルはBIL形式を使うことになっています。自分で工夫して使えるようにしましょう。また、トレンドが優位かどうか、検定する方法もあります。プログラムに工夫を加えてください。

プログラミングがわからなくなったら、“急がば回れ”。Cの教科書を紐解くこと。一朝一夕にはプログラミングは上達しません。常にトレーニングを心がけて、少しずつ学ぶこと。


バッチファイルの利用

最初のステップで年ごとに最大値、積算値を計算できるようになったら、バッチファイルを作って一気に計算することができます。25年の最大値ファイルはこんなバッチファイルで計算できます。コマンドプロンプトでバッチファイル名を入れるだけ。

同様に、積算値ファイルを計算するにはどうすればよいか、わかりますね。三番目のフラグを1にすれば良い。もちろん、出力ファイル名も変えておく必要があります。

トレンド計算用に25個のファイルを連結するのにもバッチファイルが使えます。こうすれば良いわけです。これは最大値対応ですが、積算値もファイル名を変えれば良いだけですね。

これで、トレンド計算に進めます。このようにバッチファイルの利用により多段階の計算を順番に、一気に実行することができます。もし、プログラムにバグが発見されても、バッチファイルがあれば再計算を一気に行うことができます。


ここにあるプログラムにはバグがあるかも知れません。充分、注意すること。