Skip to main content

Con を使用した条件評価

Spatial Analyst ライセンスで利用可能。

Image Analyst ライセンスで利用可能。

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 のセル位置について評価してから次のセルに移動するので、複数のラスターを入力できます。 複数のラスターを入力した場合、複数のラスター間で、指定した演算子またはツールがセル単位で処理されます。