需要 3D Analyst 许可。
摘要
根据栅格表面创建等值线(等高线)的线要素类。
用法
等值线不能延伸到栅格的空间范围以外,并且无法在 NoData 区域中生成;因此,相邻等值线输入应首先与连续要素数据集进行边匹配。还可以在计算等值线前将相邻栅格合并,以此取代边匹配方法。
等值线可以在负栅格值区域内生成。在此区域内的等值线值也将为负值。不允许使用负等值线间距。
若启用 ArcGIS Spatial Analyst 扩展模块,较平滑却欠精确的等值线可通过预处理输入栅格获得,可以使用 MEAN 选项进行焦点统计操作,或者通过 LOW 选项使用过滤器工具来执行该预处理过程。
例如,在您想要从 10 米处开始每隔 15 米创建等值线时可使用起始等值线。此处 10 用于起始等值线,而 15 则为等值线间距。绘制的等值线值为 10、25、40、55,依此类推。
指定起始等值线不会阻止等值线以高于或低于该值的值创建。
如果要更改默认输出范围,则会对输入栅格进行重采样。为避免发生这种情况并确保结果一致,需将捕捉栅格环境设置为与输入栅格相同。
若要对输入栅格进行重采样,需使用双线性技术。例如,当输出栅格与输入栅格的坐标系统、范围或像元大小不同时,可对输入栅格进行重采样。
语法
Contour_3d (in_raster, out_polyline_features, contour_interval, {base_contour}, {z_factor})
参数 | 说明 | 数据类型 |
in_raster |
输入表面栅格。 | Raster Layer |
out_polyline_features |
输出等值线折线要素。 | Feature Class |
contour_interval | 等值线间的间距或距离。 该值可为任意正数。 | Double |
base_contour (可选) | 起始等值线值。 根据需要生成高于和低于该值的等值线以覆盖输入栅格的整个值范围。默认值为零。 | Double |
z_factor (可选) | 在生成等值线时使用的单位转换因子。默认值为 1。 等值线是基于输入栅格中的 z 值生成的,所采用的测量单位通常为米或英尺。如果使用默认值 1,等值线将采用与输入栅格中的 z 值相同的单位。要以不同于 z 值的单位创建等值线,请为 z 因子设置适当的值。注意,对于此工具,没有必要使地面 x,y 单位与表面 z 单位保持一致。 例如,如果输入栅格中的高程值单位为英尺,但您希望以米为单位来生成等值线,则可将 z 因子设置为 0.3048(因为 1 英尺 = 0.3048 米)。 再如,考虑采用 WGS_84 地理坐标系且高程单位为米的输入栅格,您希望以 50 英尺为基础、100 英尺为间隔来生成等值线(即等值线将为 50 英尺、150 英尺、250 英尺,以此类推)。为此,可将 contour_interval 设置为 100、base_contour 设置为 50,并将 z_factor 设置为 3.2808(因为 1 米 = 3.2808 英尺)。 | Double |
代码实例
等值线示例 1(Python 窗口)
此例根据 Esri Grid 栅格创建了等值线,并将其输出为 shapefile。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.Contour_3d("elevation", "C:/output/outcontours.shp", 200, 0)
等值线示例 2(独立脚本)
此例根据 Esri Grid 栅格创建了等值线,并将其输出为 shapefile。
# Name: Contour_3d_Ex_02.py
# Description: Creates contours or isolines from a raster surface.
# 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"
contourInterval = 200
baseContour = 0
outContours = "C:/sapyexamples/output/outcontours02.shp"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
# Execute Contour
arcpy.Contour_3d(inRaster, outContours, contourInterval, baseContour)