Con を使用した条件評価

[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] ツールでの複雑な式の使用例を次に示します。
    OutRas = Con(InRas < 15, 10, 1)
    上記の式では、InRas のセルの値が 15 より小さい場合は、出力ラスターのそのセル位置 (True) に 10 が割り当てられます。セルの値が 15 以上の場合は、出力ラスターで 1 (False) が割り当てられます。
  • False 式に値または式が指定されていない場合は、次の式を使用します。
    OutRas = Con(InRas < 15, 10)
    結果は上記の出力と同じですが、15 以上の値を持つセルには NoData が割り当てられます。
  • true_expressionfalse_expression の引数の値の代わりに、有効な式を使用できます。
    OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))
    上記の式では、5 より大きい値すべてについてその正弦、5 以下の値すべてについて余弦が計算され、その結果が OutRas に送られます。
  • [Con] ツール内で複数の条件ステートメントを使用できますが、各条件ステートメントには、条件の評価結果が True のときに出力セルに値を割り当てることができる、値または式の true_expression が必要です。 条件の評価結果に True がまったくない場合には、オプションの値または式 false_expression を適用できます。
    OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
    上記の式では、5 未満の値について正弦 (Sin) が計算され、5 以上 20 未満の値について余弦 (Cos) が計算されます。また、20 以上 50 以下の値には 0 が割り当てられ、50 より大きい値には 100 が割り当てられます。
  • [Con] ツールの条件式で複数の条件を使用できます。
    OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
    上記の式では、InRas1 の入力値が 5 より大きく 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))
    [Con] ツールは各 x、y のセル位置について評価してから次のセルに移動するので、複数のラスターを入力できます。 複数のラスターを入力した場合、複数のラスター間で、指定した演算子またはツールがセル単位で処理されます。

関連トピック