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

ヘルプ

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

交差部分のクロス集計 (Tabulate Intersection)

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

サマリ

2 つのフィーチャクラス間の交差部分を計算し、交差しているフィーチャの面積、長さ、個数をクロス集計します。

図

[交差部分のクロス集計 (Tabulate Intersection)] の図

使用法

  • ゾーンは [ゾーン フィールド] と同じ値を持つ [入力ゾーン フィーチャ] のすべてのフィーチャで構成されます。同様に、クラスは [クラス フィールド] と同じ値を持つ [入力クラス フィーチャ] のすべてのフィーチャで構成されます。フィーチャは、同じゾーンまたはクラス内で隣接している必要はありません。このツールは、ゾーンがクラスごとにどの程度交差しているかを、面積とゾーン面積に対する割合から計算します。

  • [クラス フィールド] を指定しないと、[入力クラス フィーチャ] のすべてのフィーチャが、単一のクラスと見なされます。そのため、[出力テーブル] の各ゾーンには、1 レコードが含まれます。

  • [クラス フィールド] を指定すると、ゾーンに含まれるクラスの数を n とした場合、[出力テーブル] には各ゾーンに対して n レコードが含まれます。たとえば、あるゾーンに 4 つのクラスがある場合、[出力テーブル] のそのゾーンの部分には 4 レコードが含まれます。

  • [フィールドの合計] パラメーターを使用することで、[入力クラス フィーチャ] の数値属性について、ゾーンごとに合計することができます。クラスの合計値は、ゾーンを交差するクラスの割合に基づく合計値の比率を表します (比率ポリシーの仕組みと同様)。

    注意:

    [フィールドの合計] に指定できるのは、比率や密度などの相対的な値または正規化された値ではなく、分割してゾーン間で分配することが可能な絶対的な値を持つフィールドのみです。

  • [入力ゾーン フィーチャ] よりも高い次元の [入力クラス フィーチャ] を使用することはできません。サポートされていない組み合わせは、以下のとおりです。

    • ゾーン = ポイント、クラス = ポリゴンまたはライン
    • ゾーン = ライン、クラス = ポリゴン

  • [入力ゾーン フィーチャ] と [入力クラス フィーチャ] がポリゴンである場合、出力テーブルの統計情報は面積の計算に基づきます。

    [入力クラス フィーチャ] がラインである場合、出力テーブルの統計情報は長さの計算に基づきます。

    [入力クラス フィーチャ] がポイントである場合、出力テーブルの統計情報はフィーチャ数に基づきます。

  • [入力ゾーン フィーチャ] と [入力クラス フィーチャ] が同じディメンション (両方ポリゴン、両方ライン、または両方ポイント) である場合、出力テーブルの [PERCENTAGE] フィールドはクラスが交差するゾーン フィーチャの割合を記録します。

    [入力ゾーン フィーチャ] と [入力クラス フィーチャ] が異なるディメンション (ポリゴン ゾーンとライン クラス、ポリゴン ゾーンとポイント クラス、またはライン ゾーンとポイント クラス) である場合、出力テーブルの [PERCENTAGE] フィールドはゾーン ポリゴンと交差するクラスの割合を記録します。

    [PERCENTAGE] フィールドは、[入力ゾーン フィーチャ] または [入力クラス フィーチャ] のフィーチャが重なり合ってる場合は 100% より大きい値を記録します。

  • [入力ゾーン フィーチャ] と [入力クラス フィーチャ] がポリゴンである場合にのみ、[AREA] フィールドが出力テーブルに追加されます。[AREA] フィールドは、[入力クラス フィーチャ] が交差する [入力ゾーン フィーチャ] の面積を記録します。

    [入力クラス フィーチャ] がラインである場合、[LENGTH] フィールドが出力テーブルに追加されます。[LENGTH] フィールドは、[入力ゾーン フィーチャ] と [入力クラス フィーチャ] の間の交差の長さを記録します。

    [入力クラス フィーチャ] がポイントである場合、[PNT_COUNT] フィールドが出力テーブルに追加されます。[PNT_COUNT] フィールドは、[入力ゾーン フィーチャ] と交差する [入力クラス フィーチャ] のポイントの数の集計を記録します。

  • フィーチャ レイヤーを使用していて、フィーチャが選択されている場合は、選択されたフィーチャのみが計算に使用されます。

  • ゾーンおよびクラスのフィーチャの交差部分の判定は、[インターセクト (Intersect)] ツールと同じルールに従って行われます。

  • [ピボット テーブル (Pivot Table)] ツールを使用して [出力テーブル] を変換すると、各ゾーンにつき 1 つのレコードを含む、クラス属性を属性フィールドに分けたテーブルに変換できます。[ピボット テーブル (Pivot Table)] ツールのパラメーターには、次の値を入力します。

    • 入力テーブル - [交差部分のクロス集計 (Tabulate Intersection)] の [出力テーブル] の値
    • 入力フィールド - [交差部分のクロス集計 (Tabulate Intersection)] の [ゾーン フィールド] の値
    • ピボット フィールド - [交差部分のクロス集計 (Tabulate Intersection)] の [クラス フィールド] の値
    • 値フィールド - [交差部分のクロス集計 (Tabulate Intersection)] の [フィールドの合計] の値、または、「AREA」、「LENGTH」、「PERCENTAGE」
    [ピボット テーブル (Pivot Table)] の出力の例

構文

TabulateIntersection_analysis (in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
パラメータ説明データ タイプ
in_zone_features

ゾーンの特定に使用するフィーチャです。

Feature Layer
zone_fields
[zone_fields,...]

ゾーンの定義に使用する 1 つまたは複数の属性フィールドです。

Field
in_class_features

クラスの特定に使用するフィーチャです。

Feature Layer
out_table

ゾーンとクラス間の交差部分のクロス集計が含まれるテーブルです。

Table
class_fields
[class_fields,...]
(オプション)

クラスの定義に使用される 1 つまたは複数の属性フィールドです。

Field
sum_fields
[sum_fields,...]
(オプション)

[入力クラス フィーチャ] を集計するためのフィールドです。

Field
xy_tolerance
(オプション)

フィーチャまたはその頂点が同一と見なされる範囲を決定する距離です。[入力ゾーン フィーチャ] の [XY 許容値] がデフォルト値となります。

Linear Unit
out_units
(オプション)

面積計測または長さの計測の計算に使用する単位です。[入力クラス フィーチャ] がポイントである場合に [出力単位] を設定することはできません。

String

コードのサンプル

TabulateIntersection (交差部分のクロス集計) の例 1 (Python ウィンドウ)

Python ウィンドウで TabulateIntersection (交差部分のクロス集計) を使用して、ゾーンごとに各植生タイプの面積を求めます。

import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation", r"C:\Esri\veganalysis.gdb\vegtypeAreas", "VEGTYPE")
TabulateIntersection (交差部分のクロス集計) の例 2 (スタンドアロン スクリプト)

簡単なTabulateArea (クロス集計) スクリプト ツールを作成するために、TabulateIntersection (交差部分のクロス集計) をラップするスクリプトです。TabulateArea (クロス集計) スクリプト ツールに入力できるのは、ポリゴン フィーチャのみです。ゾーン フィールドおよびクラス フィールドは、それぞれ 1 つに制限されています。

'''
TabulateArea.py
Description: Shows how to wrap the TabulateIntersection tool to create a TabulateArea script tool
Requirements: Polygon Zone Feature Class, Polygon Class Feature Class

'''
import arcpy
import sys
import os

def AddMsgAndPrint(msg, severity=0):
    # Adds a Message (in case this is run as a tool)
    # and also prints the message to the screen (standard output)
    # 
    print(msg)

    # Split the message on \n first, so that if it's multiple lines, 
    #  a GPMessage will be added for each line
    try:
        for string in msg.split('\n'):
            # Add appropriate geoprocessing message 
            #
            if severity == 0:
                arcpy.AddMessage(string)
            elif severity == 1:
                arcpy.AddWarning(string)
            elif severity == 2:
                arcpy.AddError(string)
    except:
        pass

## Get Parameters
zoneFC = arcpy.GetParameterAsText(0)
zoneFld = arcpy.GetParameterAsText(1) # Only allow one field
classFC = arcpy.GetParameterAsText(2)
outTab = arcpy.GetParameterAsText(3)
classFld = arcpy.GetParameterAsText(4) # Optional and only allow one field
sum_Fields = ""
xy_tol = ""
outUnits = arcpy.GetParameterAsText(5)

## Validate parameters
# Inputs can only be polygons
zoneDesc = arcpy.Describe(zoneFC)
classDesc = arcpy.Describe(classFC)
if zoneDesc.shapeType != "Polygon" or classDesc.shapeType != "Polygon":
    AddMsgAndPrint("Inputs must be of type polygon.", 2)
    sys.exit()
    
# Only one zone field and class field
if zoneFld != "":
    if zoneFld.find(";") > -1 or classFld.find(";") > -1:
        AddMsgAndPrint("A maximum of one zone and/or class field is allowed.", 2)
        sys.exit()

## Run TI with restricted parameters
try:
    arcpy.TabulateIntersection_analysis(zoneFC, zoneFld, classFC, outTab, classFld, sum_Fields, xy_tol, outUnits)
except:
    arcpy.AddMessage("Tabulate Intersection Failed.")
AddMsgAndPrint(arcpy.GetMessages(), 0)

環境

  • 自動コミット
  • 出力データのコンフィグレーション キーワード
  • 出力データの XY ドメイン
  • 出力データの座標系
  • 範囲
  • 修飾フィールド名
  • テンポラリ ワークスペース
  • XY 座標精度
  • XY 許容値

ライセンス情報

  • ArcGIS for Desktop Basic: ×
  • ArcGIS for Desktop Standard: ×
  • ArcGIS for Desktop Advanced: ○

関連トピック

  • 統計情報ツールセットの概要
このトピックへのフィードバック

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