面插值为多面体 (3D Analyst)

摘要

通过在表面上叠加面要素来创建与表面一致的多面体要素。

使用情况

  • 每个面要素都沿表面描绘其边界轮廓。使用线性插值法通过在每个输入折点以及边界线与表面三角形边和节点的任意相交位置采样获取高度。此自然增密会使用最少量的样本捕获线性表面的完整定义。然后,提取位于该面内的所有结点。这些结点会在基于内存的新 TIN 中被重新三角形化,并且 3D 面边界被强制作为裁剪面。此新 TIN 的三角形提取为一系列条带,这些条带用来定义基于多面体的要素。

  • 生成的多面体将捕获其几何中的 3D 表面制图表达。平面面积和表面面积计算与输入面的其他属性一起包括到输出中。

  • 如果对叠加在表面上的面进行三维渲染出现显示问题,则考虑将面转换为多面体。

  • 最大三角条带尺寸值必须为 3 或者更大。此参数指定在构造多面体中使用的任意三角条带中所允许的折点最大数。ArcGIS 没有特定大小限制或首选项,但有些 3D 显卡可能会有,因为三角条带直接加载到 3D 图形应用程序接口 (API),以实现渲染的功能。推荐范围为 128 到 2048 之间。

参数

标注说明数据类型
输入表面

输入不规则三角网 (TIN) 或 terrain 数据集表面。

Terrain Layer; TIN Layer
输入要素类

输入面要素。

Feature Layer
输出要素类

输出多面体要素类。

Feature Class
最大条带尺寸
(可选)

控制用于创建单个三角条带的最大点数。请注意,每个多面体通常由多个条带组成。默认值为 1,024。

Long
Z 因子
(可选)

Z 值将乘上的系数。 此值通常用于转换 z 线性单位来匹配 x,y 线性单位。 默认值为 1,此时高程值保持不变。 如果输入表面的空间参考具有已指定线性单位的 z 基准,则此参数不可用。

Double
面积字段
(可选)

输出字段的名称,其中包含所得多面体的平面(或 2D)面积。

String
表面面积字段
(可选)

输出字段的名称,其中包含所得多面体的 3D 面积。该面积考虑到了表面的波动。如果表面是平的,则该面积与平面面积两者相等,否则它总是大于平面面积。

String
金字塔等级分辨率
(可选)

将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0,或全分辨率。

Double

arcpy.ddd.InterpolatePolyToPatch(in_surface, in_feature_class, out_feature_class, {max_strip_size}, {z_factor}, {area_field}, {surface_area_field}, {pyramid_level_resolution})
名称说明数据类型
in_surface

输入不规则三角网 (TIN) 或 terrain 数据集表面。

Terrain Layer; TIN Layer
in_feature_class

输入面要素。

Feature Layer
out_feature_class

输出多面体要素类。

Feature Class
max_strip_size
(可选)

控制用于创建单个三角条带的最大点数。请注意,每个多面体通常由多个条带组成。默认值为 1,024。

Long
z_factor
(可选)

Z 值将乘上的系数。 此值通常用于转换 z 线性单位来匹配 x,y 线性单位。 默认值为 1,此时高程值保持不变。 如果输入表面的空间参考具有已指定线性单位的 z 基准,则此参数不可用。

Double
area_field
(可选)

输出字段的名称,其中包含所得多面体的平面(或 2D)面积。

String
surface_area_field
(可选)

输出字段的名称,其中包含所得多面体的 3D 面积。该面积考虑到了表面的波动。如果表面是平的,则该面积与平面面积两者相等,否则它总是大于平面面积。

String
pyramid_level_resolution
(可选)

将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0,或全分辨率。

Double

代码示例

InterpolatePolygonToMultipatch 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

arcpy.env.workspace = "C:/data"
arcpy.ddd.InterpolatePolyToPatch("sample.gdb/featuredataset/terrain", "polygon.shp", "out_multipatch.shp", 1024, 1, "Area", "SArea", 5)
InterpolatePolygonToMultipatch 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''****************************************************************************
Name: InterpolatePolyToPatch Example
Description: This script demonstrates how to use the
             InterpolatePolyToPatch tool.
****************************************************************************'''

# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Set Local Variables
inTerrain = "sample.gdb/featuredataset/terrain"
inPoly = "polygon.shp"
outMP = arcpy.CreateUniqueName("out_multipatch.shp")

#Execute InterpolatePolyToPatch
arcpy.ddd.InterpolatePolyToPatch(inTerrain, inPoly, outMP, 1024, 1, "Area", "SArea", 5)

相关主题