地形转栅格 (空间分析)

摘要

将点、线和面数据插值成符合真实地表的栅格表面。

了解有关地形转栅格工具工作原理的详细信息

用法

语法

TopoToRaster (in_topo_features, {cell_size}, {extent}, {Margin}, {minimum_z_value}, {maximum_z_value}, {enforce}, {data_type}, {maximum_iterations}, {roughness_penalty}, {discrete_error_factor}, {vertical_standard_error}, {tolerance_1}, {tolerance_2}, {out_stream_features}, {out_sink_features}, {out_diagnostic_file}, {out_parameter_file})
参数说明数据类型
in_topo_features
topo_input

地形类用于指定包含要插值到表面栅格中的 z 值的输入要素。

共有六种数据类型可作为地形类的输入:TopoPointElevationTopoContourTopoStreamTopoSinkTopoBoundaryTopoLake

  • TopoPointElevation ([[inFeatures,{field}],...])

    表示表面高程的点要素类。

    field 用于存储点的高程。

  • TopoContour ([[inFeatures,{field}],...])

    表示高程等值线的线要素类。

    field 用于存储等值线的高程。

  • TopoStream ([inFeatures,...])

    河流位置的线要素类。所有弧线必须定向为指向下游。要素类中应该仅包含单条弧线组成的河流。

  • TopoSink ([[inFeatures,{field}],...])

    表示已知地形凹陷的点要素类。地形转栅格不会试图将任何明显识别为汇的点从分析中移除。

    所用 field 应该能够存储合法汇的高程。如果选择了 NONE,将仅使用汇的位置。

  • TopoBoundary ([inFeatures,...])

    边界是包含表示输出栅格外边界的单个面的要素类。输出栅格中,位于此边界以外的像元将为 NoData。此选项可用于在创建最终输出栅格之前沿海岸线裁剪出水域。

  • TopoLake ([inFeatures,...])

    指定湖泊位置的面要素类。湖面内的所有输出栅格像元均将指定为使用沿湖岸线所有像元高程值中最小的那个高程值。

PointElevation、Contour 和 Sink 要素输入类型均可指定包含 z 值的字段。但对于 Boundary、Lake 或 Stream 输入类型则不存在 Field 选项。

TopoInput
cell_size
(可选)

要创建的输出栅格的像元大小。

如果明确设置该值,则它将是环境中的值,否则,它是输入空间参考中输入点要素范围的宽度或高度除以 250 之后得到的较小值。

Analysis Cell Size
extent
(可选)

范围类决定着输出栅格数据集的范围。

插值可能会超出 x 和 y 坐标范围,在此范围之外的像元将为 NoData。要在输出栅格边界上获得最佳插值结果,四边的 x 和 y 坐标界限应该比输入数据的范围至少小 10 个像元。

范围类的形式为:

  • Extent (XMin, YMin, XMax, YMax)

    其中:

    • XMin - 默认值为所有输入的最小 x 坐标值。
    • YMin - 默认值为所有输入的最小 y 坐标值。
    • XMax - 默认值为所有输入的最大 x 坐标值。
    • YMax - 默认值为所有输入的最大 y 坐标值。

默认范围是输入要素数据所有范围中的最小范围。

Extent
Margin
margin
(可选)

像元中在指定输出范围和边界外进行插值的距离。

该值必须大于或等于 0(零)。默认值为 20。

如果 ExtentTopoBoundary 要素数据集与输入数据的界限相同(默认值),则沿 DEM 边内插的值与相邻的 DEM 数据将无法很好的匹配。这是因为插值时仅使用了相当于栅格内一半点数的数据,这些点的四周被输入数据包围着。通过 Margin 选项可使输入数据超出这些界限从而应用于插值过程。

Long
minimum_z_value
(可选)

要用于插值的最小 z 值。

默认值比所有输入值中最小的值低 20%。

Double
maximum_z_value
(可选)

要用于插值的最大 z 值。

默认值比所有输入值中最大的值高 20%。

Double
enforce
(可选)

要应用的地形强化类型。

可对地形强化选项进行设置以便移除所有汇或洼地,从而创建符合真实地表的 DEM。如果输入要素数据中已明确识别出这些汇点,则这些洼地将不会被填充。

  • ENFORCE 该算法将尝试移除遇到的所有汇,无论是“真”汇还是“伪”汇。这是默认设置。
  • NO_ENFORCE 汇不会被填充。
  • ENFORCE_WITH_SINK 输入要素数据中已识别为汇的点表示已知的地形凹陷并且将不会被更改。输入要素数据中未识别出的所有汇均将视为伪汇,算法将尝试填充此汇。伪汇数量超过 8,000 个将导致工具无法使用。
String
data_type
(可选)

输入要素数据的主要高程数据类型。

  • CONTOUR 输入数据的主要类型为高程等值线。这是默认设置。
  • SPOT 输入的主要类型为点。

指定相关的选项可优化河流和山脊生成期间所用搜索方法。

String
maximum_iterations
(可选)

插值迭代的最大次数。

迭代次数必须大于零。通常,默认值 40 适合等值线数据也适合线数据。

值 30 所能清除汇的数量较少。在极少数情况下,设置成更高的值 (45–50) 可能适合于清除更多的汇或设置更多的山脊和河流。达到最大迭代次数后,各格网分辨率的迭代将停止。

Long
roughness_penalty
(可选)

作为粗糙度衡量指标的二阶导数平方积分。

粗糙度惩罚系数必须大于等于零。如果主要输入数据类型为 CONTOUR,则默认值为零。如果主要数据类型为 SPOT,则默认值为 0.5。通常不建议使用更大的值。

Double
discrete_error_factor
(可选)

离散误差系数用于在将输入数据转换为栅格时调整平滑量。

该值必须大于零。正常的调整范围是 0.5 到 2,默认值为 1。如果值较小,则数据的平滑处理也较少;而如果值较大,平滑处理也较多。

Double
vertical_standard_error
(可选)

输入数据 z 值的随机误差量。

该值必须大于等于零。默认值为零。

如果数据的显著随机(非系统)垂直误差的方差一致,则垂直标准误差可设置为较小的正值。这种情况下,请将垂直标准误差设置为这些误差的标准差。对于大多数高程数据集,垂直误差应该设置为零,但当通过河流线数据对点数据进行栅格化时,可能会将其设置为较小的正值以稳定收敛。

Double
tolerance_1
(可选)

此容差可反映出高程点相对于表面地形的精度和密度。

对于点数据集,请将容差设置为数据高度的标准误差。对于等值线数据集,请使用平均等值线间距的一半。

该值必须大于等于零。如果数据类型是 CONTOUR,则默认值为 2.5;如果数据类型是 SPOT,则默认值为零。

Double
tolerance_2
(可选)

此容差将通过极大的界限值防止产生地形间隙。

该值必须大于零。如果数据类型是 CONTOUR,则默认值为 100;如果数据类型是 SPOT,则默认值为 200。

Double
out_stream_features
(可选)

河流折线要素和山脊线要素的输出线要素类。

线要素创建于插值过程开始之时。它提供了插值表面的大致形态。此值可用于通过比较已知河流和山脊数据验证地形和形态的正确性。

Feature Class
out_sink_features
(可选)

其余汇点要素的输出点要素类。

这些属于未在汇输入要素数据中指定且在地形强化期间未被清除的汇。调整容差值(tolerance_1tolerance_2)可减少其余汇的数量。其余汇通常用于指示输入数据中地形加强算法无法解决的误差。这是检测微小高程误差的有效方法。

Feature Class
out_diagnostic_file
(可选)

此输出诊断文件列出了使用的所有输入和参数以及各分辨率和迭代中清除的汇数。

File
out_parameter_file
(可选)

此输出参数文件列出了使用的所有输入和参数,这些输入和参数可与依据文件实现地形转栅格结合使用以便再次运行插值。

File

返回值

名称说明数据类型
out_surface_raster

输出插值后的表面栅格。

Raster

代码示例

TopoToRaster 示例 1(Python 窗口)

该示例根据点、线和面数据创建符合真实地表的 TIFF 表面栅格。

import arcpy
from arcpy import env  
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outTTR = TopoToRaster([TopoPointElevation([['spots.shp', 'spot_meter']]), 
                       TopoContour([['contours.shp', 'spot_meter']])], 60, 
                       "#", "#", "#", "#", "NO_ENFORCE")
outTTR.save("C:/sapyexamples/output/ttrout.tif")
TopoToRaster 示例 2(独立脚本)

该示例根据点、线和面数据创建符合真实地表的 Grid 表面栅格。

# Name: TopoToRaster_Ex_02.py
# Description: Interpolates a hydrologically correct surface 
#    from point, line, and polygon data.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

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

# Set local variables
inPointElevations = TopoPointElevation([['spots.shp', 'spot_meter'], 
                                        ['spots2.shp', 'elev']])
inBoundary = TopoBoundary(['boundary.shp'])
inContours = TopoContour([['contours.shp', 'spot_meter']])
inLake = TopoLake(['lakes.shp'])
inSinks = TopoSink([['sink1.shp', 'elevation'], ['sink2.shp', 'none']])
inStream = TopoStream(['streams.shp'])

inFeatures = ([inPointElevations, inContours, inLake, inBoundary, inSinks])

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute TopoToRaster
outTTR = TopoToRaster(inFeatures)

# Save the output 
outTTR.save("C:/sapyexamples/output/ttrout03")

环境

相关主题

许可信息

ArcView: 需要 Spatial Analyst 或 3D Analyst
ArcEditor: 需要 Spatial Analyst 或 3D Analyst
ArcInfo: 需要 Spatial Analyst 或 3D Analyst

7/10/2012