表面坡向 (3D Analyst)

描述

创建表示派生自 TIN、terrain 或 LAS 数据集表面的坡向测量值的面要素。

插图

TIN Aspect illustration

使用方法

  • 坡向表示表面的水平方向,以角度单位确定。表面的每个面都会分配到表示其坡度的主方向或序数方向的编码值,编码相同的相邻区域将合并为一个要素。默认的分类方案定义如下:

    编码坡度方向坡度角范围

    -1

    平面

    无坡度

    1

    0° – 22.5°

    2

    东北

    22.5° – 67.5°

    3

    67.5° – 112.5°

    4

    东南

    112.5° – 157.5°

    5

    157.5° – 202.5°

    6

    西南

    202.5° – 247.5°

    7

    西

    247.5° – 292.5°

    8

    西北

    292.5° – 337.5°

    9

    337.5° – 360°

  • 可通过分类间隔表提供自定义类定义。该表必须包含两列,第一列用于以角度表示坡向中断点,第二列用于定义其编码值。考虑以下示例:

    间断点Aspect_Code

    90.0

    1

    180.0

    2

    270.0

    3

    360.0

    4

    该表可以是任何受支持的格式(.dbf.txt 或地理数据库表)。字段的名称不重要,因为第一个始终用于分类间隔,第二个始终用于坡向编码。

语法

arcpy.3d.SurfaceAspect(in_surface, out_feature_class, {class_breaks_table}, {aspect_field}, {pyramid_level_resolution})
参数说明数据类型
in_surface

待处理的 TIN、terrain 或 LAS 数据集表面。

LAS Dataset Layer; Terrain Layer; TIN Layer
out_feature_class

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

Feature Class
class_breaks_table
(可选)

包含将用于对输出要素类中的坡向范围进行定义的分类间隔的表。

Table
aspect_field
(可选)

包含坡向编码值的字段。

String
pyramid_level_resolution
(可选)

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

Double

代码示例

表面坡向 (SurfaceAspect) 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.SurfaceAspect_3d("sample.gdb/featuredataset/terrain", "terrain_aspect.shp")
表面坡向 (SurfaceAspect) 示例 2(独立脚本)

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

'''****************************************************************************
Name: SurfaceAspect Example
Description: This script demonstrates how to use the
             SurfaceAspect and SurfaceSlope tools to generate a polygon
             that contains the intersection of both
****************************************************************************'''

# Import system modules
import arcpy

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

# List all TINs in workspace
listTINs = arcpy.ListDatasets("","TIN")

# Determine whether the list contains any TINs
if len(listTINs) > 0:
    for dataset in listTINs:
        print(dataset)
        # Set Local Variables
        aspect = arcpy.CreateUniqueName("Aspect.shp")
        slope = arcpy.CreateUniqueName("Slope.shp")
        outFC = dataset + "_Aspect_Slope.shp"
        #Execute SurfaceAspect
        arcpy.SurfaceAspect_3d(dataset, aspect)
        #Execute SurfaceSlope
        arcpy.SurfaceSlope_3d(dataset, slope)
        #Execute SurfaceSlope
        print("Starting Intersect")
        arcpy.Intersect_analysis(aspect + " #;" + slope + " #", outFC, "ALL")
        print("Completed intersect for " + dataset)
else:
    print("There are no TINs in the " + env.workspace + " directory.")

许可信息

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

相关主题