davis / gtool4 プロジェクト その背景と野望 小高正嗣, 石渡正樹, 林祥介 電脳 davis プロジェクト http://www.gfd-dennou.org/arch/davis
目次 davis プロジェクトの背景と目標 これまでの経過 これからの展望 そもそも何がしたかったのか 何を行ってきたか? データ構造はどうする 数値モデルはどうする 解析・可視化はどうする
davis プロジェクトの背景と目標
はじめに davis プロジェクトって何? 以下の製品開発を目指す Development of tools for Analysis and VISualization 多次元データの構造化と可視化 以下の製品開発を目指す 我々にとって使い勝手のよいデータ構造 我々にとって使い勝手のよい解析・可視化ツール
背景:データの嵐 さまざまな形式のデータが多量に氾濫 データ参照コストの増加 衛星観測データ 客観解析データ 数値モデルデータ … このデータ何? いつ, どこで, 誰が作った何のデータなの? 「見る」ためにはどうすればよい?
例題:数値モデリング
例題:観測とモデルとの比較 Now Printing データ構造を意識せずに扱いたい 客観解析データを初期値にモデルを計算 NCEP/NCAR データ構造を意識せずに扱いたい 客観解析データを初期値にモデルを計算 客観解析データとモデルデータとの差分をとる モデル Now Printing
隣の専門家がわかる情報を 提供すべし 塩谷先生のお言葉 1998/10/23 多次元データの解析と可視化に関するワークショップ (最初の davis ワークショップ)
我々の欲しいモノ みんなで好きに使える数値モデルが欲しい みんなで好きに使えるデータが欲しい みんなで好きに使える解析・可視化ツールが欲しい 理解のための数値モデル 米国製はあちこちに転がっているが… みんなで好きに使えるデータが欲しい 隣の専門家と会話したい データ自身が中身を語ってくれる(自己記述的)と嬉しい みんなで好きに使える解析・可視化ツールが欲しい 売り物は(あまり)使いたくない 実際は、高価なのにイマイチなものが多い かといって GrADS 使うのもねぇ
再び塩谷先生のお言葉 技術的な仕事、教育活動も 研究活動の一環 自作への道へ davis プロジェクト開始
davis 以前の世界 数値モデル: 電脳倶楽部 AGCM5 可視化と解析: GTOOL3 データ構造: GTOOL3 形式 沼口さん作成の大気大循環モデル 可視化と解析: GTOOL3 スパコン仕様なので FORTRAN77 描画に DCL を利用 データ構造: GTOOL3 形式 固定ヘッダー+データの機種依存バイナリ MT I/O を考慮
davis の世界:目標 みんなで好きに使えるデータ みんなで好きに使える解析・可視化ツール ネットワーク透過であること GTOOL3 形式は機種依存 自己記述的であること みんなで好きに使える解析・可視化ツール 対話的に使えるもの GTOOL3 は FORTRAN77 上記のデータ形式をちゃんと理解してくれる
これまでの経過
davis プロジェクト年表 1998/10 最初のワークショップ 1999/04 JST プロジェクト開始 2000/03 JST 発表会 1998/10 最初のワークショップ 1999/04 JST プロジェクト開始 2000/03 JST 発表会 gtool4 netCDF 規約 dcl-C, dcl-f90, gtool4, RubyDCL のプロトタイプ 2001/06 合同大会 RubyDCL 2002/03 第1回電脳 Ruby ワークショプ GPhys 2003/03 第2回電脳 Ruby ワークショップ gdcl 2004/03 第3回電脳 Ruby ワークショップ gt4f90io, GAVE
方針 データ構造 解析・可視化ツールは DCL をベースに 既存のデータ構造と親和的なものに 可視化情報を含める 階層化された構造 クリック一発でとりあえず絵を描く 解析・可視化ツールは DCL をベースに 階層化された構造 「かゆいところに手が届く」(by 竹広さん) Fortran90 に対応: dcl-f90 数値計算はスパコン C に対応: dcl-C 解析, 描画はワークステーション 対話処理をさせるには C 化しておくのがよい
キャッチフレーズ:クリック一発で絵が描ける gtool4 プロジェクト データ構造の策定と Fortran90 によるツール開発 構成 データ構造:gtool4 netCDF 規約 数値モデル I/O ライブラリ:gtool_history 解析・描画のコマンドラインツール:gtview キャッチフレーズ:クリック一発で絵が描ける
データ構造 netCDF データ形式を利用 gtool4 netCDF 規約を策定 格子点データを想定 ネットワーク透過 ファイルや変数に任意の属性を与えられる 与え方(規約)は自分たちで考えないといけない すでに利用実績がある COARDS 規約, NCAR CSM 規約 gtool4 netCDF 規約を策定
gtool4 netCDF 規約 http://www.gfd-dennou.org/arch/gtool4/gt4ncconv-current/ 以下のような「属性」を定義 データ名, データの作者, 編集履歴 時空間座標の識別, 平均操作の重み, 欠損値 既存の規約との互換性を考慮 COARDS 規約, NCAR CSM 規約
電脳 Ruby プロジェクト Ruby による解析・可視化ツールの開発 第2回電脳 Ruby ワークショップで出揃う ワークステーション, パソコンで対話的に使えるツールを目指す RubyDCL RubyNetCDF GPhys GAVE … 第2回電脳 Ruby ワークショップで出揃う 2003/03
gt4f90io 電脳 Ruby プロジェクトの成果をふまえて gtool4 から gt4f90io へ 素人さんでも使えそうな雰囲気が伝わってきた gtool4 から gt4f90io へ gtool4 から可視化部分をとりはずす F90 ベースの数値モデルのデータ I/O に特化
これからの展望
隣の専門家と会話するために 道具はそろってきた 規約が重要! 数値モデルの I/O gt4f90io 解析・可視化 電脳 Ruby 製品 gtool4 netCDF 規約を充実させる たりない属性はまだまだあるはず 道具たちが規約を解釈できるようにする それぞれの製品とも現時点での対応は不十分
みんなで好きに使える数値モデル データ I/O ライブラリ: gt4f90io コードの可読性に着目した試み スペクトルモデル SPMODEL グリッドモデル Grid Modeling System これらをベースに階層的数値モデル群を整備 DCPAM Dennou Club Planetary Atmospheric Model
みんなで好きに使えるデータ データ構造は gtool4 netCDF 規約 で みんなで好きに使える数値モデル開発のために: DCCHART プロジェクト 惑星大気の標準データを確保 我々にとって使い勝手の良い形式で モデルのデータと簡単に差分がとれるように 教科書的な一連の図を作成 世界の常識とその見方を押さえておく 上記を gtool4 規約と電脳 Ruby 製品で実行 同時にそれらを鍛えることを目指す
参考 URL davis プロジェクト gtool4 プロジェクト 電脳 Ruby プロジェクト SPMODEL http://www.gfd-dennou.org/arch/davis/ gtool4 プロジェクト http://www.gfd-dennou.org/arch/gtool4/ 電脳 Ruby プロジェクト http://www.gfd-dennou.org/arch/ruby/ SPMODEL http://www.gfd-dennou.org/arch/spmodel/ DCCHART プロジェクト http://www.gfd-denno.org/arch/dcchart/
メモ