grdmath − グリッドファイルに対する逆ポーランド記法計算機 |
grdmath [ −F ] [ −Ixinc[unit][=|+][/yinc[unit][=|+]] ] [ −N ] [ −Rwest/east/south/north[r] ] [ −V ] [ −bi[s|S|d|D][ncol] ] [ −fcolinfo ] operand [ operand ] OPERATOR [ operand ] OPERATOR ... = outgrdfile |
grdmath は逆ポーランド記法 (RPN) 構文(例えばヒューレット・パッカードの 計算方式) を用いて 1 つ以上のグリッドファイルや定数に対して加減乗除等の 計 算を実行する。そのためどんなに複雑な式でも計算することができる。最終 結果は出力グリッドファイルに書き出される。 2 つのグリッドファイルがスタ ッ クされるとき、ファイル A の各要素がファイル B の対応する要素により変 更される。しかし、 1 つの演算数だけを必要とする演算子もある(下を参照)。 式 の中にグリッドファイルが使われていないときは、データの領域を示すため にオプション −R, −I (及び随意で −F )が設定されていなければならない。 式 = outgrdfile はスタックの深さが許す限り何度でも使うことができる。 |
operand |
もし operand をファイルとして開くことができれば、グリッドファイ ルとして読み込まれる。もしファイルでなければ、数値定数又は特 別 な記号(下を参照)であると解釈される。 |
outgrdfile は最終結果を持つ 2 次元グリッドファイルである。 |
OPERATORS |
以下の演算子の中から選ぶこと。 ABS 1 abs (A). |
記号 |
以下の記号には特別な意味がある。 |
PI 3.1415926... |
−F |
( −R, −I とともに使用して)画素保存を選択する[デフォルトは格 子保存]。 |
||
−I |
x_inc [及び随意で y_inc ] は格子間隔である。分を示すには m を、秒を示すには c を付けること。もし代わりに e, k, i, n のいず れ かの単位が付け加えられれば、それぞれ刻み幅はメートル、キロメ ートル、マイル、海里のいずれかと見なされ、その領域の中央の緯 度 における経度の等価な度単位に変換される(変換方法は ELLIPSOID に 依存する)。もし /y_inc が与えられて 0 に設定されて い れ ば 、 /x_inc と同じ値に再設定され、そうでない場合は緯度の度に変換され る。もし = が付加されていたら、対応する最大の x (東) 又は y ( 北) が与えられた刻み幅にちょうど一致するように微調整される [デ フォルトでは刻み幅は与えられた領域に合うように微調整される]。最 後に、刻み幅を与える代わりに、与えられた刻み幅に + を付加するこ とにより、必要な格子点の数を指定することができる。刻み幅は格 子 点 の数と領域から再計算される。再計算される刻み幅は格子保存グリ ッドか画素保存グリッドのどちらを選ぶかに依存する。詳細は付録 B を参照すること。 |
||
−N |
複数のグリッドを処理するときに厳密な領域適合の検査を行わな いようにする [デフォルトでは各グリッド領域が最初に挙げられた グ リッドの領域の格子間隔の 1e-4 倍以内になるようにする]。 |
||
−R |
xmin, xmax, ymin, ymax は対象とする領域を指定する。地理的領 域に対しては、これらの境界は西、東、南、北に対応し、小数値を 含 む度又は [+-]dd:mm[:ss.xxx][W|E|S|N] のフォーマットで指定できる 。東西南北の代わりに地図座標の左下と右上を使うときは r を付ける こ と 。 2 つの略号 −Rg −Rd は全球領域(それぞれ経度 0/360 又は -180/+180 と緯度 -90/+90 )を表す。暦時間座標系に対しては相対 時 間(選択された TIME_EPOCH に対して相対的で、選択された TIME_UNIT を単位とする。 t を −JX|x に付けること)又は [date]T[clock] 形式 の絶対時刻(T を −JX|x に付けること)のどちらかを与えることができ る。少なくとも date と clock のどちらかが存在していなければなら ない。 T は常に必要である。 date の文字列は [-]yyyy[-mm[-dd]] ( グレゴリオ暦)又は yyyy[-Www[-d]] (ISO 週暦)の形式でなければなら ない。 clock の文字列は hh:mm:ss[.xxx] の形式でなければならない 。区切り文字を利用する場合にはその型と位置が指定どおりでなけ れ ばならない(ただし入出力と描画フォーマットは変更可能である)。 |
||
−V |
冗長モードを選択する。標準エラー出力に経過報告を送る[デフォ ルトでは「黙って」実行する]。 |
||
−f |
入出力列の特殊フォーマットを使う(時間又は地 理 デ ー タ) 。 i(nput) 又は o(utput) を指定すること [デフォルトでは入力と出力 の両方]。コンマ区切りで 1 列以上(又は列の範囲)を与えること。 各 列 又 は 列 の範囲の項目に対して T (絶対暦時刻)、 t (選択された TIME_EPOCH に対する相対時間)、 x (経度)、 y (緯度)、 f ( 小 数) の いずれかを付けること。 −f[i|o]g は −f[i|o]0x,1y (地理座標)の 省略形である。 |
(1) 演算子 SDIST はスタック上の (lon, lat)
の点とグリッドの全ての格子点 の
位置との間の球面距離を計算する。グリッド領域と (lon, lat)
の点の単位 は度であると見なされる。 |
入力データの精度に関わらず、グリッドファイルを GMT のプログラムは 4 バ イ ト浮動小数点配列として内部に値を持っている。これはメモリの節約のため であり、更には全ての実数は 4 バイト浮動小数点値を用いて格納することが可 能だからである。より高精度のデータ(すなわち倍精度値)は一度 GMT がグリッ ド処理をして新しいグリッドを出力すると精度を失うだろう。データ処理の 時 に 精度の損失を制限するにはデータを処理する前に規格化することを常に考慮 すべきである。 |
2 つのファイルの平均の log10 を計算する。 grdmath file1.grd file2.grd ADD 0.5 MUL LOG10 = file3.grd 海底の年代が百万年単位で与えられたファイル ages.grd から 、 深 さ(m) = 2500 + 350 * sqrt (年代) の関係を用いて標準水深を推定する。 grdmath ages.grd SQRT 350 MUL 2500 ADD = depths.grd 3 つのファイル s_xx.grd, s_yy.grd, s_xy.grd で与えられる応力テンソルか ら、 tan (2*a) = 2 * s_xy / (s_xx - s_yy) の関係を用いて最大応力主軸 の 角度 a (度)を見つける。 grdmath 2 s_xy.grd MUL s_xx.grd s_yy.grd SUB DIV ATAN2 2 DIV = direction.grd 実部の振幅 0.4 と虚部の振幅 1.1 を用いて、経度 1 度、緯度 1 度の世界 地 図上の 8 階 4 次の完全に規格化された球面調和関数を計算する。 grdmath −R0/360/-90/90 −I1 8 4 YML 1.1 MUL EXCH 0.4 MUL ADD = harm.grd ファイル faa.grd において 100 mGal を超える局所的な最低点の位置を抽出す る。 grdmath faa.grd DUP EXTREMA 2 EQ MUL
DUP 100 GT MUL 0 NAN = z.grd |
(1) 演算子と同じ名前、例えば ADD, SIGN,
= を持つファイルはカレントデ ィ
レクトリを前に付けて識別されるべきである(例、 ./LOG )。 |
Abramowitz, M., and I. A. Stegun, 1964, Handbook of
Mathematical Functions, Applied Mathematics Series, vol.
55, Dover, New York. |
GMT(l), gmtmath(l), grd2xyz(l), grdedit(l), grdinfo(l), xyz2grd(l) |