概要
特定の範囲全体をカバーする正多角形ポリゴンのテッセレーション グリッドのポリゴン フィーチャクラスを生成します。テッセレーションは、三角形、四角形、または六角形のいずれかにすることができます。
使用法
入力範囲全体がテッセレーション グリッドでカバーされるようにするには、出力フィーチャを意図的に入力範囲よりも大きく設定します。このように設定する理由は、テッセレーション グリッドの外周が必ずしも直線にならないため、グリッドの範囲が入力範囲内に収まるようにすると、ギャップが生じてしまうからです。
出力フィーチャには、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 | テッセレーションがカバーする範囲。現在の表示エリア、データセットの範囲、または手動で入力した値のいずれかを指定できます。 | Extent |
Shape_Type (オプション) | テッセレーション形状のタイプ。
| 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: はい