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
  • マイ プロフィール
  • サイン アウト

ArcGIS Help

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

複雑なステートメントの構築

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

  • 複雑なステートメントのルール

マップ代数演算の最も強力な側面の 1 つは、単一のステートメント内に複数の演算子やツールを構成したステートメントを作成できることです。1 つのステートメントに複数の演算子やツールを入力できるため、複雑な処理のモデリングが容易になり、全体的な処理時間を短縮できます。複雑な式は、ArcGIS Spatial Analystのツールが提供する機能に制限されません。他のツールボックスのツールも含めることができます。複雑なステートメントの構築では、正しく実行する必要がある特定の処理ルールがあります。

複雑なステートメントのルール

  • 複雑なステートメントでは、等号の左側にある出力だけが Raster オブジェクトになります。
  • 式の実行順序は、括弧および使用する演算子の優先度によって決まります。演算子の優先順位に関する詳細については、「演算子の優先順位のテーブル」をご参照ください。
    outRaster = Raster("inras1") + Raster("inras2") / Raster("inras3")
    
  • 上のステートメントでは、inras2 が inras3 で除算され、その結果が inras1 に加算されます。

    注意:

    演算子の優先順位を知っておくことが重要です。たとえば、ブール演算子 (~、&、^、|) は、関係演算子 (<、<=、>、>=、==、!=) より優先順位が高くなります。これは、式の作成に影響します。演算子の優先順位に関する詳細については、「演算子の優先順位のテーブル」をご参照ください。

  • 実行順序の制御には括弧を使用できます。括弧はネストすることができます。この場合は、演算子の優先順位にかかわらず、最も内側にある括弧内の式が最初に処理されます。
    outRas = Raster("inras1") / (Raster("inras2") + Raster("inras3"))
    

    上のステートメントでは、inras1 が inras2 と inras3 の合計で除算されます。

  • 複数のブール演算子 (~、&、^、|) や関係演算子 (<、<=、>、>=、==、!=) を 1 つの式の中で連続して使用するときは、括弧を使う必要があります。たとえば、(a>2) & (a<5) という式には括弧が必要です。
    outRas = (Raster("a") > 2 ) & ( Raster("a") < 5)
    
    詳細:

    括弧は必要としなくても、書き直す必要がある式もあります。たとえば、a < b < c という形の式は実行されず、括弧を追加すると式の意味が変わります。したがって、この式を正常に実行するには、(a < b) & (b < c) という形に書き直す必要があります。

  • 演算子、変数、数字、ツールのすべてを複雑なステートメントで使用することができます。
    outRas = Sin("inras1") + Raster("inras2") + 8
    
    const = 10
    outRas = Raster("inras1") + 2 * const
    
  • 演算子を使って作成されたステートメントの括弧に適用されるすべてのルールは、ツールと演算子を使って作成されたステートメントの括弧にも適用されます。最も深くネストされた括弧内のツールまたは演算子が最初に処理されます。
    num = 10
    outRas = (ZonalStatistics((Raster("inras2") + Raster("inras3")),
                             "Value", "valueras", "MAXIMUM") - num ) / 8
    

    上のステートメントでは、inras2 と inras3 の合計が [ゾーン統計 (Zonal Statistics)] ツールの入力として使用されています。num の値が減算されてから、除算されます。

  • 連続する複数のステートメントでは、前のステートメントの出力を、後に続くステートメントの入力として使用できます。
    outAdd = Raster("inras1") + Raster("inras2")
    outRas = FocalStatistics(outAdd, NbrCircle(5, "Map"), "MEAN")
    

    上の例の outAdd は、inras1 と inras2 の加算から作成される Raster オブジェクトです。outAdd は変数になるため、後に続く [フォーカル統計 (Focal Statistics)] ツールへの入力として使用するときに引用符は不要です。

  • 結果がラスターであるか、フィーチャクラスであるかにかかわらず、任意のツールを別のツールに組み込むことができます。組み込まれたツールからの必須出力が、外側のツールの入力として使用されます。
    outdistance = EucDistance(ContourList("elevation", "#", [1500]))
    
    この例では、[コンター リスト (Contour List)] ツールからの出力が [ユークリッド距離 (Euclidean Distance)] ツールへの入力として使用されます。
    dist = EucDistance(arcpy.Select_analysis("schools", "#", "Pop>2000"))
    
    上の例では、[解析] ツールボックスの [選択 (Select)] ツールの出力が、[ユークリッド距離 (Euclidean Distance)] ツールの入力として使用されています。
    注意:

    組み込まれているツールは、大規模なワークフローの中間段階の出力を作成するだけなので、出力引数をハッシュ記号「#」で置換することができます。これにより、ツールは、この一時出力の一意のパスと名前を作成することができます。ハッシュ記号の使用の詳細は、「Python でのツールの使用」ヘルプ トピックの「ツールの出力」で説明されています。

  • 式に含まれるツールからのオプション出力を使用するには、データセット名またはデータセットを表現する変数を使用する必要があります。
    costDist = CostDistance("source", "in_cost", 15000, "out_bklink") 
    costOut = CostPath("dest", costDist, "out_bklink")
    
    上の例では、オプションの出力バック リンク ラスターが、ワークスペースに「out_bklink」という名前で出力されます。
    bklink = "C:/results/out_bklink"
    costDist = CostDistance("source", "in_cost", 15000, bklink) 
    costOut = CostPath("dest", costDist, bklink)
    
    上の例では、ツールが実行される前に、バック リンク ラスターが変数で定義されます。この変数は、出力バック リンク ラスターが持つことになる場所と名前をポイントします。

関連トピック

  • マップ代数演算の規則の概要
  • マップ代数演算の演算子の操作
  • マップ代数演算でのツールの実行
このトピックへのフィードバック

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. | プライバシー | リーガル