GRDMATH

名前
書式
説明
オプション
注意
グリッド値の精度

注意
文献
関連事項

名前

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).
ACOS
1 acos (A).
ACOSH
1 acosh (A).
ADD
2 A + B.
AND
2 A 及び B が NaN なら NaN, それ以外で A が NaN なら B, それ以外なら A.
ASIN
1 asin (A).
ASINH
1 asinh (A).
ATAN
1 atan (A).
ATAN2
2 atan2 (A, B).
ATANH
1 atanh (A).
BEI
1 bei (A).
BER
1 ber (A).
CAZ
2 グリッド格子からスタック x,y へのカルテジアン方 位角.
CDIST
2 グリッド格子とスタック x,y の間のカルテジアン距 離.
CEIL
1 ceil (A) (最小の整数 >= A).
CHICRIT
2 カイ自乗分布の臨界値, ここで alpha = A, n = B.
CHIDIST
2 カイ自乗分布 P(chi2,nu), ここで chi2 = A, nu = B.
CORRCOEFF
2 相関係数 r(A, B).
COS
1 cos (A) (A はラジアン).
COSD
1 cos (A) (A は度).
COSH
1 cosh (A).
CPOISS
2 累積ポアソン分布 F(x,lambda), ここで x = A, lambda = B.
CURV
1 A の曲率(ラプラシアン).
D2DX2
1 d^2(A)/dx^2 2 階微分.
D2DY2
1 d^2(A)/dy^2 2 階微分.
D2R
1 度をラジアンに変換.
DDX
1 d(A)/dx 1 階微分.
DDY
1 d(A)/dy 1 階微分.
DILOG
1 dilog (A).
DIV
2 A / B.
DUP
1 A の複製をスタックに置く.
ERF
1 エラー関数 erf (A).
ERFC
1 相補エラー関数 erfc (A).
ERFINV
1 A の逆エラー関数.
EQ
2 A == B なら 1, それ以外なら 0.
EXCH
2 スタック上の A と B を交換.
EXP
1 exp (A).
EXTREMA
1 極値: +2/-2 は極大/極小, +1/-1 は x が極大/極小 となる鞍点, その他は 0.
FCRIT
3 F 分布の臨界値, ここで alpha = A, n1 = B, n2 = C.
FDIST
3 F 分布 Q(F,n1,n2), ここで F = A, n1 = B, n2 = C.
FLIPLR
1 各行の順序を逆にする.
FLIPUD
1 各列の順序を逆にする.
FLOOR
1 floor (A) (最大の整数 <= A).
FMOD
2 A % B (剰余).
GE
2 A >= B なら 1, それ以外なら 0.
GT
2 A > B なら 1, それ以外なら 0.
HYPOT
2 hypot (A, B) = sqrt (A*A + B*B).
I0
1 A の変形ベッセル関数 (第 1 種, 0 次).
I1
1 A の変形ベッセル関数 (第 1 種, 1 次).
IN
2 A の変形ベッセル関数 (第 1 種, B 次).
INRANGE
3 B <= A <= C なら 1, それ以外なら 0.
INSIDE
1 A の内部又は多角形上なら 1, それ以外なら 0.
INV
1 1 / A.
ISNAN
1 A == NaN なら 1, それ以外なら 0.
J0
1 A のベッセル関数 (第 1 種, 0 次).
J1
1 A のベッセル関数 (第 1 種, 1 次).
K0
1 A の変形ケルビン関数 (第 2 種, 0 次).
K1
1 A の変形ケルビン関数 (第 2 種, 1 次).
KN
2 A の変形ケルビン関数 (第 2 種, B 次).
KEI
1 kei (A).
KER
1 ker (A).
LDIST
1 複数セグメントのアスキーファイル A の線からの 距離を計算する.
LE
2 A <= B なら 1, それ以外なら 0.
LMSSCL
1 A の LMS スケール推定 (LMS STD).
LOG
1 log (A) (自然対数).
LOG10
1 log10 (A) (底 10).
LOG1P
1 log (1+A) (小さな A に対して正確).
LOG2
1 log2 (A) (底 2).
LOWER
1 A の最低(最小)値.
LRAND
2 平均 A で標準偏差 B のラプラス乱雑音.
LT
2 A < B なら 1, それ以外なら 0.
MAD
1 A の中央絶対偏差 (L1 STD).
MAX
2 A と B の最大値.
MEAN
1 A の平均値.
MED
1 A の中央値.
MIN
2 A と B の最小値.
MODE
1 A の最頻値(最小自乗中央推定).
MUL
2 A * B.
NAN
2 A == B なら NaN, それ以外なら A.
NEG
1 -A.
NEQ
2 A != B なら 1, それ以外なら 0.
NRAND
2 平均 A で標準偏差 B の正の乱数.
OR
2 A 又は B == NaN なら NaN, それ以外なら A.
PDIST
1 アスキーファイル A の点からの距離を計算す る.
PLM
3 同伴ルジャンドル多項式 P(-1<A<+1) B 階 C 次.
POP
1 スタックから最上位の要素を削除.
POW
2 A ^ B.
R2
2 R2 = A^2 + B^2.
R2D
1 ラジアンを度に変換.
RAND
2 A と B の間の一様な乱数.
RINT
1 rint (A) (最も近い整数).
ROTX
2 A を(定数の)シフト B により x 方向に回転する.
ROTY
2 A を(定数の)シフト B により y 方向に回転す る.
SAZ
2 グリッド格子からスタック x,y への球面方位角.
SDIST
2 グリッド格子とスタック lon,lat (A, B) の間の 球面(大円)距離(度単位).
SIGN
1 A の符号 (+1 又は -1).
SIN
1 sin (A) (A はラジアン).
SINC
1 sinc (A) (sin (pi*A)/(pi*A)).
SIND
1 sin (A) (A は度).
SINH
1 sinh (A).
SQRT
1 sqrt (A).
STD
1 A の標準偏差.
STEP
1 ヘビサイド階段関数 H(A).
STEPX
1 ヘビサイド階段関数 H(x-A).
STEPY
1 ヘビサイド階段関数 H(y-A).
SUB
2 A - B.
TAN
1 tan (A) (A はラジアン).
TAND
1 tan (A) (A は度).
TANH
1 tanh (A).
TCRIT
2 スチューデント t 分布の臨界値, ここで alpha = A, n = B.
TDIST
2 スチューデントの t 分布 A(t,n), ここで t = A, n = B.
TN
2 チェビシェフ多項式 Tn(-1<t<+1,n), ここで t = A, n = B.
UPPER
1 A の最高(最大)値.
XOR
2 A == NaN なら B, それ以外なら A.
Y0
1 A のベッセル関数(第 2 種, 0 次).
Y1
1 A のベッセル関数(第 2 種, 1 次).
YLM
2 実部と虚部で規格化された球面調和関数( A 階, B 次).
YN
2 A のベッセル関数(第 2 種, B 次).
ZCRIT
1 正規分布の臨界値, ここで alpha = A.
ZDIST
1 累積正規分布 C(x), ここで x = A.

記号

以下の記号には特別な意味がある。

PI 3.1415926...
E
2.7182818...
X
x 座標のグリッド
Y
y 座標のグリッド
Xn
[-1 から +1] に正規化された x 座標のグリッド
Yn
[-1 から +1] に正規化された y 座標のグリッド

オプション

−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 に付けること)のどちらかを与えることができ る。少なくとも dateclock のどちらかが存在していなければなら ない。 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) の点の単位 は度であると見なされる。
(2) 演算子 YLM は L 階 M 次の完全に規格化された球面調和関数を、グリッド の全ての位置でその単位を度と見なして計算する。 YLM は複素球面調和関数の 実部(コサイン)と虚部(サイン)の 2 つのグリッドを返す。これらの 1 つを 取 り除くには POP 演算子(と EXCH )を用いるか、あるいは両方を保存するには = file.grd を 2 回続けて与えること。
(3) 演算子 PLM は L 階 M 次の同伴ルジャンドル多項式を計算するが、引き数 は -1 <= x <= +1 を満たす余緯度の余弦でなければならない。 YLM と違って 、 PLM は正規化されていない。
(4) 全ての導関数は中央差分、自然境界条件に基づく。

グリッド値の精度

入力データの精度に関わらず、グリッドファイルを 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
grd2xyz
z.grd −S > max.xyz

注意

(1) 演算子と同じ名前、例えば ADD, SIGN, = を持つファイルはカレントデ ィ レクトリを前に付けて識別されるべきである(例、 ./LOG )。
(2) ファイルをパイプすることはできない。
(3) スタックの深さの限界は 100 に固定されている。
(4) 正の半径を想定した全ての関数(例えば LOG, KEI など)には引き数の絶対 値が受け渡される。

文献

Abramowitz, M., and I. A. Stegun, 1964, Handbook of Mathematical Functions, Applied Mathematics Series, vol. 55, Dover, New York.
Press, W. H., S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, 1992, Numerical Recipes, 2nd edition, Cambridge Univ., New York.

関連事項

GMT(l), gmtmath(l), grd2xyz(l), grdedit(l), grdinfo(l), xyz2grd(l)