多值提取至点 (Spatial Analyst)

需要 Spatial Analyst 许可。

描述

在点要素类的指定位置提取一个或多个栅格像元值,并将这些值记录到点要素类的属性表中。

使用方法

  • 此工具可修改输入点要素,并可更改其内部要素 ID(可将其命名为 ObjectID、FID 或 OID)。在执行分析之前,建议在属性表中使用唯一的 ID 字段。

  • 系统将从每个位置的所有输入栅格中提取像元值。包含每个输入栅格像元值的新字段将追加到输入点要素类。

  • 输入栅格表中的其他属性(若有的话)将不会追加到输入点要素。

  • 输入栅格不会进行重采样以支持分析环境。相反,系统将以所有输入栅格的原始分辨率和空间参考来提取像元值,方法是将输入位置投影到从中提取值的栅格空间参考。

    但是,分析环境将应用于输入位置。

  • 从输入栅格的 NoData 像元中提取值的位置将在输出表中被赋予 <空> 值。对于 shapefile,由于不支持空字段,因此 NoData 像元在表中以值 -9999 表示。

  • shapefile 格式将字段名称的最大长度限制为 10 个字符。因此,对于追加到输入 shapefile 属性表中的任何字段,其名称都将被截断并获得唯一值。如果名称很长或很相似,则可能导致各字段间难以区分。在这种情况下,建议您将输入 shapefile 复制到文件地理数据库,然后将要素类用于分析。

  • 如果使用 XY 事件图层定义了输入点要素(Python 中的 in_point_features),则基础事件表将直接更新。如果基础表为只读,则该工具将失败。

  • 该工具将无法用多点要素执行。要使用多点要素执行分析,请将其转换为单点要素,然后在提取工具中使用。有关详细信息,请参阅处理多点数据

  • 可以为输入栅格(Python 中的 in_rasters)参数指定任意栅格(单波段或多波段)组合。

  • 将多波段栅格指定为输入栅格(Python 中的 in_rasters)之一时,将使用该输入中的所有波段。

    要处理一系列来自输入多波段栅格的波段,请首先用波段合成工具创建由这些特定波段组成的新栅格数据集。然后在输入栅格列表中使用该结果。

  • 当输入多波段栅格时,为所有波段添加的输出字段的名称中将包含指示波段号的 b1_, b2_, …bn 前缀。

  • 默认情况下,将根据输入栅格的名称来创建输出字段的名称;或者,您也可以为每个存储栅格值的字段指定唯一名称。

  • 插值选项决定了从栅格中获取值的方式。默认选项是在输入位置提取准确的像元值。要使用双线性方法提取内插值,请选中点位置值的双线性插值法选项。在 Python 中,您需要将 bilinear_interpolate_values 参数设置为 BILINEAR。

  • 如果在掩膜环境中指定了一个要素,则系统将使用输入栅格的最小像元大小创建内部栅格。提取过程中,内部掩模栅格将被再次重采样到每个输入栅格的像元大小。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

语法

ExtractMultiValuesToPoints(in_point_features, in_rasters, {bilinear_interpolate_values})
参数说明数据类型
in_point_features

要添加栅格值的输入点要素。

Feature Layer
in_rasters
[Raster, {Output Field Name}]

要基于输入点要素的位置提取的输入栅格值。

您还可以为存储栅格值的字段指定名称。默认情况下,将根据输入栅格数据集的名称创建唯一的字段名称。

Extract Values
bilinear_interpolate_values
(可选)

指定是否使用插值。

  • NONE 不应用任何插值法;将使用像元中心值。这是默认设置。
  • BILINEAR 将使用双线性插值法根据相邻像元的有效值计算像元值。除非所有相邻像元都为 NoData,否则会在插值时忽略 NoData 值。
Boolean

派生输出

名称说明数据类型
out_point_features

已更新的点要素。

要素类

代码示例

多值提取至点 (ExtractMultiValuesToPoints) 示例 1(Python 窗口)

将多个栅格的像元值提取到 shapefile 点要素类的属性中。

import arcpy
from arcpy.sa import *
from arcpy import env 
env.workspace = "c:/sapyexamples/data"
ExtractMultiValuesToPoints("observers.shp", [["elevation", "ELEV"], 
                           ["costraster", "COST"], ["flowdir", "DIR"]], "NONE")
多值提取至点 (ExtractMultiValuesToPoints) 示例 2(独立脚本)

使用插值法将多个栅格的像元值提取到 shapefile 点要素类的属性中。

# Name: ExtractMultiValuesToPoints_Ex_02.py
# Description: Extracts the cells of multiple rasters as attributes in
#    an output point feature class.  This example takes a multiband IMG
#    and two GRID files as input.
# 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
inPointFeatures = "poi.shp"
inRasterList = [["doqq.img", "doqqval"], ["redstd", "focalstd"], 
                ["redmin", "focalmin"]]

# Execute ExtractValuesToPoints
ExtractMultiValuesToPoints(inPointFeatures, inRasterList, "BILINEAR")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题