X2SYS_INIT

名前
書式
説明
オプション
定義ファイル

関連事項

名前

x2sys_init − 航跡データファイルのデータベースを初期化する

書式

x2sys_init TAG −Ddeffile [ −Esuffix ] [ −F ] [ −Gd|g ] [ −Idx[/dy] ] [ −M[i|o][flag] ] [ −Rwest/east/south/north[r] ] [ −V ] [ −Wt|dgap ]

説明

x2sys_init は航跡データの一種に特有なデータベースのセットを初期化する。 これらのデータ、関連したデータベース、キーパラメータはシステム TAG と呼 ばれる略記号で与えられる。 TAG はファイルフォーマット、データが地理的か 否 か 、 航 跡 イ ン デックスのビンの解像度といった設定を記憶している。 x2sys_init の実行はデータの航跡がどこへ行きどの観測データが利用可能かを そのまま表す x2sys_binlist を実行する前に必要となる。この情報は航跡デー タベースを更新する x2sys_put への入力になる。それから x2sys_get は与 え られた領域内で利用可能な航跡及びデータを見つけるのに使うことができる。

TAG

このデータタイプシステムの一意的なタグ名。

−D

このデータセットの定義ファイル。

オプション

オプションフラグとそれに付属する引き数の間にスペースを入れないこと。

−E

これらのデータファイルのファイル拡張子(サフィックス)を指定 する。もし与えられなければ定義ファイルのプレフィックスを拡張 子 として使う( −D 参照)。

−F

古いファイルがあるときでも新しいファイルを作る [デフォルト では古いファイルがあれば強制終了する]。

−G

地理座標を選択する。日付変更線を不連続にするには d を(経 度 が -180 から +180 になる)、グリニッジ子午線を不連続にするには g を(経度が 0 から 360 になる[デフォルト])付けること。

−I

x_inc [及び随意で y_inc ] は格子間隔である。分を示すには m を、秒を示すには c を付けること。

−M

複数のセグメントからなるファイルであることを意味する。セグ メントは特別な行で区切られる。アスキーファイルでは最初の文字 は flag でなければならない [デフォルトは’>’]。バイナリファイルでは 全てのフィールドが NaN でなければならない。

−R

west, east, south, 及び north は対象とする領域を指定する 。 小数値を含む度又は [+-]dd:mm[:ss.xxx][W|E|S|N] のフォーマットで 指定できる。東西南北の代わりに地図座標の左下と右上を使うとき は r を 付 けること。 2 つの略号 −Rg −Rd は全球領域(それぞれ経度 0/360 又は -180/+180 と緯度 -90/+90 )を表す。

−V

冗長モードを選択する。標準エラー出力に経過報告を送る[デフォ ルトでは「黙って」実行する]。

−W

t 又は d を与え、クロスオーバーのそれぞれの側での隣接する 2 点間に許容される最大の時間のギャップ(ユーザ単位、これは典型的に は秒[無限])、又は距離のギャップ(ユーザ単位、これは典型的には km [無限])を付けること。

定義ファイル

*.def ファイルはデータファイルフォーマットの情報を含む。 *.def ファイル は 2 つのセクションを持つ。それは (1) ヘッダ情報と (2) 列情報である。全 てのヘッダ情報は最初の列の先頭に文字 # が付き、直後に大文字の指示語が続 く。指示語が引き数をとるときは空白で区切られる。後に # で始まるコメント を追加しても良い。

ASCII はデータファイルがアスキーフォーマットであることを示す。
BINARY
はデータファイルがバイナリファイルであることを示す。
SKIP
は飛ばされる行数(アスキーファイルを読むとき) 又は飛ばされるバイ ト 数(バイナリファイルを読むとき)を示す整数の引き数をとる。
GEO
はこれらが x 座標(経度)が周期的な地理的なデータセットであることを示 す。
MULTISEG
は各航跡が GMT のマルチセグメントヘッダで区切られた複数のセ グ メントからなることを意味する(代わりに、システム TAG を定義するときは −M を使うこと)。

列情報は各列につき 1 つの行からなり、それらはデータファイルに現れる列の 順番になっている。各列について 7 つの属性を与えなければならない。

name type NaN NaN-proxy scale offset oformat

name は列の変数の名前である。 2 つの必要な座標の列には特別な名前 lon ( 又はカルテジアンなら x )及び lat (又は y )、随意の時間データがあると き は time を使うことが想定されている。
type
は数のアスキー表現に対しては a 、バイナリファイルの符号付き 1 バイ ト文字( -127,+128 )に対しては c 、符号無しバイト( 0-255 )に対して は u 、 符号付き 2 バイト整数( -32768,+32767 )に対しては h 、符号付き 4 バイ ト整数( -2,147,483,648,+2,147,483,647 )に対しては i 、 4 バイト浮動小数 点に対しては f 、 8 バイト倍精度浮動小数点に対しては d である。
NaN
はある値が NaN により置き換えられるなら Y 、そうでなければ N である 。
NaN-proxy
はその特別な値である。
scale
は読み込んだ後にデータに掛けるのに使われる。
offset
はスケールされたデータに足すのに使われる。
oformat
はこの列から値を出力するのに使われる C 形式のフォーマット文字列 である。

ア スキーデータについては type フォーマットは常に a である。 NaN は欠け ているデータ( NaN )を表すのに使われている何らかの値 (例えば -9999 )があ る ときは Y にするべきである。もしそうなら、 NaN-proxy の値はそれに応じ て設定されるべきである (そうでなければ無視される)。 scaleoffset は そ れらが読み込まれた後にデータ値に適用され (始めにスケールされ、次にオ フセットされる)、 oformat は一部のプログラムでフォーマットされた出力 に 対して使われる。 oformat に - を与えると GMT のフォーマット化の仕組みが 代わりに使われる ( す な わ ち PLOT_DEGREE_FORMAT, PLOT_DATE_FORMAT, PLOT_CLOCK_FORMAT )。一部のファイルフォーマットは既設の定義ファイルを持 っている。これらには mgd77 (プレーンなアスキー MGD77 データファイル) 、 mgd77+ (拡張された MGD77+ netCDF ファイル)、 gmt (古い mgg サプリメント バイナリファイル)、 xy (プレーンなアスキー x, y テーブル)、 xyz (同じ、 z 列あり)、 geo (プレーンなアスキー経度、緯度ファイル)、及び geoz (同じ 、 z 列あり)が含まれる。

航跡データファイルの大きなセットを持っているとき、 x2sys ツールを使って こ れらを整理することができる。ここではその概略を示す。その航跡データフ ァイルフォーマットは文字情報の 2 つのヘッダ行とそれに続いて 6 つ の 列( lat,lon, time, obs1, obs2, obs3 )が等しくフォーマットされた任意の数のデ ータ行からなり、ファイル名は *.trk であるとする。これを "line" フォーマ ットと呼ぶことにする。まず、 line.def ファイルを作成する。

# Define file for the line format
#ASCII # File is ASCII
#SKIP 2 # Skip 2 header records
#name type NaN NaN-proxy scale offset oformat
lon a N 0 1 0 %10.5f
lat a N 0 1 0 %9.5f
time a N 0 1 0 %7.1f
obs1 a N 0 1 0 %7.2f
obs2 a N 0 1 0 %7.2f
obs3 a N 0 1 0 %7.2f

次に TAG 及びこれらの line 航跡ファイルのデータベースを作成する。これら は地理的なデータを含むものとし、航跡データの分布を 1 x 1 度の解像度に保 っておきたいとする。

x2sys_init LINE −V −G −Dline −R0/360/-90/90 −I1/1 −Etrk

ここでは LINE をシステムタグとして使っている。 x2sys ツールが line デー タファイルを読み込もうとするとき、調べるべき追加ディレクトリを、最初 に カレントディレクトリ、次にファイル TAG_paths.txt から探す。従って、その ようなファイル(ここでは LINE_paths.txt )を作成しデータディレクトリの フ ル パスをそこに入れておくこと。全ての TAG 関連のファイル(定義ファイル、 タグファイル、構築された航跡データベース)は $X2SYS_HOME により示され た ディレクトリにあると想定される。

tbf ファイルの作成

一旦(空の) TAG データベースが初期化されたら、それを増やすための 2 つの段階へ行く。まず x2sys_binlist を実行し、全ての航跡ファイ ルに対して 1 つ(以上)の複数セグメントの航跡ビンインデックスファ イル( tbf )を作成する。これらには 1 x 1 度のビン(又は任意の他の ブ ロックの大きさ、 −I 参照)のどこを各航跡が訪れ、どの観測項目( この場合は obs1, obs2, obs3 )が実際に観測されたか (全ての航跡に ど こでも 3 つの観測項目全部があるとは限らない)を示す情報が含ま れている。例えば、航跡がファイル tracks.lis に挙げられている と き、このコマンドを実行することができる。

x2sys_binlist −V −TLINE ‘cat tracks.lis‘ > tracks.tbf

インデックスデータベースの更新

次に、航跡ビンインデックスファイルは、 TAG データベースに情報を 追加する x2sys_put に与えられる。

x2sys_put −V −TLINE tracks.tbf

データの検索

ここで x2sys_get を使って、あるサブ領域の内部にある全ての航跡を 見 つけたり、随意でこれらの航跡に対する検索の範囲を特定の観測項 目の組合せに限定したりすることができる。例えば、指定された領 域 内で obs1 と obs3 の両方を持つ全ての航跡を見つける。

x2sys_get −V −TLINE −R20/40/-40/-20 −Fobs1,obs3 > tracks.tbf

MGD77[+] 又は GMT

定 義 ファイルは既に MGD77 ファイル(標準アスキー及び拡張 netCDF ベースの MGD77+ ファイルの両方)、 mgg サプリメントにより加工 さ れる古い *.gmt ファイル、プレーンな x,y[,z] 及び lon,lat[,z] の 航跡については存在する。 NGDC からの MGD77 データを使うために新 しい航跡データベースを初期化する。

x2sys_init MGD77 −V −Dmgd77 −Emgd77 −Rd −Gd −I1/1 −Wt900 −Wd5

ここではデータ間のギャップを示す閾値として 15 分( 900 秒)又は 5 km を選んだ。他の刻み幅は同じである。

バイナリファイル

line ファイルが実際には(飛ばされるべき) 128 バイトのヘッダ構 造 の 後にデータレコードを持ち、 lon, lat, time が倍精度の数で、 3 つの観測項目が 2 バイト整数で 0.1 を掛けなければならないバイ ナ リファイルだとする。そして、最初の 2 つの観測項目は利用可能なデ ータが無いことを意味する -32768 である可能性がある。ここで必 要 になるのは、別の line.def ファイルである。

# Define file for the binary line format
#BINARY # File is now binary
#SKIP 128 # Skip 128 bytes
#name type NaN? NaN-proxy scale offset oformat
lon d N 0 1 0 %10.5f
lat d N 0 1 0 %9.5f
time d N 0 1 0 %7.1f
obs1 h Y -32768 0.1 0 %6.1f
obs2 h Y -32768 0.1 0 %6.1f
obs3 h N 0 0.1 0 %6.1f

残りの段階は同じである。

関連事項

x2sys_binlist(l) x2sys_get(l) x2sys_put(l)