生成细分面 (数据管理)

摘要

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

插图

“生成细分面”工具图示

使用情况

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

  • GRID_ID 字段将添加至输出。

    形状类型参数值为 H3 六边形时,GRID_ID 字段值将为每个像元的唯一等级索引。

    大小值为 3 的 H3 六边形的 GRID_ID 字段值

    对于所有其他形状类型参数值,GRID_ID 字段将为每个要素的唯一 ID。 ID 的格式为 A-1、A-2、B-1、B-2 等等。 由此可以使用按属性选择图层工具通过查询轻松选择行和列。 例如,使用 GRID_ID like 'A-%' 选择列 A 中的所有要素,或使用 GRID_ID like '%-1' 选择行 1 中的所有要素。

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

  • 该工具将按面积单位生成形状。 要根据边长确定形状的面积,请使用以下公式之一来计算大小参数的值:

    形状公式示例

    六边形或横向六边形

    六边形面积公式

    要生成边长为 100 米的六边形,请将大小参数值指定为 25980.76211353316 平方米(100 的 2 次方乘以 3 乘以 3 的平方根除以 2)。

    正方形

    正方形面积公式

    要生成边长为 100 米的正方形,请将大小参数值指定为 10,000 平方米(100 的 2 次方)。

    菱形

    菱形面积公式

    要生成边长为 100 米的菱形,请将大小参数值指定为 10,000 平方米(100 的 2 次方)。

    三角形

    三角形面积公式

    要生成边长为 100 米的三角形,请将大小参数值指定为 4330.127018922193 平方米(100 的 2 次方乘以 3 的平方根除以 4)。

    形状类型参数值的 H3 六边形选项将忽略大小参数。 六边形的面积将基于 H3 分辨率参数值。

    了解有关 H3 分辨率的详细信息

参数

标注说明数据类型
输出要素类

包含镶嵌格网的输出要素类的路径和名称。

Feature Class
范围

细分曲面将覆盖的范围。 该范围可以是当前可见区域、数据集的范围或手动输入值。

  • 当前显示范围 地图视图 - 范围基于活动地图或场景。 仅在存在活动地图时,才可使用此选项。
  • 绘制范围 构造直角并完成草图 - 范围将基于在地图或场景上绘制的矩形。 此选项将在工程地理数据库中创建要素类并将图层添加至地图。 该要素类的坐标系将与地图相同。
    注:

    环境对话框中不提供此选项。 只能在具有范围数据类型的工具参数中或工具对话框的环境选项卡中找到此选项。

    注:

    当选中从“编辑”选项卡启用和禁用编辑编辑选项时,必须在编辑功能区选项卡上启用编辑才能绘制范围。

  • 图层范围 Layer - 范围基于活动地图图层。 使用下拉列表选择可用图层,或使用所有图层中数据的范围选项获取所有活动地图图层(不包括底图)的组合范围。 仅在存在具有图层的活动地图时,才可使用此选项。

    每个地图图层具有以下选项:

    • 所有要素 全选 - 图层中所有要素的范围。
    • 选定要素Area from Selected Features - 图层中选定要素的范围。
    • 可见要素 Extent Indicator - 图层中可见要素的范围。
      注:

      选定要素 Area from Selected Features可见要素 Extent Indicator 选项中的范围仅适用于要素图层。

  • 浏览 浏览 - 范围基于现有数据集。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围坐标和坐标系复制到剪贴板。
    • 使用粘贴范围 粘贴 - 从剪贴板粘贴范围坐标和(可选)坐标系。 如果剪贴板值不包含坐标系,则范围将使用地图的坐标系。
    注:

    将使用与 ArcPy Extent 对象相同的格式和顺序从剪贴板中复制和粘贴范围坐标:x-min、y-min、x-max、y-max 和空间参考。

  • 重置范围 重置 - 将范围重置为默认值。
  • 手动输入坐标 - 坐标必须是数值,并且与活动地图的坐标系相匹配。
    警告:

    地图可能使用与输入的坐标不同的显示单位。 不支持使用主方向(N、S、E、W)。 在南纬和西经坐标中使用负号。

Extent
形状类型
(可选)

指定将生成的形状。

  • 六边形将生成六边形要素。 每个六边形的上下两边平行于坐标系的 x 轴(顶部和底部是平的)。
  • 横向六边形将生成横向六边形要素。 每个六边形的左右两边平行于数据集坐标系的 y 轴(顶部和底部是尖的)。
  • 正方形将生成正方形要素。 每个正方形的上下两边将平行于坐标系的 x 轴,并且左右两边将平行于坐标系的 y 轴。
  • 菱形将生成菱形要素。 每个多边形的边均围绕坐标系的 x 轴和 y 轴旋转 45 度。
  • 三角形将生成三角形要素。 所有三角形均为正等边三角形。
  • H3 六边形将基于 H3 六边形等级地理空间索引系统生成六边形要素。
String
大小
(可选)

构成镶嵌的每个形状的面积。

Areal Unit
空间参考
(可选)

输出数据集将投影到的空间参考。 如果未提供空间参考,则输出将被投影到输入范围的空间参考中。 如果空间参考也不存在,则输出将被投影到 GCS_WGS_1984。

Spatial Reference
H3 分辨率
(可选)

指定六边形的 H3 分辨率。

随着分辨率值的增加,多边形的面积将是其大小的七分之一。

  • 0 - 将以 H3 分辨率 0 创建六边形,平均面积为 4,357,449.416078381 平方千米。
  • 1 - 将以 H3 分辨率 1 创建六边形,平均面积为 609,788.441794133 平方千米。
  • 2 - 将以 H3 分辨率 2 创建六边形,平均面积为 86,801.780398997 平方千米。
  • 3 - 将以 H3 分辨率 3 创建六边形,平均面积为 12,393.434655088 平方千米。
  • 4 - 将以 H3 分辨率 4 创建六边形,平均面积为 1,770.347654491 平方千米。
  • 5 - 将以 H3 分辨率 5 创建六边形,平均面积为 252.903858182 平方千米。
  • 6 - 将以 H3 分辨率 6 创建六边形,平均面积为 36.129062164 平方千米。
  • 7 - 将以 H3 分辨率 7 创建六边形,平均面积为 5.161293360 平方千米。 这是默认设置。
  • 8 - 将以 H3 分辨率 8 创建六边形,平均面积为 0.737327598 平方千米。
  • 9 - 将以 H3 分辨率 9 创建六边形,平均面积为 0.105332513 平方千米。
  • 10 - 将以 H3 分辨率 10 创建六边形,平均面积为 0.015047502 平方千米。
  • 11 - 将以 H3 分辨率 11 创建六边形,平均面积为 0.002149643 平方千米。
  • 12 - 将以 H3 分辨率 12 创建六边形,平均面积为 0.000307092 平方千米。
  • 13 - 将以 H3 分辨率 13 创建六边形,平均面积为 0.000043870 平方千米。
  • 14 - 将以 H3 分辨率 14 创建六边形,平均面积为 0.000006267 平方千米。
  • 15 - 将以 H3 分辨率 15 创建六边形,平均面积为 0.000000895 平方千米。

仅当将形状类型参数设置为 H3 六边形时,此参数才处于活动状态。

Long

arcpy.management.GenerateTessellation(Output_Feature_Class, Extent, {Shape_Type}, {Size}, {Spatial_Reference}, {H3_Resolution})
名称说明数据类型
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将生成三角形要素。 所有三角形均为正等边三角形。
  • H3_HEXAGON将基于 H3 六边形等级地理空间索引系统生成六边形要素。
String
Size
(可选)

构成镶嵌的每个形状的面积。

Areal Unit
Spatial_Reference
(可选)

输出数据集将投影到的空间参考。 如果未提供空间参考,则输出将被投影到输入范围的空间参考中。 如果空间参考也不存在,则输出将被投影到 GCS_WGS_1984。

Spatial Reference
H3_Resolution
(可选)

指定六边形的 H3 分辨率。

随着分辨率值的增加,多边形的面积将是其大小的七分之一。

  • 0 - 将以 H3 分辨率 0 创建六边形,平均面积为 4,357,449.416078381 平方千米。
  • 1 - 将以 H3 分辨率 1 创建六边形,平均面积为 609,788.441794133 平方千米。
  • 2 - 将以 H3 分辨率 2 创建六边形,平均面积为 86,801.780398997 平方千米。
  • 3 - 将以 H3 分辨率 3 创建六边形,平均面积为 12,393.434655088 平方千米。
  • 4 - 将以 H3 分辨率 4 创建六边形,平均面积为 1,770.347654491 平方千米。
  • 5 - 将以 H3 分辨率 5 创建六边形,平均面积为 252.903858182 平方千米。
  • 6 - 将以 H3 分辨率 6 创建六边形,平均面积为 36.129062164 平方千米。
  • 7 - 将以 H3 分辨率 7 创建六边形,平均面积为 5.161293360 平方千米。 这是默认设置。
  • 8 - 将以 H3 分辨率 8 创建六边形,平均面积为 0.737327598 平方千米。
  • 9 - 将以 H3 分辨率 9 创建六边形,平均面积为 0.105332513 平方千米。
  • 10 - 将以 H3 分辨率 10 创建六边形,平均面积为 0.015047502 平方千米。
  • 11 - 将以 H3 分辨率 11 创建六边形,平均面积为 0.002149643 平方千米。
  • 12 - 将以 H3 分辨率 12 创建六边形,平均面积为 0.000307092 平方千米。
  • 13 - 将以 H3 分辨率 13 创建六边形,平均面积为 0.000043870 平方千米。
  • 14 - 将以 H3 分辨率 14 创建六边形,平均面积为 0.000006267 平方千米。
  • 15 - 将以 H3 分辨率 15 创建六边形,平均面积为 0.000000895 平方千米。

当将 Shape_Type 参数设置为 H3_HEXAGON 时,此参数处于启用状态。

Long

代码示例

GenerateTessellation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 GenerateTessellation 函数。

import arcpy
tessellation_extent = arcpy.Extent(0.0, 0.0, 10.0, 10.0)
spatial_ref = arcpy.SpatialReference(4326)
arcpy.management.GenerateTessellation(r"C:\data\project.gdb\hex_tessellation", 
                                      tessellation_extent, "HEXAGON", 
                                      "100 SquareMiles", spatial_ref)
GenerateTessellation 示例 2(Python 窗口)

以下 Python 窗口脚本演示了如何使用 GenerateTessellation 函数创建 H3 六边形。

# Import modules
import arcpy

# Create some variables
out_gdb = r"C:\temp\project.gdb\h3_hexagon"
extent = arcpy.Extent(0.0, 0.0, 10.0, 10.0)
sr = arcpy.SpatialReference(4326)

# Generate H3 hexagons
arcpy.management.GenerateTessellation(out_gdb, Extent=extent, Shape_Type="H3_HEXAGON",
                                      H3_Resolution=5, Spatial_Reference=sr)
GenerateTessellation 示例 3(独立脚本)

以下独立 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.management.GenerateTessellation(output_feature, extent, "SQUARE", area, 
                                      spatial_ref)

相关主题