Skip To Content

GeoAnalytics Tools での条件式の使用

GeoAnalytics Tools ボックスには複数のツールがあり、これを使用して条件式を適用することができます。条件式を適用するオプションのあるツールは次のとおりです。

条件式を使用する GeoAnalytics Tools の用途や、適用できる条件式の制限事項はそれぞれに異なります。

トラックの再構築バッファーの作成

バッファー条件式は、[トラックの再構築] ツールおよび [バッファーの作成] ツールで使用されます。

バッファーサイズは、多くの場合は定数値またはフィールド値を使用して入力されます。ただし、GeoAnalytics Tools には、値を入力する以外にもバッファー サイズを指定する方法があります。場合によっては、バッファー サイズを設定するために数学的計算を実行したいことがあります。すべてのレコードに適用される、単純なものから高度なものまでの、さまざまな計算を実行することができます。この計算は、解析される各フィーチャに適用されます。ArcGIS GeoAnalytics Server 上で解析が実行される際に、計算が実行されます。

バッファー条件式では、簡単な演算と、すべての組み込み関数を使用できます。

バッファー条件式の例については、以下のセクションをご参照ください。

フィーチャの結合

[フィーチャの結合] ツールでは、条件式を使用して結合条件を指定します。

場合によっては、結合に含めるフィーチャを選択するため、条件を指定したいことがあります。単純な結合条件のほか (field a > field c など)、高度な条件を指定することもできます。条件は各フィーチャに対してテストされ、解析するフィーチャを決定します。ArcGIS GeoAnalytics Server 上で解析が実行される際に、計算が実行されます。

結合条件式では、簡単な演算と高度な組み込み関数を使用し、条件を作成します。結合条件では、as_distance 関数は使用できません。結合条件の結果は、常に true か false のどちらかになります。

条件式の例については、以下のセクションをご参照ください。

簡単な演算

簡単な関数の例

[トラックの再構築][バッファーの作成] ツールは、数字を数学的に処理します。

[フィーチャの結合] ツールは、結合条件の作成時に数学演算を行います。

演算子説明結果

a + b

a 足す b

["fieldname"] + 2.5

fieldname には、1.5 の値が含まれています

4.0

a - b

a 引く b

["fieldname"]- 2.2

fieldname には、3.3 の値が含まれています

1.1

a * b

a 掛ける b

["fieldname"] * 2.2

fieldname には、2.0 の値が含まれています

4.4

a / b

a 割る b

["fieldname"] / 1.25

fieldname には、4.0 の値が含まれています

3.2

abs( a )

a. の絶対値 (正の値) を返します。

abs(["fieldname"])

fieldname には、-1.5 の値が含まれています

1.5

log ( a )

a の自然対数 (底を e とする) を返します。

log(["fieldname"])

fieldname には、1 の値が含まれています

0

sin ( a )

a の角度の正弦を返します。入力の角度の単位はラジアンです。

sin(["fieldname"])

fieldname には、1.5707 の値が含まれています

1

cos( a )

a の角度の余弦を返します。入力の角度の単位はラジアンです。

cos(["fieldname"])

fieldname には、0 の値が含まれています

1

tan( a )

a の角度の正接を返します。入力の角度の単位はラジアンです。

tan(["fieldname"])

fieldname には、0 の値が含まれています

0

sqrt( a )

a の平方根を返します。

sqrt(["fieldname"])

fieldname には、9 の値が含まれています

3

min( a, b )

a と b のうちの小さい方の数値を返します。

min("fieldname", -3)

fieldname には、1.5 の値および -3 の値が含まれています

-3

max( a, b )

a と b のうちの大きい方の数値を返します。

max("fieldname1", "fieldname2")

fieldname1 には、1.5 の値、fieldname2 には -3 の値が含まれています

1.5

バッファー条件式の乗算の例

["Distance"] * 2

結合条件式の乗算の例

["Distance"] * 2 > 5

GeoAnalytics Tools の組み込み関数

As distance 関数の例

as distance 関数は数値を距離にキャストし、これを数式に使用できます。

[トラックの再構築][バッファーの作成] ツールは、as distance 関数を使用できます。数値が as distance 関数なしで使用される場合、単位はメートルとなります。

[フィーチャの結合] ツールでは as distance 関数は使用できません。

関数説明結果

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"]) * 3 + 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 を返し、distanceStore 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)

field1field1 よりも大きい場合は field2 を返し、そうでない場合は 0 を返します。

ifffield1 よりも大きい場合は 2 番目の field2 関数の結果を返し、そうでない場合は 0 を返します。

when(<expression1>, <result1>, <expression2>, <result2>, ... , <expressionN>, <resultN>, <default>)

1 つの条件式が true と評価されるまで、一連の条件式を順次評価します。

  • expression - 条件式。
  • result - 数値またはフィールドにすることができます。
  • default - どの条件式も一致しない場合のオプションの値。

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 関数は条件式を評価し、その値を以降のパラメーターと比較します。条件式が一致した場合、次のパラメーター値を返します。何も一致しない場合、最後のパラメーターがデフォルトの戻り値になるオプションがあります。

  • conditional val - フィールドまたは条件式にすることができます。
  • case - conditional val と比較される値。
  • result - 対応するケースが conditional val.と一致する場合の結果。
  • defaultValue - 他の値が true でない場合のオプションの値。

decode(field1 + 3 , field1, 1, field2, 2, 0)

条件付き val の field1 + 3 と case1 の field1 の間の等式を比較します。true の場合は 1 を返します。false の場合は、field1 + 3field2 の間の等式を比較します。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

高度な関数と条件を使用するバッファー条件式の例

iff(field1 > field2, iff(field2 = 0, field3, field4), 0)

結合条件式の乗算の例

iff(field1 > field2, iff(field2 = 0, field3, field4), 0) > ["Distance"] * 2