テッセレーションの生成 (Generate Tessellation) (データ管理)

概要

特定の範囲をカバーするために正多角形ポリゴン フィーチャのテッセレーション グリッドを生成します。テッセレーションは、三角形、四角形、菱形、六角形または六角形 (横) のいずれかにすることができます。

テッセレーションの生成 (Generate Tessellation)

使用法

  • 入力範囲全体がテッセレーション グリッドでカバーされるようにするには、出力フィーチャを意図的に入力範囲よりも大きく設定します。このように設定する理由は、テッセレーション グリッドの外周が必ずしも直線にならないため、グリッドの範囲が入力範囲内に収まるようにすると、ギャップが生じてしまうからです。

  • 出力フィーチャには、GRID_ID フィールドがあります。出力フィーチャクラスに含まれる各フィーチャに固有の ID が GRID_ID フィールドに格納されます。ID の形式は A-1、A-2、B-1、B-2 などです。これにより、[属性検索 (Select Layer By Attribute)] ツールでクエリを使用して行と列を簡単に選択できるようになります。たとえば、GRID_ID like 'A-%' で列 A に含まれるすべてのフィーチャを選択したり、GRID_ID like '%-1' で行 1 に含まれるすべてのフィーチャを選択したりすることができます。

  • 別のデータセット内のフィーチャと交差しないグリッド、つまりテッセレーション フィーチャに対して排他的なグリッドを作成するには、[空間検索 (Select Layer By Location)] ツールを使用して、コピー元フィーチャを含む出力ポリゴンを選択した後、[フィーチャのコピー (Copy Features)] ツールを使用して、選択した出力フィーチャを新しいフィーチャクラスに永続的にコピーします。

構文

arcpy.management.GenerateTessellation(Output_Feature_Class, Extent, {Shape_Type}, {Size}, {Spatial_Reference})
パラメーター説明データ タイプ
Output_Feature_Class

テッセレーション グリッドを含む出力フィーチャクラスのパスと名前。

Feature Class
Extent

テッセレーションがカバーする範囲。現在の表示エリア、データセットの範囲、または手動で入力した値のいずれかを指定できます。

  • MAXOF - すべての入力の最大範囲が使用されます。
  • MINOF - すべての入力に共通する最小領域が使用されます。
  • DISPLAY - 範囲は、表示範囲と同じになります。
  • [レイヤー名] - 指定したレイヤーの範囲が使用されます。
  • Extent オブジェクト - 指定したオブジェクトの範囲が使用されます。
  • [座標のスペース区切りの文字列] - 指定した文字列の範囲が使用されます。座標は、x-min、y-min、x-max、y-max の順序で表されます。
Extent
Shape_Type
(オプション)

テッセレーション形状のタイプ。

  • HEXAGON各辺の長さが等しい正六角形ポリゴン。各六角形の上辺と下辺が座標系の X 軸と平行です (上部と下部が平坦)。
  • TRANSVERSE_HEXAGON各辺の長さが等しい正六角形ポリゴン。各六角形の右辺と左辺がデータセットの座標系の Y 軸と平行です (上部と下部が尖っている)。
  • SQUARE各辺の長さが等しい正方形ポリゴン。各ポリゴンの上辺と下辺が座標系の X 軸と平行であり、右辺と左辺が座標系の Y 軸と平行です。
  • DIAMOND各辺の長さが等しい正方形ポリゴン。各ポリゴンの辺が座標系の X 軸と Y 軸を基準に 45 度回転されています。
  • TRIANGLE正三角形ポリゴン。
String
Size
(オプション)

テッセレーションを構成する個別の形状の面積。

Areal Unit
Spatial_Reference
(オプション)

出力データセットが投影される空間参照。空間参照を指定しないと、出力が入力範囲の空間参照に投影されます。入力範囲の空間参照も存在しない場合は、出力が GCS_WGS_1984 で投影されます。

Spatial Reference

コードのサンプル

GenerateTessellation (テッセレーションの生成) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで GenerateTesselation ツールを使用する方法を示しています。

import arcpy
tessellation_extent = arcpy.Extent(0.0, 0.0, 10.0, 10.0)
spatial_ref = arcpy.SpatialReference(4326)
arcpy.GenerateTessellation_management(r"C:\data\project.gdb\hex_tessellation", 
                                      tessellation_extent, "HEXAGON", 
                                      "100 SquareMiles", spatial_ref)
GenerateTessellation (テッセレーションの生成) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、プログラムでフィーチャクラスから範囲を抽出し、その範囲を使用して GenerateTessellation ツールのパラメーターを入力する方法を示しています。

# Name: GenerateDynamicTessellation.py
# Purpose: Generate a grid of squares over the envelope of a provided feature 
# class.
# Import modules
import arcpy 
# Set paths of features
my_feature = r"C:\data\project.gdb\myfeature"
output_feature = r"C:\data\project.gdb\sqtessellation"
# Describe the input feature and extract the extent
description = arcpy.Describe(my_feature)
extent = description.extent
# Find the width, height, and linear unit used by the input feature class' extent
# Divide the width and height value by three.
# Multiply the divided values together and specify an area unit from the linear 
# unit.
# Should result in a 4x4 grid covering the extent. (Not 3x3 since the squares 
# hang over the extent.)
w = extent.width
h = extent.height
u = extent.spatialReference.linearUnitName
area = "{size} Square{unit}s".format(size=w/3 * h/3, unit=u)
# Use the extent's spatial reference to project the output
spatial_ref = extent.spatialReference
arcpy.GenerateTessellation_management(output_feature, extent, "SQUARE", area, 
                                      spatial_ref)

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック