多值提取至点 (空间分析)

摘要

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

使用情况

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

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

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

  • 不会根据分析环境对输入栅格进行重采样。 相反,将通过将输入位置投影到从中提取值的栅格空间参考,以原始分辨率和空间参考从所有输入栅格中提取像元值。

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

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

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

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

  • 如果输入点要素值为点要素类且不包含空间索引,将发出一则警告。 要提升具有大量点的输入的工具性能,请创建空间索引。 有关详细信息,请参阅添加空间索引工具。

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

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

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

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

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

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

  • 在点位置进行双线性插值(Python 中的 bilinear_interpolate_values)参数指定是否使用插值方法从栅格获取值。 默认选项为在输入位置提取准确的像元值。 要使用双线性插值方法提取插值,请选中此参数(Python 中的 bilinear_interpolate_values = "BILINEAR")。

  • 如果在掩膜环境中指定了要素,则将使用输入栅格的最小像元大小来创建内部栅格。 在提取期间,内部掩膜栅格再次被重新采样为每个输入栅格的像元大小。

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

参数

标注说明数据类型
输入点要素

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

Feature Layer
输入栅格

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

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

Extract Values
在点位置进行双线性插值
(可选)

指定是否使用插值。

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

派生输出

标注说明数据类型
更新后的点要素

更新后的点要素。

Feature Class

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

更新后的点要素。

Feature Class

代码示例

多值提取至点 (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")