gtool4 規約 version 4.0beta10

5. 各種の文字列書式

2000-02-10T06:49:01+09:00 豊田英司


5.1 変数URL

任意の機械に置かれた任意の netCDF ファイルの中の任意の変数または属性を指定するために、変数URLを規定する。変数URLは netCDF ファイルを示す URI に "#" と変数名を付加したものである。

生成系は変数名を変数 URL に変換する際には、netCDF ファイル内部での相互参照ならば変数名の先頭に単に "#" を付加するべきである。それ以外の場合は URI に "#" と変数名を付加するべきである。

解釈系はネットワークが利用できないことが判明している場合、ネットワークを参照しなくてもよいし、処理系依存の方法で URI に対応する大体ファイルを定義できるようにしてもよい。

推奨される: http プロトコルで公開されているファイルの中の変数 q

http://www.some.domain/any/path/filename.nc#q

参照元と同じファイルの中の変数 q

#q

推奨されない例: 参照元と同じディレクトリの中のファイル any.nc の中の属性 q:long_name 

any.nc#q:long_name

参照元と異なるディレクトリの中のファイル /any/path/filename.nc の中の大域属性 title 

file:///any/path/filename.nc#:title

参照元と異なる機械に存在する公開されていないファイルの中の変数 

file://hostname.some.domain/any/path/filename.nc#q


5.2 日時形式

日時の推奨される形式は、JIS X 0301 の完全表記の拡張表記で日付・時間・協定世界時からの時差をすべて省略しない書き方とする。形式的には

yyyy-MM-ddThh:mm:ssSaa:bb

のようになる。ただし yyyy は西暦年、 MM は月、dd は日、hh は時、mm は分、ss は秒、S は「+」または「-」、aa は時差の時間の部分、bb は時差の分の部分。たとえば 1972 年 12 月 11 日日本時間 02 時 25 分は

1972-12-11T02:25:00+09:00

である。日付と時刻の区切りの T をカッコ悪いと思われる向きがあるかもしれないが国際規格なのであきらめていただきたい。なお、udunits は時刻の原点としてこの書き方を受け入れる。


5.3 単位

生成系は以下の文法に従った単位を付与しなければならない。これは udunits が受け入れる記法を明確化したものである。複数の表記が可能な場合は推奨される表記が規定されている。

以下、整数値とは C の sscanf(3) の "%d" 書式指定で認識されるものを指し、実数値とは "%lf" 書式指定子で認識されるものを指す。

単位名

単位名は英大文字、英小文字、数字、下線 「_」 から構成される。大文字と小文字は区別される。ただし語頭と語尾は数字または下線であってはならない。

可能ならば単位名には数字または下線を含むべきでない。

互換性のため、以下の単位を認める: パーセント「%」、角度の分「'」、角度の秒「"」。これらは推奨されない。

推奨される単位は 

である。可能ならば、ユーザ定義の単位は最小限に抑えられるべきである。

SI 接頭辞に個別単位名を続けたものは接頭辞に対応する係数をかけた単位となる。

この節で規定する単位名の内部には空白を入れてはならない。以後の規定で現れる演算子・数値・単位名の間には任意個の空白を置くことができる。

単位のべき乗

単位のあとに整数値を続けたものは単位のべき乗の単位となる。これが推奨されるべき乗の表現である。整数値としては正の数を用いることを推奨する。

単位のあとに '**' または '^' と整数をつなげたものは単位のべき乗を意味する。

単位の積・商

単位の前に数値を置いたものは単位のスカラー倍を意味する。

2つの単位を '.' でつなげたものは単位の積を意味する。これが推奨される積の表現である。

2つの単位を '*' または '-' でつなげたものは単位の積を意味する。ハイフンマイナス '-' は減算と誤解されるので、避けることを推奨する。

2つの単位をつなげたものは単位の積を意味する。生成系は単位の間には空白を置かねばならないが、互換性を重視する解釈系は空白が欠けた積を認識してもよい。空白が欠けたために複数の解釈がありえるときは、最初の単位の文字数が最長になるようなものを採る。この構成法は単に混乱の元であり、使わないことを強く推奨する。

2つの単位を '/' でつなげたものは単位の商を意味する。

原点移動

単位のあとに「@」、「after」、「ref」、「from」 または 「since」 と数値または日時を続けたものは単位の原点移動を意味する。「@」以外の演算子の前後には空白を置かねばならない。時間の単位の原点には日時を指定しなければならない。それ以外の単位の原点には数値を指定しなければならない。

日時に関する原点表示は 5.2 節で示したものを推奨する。

カッコ

単位を '(' と ')' で囲んだものは、元の単位と同じ単位である。

生成系が単位を認識できるならば、この構成法は使わないで済ませるべきである。しかし、単位を認識しないで複数の単位の間での演算を行うために非常に有用である。