数学関数 (Math Functions)

  • トランスフォーマーのパラメーターとして数式エディタ (Arithmetic Editor) により入力する数式では、次の表に掲げる数学関数が使用できます。
  • これらの関数は、エディタの編集画面でのキー入力の他、画面左側の数学関数 (Math Functions) セクションに表示されている関数名のダブルクリック、または、ドラッグ&ドロップによって編集中の式に挿入することができます。
  • FMEで利用できる数学関数をアルファベット順に掲げます。
  • 関数名における大文字と小文字は厳密に区別されます。例えば @abs関数について、@Absや@ABSは無効です。
  • 直接キー入力するときは関数名の先頭に @ をつけてください。ダブルクリック、ドラッグ&ドロップで挿入するときは自動的に @ がつきます。
  • ログ等において非数値 (NaN: Not a Number) は “-1.#IND”、無限値 (infinity) は “1.#INF”, “-1.#INF” と表示されます。
  • [ ] は省略可能であること、… は直前の引数の数が可変である(任意の数だけ指定できる)ことを示します。
関数説明
@abs(arg)arg の絶対値を返す。
@acos(arg)arg の逆余弦(アークコサイン)を [0,pi] ラジアンの範囲で返す。
arg は [-1,1] の範囲でなければならない。
@add(arg1,[arg2]...)可変個の引数を足し合わせた値を返す。
@asin(arg)arg の逆正弦(アークサイン)を [-pi/2,pi/2] ラジアンの範囲で返す。
arg は [-1,1] の範囲でなければならない。
@atan(arg)arg の逆正接(アークタンジェント)を [-pi/2,pi/2] ラジアンの範囲で返す。
@atan2(y,x)y/x の逆正接(アークタンジェント)を [-pi,pi] ラジアンの範囲で返す。
x と y の少なくともどちらか一方は 0 以外でなければならない。
@average(arg1,[arg2]...)可変個の引数の平均値を返す。
空文字列及びNULL値の引数は無視されるが、それ以外の非数値が渡されたときは失敗する。
有効な引数がひとつもないときは空文字列を返す。
@ceil(arg,[decimal_places])decimal_places で指定した桁数の小数部をもち、arg を下回らない最小の値を返す。
decimal_places を省略した場合または0を指定した場合は64ビット整数、0より大きい値を指定した場合は64ビット浮動小数点数が返される。引数の範囲が無効な場合は null が返される。
@col()[RasterExpressionEvaluator 専用]
計算対象としているラスターセルの列 (column) インデクスを返す。
@cos(arg)arg の余弦(コサイン)を返す。arg の単位はラジアンでなければならない。
@cosh(arg)arg の双曲線余弦(ハイパボリック・コサイン)を返す。
オーバーフローが発生したときは無限値(infinity)が返される。
@degToRad(arg)度単位の値をラジアン単位の値に換算する。
@div(x,y)x/y を求める。
除数が 0 のときは無限値(infinity)が返される。
@double(arg)double型の精度で arg の値を返す。
@exp(arg)e (自然対数の底) の arg 乗の値を返す。
オーバーフローが発生したときは無限値(inifinity)が返される。
@floor(arg,[decimal_places])decimal_places で指定した桁数の小数部をもち、arg を超えない最大の値を返す。
decimal_places を省略した場合または0を指定した場合は64ビット整数、0より大きい値を指定した場合は64ビット浮動小数点数が返される。引数の範囲が無効な場合は null が返される。
@fmod(x,y)x を y で除した余り(小数点数)を返す。余りの符号は x の符号と同じになる。
y が 0 のときは非数値 (NaN) が返される。
@hypot(x,y)直角をはさむ2辺の長さが x と y である直角三角形の斜辺の長さを求める。つまり sqrt(x*x+y*y)。
@if(arg1,arg2,arg3)[RasterExpressionEvaluator 専用]
arg1 を評価し, 真(arg1 が0でない)の場合は arg2 の値を返し, 偽(arg1 が 0)の場合は arg3 の値を返す。
@int(arg)arg が符号付き64ビット整数の範囲内である場合は小数部を切り捨てた整数値に変換する。
範囲外の場合は null が返される。
@int8(arg)arg が符号付き8ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。
範囲外の場合は null が返される。
@int16(arg)arg が符号付き16ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。
範囲外の場合は null が返される。
@int32(arg)arg が符号付き32ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。
範囲外の場合は null が返される。
@int64(arg)arg が符号付き64ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。
範囲外の場合は null が返される。
@isnodata(arg)[RasterExpressionEvaluator 専用]
arg (ラスターの画素値) が Nodata 値である場合は 1, それ以外の場合は 0 を返す。
@log(arg)arg の自然対数を返す。
arg が 0 または負の場合は、非数値 (NaN) が返される。
@log10(arg)arg の常用対数を返す。
arg が 0 または負の場合は、非数値 (NaN) が返される。
@max(arg1,[arg2]...)可変個の引数のうちの最大値を返す。
@min(arg1,[arg2]...)可変個の引数のうちの最小値を返す。
@mult(arg1,[arg2]...)可変個の引数を掛け合わせた値を返す。
@pi()円周率の値を返す。
@pow(x,y)x の y 乗を求める。x が負の場合は、y は整数でなければならない。
x が負で y が整数でない場合は、非数値 (NaN) が返される。
@radToDeg(arg)ラジアン単位の値を度単位の値に換算する。
@rand()0 と 1 の間の疑似乱数を返す。
@real32(arg)arg が単精度浮動小数点数の範囲内である場合は単精度浮動小数点数の値を返す。
arg が非数値 (NaN) または 無限値 (infinity) の場合は単精度の非数値 (NaN) または 無限値 (infinity) にキャストする。その他の場合は正または負の無限値 (infinity) を返す。
@real64(arg)arg が倍精度浮動小数点数の範囲内である場合は倍精度浮動小数点数の値を返す。
arg が非数値 (NaN) または 無限値 (infinity) の場合は倍精度の非数値 (NaN) または 無限値 (infinity) にキャストする。その他の場合は正または負の無限値 (infinity) を返す。
@round(arg,[decimal_places]) decimal_places で指定した桁数の小数部をもち、arg に最も近い値を返す。
decimal_places を省略した場合または0を指定した場合は64ビット整数、0より大きい値を指定した場合は64ビット浮動小数点数が返される。引数の範囲が無効な場合は null が返される。
@row()[RasterExpressionEvaluator 専用]
計算対象としているラスターセルの行 (row) インデクスを返す。
@sin(arg)arg の正弦(サイン)を返す。arg の単位はラジアンでなければならない。
@sinh(arg)arg の双曲線正弦(ハイパボリック・サイン)を返す。
オーバーフローが発生したときは、無限値(infinity)が返される。
@sqrt(arg)arg の平方根を返す。
arg が負の場合は非数値 (NaN) が返される。
@sub(x,y)x-y を求める。
@sum(arg1,[arg2]...)可変個の引数の合計値を返す。
@tan(arg)arg の正接(タンジェント)を返す。arg の単位はラジアンでなければならない。
@tanh(arg)arg の双曲線正接(ハイパボリック・タンジェント)を返す。
@uint8(arg)arg が符号なし8ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。範囲外の場合は null が返される。
@uint16(arg)arg が符号なし16ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。範囲外の場合は null が返される。
@uint32(arg)arg が符号なし32ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。範囲外の場合は null が返される。
@uint64(arg)arg が符号なし64ビット整数の範囲内である場合は小数部を丸めた整数値に変換する。範囲外の場合は null が返される。