FortranのためのNetCDFユーザーのガイド
ncdump
は、netCDF datasetを読み、そして、datasetに情報の原文の表現を掲載する
ncgen
は、netCDF datasetの原文の表現を読み、そして、netCDF
datasetを作成するために、一致するバイナリnetCDFファイル、または、C、もしくは、FORTRANプログラムを生成する
ncmeta
プリントは、1以上のnetCDF datasetsの中からmetadataを選択した
ncrob
は、データによる様々な手術 ( コピー、和、平均、max、min、... )
を行う、読まれる、から、そして、netCDFのテキストファイル、かつ、または、選択されたパーツにプリントされる、もしくは書かれる、変数、または、属性。
http://www.unidata.ucar.edu/packages/netcdf/fan_utils.html
は理解する。
ユーザーは、他のnetCDF公益事業に貢献し、そして、様々な具象化、及び、分析パッケージは、利用可能である、netCDFデータにアクセスする。netCDFデータにアクセスすることができる、もしくは操作し得る自由に‐利用可能な、そして商業ソフトウェアの最新のリストのために、NetCDF
Softwareリスト、 http://www.unidata.ucar.edu/packages/netcdf/software.html
を見る。
この章は、ncgen
、及び、ncdump
ユーティリティを示す。これらの2つのツールは、バイナリnetCDF
datasets、及び、netCDF
datasetsのテキスト表現の間で変わる。ncgenする
ncdump、及び、入力の
出力は、CDLとして知られている小さい言語のnetCDF
datasetのテキスト記述である ( ネットワークCommonデータがDescription Languageを形成する ) 。
lat
、lon
、時間
) 、変数 (
z
、t
、p
、rh
、lat
、lon
、時間
) 、変数属性 ( ユニット
、_FillValue
、valid_range
)
、及び、いくらかのデータによってnetCDF datasetを示すCDL。
CDLにおけるnetcdf foo { //例netCDF仕様
次元:
lat = 10、lon =
5、時間=、無制限の;
変数:
int lat ( lat ) 、lon ( lon ) 、time ( time ) ;
z (
time、lat、lon ) 、t ( time、lat、lon ) を呈示しなさい;
p ( time、lat、lon )
を2倍にしなさい;
int rh ( time、lat、lon ) ;
lat :ユニット=「degrees_north」;
lon
:ユニット=「degrees_east」;
時間:ユニット=「秒」;
z :ユニット=は、「液体計量を行う」;
z :valid_range
= 0.、5000. ;
p :_FillValue = -9999. ;
rh:_FillValue = -1
;
データ:
lat = 0、10、20、30、40、50、60、70、80、90 ;
lon =
-140、-118、-96、-84、-52
;
}
全てのCDLステートメントは、セミコロンによって終了する。スペース、タブ、及び、newlinesは、読み易さのために自由に使われ得る。コメントは、あらゆるライン上で二重のスラッシュキャラクタ//
の後に続くかもしれない。
CDL記述は、3つの任意のパーツから成る:次元、変数、及び、データ。変数部分は、変数宣言、及び、属性の割当を含むかもしれない。
A次元は、CDL記述によって示されたマルチ‐寸法の変数の1以上の形を定義するために使われる。次元は、名前、及び、長さを持っている。大部分の1に、CDL記述における次元は、無制限の長さ ( この次元を使う変数があらゆる長さ ) まで増大し得ることを意味するを持っていることができる ( ファイルにおいてレコード番号を好みなさい ) 。
変数は、マルチ‐寸法の一連の同じタイプの値を示す。変数は、名前、データタイプ、及び、次元のそのリストによって記述された形を持っている。各変数は、データ値と同様に、属性 ( 下で見る ) を同じく結び付けたかもしれない。名前、データタイプ、及び、変数の形は、CDL記述の変数セクションにおけるその宣言によって指定される。変数は、次元と同じ名前を持っているかもしれない;そのような変数が含む規定によってそれが指定する次元の座標。
属性は、変数、もしくは、全netCDF
datasetに関する情報を含む。属性は、ユニット、特別な値、最大の、そして最小の正当な値、及び、パッキングパラメータのようなプロパティを指定するために使われるかもしれない。属性の情報は、値の1つの値、または、アレイで表される。例えば、ユニット
、celsius
のようなキャラクタアレイで表された属性である。属性は、関連する変数、名前、データタイプ、長さ、及び、値を持っている。データのためのものである変数と対照的に、属性は、付属のデータ
( データに関するデータ ) のためのものである。
CDLにおいて、属性は、コロン ( 以下 ) によって分離された変数、及び、属性の名前によって示される。アサインすることは、可能である変数名を省略し、そして、属性の名前をコロン ( 以下 ) で始めることによるnetCDF dataset全体へのグローバルな属性。CDLにおける属性のデータタイプは、それに割り当てられた値のタイプから得られる。属性の長さは、データ値の数、または、それに割り当てられたキャラクタストリングにおけるキャラクタの数である。多重値は、コンマ ( ) によって値を分離することによって非キャラクタ属性に割り当てられる。属性に割り当てられた全ての値は、同じタイプでなければならない。
変数、属性、及び、次元のためのCDL名は、`
_
'と同様に、アルファベットの、もしくは、数値キャラクタのあらゆる結合であるかもしれない、そして、-
、キャラクタ、しかし、`
_
'で始まる名前は、ライブラリによる使用のために取っておかれる。ケースは、CDL名において有意である。netCDFライブラリは、制限をnetCDF名前に全く強要しない。従って、正当なCDL名ではない名前によって変数を定義することは、可能である
( 愚かであるけれども )
。原始的データタイプのための名前は、CDLにおける予約したワードである。従って、変数、次元、及び、属性の名前は、タイプ名であってはいけない。
任意のものCDL記述のデータセクション、である、netCDF、変数は、そうであるかもしれない初期化される。初期化のシンタックスは、簡単である:
変数= value_1、value_2、...。以下。
定数のコンマに境界を定められたリストは、スペース、タブ、及び、newlinesによって分割されるかもしれない。マルチ‐寸法のアレイのために、最後の寸法は、最も速く異なる。このように、カラムよりむしろ列‐オーダオーダは、マトリックスのために使われる。変数を満たすのに必要とされるより値がほとんど供給されないならば、それは、フィル値によって拡張される。定数のタイプは、変数のために宣言されたタイプにマッチする必要がない;例えば、威圧は、整数を浮動少数点に変換するために、行われる。全ての有意義なタイプ変換は、サポートされる。
特別な表記法、のために、値を満たす、サポートされる:_
キャラクタは、変数のためにフィル値を示す。
木炭
| キャラクタ。 |
バイト
| 8ビット整数。 |
短い
| 16ビットは、整数に署名した。 |
int
| 32ビットは、整数に署名した。 |
長く
| ( 非難される、intと現在の同義の ) |
フロート
| IEEE単精度浮動少数点 ( 32ビット ) 。 |
真の
| ( フロートと同義の ) 。 |
ダブル
| IEEE倍精度浮動少数点 ( 64ビット ) 。 |
加えられたdata-typeバイト
、及び、タイプ修飾子の署名されていない
CDLサポートの欠如を除いては、C.
In宣言、タイプ名と同じ原始的データタイプは、上の或いは更に低い場合に指定されるかもしれない。
バイト
タイプは、異なる、から、木炭
それとしてそれが8ビットデータのためのものであり、そして、ゼロのバイトが特別な意味を持たないという点で、タイプする、キャラクタデータのために。ncgen
ユーティリティは、バイト
宣言を出力Cコードにおける木炭
宣言、そして、BYTE
、INTEGER*1
、または、出力FORTRANコードにおける同様のプラットホーム‐特定の宣言に変換する。
短い
タイプは、-32768、及び、32767の間に値を保持する。ncgen
ユーティリティは、短い
宣言を出力Cコードにおける短い
宣言、そして、出力FORTRANコードにおけるINTEGER*2
宣言に変換する。
int
タイプは、-2147483648、及び、2147483647の間に値を保持し得る。ncgen
ユーティリティは、int
宣言を出力Cコードにおけるint
宣言、そして、出力FORTRANコードにおけるINTEGER
宣言に変換する。CDL宣言において、整数
、及び、長期
は、int
の同義語と認められる。
フロート
32ビットIEEEが単精度浮動少数点番号を正常化したので、タイプは、外部の表現を持つ約-3.4+38、及び、3.4+38の間の値を保持し得る。ncgen
ユーティリティは、フロート
宣言を出力Cコードにおけるフロート
宣言、そして、出力FORTRANコードにおけるREAL
宣言に変換する。CDL宣言において、実数
は、フロート
の同義語と認められる。
ダブル
タイプは、64ビットIEEEの標準の正常化された倍精度、浮動少数点番号としての外部の表現を持つ約-1.7+308、及び、1.7+308の間に値を保持し得る。ncgen
ユーティリティは、二重の
宣言を出力Cコードにおける二重の
宣言、そして、出力FORTRANコードにおけるDOUBLE
PRECISION
宣言に変換する。
属性、である、定数のリストを供給することによってCDL記述の変数
セクションで初期化されて、それが決定する、属性のタイプ、そして、長さ。(
C、及び、FORTRANにおいてそれが定義されるとき、netCDFライブラリ、タイプ、及び、属性の長さへの手続き的インターフェースは、明白に与えられなければならない。
)
CDLは、異なるnetCDFタイプの間で区別することを可能にする固定価値のためにシンタックスを定義する。それらをints
、及び、ダブル
と区別するためにタイプ接尾部が半ズボン
、及び、フロート
に付加されるということを除けば、CDL定数のためのシンタックスは、Cシンタックスと類似している。
Aバイト定数は、1つの引用符に納められている1つのキャラクタ、または、多重キャラクタエスケープシーケンスで表される。例えば:
'a' // ASCII、'\0' //、ゼロのバイト'\n' // ASCII newlineキャラクタ'\33' //
ASCIIエスケープキャラクタ ( 33の8進 ) '\x2b' // ASCIIの正の ( 2b 16進 ) '\376' // 377 8進= (
或いは、254 ) 10進、キャラクタ定数が二重の引用符に納められている。キャラクタアレイは、二重の引用符に納められているストリングとして表明されるかもしれない。多重ストリングは、1つの一連のキャラクタに連結される
( 長いキャラクタアレイが多重ラインに現れることを可能にして )
。多重可変長ストリング値をサポートするために、従来のデリミッター、のような、使われるかもしれない、しかし、ストリングデリミッターのためのあらゆるそのような規定の解釈は、実行されなければならない
( netCDFライブラリ層以上のソフトウェアにおいて ) 。Cストリングのための通常のエスケープ協定は、遵守される。例えば:
// ASCII
'a'「Two\nlines\n」//、2埋め込まれたnewlinesを持つ10文字ストリング、ASCIIベル「ab」、「abcde」と同じである「cde」//を含む1連当たりbell:\007
//、
aのフォーム短い
定数は、` s
'と共に一定の整数、または、付加された`
S
'である。短い
定数が` 0
'で始まるならば、それは、8進であると解釈される。それが` 0x
'で始まるとき、それは、16進定数と解釈される。例えば:
2s // a short 2 0123s // octal 0x7ffs //
hexadecimal
フォーム、の、int
定数は、普通の整数定数である。int
定数が` 0
'で始まるならば、それは、8進であると解釈される。それが` 0x
'で始まるとき、それは、16進定数と解釈される。正当なint
定数の例は、以下を含む。
非難された-2 0123 //の8進0x7ff // 16進1234567890L
//は、昔からの長い接尾部を使うフロート
タイプは、データを精度の約7つの有意の数字で表すことに適している。aのフォームフロート
定数は、` f
'と共に一定のC浮動少数点、または、付加された`
F
'と同じである。それを整数と区別するために小数点がCDL余裕時間
に必要とされる。例えば、下記は、全ての受け入れられるフロート
定数である:
-2.0f 3.14159265358979f //は、比較的少ない精度1.f .1fに切り捨てられるであろうダブル
タイプは、浮動少数点データを精度の約16の有意の数字で表すことに適している。aのフォームダブル
定数は、C浮動少数点定数と同じである。任意の` d
'、または、`
D
'は、付加されるかもしれない。それを整数
と区別するために小数点がCDLダブル
において必要とされる。例えば、下記は、全ての受け入れられる二重の定数である:
-2.0 3.141592653589793 1.0e-20 1.d
ncgenする
ncgen
ツールnetCDFファイル、または、aを生成するC、〜もしくは、netCDF
datasetを作成するFORTRANプログラム。オプションがncgen
に訴える際指定されないならば、そのプログラムは、単にチェックする、シンタックス、の、CDLシンタックスのあらゆる侵害のためにエラーメッセージを生産して、CDLは、インプットした。
ncgen
に訴えるためのUNIXシンタックス:
[ -f ] [ -n ] [インプット‐ファイル]をncgenする[ -b ]
どこへ:
foo.cdl
のシンタックスをチェックしなさい:
foo.cdlをncgenする
CDLファイルfoo.cdl
から、bar.nc
と指定された同等のバイナリnetCDFファイルを生成しなさい:
-o bar.nc
foo.cdlをncgenする
CDLファイルfoo.cdl
から、同等のバイナリnetCDF
datasetを作成するであろうnetCDFファンクション呼出しを含むCプログラムを生成しなさい:
ncdump
ncdump
ツールは、標準の出力に関してnetCDF datasetのCDLテキスト表現を生み出す (
出力においていくらか、または、変数データの全てを随意に除外して )
。ncdump
からの出力は、ncgenする
ために、入力として受け入れられることを意図している。このように、ncdump
、及び、ncgen
は、バイナリ、及び、テキスト表現の間でデータ表現を変えるための逆として使われ得る。
次元名前、及び、長さを表示するために、ncdump
は、netCDF
datasetsのためのシンプルなブラウザとして同じく使われるかもしれない;変数名、タイプ、及び、形;属性の名、及び、値;そして、随意に、netCDF
datasetにおける全ての変数、または、選択された変数のためのデータの値。
ncdump
は、各タイプのnetCDF変数データのために使われるデフォルトフォーマットを定義する。しかし、C_format
属性がnetCDF変数のために定義されるならば、これは、オーバライドされ得る。この場合、ncdump
は、その変数のために値をフォーマットするためにC_format
属性を使うであろう。例えば、netCDF変数Z
のための浮動少数点データがわずか3つの有意の数字に正確であるということが知られているならば、この変数属性を使うことは、適切であろう:
Z:C_format
=「%.3g」ncdump
は、まだ書かれなかったデータを表すことを意図している変数のための_FillValue
属性に等しいデータ値を表すために`
_
'を使う。変数が_FillValue
属性を持っていないならば、その変数がバイトタイプでない限り、変数タイプのためのデフォルトフィル値は、使われる。
ncdump
に訴えるためのUNIXシンタックス:
ncdump [ -c|-h ] [ -v var1 , ... ][ -b lang ] [ -f lang
] [ -l lenする] [ -p fdig [ , ddig ] ] [ -n名]
[インプット‐ファイル]
どこへ:
-c | 全ての次元の宣言と同様に、対等の変数 ( 同じく次元である変数 ) の値、変数、及び、属性の値を示しなさい。非対等の変数のデータ値は、出力に含まれない。これは、しばしばnetCDF datasetの構造、及び、内容を短い見ることのために使用する最も適当なオプションである。 |
-h
| netCDF次元のための宣言のみ、変数、及び、入力ファイルの属性を出力におけるヘッダ情報のみ、すなわち、出力に示す、しかし、あらゆる変数のためのデータ値なし。その出力は、対等の変数の値が含まれないということを除けば、`
-c 'オプションを使うと同じである。( せいぜい、` -c '、または、` -h
'オプションのうちの1つは、存在するかもしれない。 )
|
-v var1、... 。
| その出力は、指定された変数のためにデータ値を含むであろう ( 全ての次元、変数、及び、属性の宣言に加えて )
。1以上の変数は、このオプションの後に続くコンマに境界を定められたリストにおける名前によって指定されなければならない。そのリストは、コマンドへの1つの引数が従ってブランク、及び、他の白いスペースキャラクタを含むことができないことでなければならない。指定された変数は、インプット‐ファイルにおける正当なnetCDF変数でなければならない。そのデフォルトは、このオプションなしで、そして、`
-c '、または、` -h
'オプションがない時は全ての変数のためのデータ値を出力に入れることである。
|
-b lang
| マルチ‐寸法の変数のためにデータ値を確認するのを助けるために、CDLコメント ( キャラクタ //で始まるテキスト
) の形式の短い注釈は、各列のデータ` 'のための出力のデータセクションに含まれるであろう。langが` C
'、または、` c 'で始まるならば、それから、C言語規定は、使われるであろう (
ゼロ・ベースインデックス、最も速く変化する最後の次元 ) 。langが` F '、または、` f
'で始まるならば、それから、FORTRAN言語規定は、使われるであろう ( 1‐ベースのインデックス、最も速く変化する最初の次元 )
。いずれにせよ、データは、同じ順番に提示されるであろう;注釈のみが、異なるであろう。このオプションは、大きいボリュームのマルチ‐寸法のデータをブラウズするのに有益であるかもしれない。
|
-f lang
| 全てのデータ値 ( キャラクタアレイにおける個々のキャラクタを除いて ) のためにCDLコメント (
キャラクタ //で始まるテキスト )
を引きずる形の十分な注釈は、データセクションに含まれるであろう。langが` C '、または、`
c 'で始まるならば、それから、C言語規定は、使われるであろう ( ゼロ・ベースインデックス、最も速く変化する最後の次元
) 。langが` F '、または、` f
'で始まるならば、それから、FORTRAN言語規定は、使われるであろう ( 1‐ベースのインデックス、最も速く変化する最初の次元 )
。いずれにせよ、データは、同じ順番に提示されるであろう;注釈のみが、異なるであろう。このオプションは、十分に確認されて、各データ値が個別のラインに現れるので、パイプでデータを他のフィルタに送るのに有益であるかもしれない。(
せいぜい、` -b '、または、` -f 'オプションのうちの1つは、存在するかもしれない。 )
|
-l lenする
| 非キャラクタデータ値のリストをフォーマットする際使われるデフォルトの最大のライン長さ ( 80 ) を変えなさい。 |
-p float_digits [ double_digits ]
| |
属性、及び、変数のために浮動少数点、または、倍精度データ値を表示する際使用するために、デフォルト精度 ( 有意の数字の数 )
を指定する。指定されたならば、この値は、C_format 属性の値をオーバライドする、もしあれば、変数のために。浮動少数点データは、float_digitsの有意の数字によって表示されるであろう。double_digitsが同じく指定されるならば、倍精度値は、その多くの有意の数字によって表示されるであろう。あらゆる`
-p
'仕様がない時は、浮動少数点、及び、倍精度データは、各々7、及び、15の有意の数字によって表示される。比較的少ない精度が必要とされるならば、CDLファイルは、更に小さくされ得る。浮動少数点と、倍精度の両方が指定されるならば、2つの値は、現れなければならない、コンマ
( ブランクなし ) によってコマンドへの1つの引数として分離される。
| |
-n名
| CDLは、netCDF datasetのために名前を必要とする、というのは、デフォルトnetCDF dataset名前を生み出す際`
ncgen -b
'によって使用するからだ。デフォルトによって、ncdump は、それが持つあらゆる拡張部分を除去することによる入力netCDF
datasetのファイル名の最後のコンポーネントからこの名前を組み立てる。異なる名前を指定するために` -n
'オプションを使いなさい。出力ファイル名前が使用したが、によって、ncgenする'、-b は、指定され得る、それは、賢明であるかもしれない、に、ncdump を持つ、デフォルト名前を変える、に、ncdump を使っているとき、価値のあるnetCDF
datasetに不注意にオーバーライトすることを回避する、編集、その結果生じるCDLファイル、及び、使用は、ncgenする '、編集されたCDLから新しいnetCDF
datasetを生成するための-b は、ファイルする。 |
foo.nc
においてデータの構造を見なさい:
ncdump -c foo.nc
注釈のためにC‐スタイルのインデックス付けを使って、netCDF dataset
foo.nc
において構造、及び、データの注釈されたCDLバージョンを生み出しなさい:
ncdump -b c foo.nc > foo.cdl
netCDF dataset
foo.nc
からの変数uwind
、及び、vwind
のみのためにデータをアウトプットし、そして、精度のわずか3つの有意の数字によって浮動少数点データを示しなさい:
ncdump -v uwind、vwind -p 3
foo.nc
変数オメガ
のためのデータの十分に‐注釈された ( ラインにつき1つのデータ値 ) リスティングを生じさせなさい (
インデックスのためにFORTRAN規定を使っている、そして、その結果生じるCDLファイルにおけるnetCDF
dataset名前をオメガ
に変えている ) :
ncdump -v omega -f fortran -n omega foo.nc > Z.cdl