gtool4 規約 version 4.0beta4
2000/02/02 22:27 豊田英司
NCAR-CSM 規約を重要視したのは、数値モデル NCAR CSM によって作られる数値データとの可搬性を考慮したためである。
ファイル名の末尾を固定するのは、ファイル名の末尾によって起動すべきアプリケーションを決めるソフトウェアが不便にならないようにするためである。
ファイル名を 8 文字に制限する推奨規約は、ISO 9660 level 1 (CD-ROM) ファイルシステムを考慮したものである。CD-ROM への可搬性を考慮しなければ、文字数に関する制限は事実上なくなり、ハイフンマイナスなどのありふれた文字を利用することもできるようになる。
NetCDF ユーザーズガイドによれば、変数名、次元名、属性名は以下の規則に従わねばならない。
ユーザーズガイドには書いていないが、dimensions, variables, data も予約語とすべきである。
これにより、他の GDT 互換性を十分に考慮しておけば、 :Conventions
属性値を "GDT"
と変更するだけで完全に GDT
規約に従うことが可能となる。
以下のような理由から、history 属性から意味のある情報を機械的に取り出すことはできない。
NetCDF で用いる外部表現の浮動小数点形式は IEEE 754 規格である。IEEE 754 規格には非数 (Not a Number, NaN) があり、非数と通常の実数の演算結果は欠損値の条件を満たす。従って、内部表現も IEEE が使えることが確実であれば、欠損値としては非数を用いることができる。そうすればプログラムは欠損値処理を明示的に書く必要がない。
しかしながら、実際には伝統的なプログラミング言語 (たとえば C, Fortran 90 など) はともに IEEE 754 規格が使えることも非数が使えることも保証していない。また、netCDF の想定しているプラットフォームでも内部的に IEEE 754 規格の数値演算が行える保証はない。
IEEE 754 以前から習慣として、「無効な数値」の範囲 (または単独の欠損値) を定義しておいて、その範囲の数値を欠損値とみなす処理が行われてきた。IEEE 754 規格の使えない環境が無視できるようになった現在も、gtool4 規約の対象とする領域にとってこの習慣は無視できないものである。
以上のような理由から、著者にとって非常に残念なことではあるが、gtool4 規約においても欠損値範囲の取り扱いはなされなければならないものとする。
6.0e36 を推奨するのは、 netCDF のデフォルトの _FillValue (NF_FILL_REAL) より小さく、単精度実数形式の指数部が繰り上がった直後だからである。
GDT の議論によれば、modulo 属性が必要なのは座標変数の単調増加性を維持するためである。たとえば「0 から 360 まで」の経度座標の切断点を動かして「180 から 360 すなわち 0 を経由して 180 まで」の座標に作り変える場合、周期性を利用してたとえば「-180 から 180」のように単調増加の値に変換しなければならない。このために周期を知る必要がある。
単位を表記する文法は udunits のドキュメンテーションおよびソースコードから推測した文法を明文化したものである。NetCDF および既存規約は udunits によって単位が処理されることだけを規定している。乗算やべき乗の推奨される形は JIS X 0124 に合わせた。単位名は udunits に許容されるものを用いることが推奨されるので、推奨される単位表記は単位名を置き換えなければ JIS X 0124 には適合しない。
リンクしたいよね。