摘要
将三角面从 TIN 数据集导出至面要素,并为每个三角提供坡度、坡向以及山体阴影和标签值的可选属性。
插图
用法
坡度和坡向计算基于三角形的平面。如果 TIN 坐标系的线性单位使用十进制度等角度测量单位,则无法正确计算坡度。
XY 和 Z 线性单位应使用相同的计量单位,这样才能提供坡度和山体阴影计算的准确结果。如果单位不同,但 TIN 定义了自己的垂直和水平坐标系,则会自动确定适用的 Z 因子。否则,可使用 Z 因子参数显式定义要应用于高程值的转换因子。
坡向值以度数表示,假定北方为 0°。值沿顺时针方向增加,并将记录在坡向字段中。将为 TIN 中的所有平坦三角形分配坡向值 -1。
坡度可以度数或百分比形式返回,用于记录值的字段名称取决于在坡度单位参数中进行的选择:
- PERCENT - 坡度值将存储在名为 Slope_Pct 的字段中。
- DEGREE - 坡度值将存储在名为 Slope_Deg 的字段中。
山体阴影值反映局部地貌,它根据在山体阴影参数中指定的假定方位角和垂直角的光源而生成。假定北方的方位角为 0°,亮度值介于 0 到 255 之间,数值越低,阴影越暗。
标签值字段参数仅在 TIN 具有已显式定义的标签值时激活。
语法
TinTriangle_3d (in_tin, out_feature_class, {units}, {z_factor}, {hillshade}, {tag_field})
参数 | 说明 | 数据类型 |
in_tin | 待处理的 TIN 数据集。 | TIN Layer |
out_feature_class | 将由此工具生成的要素类。 | Feature Class |
units (可选) | 在计算坡度中所用的测量单位。
| 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 窗口中使用此工具。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.TinTriangle_3d("tin", "tin_triangle.shp", "DEGREE", 1,"HILLSHADE 310,45", "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
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set environment settings
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."
arcpy.CheckInExtension("3D")
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
环境
许可信息
- ArcGIS Desktop Basic: 需要 3D Analyst
- ArcGIS Desktop Standard: 需要 3D Analyst
- ArcGIS Desktop Advanced: 需要 3D Analyst