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)
    
    この式では、InRas のセルの値が 15 より小さい場合は、出力ラスタのそのセル位置(True)に 10 が割り当てられます。セルの値が 15 以上の場合は、出力ラスタで 1(False)が割り当てられます。
  • False 式に値または式が指定されていない場合を示します。
    OutRas = Con(InRas < 15, 10)
    
    結果は上記の出力と同じですが、15 以上の値を持つセルには NoData が割り当てられます。
  • <true_expression> と <false_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 のセル位置について評価してから次のセルに移動するので、複数のラスタを入力できます。複数のラスタを入力した場合、複数のラスタ間で、指定した演算子またはツールがセル単位で処理されます。

関連トピック

7/28/2014