●作戦 もはや, 作業を開始した方が(手を動かし始めた方が)良い. 最低レベル : 性質の良いデータで平均操作・コンタープロットできるようにする. 必要最低限項目の属性名と使い方を決めちゃう. ミドルレベル, ハイレベル : 性質の悪いデータで平均操作・コンタープロットできるようにする. operation list を充実する. あわせて必要な項目をリストアップ. その他考えておかなくちゃいけないこと. 変数属性の追加ルールをどうしよう? 竹広案は, 1. まずは netcdf convention に従うべし. 2. でなければ netcdf convention にない名前を使うべし. 3. それとも DCL のような何か統一した命名ルール作りますか? 接頭子 dd(dennou_davis) とか? あんまりかっこ良くない... ●「操作」のリストと必要項目(竹広さんによるリスト) =============================================================== (凡例) + : netcdf 推奨, * : 独自の仕様, (1): 石渡例にないもの 操作 必要な項目 情報取得する変数/属性等(優先順) ○全般 欠損値指定 varid_range+, 処理せず ○描画 等値線 値そのもの 変数 座標軸情報 次元 (-> 軸描画へ) 等値線間隔 divs*(1), お任せ 描画範囲 range*, お任せ 変数名 longname+, name+ 単位 units+, なし グラフ 値そのもの 変数 座標軸情報 次元 (-> 軸描画へ) 描画範囲 range*, お任せ 目盛間隔 divs*(1), お任せ 変数名 longname+, name+ 単位 units+, なし 軸描画 次元の大きさ 次元 次元変数 次元名と同一名の変数+(1), 単なる番号 描画範囲 range*, お任せ 目盛間隔 divs*(1), お任せ 座標軸名 longname+, name+ 単位 units+, なし 軸の種類 direction*, 添字順正方向 no cyclic ○算術 平均 値そのもの 変数 座標軸重み 次元名_weight*(1), 1/(データ数)* 四則演算 値そのもの 変数 形状, 大きさ 次元 座標軸比較 次元変数 次元名と同一名の変数+(1), 比較しない 重み変数 次元名_weight*(1), 比較しない ○履歴情報 表示, 記録 日付 date+ 作者 user+ 編集履歴 history+ 計算パラメター等 どうすりゃいい? その他 memo* ====================================================================== ● データ例 (x,y) 2次元平面データ =============================================================== lon = 5 : 各リストの長さ lat = 5 lon_weight = 5 lat_weight = 5 // 素データ その 1 float T(lon,lat) : これで型・長さは指定される. T:long_name = 'Temperature' 記述的名前 T:units = 'K' 単位 T:range = 200.0, 450.0 上限下限の目安(図を描く時の軸の範囲) T:valid_range = 0.0, 1000.0 有効範囲 T:divs = 5.0 等値線間隔 T:missing_value = -999 欠損値(データ無しのフラグ) T:represent = 'point' 空間代表性. 一点のpoint value は point, cell の代表値は cell とか // 素データ その 2 float lon(lon) lon:long_name = 'Londitude' lon:units = 'degree' lon:range = 0.0, 360.0 lon:valid_range = 0.0, 360.0 lon:divs = 5.0 目盛間隔 lon:missing_value = -999 lon:direction = 1 1 なら座標正方向は「添字」が大きい方でかつ cyclic でない 2 なら座標正方向は「添字」が小さい方でかつ cyclic でない 3 なら座標正方向は「添字」が大きい方でかつ cyclic である, とか lon:represent = 'point' // 素データ その 3 float lat(lat) lat:long_name = 'Latitude' lat:units = 'degree' lat:range = -90.0, 90.0 lat:valid_range = -90.0, 90.0 lat:divs = 10.0 目盛間隔 lat:missing_value = -999 lat:direction = 1 lat:represent = 'point' // 素データ その 4 float lon_weight(lon_weight) lon_weight:long_name = 'Londitude weight' lon_weight:units = 'degree' lon_weight:range = 0.0, 360.0 lon_weight:valid_range = 0.0, 360.0 lon_weight:missing_value = -999 lon_weight:direction = 1 lon_weight:represent = 'point' // 素データ その 5 float lat_weight(lat_weight) lon_weight:long_name = 'Latitude weight' lon_weight:units = 'degree' lon_weight:range = 0.0, 180.0 lon_weight:valid_range = 0.0, 180.0 lon_weight:missing_value = -999 lon_weight:direction = 1 lon_weight:represent = 'point' // グローバルな属性 : グローバルにしない方が良い??? :date = 1999,03,09 作成日付 :user = 'momoko' 作成者名 :title = '実験番号etc' データ生成情報 :history = '更新履歴' 更新履歴 :memo = 'メモ' その他何でも. パラメータもここに? // データの束ね方情報 cordinate = '2-dimensional shperical coordinate' 座標の種類 (x,y,z) はどういう座標か? 例えば 3 次元緯度経度座標, ランダムデータなど. これは「座標の名前」をあらわすキーワード だけ書くことにしておいて良いのか??? cyclic であることの情報はどうしよう? DREL = "Temperature", "Latitude", "Latitude", "Londitude weight", "Latitude weight" 素データの関係 major な変数はどれか. major な変数の第一座標, 第二座標… はどれか. 第一座標, 第二座標… の重みはどれか. map_info = "Mercatore" デフォルトの図を描くための情報 3 次元球面プロットをするか, メルカトル図法の地図 にするか? など. 場合によっては, 座標の基底やメトリックテンソルに 関する情報も必要になる? // 以下データ T = 250.0, 260.0, 270.0, 280.0, 290.0, 250.0, 260.0, 270.0, 280.0, 290.0, 250.0, 260.0, 270.0, 280.0, 290.0, 250.0, 260.0, 270.0, 280.0, 290.0, 250.0, 260.0, 270.0, 280.0, 290.0 lon = 0.0, 72.0, 144.0, 216.0, 288.0 lat = -90.0, -45.0, 0.0, 45.0, 90.0 lon_weight = 72.0, 72.0, 72.0, 72.0, 72.0 lat_weight = 42.5, 45.0, 45.0, 45.0, 22.5