Con を使用した条件評価
[Con] ツールを使用して、指定した条件ステートメントに対するセルの値の評価結果(True または False )に基づいて、各セルの出力値を制御できます。
セルの評価結果が True の場合、ある値が割り当てられます。評価結果が False の場合は、別の値が割り当てられます。セルの評価結果が True の場合にセルに割り当てられる値は、[条件式が TRUE のときの入力ラスタ、または定数値] で指定します。セルの評価結果が False の場合にセルに割り当てられる値は、[条件式が FALSE のときの入力ラスタ、または定数値] で指定します。
概念的には、実行中に [Con] ツールは各セル位置を調べて、セルの値と条件ステートメントに基づき、セルの評価結果(True または False)を決定します。セルの評価結果が True の場合、その位置の出力値は True の入力で指定されます。セルの評価結果が False の場合、その位置の出力値は False の入力で指定されます。
ジオプロセシング環境では、セル位置の評価結果が True と False のいずれであるかを指定する方法として、入力ラスタと、オプションの条件式を適用する入力ラスタの 2 つがあります。入力ラスタのみを使用する場合、入力ラスタの 0 でない値はすべて True、0 の値はすべて False と見なされます。NoData を持つセルには、出力として NoData が割り当てられます。NoData は False と同じではありません。
多くの Spatial Analyst ツールを使用して、条件付き入力ラスタを作成できます。特に、[算術演算] ツールボックスの論理演算ツールを使用でき、[Test] ツールが特に便利です。
マップ代数演算での [Con] ツールの使用
マップ代数演算でラスタ データセットに条件式を使用するには、ラスタ データセットを条件付きラスタとして [Con] ツールに入力します。条件式が True のときは、True のラスタを入力し、戻される値を提供します。条件式が False のときは、False のラスタを入力し、戻される値を提供します。where 句パラメータは、入力条件付きラスタに対して評価される式を定義します。
例
たとえば、「建設に適する」として 10(True の定数として指定)、「建設に不適」として 1(False の定数として指定)の値を割り当てるときに、セルの傾斜角(入力の条件付きラスタで指定)を使用して傾斜角 15% 未満を「建設に適する」と見なす場合、式「value < 15」を入力します。セルの傾斜角が 15% 未満の場合、True の値(この場合は 10)が割り当てられます。15% 以上の場合、False の値(この場合は 1)が割り当てられます。
OutRas = Con(SlopeRas, 10, 1, "VALUE < 15")
マップ代数演算での [Con] ツールによる複雑な式の使用
マップ代数演算では、単純ではない論理条件を超える式を使用することによって、さらに多くの機能を利用できます。複雑な式としては、たとえば、複数の式をネストすること、複数のラスタを指定すること、または他のツールおよび演算子を使用することができます。
ラスタを出力する有効なマップ代数演算の式なら、入力条件付き、True、False のいずれのラスタ入力の引数としても使用できます。
複雑な式で入力条件付きラスタ式を使用する場合は、<where_clause> パラメータを使用しません。この場合、[Con] ツールの構文は次の一般化された形式になります。
Con(in_conditional_raster, true_raster, {false_raster})この場合は、マップ代数演算式によって条件付きラスタが提供されるため、<where_clause> パラメータは使用されません。マップ代数演算式は、たとえば論理演算の場合には値 0 と 1 を持つラスタ データセットを戻します。
例
- [Con] ツールでの複雑な式の使用例を次に示します。
OutRas = Con(InRas < 15, 10, 1)
- False 式に値または式が指定されていない場合を示します。
OutRas = Con(InRas < 15, 10)
- <true_expression> と <false_expression> の引数の値の代わりに、有効な式を使用できます。
OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))
- [Con] ツール内で複数の条件ステートメントを使用できますが、各条件ステートメントには、条件の評価結果が True のときに出力セルに値を割り当てることができる、値または式の <true_expression> が必要です。条件の評価結果に True がまったくない場合には、オプションの値または式 {false_expression} を適用できます。
OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
- [Con] ツールの条件式で複数の条件を使用できます。
OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
- 条件式の入力ラスタと評価結果に、ツールと演算子を適用できます。
OutRas = Con(Sin(InRas1) > .5, 10, 100) OutRas2 = Con((InRas1 + InRas2) > 10, 100, 5) OutRas3 = Con(InRas1 > 5, Cos(InRas1), Sin(InRas1))
- ある [Con] ツールを、別の [Con] ツールの中にネストできます。
OutRas = Con(InRas1 > 23, 5, Con(InRas1 > 20, 12, Con((InRas1 > 2) & (InRas1 < 17), Sin(InRas1), 100)))
- 条件ステートメント、またはセルに対して実行する式で、複数のラスタを使用できます。
OutRas = Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2)) OutRas2 = Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))