ArcGIS for Desktop

  • ドキュメント
  • 価格
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS for Desktop

完全なプロ仕様の GIS

ArcGIS for Server

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • 価格
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

Con

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

  • サマリ
  • 図
  • 使用法
  • 構文
  • コードのサンプル
  • 環境
  • ライセンス情報

サマリ

入力ラスターのそれぞれの入力セルに対して if/else 条件の評価を実行します。

[Con] を使用した条件評価の詳細

図

[Con] の図
OutRas = Con(InRas1, 40, 30, "Value >= 2")

使用法

  • 条件が true の場合のラスターと false の場合のラスターのいずれかが浮動小数の場合、出力ラスターは浮動小数になります。true と false の両方のラスターが整数の場合、出力ラスターは整数になります。

  • 式の評価がゼロでない場合、true として処理されます。

  • false の場合の入力ラスターまたは定数が指定されていない場合、式で True にならないセルには NoData が割り当てられます。

  • NoData が条件式を満たしていない場合は、false の場合の入力ラスターの値は受け取られず、NoData のままとなります。

  • [式] は SQL クエリを使用します。[検索条件設定] で条件式を作成する方法の詳細は、次のトピックをご参照ください。

    • クエリ式の構築
    • ArcGIS で使用される条件式の SQL リファレンス

  • Python で {where_clause} を使用するには、これを引用符で囲む必要があります。例: "Value > 5000"。

    Python でのクエリの指定については、ヘルプをご参照ください。

  • Python では、Value フィールドを指定する {where_clause} を使用せず、代わりに in_conditional_raster としてマップ代数演算式を使用することができます。

    たとえば、次のような条件式があります。

    • Con("elev", 0, 1, "value > 1000")

    これを次のように書き換えることができます。

    • Con(Raster("elev") > 1000, 0, 1)

    詳細については、以下に示したコード サンプルまたは「複雑なステートメントの構築」をご参照ください。

  • 論理式の最大長は 4,096 文字です。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

構文

Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
パラメータ説明データ タイプ
in_conditional_raster

目的の条件の結果 (true または false) を表す入力ラスター。

整数タイプでも浮動小数点タイプでもかまいません。

Raster Layer
in_true_raster_or_constant

条件が true である場合に出力セル値として使用される値を持つ入力。

整数タイプまたは浮動小数点タイプのラスター、もしくは定数値のいずれでもかまいません。

Raster Layer | Constant
in_false_raster_or_constant
(オプション)

条件が false である場合に出力セル値として使用される値を持つ入力。

整数タイプまたは浮動小数点タイプのラスター、もしくは定数値のいずれでもかまいません。

Raster Layer | Constant
where_clause
(オプション)

各入力セルが true であるか、もしくは false であるかを決定する論理式。

式は、SQL 式の一般的な形式に従います。where_clause の例は、「"VALUE > 100"」です。

SQL Expression

戻り値

名前説明データ タイプ
out_raster

出力ラスター。

Raster

コードのサンプル

Con の例 1 (Python ウィンドウ)

次の例では、入力ラスターの値が 2000 より大きい場合は、出力が元の値になり、そうでない場合は、値が NoData になります。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")

# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(Raster("elevation") > 2000, "elevation")
outCon2.save("C:/sapyexamples/output/outcon2")
Con の例 2 (Python ウィンドウ)

この例では、Nodata の場合を除いて、元の値が出力で保持されます。Nodata は、0 の値で置換されます。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con(IsNull("elevation"),0, "elevation")
outCon.save("C:/sapyexamples/output/outcon")
Con の例 3 (Python ウィンドウ)

この例では、2 つの異なるラスターを使用して、条件付きラスターを作成します。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
inRaster1 = Raster("landuse")
inRaster2 = Raster("landuse2")
outCon = Con(((inRaster1 == 1) & (inRaster2 == 5)), inRaster1 + inRaster2, 99)
outCon.save("C:/sapyexamples/output/outcon")
Con の例 4 (Python ウィンドウ)

この例では、1 つの [Con] の内部で複数の [Con] ツールを使用しています。

import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension = "Spatial"
env.workspace = "C:/sapyexamples/data"
inRas1 = Raster("inRaster")
outCon = Con(inRas1 < 45,1, Con((inRas1 >= 45) & (inRas1 < 47),2, Con((inRas1 >= 47) & (inRas1 < 49),3, Con(inRas1 >= 49,4))))
outCon.save("C:/sapyexamples/output/outcon")
Con の例 5 (スタンドアロン スクリプト)

次の例では、入力ラスターの値が 1500 以上の場合は、出力値が 1 になり、1500 未満の場合は、出力値が 0 になります。

# Name: Con_Ex_02.py
# Description: Performs a conditional if/else evaluation 
#              on each cell of an input raster.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = Raster("elevation")
inTrueRaster = 1
inFalseConstant = 0
whereClause = "VALUE >= 1500"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute Con
outCon = Con(inRaster, inTrueRaster, inFalseConstant, whereClause)

# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(inRaster >= 1500, inTrueRaster, inFalseConstant)

# Save the outputs 
outCon.save("C:/sapyexamples/output/outcon")
outCon2.save("C:/sapyexamples/output/outcon2")

環境

  • 自動コミット
  • セル サイズ
  • 圧縮
  • 現在のワークスペース
  • 範囲
  • 地理座標系変換
  • マスク
  • 出力データのコンフィグレーション キーワード
  • 出力データの座標系
  • ラスターの統計情報
  • テンポラリ ワークスペース
  • スナップ対象ラスター
  • タイル サイズ

ライセンス情報

  • ArcGIS for Desktop Basic: 次のものが必要 Spatial Analyst
  • ArcGIS for Desktop Standard: 次のものが必要 Spatial Analyst
  • ArcGIS for Desktop Advanced: 次のものが必要 Spatial Analyst

関連トピック

  • 条件ツールセットの概要
このトピックへのフィードバック

ArcGIS for Desktop

  • ホーム
  • ドキュメント
  • 価格
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | プライバシー | リーガル