栅格转多点 (3D Analyst)

描述

将栅格像元中心转换为 3D 多点要素(其 Z 值反映栅格像元值)。

使用方法

  • 如果拥有栅格高程数据并需要访问表面三角化提供的实用功能,请考虑使用此工具,因为多点要素可加载到 TINTerrain 数据集中。

  • 当输入栅格的大小过大时,请考虑应用细化方法减少导出至多点要素类的像元数。

    • 当保留垂直精度很重要时,请使用 Z 容差细化方法。
    • 当控制水平采样距离很重要时,请使用细化方法。
    • 当生成的多点主要应用于可视化应用程序时,请使用 VIP 细化方法。此方法相对较快,能够输出可预测点数,并且在选择局部山峰和凹地方面很有优势。然而,该方法对噪点敏感,可能会忽略跨越范围大于 3 像元 × 3 像元的地形要素。
    • 使用 VIP 直方图作为应用 VIP 细化方法的初始步骤,它会生成显著性得分的直方图,便于您了解将选择的点数以及每个递增百分数值。

语法

arcpy.3d.RasterToMultipoint(in_raster, out_feature_class, {out_vip_table}, {method}, {kernel_method}, {z_factor}, {thinning_value})
参数说明数据类型
in_raster

待处理的栅格。

Raster Layer; Mosaic Layer
out_feature_class

将由此工具生成的要素类。

Feature Class
out_vip_table
(可选)

方法参数指定 VIP 直方图时要生成的直方图表格。

Table
method
(可选)

应用于输入栅格的细化方法,用于选择要导出至多点要素类的像元的子集。

  • NO_THIN不应用细化。这是默认设置。
  • ZTOLERANCE仅导出维护输入栅格指定 Z 范围内的表面所需的像元。
  • KERNEL基于指定细化值将栅格分割成大小相等的分块,然后选择一个或两个符合指定核方法所定义条件的像元。
  • VIP采用创建三维最佳拟合平面所使用的 3 像元 × 3 像元的移动窗口。每个像元都基于其与此平面的绝对差获得一个显著性得分。随后,这些得分的直方图将用于根据细化值参数中指定的百分比数确定要导出的像元。
  • VIP_HISTOGRAM创建表格来查看实际显著值和与这些值关联的相应点数。
String
kernel_method
(可选)

对输入栅格应用核细化时在每个核邻域中使用的选择方法。

  • MIN在像元处(此像元具有在核邻域中找到的最小高程值)创建一个点。这是默认设置。
  • MAX在像元处(此像元具有在核邻域中找到的最大高程值)创建一个点。
  • MINMAX在像元处(分别具有在核邻域中找到的最小和最大 Z 值)创建两个点。
  • MEAN在像元处(其高程值最接近核邻域中像元的平均值)创建一个点。
String
z_factor
(可选)

Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。如果输入表面的空间参考具有已指定线性单位的 Z 基准,则将禁用此参数。

Double
thinning_value
(可选)

此值的含义取决于指定的细化方法

  • Z 容差 - 输入栅格与通过输出多点要素类创建的表面之间所允许的最大差异(z 单位)。选择此方法时,细化值默认为输入栅格 z 范围的 1/10。
  • 核 - 每个分块边缘的栅格像元数。该值默认为 3,即栅格将被分割为 3 像元 × 3 像元的窗口。
  • VIP - 显著性得分直方图的百分比数等级。此值默认为 5.0,表示将导出得分在直方图中排在前 5% 的像元。
Double

代码示例

RasterToMultipoint 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

arcpy.env.workspace = "C:/data"
arcpy.RasterToMultipoint_3d("elevation.tif", out_vip_table="elev_VIP.dbf", 
                            method="VIP_HISTOGRAM", z_factor=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

# Set default workspace
arcpy.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:
    print("There are no IMG rasters in the " + env.workspace + " directory.")

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst