TIN 三角形 (3D Analyst)
摘要
将三角面从不规则三角网 (TIN) 数据集导出到面要素类,并为每个三角形提供山体阴影的坡度、坡向和可选属性以及标签值。
插图
用法
坡度和坡向的计算基于三角形平面。如果 TIN 坐标系的线性单位使用角度测量单位(如十进制度),则无法正确计算坡度。
XY 和 Z 线性单位应使用相同的测量单位,以使得坡度和山体阴影计算可提供精确的结果。如果单位不同,但 TIN 已定义垂直和水平坐标系,则会自动确定合适的 Z 因子。否则,Z 因子参数可用于显式定义要应用于高程值的转换因子。
坡向值以度表示,假设正北方为 0°。值沿顺时针方向增加,并记录在坡向字段中。为 TIN 中的所有平面三角形分配坡向值 -1。
坡度值可以度数或百分比形式返回,用于记录值的字段名称取决于在坡度单位参数中所作选择:
- 百分比 - 坡度值将存储在名为 Slope_Pct 的字段中。
- 度 - 坡度值将存储在名为 Slope_Deg 的字段中。
山体阴影值反映出光源产生的局部晕渲,光源默认使用在山体阴影参数中指定的方位角和垂直角。方位角假设 0° 为正北,亮度值介于 0 至 255,数值越小,阴影越暗。
只有在 TIN 具有显式定义的标签值时,标签值字段参数才会处于活动状态。
语法
参数 | 说明 | 数据类型 |
in_tin |
The input TIN. | TIN Layer |
out_feature_class |
The output feature class. | Feature Class |
units (可选) |
The units of measure to be used in calculating slope.
| String |
z_factor (可选) |
The factor by which elevation values will be multiplied. This is typically used to convert Z linear units that match those of the XY linear units. The default is 1, which leaves elevation values unchanged. | Double |
hillshade HILLSHADE <azimuth>, <angle> (可选) |
为要素图层输出应用山体阴影效果时指定光源的方位角和高度角。方位角的范围为 0 至 360 度,高度角的范围为 0 至 90。方位角为 45 度,高度角为 30 度的输入形式为“HILLSHADE 45, 30”。 | String |
tag_field (可选) |
将存储三角形标签值的输出要素中的字段名称。该参数默认为空,将导致标签值无法写入输出。 | String |
代码示例
The following sample demonstrates the use of this tool in the Python window:
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")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''**************************************************************************** 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)