需要 Spatial Analyst 许可。
需要 3D Analyst 许可。
插图
使用方法
此工具使用移动的 3 x 3 像元窗口来处理数据。如果处理像元为 NoData,则该位置的输出将为 NoData。
该工具还要求在与处理像元相邻的 8 个像元中,至少有 7 个具有有效值。如果有效像元少于 7 个,则不执行计算,并且该处理像元处的输出将为 NoData。
输出栅格最外侧行列的像元为 NoData。这是因为沿着输入数据集边界,这些像元没有足够的有效相邻像元。
输出值的范围取决于测量单位的类型。
- 如果为度,坡度值的范围为 0 至 90。
- 如果为增量百分比,则范围为 0 至无穷大。平坦表面为 0%,45 度表面为 100%,随着表面变得越来越接近垂直,增量百分比将变得越来越大。
对于平面方法,如果表面(垂直)z 单位使用其他单位而非地面 x,y 单位表示,则需要使用 Z 因子对坡度计算进行校正。仅当选择平面方法时才会启用 Z 因子参数。
在测地线方法中,指定表面 z 单位对于确保输出的精度非常重要。仅当选择测地线方法时才会启用 Z 单位参数。
如果 z 单位可用于输入栅格的垂直坐标系,则将自动应用 z 单位。 如果缺失,建议您定义输入栅格的 z 单位。可使用定义投影工具来指定 z 单位。如果未定义 z 单位,则默认使用米。
若要对输入栅格进行重采样,需使用双线性技术。例如,当输出栅格与输入栅格的坐标系统、范围或像元大小不同时,可对输入栅格进行重采样。
如果输入栅格参数值(Python 中的 in_raster)为高分辨率值(其像元大小小于几米,或者特别是存在噪点),请考虑使用表面参数工具及其用户定义的邻域距离选项,而非此工具的直接 3 x 3 邻域。 使用较大邻域可以最大程度地减少噪点表面的影响。当使用高分辨率表面时,使用较大邻域也可以更好地表示地形和表面特征。
计算测地线坡度时,此工具可通过 GPU 加速,也就是说,如果系统中安装了 GPU 设备(图形处理器),该设备将用于增强测地线方法的性能。
有关如何配置 GPU 设备的更多详细信息,请参阅使用 Spatial Analyst 处理 GPU 帮助主题中的 Spatial Analyst 扩展模块帮助。
语法
arcpy.3d.Slope(in_raster, out_raster, {output_measurement}, {z_factor}, {method}, {z_unit})
参数 | 说明 | 数据类型 |
in_raster | 输入表面栅格。 | Raster Layer |
out_raster | 输出坡度栅格。 此栅格为浮点类型。 | Raster Dataset |
output_measurement (可选) | 确定输出坡度数据的测量单位(度或百分比)。
| String |
z_factor (可选) | 一个表面 z 单位中地面 x,y 单位的数量。 z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。 如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。这是默认设置。 如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。例如,如果 z 单位是英尺,而 x,y 单位是米,则应使用 z 因子 0.3048 将 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。 | Double |
method (可选) | 指定计算将基于平面(平地)还是测地线(椭球)方法。
平面方法适用于保持正确距离和面积的投影中的局部区域。适用于覆盖诸如城市、县或面积较小的州等区域的分析。测地线方法可以产生更精确的结果,但会造成处理时间这一潜在成本增加。 | String |
z_unit (可选) | 垂直 z 值的线性单位。 由垂直坐标系(如果存在)定义。如果垂直坐标系不存在,则应根据单位列表来定义 z 单位,以确保测地线计算正确。默认单位为米。
| String |
代码示例
此示例将确定输入表面栅格的坡度值。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.Slope_3d("elevation", "C:/output/outslope01", "DEGREE", 0.3043)
此示例将确定输入表面栅格的坡度值。
# Name: Slope_3d_Ex_02.py
# Description: Identifies the rate of maximum change
# in z-value from each cell.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inRaster = "elevation"
outRaster = "C:/output/outslope02"
outMeasurement = "DEGREE"
zFactor = ""
method = "GEODESIC"
zUnit = "FOOT"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
# Execute Slope
arcpy.Slope_3d(inRaster, outRaster, outMeasurement, zFactor, method, zUnit)
许可信息
- Basic: 需要 3D Analyst 或 Spatial Analyst
- Standard: 需要 3D Analyst 或 Spatial Analyst
- Advanced: 需要 3D Analyst 或 Spatial Analyst