#author("2021-11-14T02:15:30+09:00","default:Miyashita","Miyashita")
#author("2021-11-22T02:54:54+09:00","default:Miyashita","Miyashita")
* grdmath コマンド メモ [#z915bd25]
公式doc → [[https://docs.generic-mapping-tools.org/latest/grdmath.html]]~
~

NetCDF4 フォーマットなどで書かれた GMT で使う面的データをいろいろ操作できる.~
機能がありすぎて難しい.~
他のコマンドと違い出力が -Ggrdfile ではなく = grdfile になる点に注意.~
~

**符号反転 [#xa749e2b]
正負を全て逆に変換する.
#codeprettify{{
gmt grdmath file_org.grd NEG = file_new.grd
}}
~
~

**足し算 [#u7ab21c6]
2つの面データ fileA および fileB のそれぞれの要素を足し合わせて1つのファイルにする.
#codeprettify{{
gmt grdmath fileA.grd fileB.grd ADD = file_ABadd.grd
}}
~
~

**定数倍(割り算) [#i4bee482]
DIV でそれぞれの要素を一定値で割る.~
秒から分に変換するときは
#codeprettify{{
gmt grdmath file_sec.grd 60 DIV = file_min.grd
}}
割り算は DIV で掛け算は MUL.~
~
~

**ある値以下(以上)の値をゼロに [#y924ebab]
閾値を設けてそれより小さいものは表示しないようにしたいときなどに使う.~
u, v の 流速分布があったとして, (u^2+v^2) が 5 以下の要素を全て 0 にしたいときは以下のようにする.
#codeprettify{{
grdu=u.grd
grdv=v.grd

gmt grdmath $grdu $grdv R2 25 GT $grdu MUL = u_gt5.grd # sqrt(u^2+v^2) > 5 m/s だけ抽出
gmt grdmath $grdu $grdv R2 25 GT $grdv MUL = v_gt5.grd 
}}
R2 が A^2 + B^2 を指すため, 5 以上としたい時は 25 とする点に注意.
grdmath A B R2 が A^2 + B^2 を指すため, 5 以上としたい時は 25 とする点に注意.
~
~

**OR演算 [#bf66a110]
面データ fileA および fileB の中の各要素で,2つのファイルのうちどちらか一方でも NaN だった場合は NaN になる.~
どちらも NaN でない場合は fileA の値になる.~
主にマスキングで使う.
#codeprettify{{
gmt grdmath fileA.grd fileB.grd OR = fileABor.grd
}}
~

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes