TIN 三角形 (3D Analyst)

描述

将三角面从 TIN 数据集导出至面要素,并为每个三角提供坡度、坡向以及山体阴影和标签值的可选属性。

插图

TIN 三角形图示

使用方法

  • 坡度和坡向计算基于三角形的平面。如果 TIN 坐标系的线性单位使用十进制度等角度测量单位,则无法正确计算坡度。

  • XY 和 Z 线性单位应使用相同的计量单位,这样才能提供坡度和山体阴影计算的准确结果。如果单位不同,但 TIN 定义了自己的垂直和水平坐标系,则会自动确定适用的 Z 因子。否则,可使用 Z 因子参数显式定义要应用于高程值的转换因子。

  • 坡向值以度数表示,假定北方为 0°。值沿顺时针方向增加,并将记录在坡向字段中。将为 TIN 中的所有平坦三角形分配坡向值 -1。

  • 坡度可以度数或百分比形式返回,用于记录值的字段名称取决于在坡度单位参数中进行的选择:

    • PERCENT - 坡度值将存储在名为 Slope_Pct 的字段中。
    • DEGREE - 坡度值将存储在名为 Slope_Deg 的字段中。
  • 山体阴影值反映局部地貌,它根据在山体阴影参数中指定的假定方位角和垂直角的光源而生成。假定北方的方位角为 0°,亮度值介于 0 到 255 之间,数值越低,阴影越暗。

  • 标签值字段参数仅在 TIN 具有已显式定义的标签值时激活。

语法

TinTriangle(in_tin, out_feature_class, {units}, {z_factor}, {hillshade}, {tag_field})
参数说明数据类型
in_tin

待处理的 TIN 数据集。

TIN Layer
out_feature_class

将由此工具生成的要素类。

Feature Class
units
(可选)

在计算坡度中所用的测量单位。

  • PERCENT坡度以百分比值形式表示。这是默认设置。
  • DEGREE坡度以相对于水平面的倾角形式表示。
String
z_factor
(可选)

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

Double
hillshade
HILLSHADE <azimuth>, <angle>
(可选)

为要素图层输出应用山体阴影效果时指定光源的方位角和高度角。方位角的范围为 0 至 360 度,高度角的范围为 0 至 90。方位角为 45 度,高度角为 30 度的输入形式为“HILLSHADE 45,30”

String
tag_field
(可选)

将存储三角形标签值的输出要素中的字段名称。该参数默认为空,将导致标签值无法写入输出。

String

代码示例

TinTriangle 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.TinTriangle_3d("tin", "tin_triangle.shp", units="DEGREE", 
                     z_factor=1, hillshade="HILLSHADE 310,45", tag_field="tag")
TinTriangle 示例 2(独立脚本)

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

'''****************************************************************************
Name: TinTriangle Example
Description: This script demonstrates how to use the 
             TinTriangle tool to extract triangles from each TIN in the 
             target workspace.
****************************************************************************'''
# Import system modules
import arcpy

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

# Create list of TINs
TINList = arcpy.ListDatasets("*", "Tin")

# Verify the presence of TINs in the list
if TINList:
    for dataset in TINList:
        # Set Local Variables
        TINList = arcpy.ListDatasets("*", "Tin")
        slopeUnits = "PERCENT"
        zfactor = 1
        hillshade = "HILLSHADE 300, 45" # defines hillshade azimuth & angle
        tagField = "Tag"
        Output = dataset + "_triangles.shp" # name of the output file
        #Execute TinTriangle
        arcpy.ddd.TinTriangle(dataset, Output, slopeUnits, zfactor,
                              hillshade, tagField)
        print("Finished.")
else:
    print("There are no TIN(s) in the " + env.workspace + " directory.")

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题