プログラマよALMAをめざせ

↑あ〜かいぶ |  ↑↑トップページ

目次

はじめに

 ALMAとはAssistance for Land-surface Modelling activitiesの略.地球気象シミュレーションにおいて重要なパーツとなる陸面モデルLand-surface Modelの開発・改良を容易にするための作戦です.

 従来,SiB2BATSなどいくつもの代表的なモデルが生まれ,改良され,そして相互比較をされています.また,各種のGCMと組み合わせても使用されています.しかしそれらの多くは,独自のデータ入力形式・出力形式をもっており,一つの入力データセットで複数のLSMを走らせてその比較をするといった場合には,それぞれのモデルに合わせて入力ファイルを「調製」し,出てきた結果をまたモデルに合わせて処理してやらねばなりませんでした.

 なんと無駄なことでしょう!モデル内部のことはともかく,入出力データは根本的には数値の世界です.つまり人間の美意識が絡むようなものではありません.ですからGUI等のように,本質的に複数の規格が並立していなければならないといったものではないはずです.また,商売ではないのですから各モデル独自の形式にユーザを「囲いこむ」ことはほとんど意味がありません.

 80年代にその原型を持ついくつかのLSMでは,入出力において当時のコードを使っている場合があります.懐かしい形式ではありますが,今となってはその使いにくさは悪夢のようです.データ調製はある意味で職人芸的ですらあります.もちろんそれらをサポートするラッパ等も作られてはいるのでしょうが,しかしそれも限界はあり,さらに,特定のLSMにしか通用しないコードを一生懸命書くのは時間の深刻な無駄遣いです.

 さて,現在は柔軟で拡張性に富み,しかも安定して動くファイルフォーマットが利用可能です.そこで,そういったファイルフォーマットをベースにして,各種のLSMをすべて同じ入力フォーマット・出力フォーマットでそろえてしまおう!という計画が持ち上がりました.その一つがALMAです.これはプロとして通用するコーディング技術さえ持っていれば技術的には大して難しくはありません(腕に覚えのある人が興味を持ってくれることを期待&歓迎します).しかし現実の実装にはLSMに対する豊富な経験を持つ人のアドバイスや協力がないと余計な苦労を背負い込んだり極端な困難に出会うことになります.

 たとえば,ある気象データセットがあったとしましょう.そのデータセットは毎日の0時,6時,12時,18時の降水量が含まれているとしましょう.さて,そのとき,「0時」とは地球上のどの地点の0時なのでしょうか?それから,「0時の降水量」というのは「0〜6時の降水量」なのでしょうか,「18時〜0時の降水量」なのでしょうか?また,そのデータは6時間の合計の降水量なのでしょうか.1時間毎にならした値なのでしょうか.それ以前に単位は何なのでしょうか…と意外に細かいところで情報を集めなければならないのです.しかしLSMに通暁した人ならこういうことは皆自然に知っているものです.

 幸いなことに,当研究室にはプログラマかぶれとLSMヲタクが集まっていますので,では力を合わせてALMAってみようということになりました.

 そのプロジェクトを,主にプログラマの目から書いてゆき,その面白さを伝えるのが本WWW資料の目的です.


りんく集


研究のページ| 安形氏