名前
splitxyz - (x,y,z[,distance,heading]) データを (x,y,z) の測線
のセグメントに分割します
概要
splitxyz [ xyz[dh]file ] -Ccourse_change [ -Aazimuth/tol-
erance ] [ -Dminimum_distance ] [ -Fxy_filter/z_filter ] [
-Ggap_distance ] [ -H[nrec] ] [ -M ] [ -Nnamestem ] [ -S ]
[ -V ] [ -Z ] [ -: ] [ -bi[s][n] ] [ -bo[s][n] ]
記述
splitxyz は (x,y[,z]) の一連のレコード[またはオプションと
して (x,y,z,d,h); -S オプション参照]を標準入力[または
xyz[dh]file] から読んで、これを一連の (x,y[,z]) の別々のリ
ストに分割します。各々のセグメントは x,y 平面上でほぼ一定の
方位を持ちます。これらのセグメントがある方向を持つようにし
たり、最短の長さを設定したり、 z の値や x,y の値についての
ハイまたはローパスフィルタをかけたりといったオプションがあ
ります。 splitxyz は pswiggle でプロットする前に余分なデ
ータをふるい落とすのに便利であり、また大きな x,y,z のデータ
セットをセグメントに分割するのにも使えます。出力は常に ASCII
フォーマットです; 入力は ASCII またはバイナリにすることがで
きます( -b 参照)。
xyz[dh]file(s)
3 (ただし -Z 参照) [または 5] 列の ASCII ファイル[ま
たはバイナリ、 -b 参照]で、 (x,y,z[,d,h]) データ値を
持ちます。 (x,y,z,d,h) 形式の入力を用いるには、 d が
減少しないように並べ替え、 -S オプションを指定します;
デフォルトでは (x,y,z) のみを想定しています。ファイル
が与えられないときは、 splitxyz は標準入力を読みます。
-C 角度 course_change を超える進行方向の変化が検知され
るとセグメントを切ります。
オプション
-A 北から時計回りに計った進行方向の角度[0 - 360]が azimuth
から +/- tolerance 以内のセグメントだけを出力します
[デフォルトでは方向に関わらずすべての許容できるセグ
メントを出力します]。
-D minimum_distance 以下の長さのセグメントは出力しませ
ん[デフォルト = 100 ]。
-F d 座標の関数として z の値や x,y の値をフィルタします。
xy_filter と z_filter はフィルタの幅です。フィルタの
幅がゼロのときはフィルタリングは行われません。幅の絶
対値はコサイン型のローパスフィルタの全幅です。幅が正
のときは、データにはローパスフィルタがかけられます;
負のときは、データは観測値からローパスの値を差し引く
ことによりハイパスフィルタがかけられます。 z_filter
がゼロでないときは、セグメント分割が行われる前に入力
された z の値全体がフィルタされるので、フィルタリン
グにおけるエッジ効果はデータ全体の始めと終わりにしか
生じません。 xy_filter がゼロでないときは、データは
まずセグメントに分割され、それから各セグメントの x,y
の値が別々にフィルタされます。このため各セグメントの
両端にエッジ効果が生じる可能性がありますが、ローパス
x,y フィルタにより測線セグメントの角が丸まるのを防止
します[デフォルト = フィルタリングなし]。
-G gap_distance を超えるギャップがセグメントにできない
ようにします; 代わりに、2つのセグメントに分割します
[デフォルト = 10 ]。
-H 入力ファイルにヘッダレコードがあります。ヘッダレコ
ードの数は .gmtdefaults ファイルを編集することによ
り変更できます。このオプションが使われた場合、 GMT
のデフォルトではヘッダレコードは1行です。バイナリ
データには用いられません。
-M マップの単位を使います。このとき x,y は経度、緯度の
度、距離はキロメートルになります[デフォルト: 距離は
カルテジアンで x,y と同じ単位]。
-N 名前付きの出力ファイルを作ります。各セグメントを作業
ディレクトリの namestem.profile# という名前の別々の
ファイルに書き出します。ここで # は 1 から連続して増
加します[デフォルトでは全体を標準出力に書き出します。
セグメントは > マークで始まるサブヘッダにより分割さ
れます]。
-S d と h が与えられています。この場合、入力には x,y,z,d,h
が含まれます[デフォルトでは (x,y,z) の入力を前提とし
ており、 d,h はデルタ x, デルタ y から -M オプション
により計算されます]。
-V 冗長モードを選択します。標準エラー出力に経過報告を
送ります[デフォルトでは"静かに"走ります]。
-Z データは x,y のみ( z 列なし)。
-: 入出力の(経度,緯度)と(緯度,経度)を入れ替えます。[デ
フォルトは(経度,緯度)です]。地理座標のみに適用されま
す。
-bi バイナリ入力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。バイナリファイルの
列数に応じて n を付け加えてください[デフォルトは -S,
-Z の設定により 2, 3, または 5 列になります]。
-bo バイナリ出力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。
用例
領域 -R300/315/12/20 における cag71 という航海からほぼ東西
方向のセグメント上の地磁気異常の図を作るとします。 100km の
ローパスフィルタを用いて測線を滑らかにし、 500km のハイパス
フィルタを用いて地磁気異常のトレンドを除去します:
gmtlist cag71 -R300/315/12/20 -Fxyzdh | splitxyz -A90/15
-F100/-500 -M -S -V | pswiggle -R300/315/12/20 -Jm0.6
-Ba5f1:.cag71: -T1 -W3 -G200 -Z200 > cag71_wiggles.ps
MGD-77 ユーザへ: この応用について、 d,h を splitxyz に別々
に計算させるのでなく、 gmtlist から取り出すことを推奨しま
す。
ある調査における緯度、経度、重力を含む倍精度のバイナリファ
イルが与えられたとします。これを survey.profile# という名前
のプロファイルに分割します(ギャップが 100 km 以上のとき):
splitxyz survey.bin -Nsurvey -V -G100 -: -M -bi3
関連事項
gmt(l), gmtlist(l), pswiggle(l)
1 May 2003 SPLITXYZ(l)
Man(1) output converted with
man2html