[Con] ツールを使用して、指定した条件ステートメントに対するセルの値の評価結果 (True または False) に基づいて、各セルの出力値を制御できます。
セルの評価結果が True の場合、1 つの値がセルに割り当てられます。 セルの評価結果が 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 句パラメーターは、入力条件付きラスターを使用して評価される式を定義します。
例
たとえば、傾斜角 15% 未満を「建設に適する」と見なす場合に、セルの傾斜角 (入力の条件付きラスターで指定) に基づいて「建設に適する」として 10 (True の定数として指定)、「建設に不適」として 1 (False の定数として指定) の値を割り当てるには、式「"VALUE < 15"」を使用します。 セルの傾斜角が 15% 未満の場合、True の値 (この場合は 10) が割り当てられます。15% 以上の場合、False の値 (この場合は 1) が割り当てられます。
OutRas = Con(SlopeRas, 10, 1, "VALUE < 15")
マップ代数演算での Con ツールによる複雑な式の使用
マップ代数演算では、単純な論理条件よりも多くの機能を式で実現できます。 複雑な式としては、たとえば、複数の式を個別に入れ子にするか、複数のラスターを指定するか、または他のツールおよび演算子を使用できます。
ラスターを出力する有効なマップ代数演算の式なら、入力条件付き、True、False のいずれのラスター入力の引数としても使用できます。
入力条件付きラスター式を複雑な式で使用する場合は、[式] パラメーターを削除する必要があります。 この場合、[Con] ツールの構文は次の一般化された形式になります。
Con(in_conditional_raster, true_raster, {false_raster})
この場合は、マップ代数演算式によって条件付きラスターが提供されるため、[式] パラメーターは削除されます。マップ代数演算式は、たとえば論理演算の場合には値 0 と 1 を持つラスター データセットを返します。
例
複雑な式を使用して条件評価を実行する例を次に示します。
- [Con] ツールでの複雑な式の使用例を次に示します。
上記の式では、InRas のセルの値が 15 より小さい場合は、出力ラスターのそのセル位置 (True) に 10 が割り当てられます。セルの値が 15 以上の場合は、出力ラスターで 1 (False) が割り当てられます。OutRas = Con(InRas < 15, 10, 1)
- False 式に値または式が指定されていない場合は、次の式を使用します。
結果は上記の出力と同じですが、15 以上の値を持つセルには NoData が割り当てられます。OutRas = Con(InRas < 15, 10)
- true_expression と false_expression の引数の値の代わりに、有効な式を使用できます。
上記の式では、5 より大きい値すべてについてその正弦、5 以下の値すべてについて余弦が計算され、その結果が OutRas に送られます。OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))
- [Con] ツール内で複数の条件ステートメントを使用できますが、各条件ステートメントには、条件の評価結果が True のときに出力セルに値を割り当てることができる、値または式の true_expression が必要です。 条件の評価結果に True がまったくない場合には、オプションの値または式 false_expression を適用できます。
上記の式では、5 未満の値について正弦 (Sin) が計算され、5 以上 20 未満の値について余弦 (Cos) が計算されます。また、20 以上 50 以下の値には 0 が割り当てられ、50 より大きい値には 100 が割り当てられます。OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
- [Con] ツールの条件式で複数の条件を使用できます。
上記の式では、InRas1 の入力値が 5 より大きく 10 より小さい場合、その位置に 5 が割り当てられます。それ以外の場合は 100 が割り当てられます。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)))
- 条件ステートメント、またはセルに対して実行する式で、複数のラスターを使用できます。
[Con] ツールは各 x、y のセル位置について評価してから次のセルに移動するので、複数のラスターを入力できます。 複数のラスターを入力した場合、複数のラスター間で、指定した演算子またはツールがセル単位で処理されます。OutRas = Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2)) OutRas2 = Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))