栅格转多点 (3D Analyst)
摘要
将栅格像元中心转换为多点要素(其 Z 值反映栅格像元值)。
用法
此工具专用于模拟表面属性的栅格数据集,例如高程。
-
此工具用于将栅格 DEM 加入到可用作创建 Terrain 数据集或 TIN 的辅助数据的点中。
可通过 NO_THIN 选项转换所有像元中心,或者可应用多个过滤器中的一个排除那些不重要的像元。细化选项包括 ZTOLERANCE、KERNEL 和 VIP。
- ZTOLERANCE 细化方法表示输入栅格和输出多点要素类之间所允许的最大高度差(z 单位)。默认情况下,Z 容差是输入栅格 z 范围的 1/10。容差越大,细化越多,点输出越少。
- KERNEL 细化方法定义窗口的像元数。默认值是 3。这会将输入栅格转化为 3 × 3 的像元组。将评估每个窗口中的单个像元值。根据 KERNEL 选择方法,可以仅选择一个或两个像元。核大小越大,细化实现的越多,点输出越少。
- VIP 方法用于根据栅格中点的显著性来选择栅格中点的百分比。此显著性使用 3 × 3 移动窗口来评估。您可以选择 VIP_HISTOGRAM 选项来写出表,以查看实际显著值和与这些值关联的相应点数。
-
当保留垂直精度很重要时,使用 ZTOLERANCE 细化方法。当控制水平采样距离很重要时,使用 KERNEL 细化方法。
-
当栅格转化为多点时,考虑应用细化方法。有两种细化方法用于生成新多点要素类:ZTOLERANCE 和 KERNEL。如果选择 NO_THIN,那么全分辨率数据将输出到新多点要素类中。
-
VIP 方法相对较快,能够输出可预测点数,并且在选择局部山峰和凹地方面很有优势。然而,该方法对噪点敏感,对大于 3 × 3 窗口的地形要素不敏感。
语法
RasterToMultipoint_3d (in_raster, out_feature_class, {out_vip_table}, {method}, {kernel_method}, {z_factor})
参数 | 说明 | 数据类型 |
in_raster |
输入栅格。 | Raster Layer |
out_feature_class |
输出要素类。 | Feature Class |
out_vip_table (可选) |
为方法参数指定 VIP 直方图时要生成的直方图表格。 | Table |
method (可选) |
用于生成多点要素类的细化方法。
| String |
kernel_method (可选) |
在方法参数中指定核细化时用来创建点的选择方法。
| String |
z_factor (可选) |
用于乘以栅格高程的因子。通常用于在英尺和米之间转换单位。 | Double |
代码实例
RasterToMultipoint 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.RasterToMultipoint_3d("elevation.tif", "","elev_VIP.dbf", "VIP_HISTOGRAM", "", "1")
RasterToMultipoint 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具:
'''*********************************************************************
Name: RasterToMultipoint Example
Description: This script demonstrates how to use
the RasterToMultipoint tool to create multipoint datasets
fot all IMG rasters in a target workspace.
**********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions
try:
arcpy.CheckOutExtension("3D")
# Set default workspace
env.workspace = "C:/data"
# Create the list of IMG rasters
rasterList = arcpy.ListRasters("*", "IMG")
# Loop the process for each raster
if rasterList:
for raster in rasterList:
# Set Local Variables
# [:-4] strips the last 4 characters (.img) from the raster name
outTbl = "VIP_" + raster[:-4] + ".dbf"
method = "VIP_HISTOGRAM"
zfactor = 1
#Execute RasterToMultipoint
arcpy.ddd.RasterToMultipoint(raster, "",outTbl, method, "", zfactor)
else:
"There are no IMG rasters in the " + env.workspace + " directory."
except Exception as e:
# Returns any other error messages
print e.message
环境
相关主题
许可信息
ArcGIS for Desktop Basic:需要 3D Analyst
ArcGIS for Desktop Standard:需要 3D Analyst
ArcGIS for Desktop Advanced:需要 3D Analyst
9/15/2013