生成细分面 (数据管理)

描述

用于生成覆盖给定范围的正多边形要素的镶嵌格网。该镶嵌可以是三角形、正方形、菱形、六边形或横向六边形。

插图

生成细分

使用方法

  • 要确保整个输入范围被细分面格网覆盖,可有意使输出要素的范围超出输入范围。出现这种情况的原因是镶嵌格网的边缘不总是直线,且如果用输入范围限制格网,可能会有间距出现。

  • 输出要素中包含 GRID_ID 字段。GRID_ID 字段可为输出要素类中的每个要素提供唯一的 ID。ID 的格式为 A-1、A-2、B-1、B-2 等等。这便于利用按属性选择图层工具中的查询选择行和列。例如,使用 GRID_ID like 'A-%' 选择列 A 中的所有要素,或使用 GRID_ID like '%-1' 选择行 1 中的所有要素。

  • 要创建不包括细分曲面要素的格网(不与另一数据集中的要素相交),请使用按位置选择图层工具选择包含源要素的输出面,并使用复制要素工具生成所选输出要素的永久副本,并将其复制到新的要素类。

语法

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: 是

相关主题