描述
创建表示不规则表面的坡度值范围的面要素。
插图
使用方法
-
每个三角形的表面法线(由两条三角形边的矢量叉积计算得出)用于以百分比或度为单位确定坡度。坡度百分比描述了表面法线的高度变化与水平距离变化之间的比率,而以度为单位的坡度是表面法线和水平面之间的倾角。
产生的每个面都表示一个坡度值范围,这些坡度值均基于执行工具时所使用的分类间隔。默认分类间隔将坡度测量分为九组,如下所示:
坡度代码 百分比 角度范围 1
0.00 - 1.00
0.00 - 0.57
2
1.00 - 2.15
0.57 - 1.43
3
2.15 - 4.64
1.43 - 2.66
4
4.64 - 10.0
2.66 - 5.71
5
10.00 - 21.50
5.71 - 12.13
6
21.50 - 46.40
12.13 - 24.89
7
46.40 - 100.0
24.89 - 45.00
8
100.0 - 1000.0
45.00 - 84.29
9
1000.0 <
84.29 - 90.0
可通过在分类间隔表参数中指定最多含两个数值字段的表来自定义坡度分类。第一列标识出坡度分类的中断点。如果提供了第二列,则将其值用于关联属于各个面要素的代码。如果使用下表,0 到 10 的所有坡度值将由代码 1 表示,10 到 25 的所有坡度值将由代码 2 表示,以此类推。表的分类间隔单位在坡度单位 (units) 参数中设置。
分类间隔 代码 10.0
1
25.0
2
40.0
3
70.0
4
该表可以是任何受支持的格式(.dbf、.txt 或地理数据库表)。字段的名称不重要,因为第一个始终用于分类间隔,第二个始终用于坡向编码。
语法
arcpy.3d.SurfaceSlope(in_surface, out_feature_class, {units}, {class_breaks_table}, {slope_field}, {z_factor}, {pyramid_level_resolution})
参数 | 说明 | 数据类型 |
in_surface | TIN、terrain 或 LAS 数据集,其坡度测量值将写入输出面要素。 | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class | 将由此工具生成的要素类。 | Feature Class |
units (可选) | 在计算坡度中所用的测量单位。
| String |
class_breaks_table (可选) | 包含分类间隔的表,将用于分组输出要素。此表格的第一列指示中断点,而第二列提供分类代码。 | Table |
slope_field (可选) | 包含坡度值的字段。 | String |
z_factor (可选) | Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。如果输入表面的空间参考具有已指定线性单位的 Z 基准,则将禁用此参数。 | Double |
pyramid_level_resolution (可选) | 此工具将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。默认值为 0(z 容差),或全分辨率(窗口大小)。 | Double |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = "C:/data"
arcpy.SurfaceSlope_3d("sample.gdb/featuredataset/terrain", "slope.shp", "PERCENT")
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: SurfaceSlope 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