Subject: data structure From: momoko@ees.hokudai.ac.jp To: dennou_davis(at)gfd-dennou.org Date: Fri, 09 Jul 1999 02:12:05 +0900 X-Mailer: Mew version 1.93 on Emacs 20.2 / Mule 3.0 (MOMIJINOGA) Delivery-Date: Fri, 09 Jul 1999 02:12:45 +0900 Mailing-List: contact dennou_davis-help(at)gfd-dennou.org; run by ezmlm 石渡 & 林です. 沼口さんのサンプルデータ, サンプルプログラムを眺めてみました. サンプルデータの構造は, module Data1 Temperature = Var.new( Undef, Undef, "K", "Temperature") … Grid1 = Grid.new(20,7,5,Undef) Tmp1 = Datum.new (Temperature,Grid1, "1111") … Tmp = ScalarSphericalData.new (Tmp1,Lon1,Lat1,Hgt1,Tim1) これ以下はデータの値の設定 end # of module Data1 となっており, まず, 各素データの属性とサイズの設定 次に, 各データ間の関係の記述 (Tmp = ScalarSphericalData.new … の行) という形になっています. このサンプルと先日のミーティングでの話をもとに, 「データが知っているべき こと」を書き直してみました. 抜けてる点, 問題点があれば指摘してください. ===================================================================== a(list1) : 普通の物理量, 座標, 座標補助情報… 何でもあり b(list2) c(list3) … a,b,c,… の各変数は以下の「属性」を持つ. a の記述的名前 "Temperature" など a の単位 例えば m/s など物理的な単位 a の型 R*8 など(世間さんでは表現方が決まっている) もしかして, 普通の物理量と x, dx では違う型に なるかもしれない. a のレンジ おおよその上限下限(図を描く時の目安) a の有効範囲 a の欠損値 a のサイズ リストの長さ. Undef でも良いとしたい. a の座標情報 list の意味 : a の 第一次元の座標は何か? etc a の正方向 特に, a が 「座標」の場合. 海なら値が大きい所が下など. 多次元データの場合には, 各次元で決める? a の空間代表性 特に, a が 「座標」の場合. x_1,...,x_n はどう連続空間を代表するか cells, 点, その中間--幅を持った空間 を代表するけどそれが全体を埋め尽くさない場合. a の決め方情報 dx, dt の場合. ガウシアングリッドなど 点 x_1 が持つべきウェート dx が dx_1 値 いわゆる数字 作成日付 1999-03-09 作成者 名前 参照データ 生成に用いられたデータ等の情報 メモ その他何でも データ同士の関係の「属性」(? ちょっと違う気がする. 「束ね方」なのだ.) a,b,c,…の関係 a の x 座標は b で, y 座標は c で… f は b 座標の重みだ etc (b,c,d) はどういう座標か? 例えば 3 次元緯度経度座標 作成者 名前 参照データ 生成に用いられたデータ等の情報 メモ その他何でも ===================================================================== 忘れてることはあるかもしれませんが, 「データが知っているべきこと」 のリストとして今我々が思いついているのはこんなもんだと思います. で, 問題は, データ同士の関係をどう記述すれば良いのか?, です. 沼口さんのサンプルでは, 球面座標というクラスとして定義することに より, T, lon, lat を関係づけています. が, ・実際にデータを書きだした時に何を書いておけば良いのか? ・他言語(Fortran など)でデータを扱う時にはどうしたら良いのか? が問題だと思います. こんなことを考えるためには, もうドップリと実装の 問題として考えないといけないんでしょうかねえ?