値を入力したり、フィールドを使用することは、GeoAnalytics Tools を使用してバッファーのサイズを指定できる唯一の方法ではありません。場合によっては、バッファー サイズを設定するために数学的計算を実行したいことがあります。すべてのレコードに適用される、単純なものから高度なものまでの、さまざまな計算を実行することができます。この計算は、各フィーチャに適用されます。以下の各セクションでは、バッファー条件式を使用する例を示しています。ArcGIS GeoAnalytics Server 上で解析が実行される際に、計算が実行されます。
ArcGIS Enterprise 10.6 以降では、Arcade 条件式を使用して、条件式が書式設定されます。Arcade 条件式および GeoAnalytics Server と 10.6 以降での Arcade 条件式の詳細。
バッファー条件式は、[トラックの再構築 (Reconstruct Tracks)] ツールおよび [バッファーの作成 (Create Buffers}] ツールで使用されます。
簡単な演算
簡単な関数の例
バッファー条件式は、数値を数学的に処理することができます。
| 演算子 | 説明 | 例 | 結果 | 
|---|---|---|---|
a + b  | a 足す b  | fieldname には、1.5 の値が含まれています ["fieldname"] + 2.5  | 4.0  | 
a - b  | a 引く b  | fieldname には、3.3 の値が含まれています ["fieldname"]- 2.2  | 1.1  | 
a * b  | a 掛ける b  | fieldname には、2.0 の値が含まれています ["fieldname"] * 2.2  | 4.4  | 
a / b  | a 割る b  | fieldname には、4.0 の値が含まれています ["fieldname"] / 1.25  | 3.2  | 
abs( a )  | a. の絶対値 (正の値) を返します。  | fieldname には、-1.5 の値が含まれています abs(["fieldname"])  | 1.5  | 
log ( a )  | a の自然対数 (底を e とする) を返します。  | fieldname には、1 の値が含まれています log(["fieldname"])  | 0  | 
sin ( a )  | a の角度の正弦を返します。入力の角度の単位はラジアンです。  | fieldname には、1.5707 の値が含まれています sin(["fieldname"])  | 1  | 
cos( a )  | a の角度の余弦を返します。入力の角度の単位はラジアンです。  | fieldname には、0 の値が含まれています cos(["fieldname"])  | 1  | 
tan( a )  | a の角度の正接を返します。入力の角度の単位はラジアンです。  | fieldname には、0 の値が含まれています tan(["fieldname"])  | 0  | 
sqrt( a )  | a の平方根を返します。  | fieldname には、9 の値が含まれています sqrt(["fieldname"])  | 3  | 
min( a, b )  | a と b のうちの小さい方の数値を返します。  | fieldname には、1.5 の値および -3 の値が含まれています min(["fieldname"], -3)  | -3  | 
max( a, b )  | a と b のうちの大きい方の数値を返します。  | fieldname1 には、1.5 の値、fieldname2 には -3 の値が含まれています max(["fieldname1"], ["fieldname2"])  | 1.5  | 
乗算
["Distance"] * 2GeoAnalytics Tools の組み込み関数
距離関数の例
バッファー条件式は、数値を距離にキャストすることができます。
| 関数 | 説明 | 例 | 結果 | 
|---|---|---|---|
as_meters( <value> )  | 入力値がメートル単位であることを仮定して計算を適用します。  | as_meters( ["fieldname"] ) as_meters(150)  | 結果は 150 メートルでバッファー処理されます。  | 
as_kilometers( <value> )  | 入力値がキロメートル単位であることを仮定して計算を適用します。  | as_kilometers( ["fieldname"] ) as_kilometers(150)  | 結果は 150 キロメートルでバッファー処理されます。  | 
as_feet( <value> )  | 入力値がフィート単位であることを仮定して計算を適用します。  | as_feet( ["fieldname"] ) as_feet(150)  | 結果は 150 フィートでバッファー処理されます。  | 
as_yards( <value> )  | 入力値がヤード単位であることを仮定して計算を適用します。  | as_yards( ["fieldname"] ) as_yards(150)  | 結果は 150 ヤードでバッファー処理されます。  | 
as_nautical_miles( <value> )  | 入力値が海里単位であることを仮定して計算を適用します。  | as_nautical_miles( ["fieldname"] ) as_nautical_miles(150)  | 結果は 150 海里でバッファー処理されます。  | 
as_miles( <value> )  | 入力値がマイル単位であることを仮定して計算を適用します。  | as_miles( ["fieldname"] ) as_miles(150)  | 結果は 150 マイルでバッファー処理されます。  | 
フィーチャごとに、キロメートル単位であることを仮定してフィールド Distance を掛け、10 メートルを足します。
as_kilometers(["Distance"]) + as_meters(10)GeoAnalytics Tools のバッファー条件式の高度な組み込み関数
シンプルな数式に加えて、さらに高度な関数を使用してバッファー条件式を適用することができます。
| 関数 | 説明 | 例 | 結果 | 
|---|---|---|---|
constrain(<value>,<low>,<high>)  | 入力値が制限範囲内にある場合、入力値を返します。値が下限値よりも小さい場合、下限値を返します。値が上限値よりも大きい場合、上限値を返します。  | constrain( ["distance"], 0, 10) constrain(['Store dist'], 6, distance)  | distance が 0 よりも小さい場合は 0 を返し、distance が 10 よりも大きい場合は 10 を返し、それ以外の場合は distance を返します。 Store dist が 6 よりも小さい場合は 6 を返し、distance が Store dist よりも大きい場合は distance を返し、それ以外の場合は Store dist を返します。  | 
iff(<condition>,<true value>,<false value>)  | 条件が trueと評価されると 1 つの値を返し、同条件が false と評価されると別の値を返します。 <true value> および <false value> は、次の値にすることができます。 
  | iff(["field1"] > ["field2"], ["field1"], 0) iff(["field1"] > ["field2"], iff(["field2"] = 0, ["field3"], ["field4"]), 0)  | field1 が field1 よりも大きい場合は field2 を返し、そうでない場合は 0 を返します。 iff が field1 よりも大きい場合は 2 番目の field2 関数の結果を返し、そうでない場合は 0 を返します。  | 
when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>)  | 1 つの条件式が true と評価されるまで、一連の条件式を順次評価します。 
  | when((["field1"] + 10) > 1, 1,(["field2"] + 10) > 2 , 2, ["field3"])  | - field1 + 10 が 1 よりも大きい場合、1 を返します。そうでない場合、field2 + 10 が 2 よりも大きいかどうかをチェックします。大きい場合は 2 を返します。そうでない場合は field3 を返します。  | 
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )  | decode 関数は条件式を評価し、その値を以降のパラメーターと比較します。条件式が一致した場合、次のパラメーター値を返します。何も一致しない場合、最後のパラメーターがデフォルトの戻り値になるオプションがあります。 
  | decode(["field1"] + 3 , ["field1"], 1, ["field2"], 2, 0)  | 条件付き val の field1 + 3 と case1 の field1 の間の等式を比較します。true の場合は 1 を返します。false の場合は、field1 + 3 と field2 の間の等式を比較します。true の場合は 2 を返し、そうでない場合は 0 を返します。  | 
条件付きステートメントでは、以下の演算子を使用できます。
| 演算子 | 説明 | 例 | 結果 | 
|---|---|---|---|
a > b a < b  | a が b よりも大きい。 a が b よりも小さい。  | 10 > 2  | False  | 
a >= b a <= b  | a が b 以上である。 a が b 以下である。  | abs(-10) >= 10  | True  | 
a != b  | a が b と等しくない。  | abs(-3) != -3  | True  | 
a == b  | a が b と等しい。  | abs(-5) == 5  | True  | 
<condition1> OR <condition2>  | 条件 1 または条件 2 が満たされる。  | (abs(-5) == 5) OR (10 < 2)  | True  | 
<condition1> AND <condition2>  | 条件 1 および条件 2 が満たされる。  | (abs(-5) == 5) AND (10 < 2)  | False  |