采样 (Spatial Analyst)

摘要

创建一个表或点要素类,其中显示从一个栅格或一组栅格提取的已定义位置的像元值。 该位置由栅格像元、点、折线或面进行定义。

了解有关“采样”工作原理的详细信息

使用情况

  • 系统将从每个位置的所有输入栅格(Python 中的 in_rasters)中提取像元值。 系统将使用包含每个输入栅格像元值的字段创建一个表格或点要素类。

  • 输入栅格表中的其他属性(若有的话)将不会包含在输出表中。

  • 可以将任意栅格组合(单波段或多波段)指定为输入栅格。 如果输入栅格是多维的,输出表的结构会自动发生更改。

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

  • 以下内容可用作输入位置栅格或要素(Python 中的 in_location_data)参数值:

    • 栅格 - 将使用包含有效值(非 NoData)的像元从所有输入栅格中提取像元值,且像元的中心将用作点位置。
    • 点 - 将在每个点位置对值进行采样。
    • 折线或面 - 如果输入是二维栅格或多个栅格,则将计算与每个折线或面相交的所有像元的平均值。 如果输入是多维栅格并且作为多维处理,则可以指定其他统计类型。

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

  • 系统将以输入栅格的原有空间参考和分辨率对其进行采样。 如果存在多个具有不同空间参考的输入栅格,则系统会将输入位置分别投影到每个栅格的空间参考,然后从中提取值。 这意味着输入栅格将不会遵守任何分析环境设置,但将为输入位置应用适当的环境。

  • 默认情况下,除非在输出坐标系环境中已指定不同的输出表或要素类(Python 中的 out_table)参数中 x,y 坐标的空间参考,否则该空间参考将与输入位置栅格或点要素的空间参考相同。 如果输入位置数据的空间参考未知,则 x,y 坐标的空间参考也将是未知的。

    x,y 坐标的空间参考在工具执行结束时作为地理处理消息进行报告。

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

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

  • 如果重采样技术参数设置为最邻近(Python 中的 resampling_type = "NEAREST"),则输出表中的字段类型将与栅格类型的字段类型相匹配。 为了保持内插值的精度,如果重采样选项为双线性三次卷积,则字段类型将始终为浮点型。

  • 将一个字段添加到输出表中,以存储唯一 ID 字段参数(Python 中的 unique_id_field)中指定的值。 默认情况下,字段名称与输入位置数据集名称相同。 建议使用包含唯一值的字段作为每个位置的标识符以供进一步分析。

  • 如果未选中以多维方式处理参数(Python 中的 process_as_multidimensional = "CURRENT_SLICE"),则以下条件适用:

    • 如果输入是多维栅格,则只会对当前切片进行采样。
    • 如果输入是多变量栅格,则只会对当前变量进行采样。

  • 如果选中以多维方式处理参数(Python 中的 process_as_multidimensional = "ALL_SLICES"),则以下条件适用:

    • 如果输入是多维栅格,则将对所有切片进行采样。
    • 如果输入是多变量栅格,则将对所有变量进行采样。
    • 如果输入是具有多个变量的多维栅格,则将对所有变量的所有切片进行采样。 变量必须具有相同的维度。

  • 如果已选中以多维方式处理参数(Python 中的 process_as_multidimensional = "ALL_SLICES"),将应用以下适当的方案:

    • 位置数据的获取信息参数(Python 中的 acquisition_definition)将用于指定要用于采样的输入栅格的子集。

      • 指定维度、开始值和结束值时,将处理开始值和结束值内的切片。 默认的结束值是最大尺寸值。 对于时间维度,请以标准格式指定值。 对于其他维度,请以与输入栅格相同的单位指定值。

      • 指定维度、开始字段和结束字段(开始字段和结束字段来自位置数据)时,这些字段中的值用于在该位置采样值时指定输入栅格的子集。

      • 相对值或之前的天数和相对值之后的天数值可用于指定相对于开始值的子集,其中前者指定子集的开始,后者指定子集的结束。 以天为单位指定时间值,以与输入栅格相同的单位指定其他维度值。

    • 统计数据类型参数(Python 中的 statistics_type)聚合由位置数据的获取信息参数中的子集指定的输入栅格参数的值。

    • 如果未选中列式布局参数(Python 中的 layout = "ROW_WISE"),则提取的值将存储在与变量同名的字段中。 将创建附加字段,以存储与维度的名称相同的非空间维度值。

    • 如果已选中列式布局参数(Python 中的 layout = "COLUMN_WISE"),则提取的值将存储在遵循 <variable_name>_<dimension_name>_<dimension_value> 约定的字段名称中。 请注意,当多维栅格仅包含一个变量,变量仅具有一个维度并且每个剖切具有单个波段时,将支持列式布局参数。 否则,将生成错误消息。

    • 如果多维栅格具有多个波段,则将为每个波段创建一个附加字段,用于存储从该波段提取的值。

    • 从 NoData 像元中提取值的位置将被分配输入多维栅格中的 NoData 值。

  • 多维栅格可以是 netCDF 栅格图层多维栅格图层多维镶嵌数据集、多维 CRF、多维图像服务或 netCDF 文件。 无法从工具对话框中浏览到 netCDF 文件,但可以指定文件路径。

  • 如果已选中生成要素类参数(Python 中的 generate_feature_class = "FEATURE_CLASS"),输出将是带有采样值的点要素类及其属性表。 以下是可能的位置类型,并说明了如何对值进行采样:

    • 栅格 - 将使用像元中心的位置来创建点。
    • 点 - 将在每个点位置处创建一个点。
    • 折线或面 - 将在每个面或折线质心处创建点。

  • 除非在输出坐标系环境中已指定输出要素类的空间参考,否则该空间参考将与输入位置栅格或要素的空间参考相同。

  • 仅当选中以多维方式处理参数时,才支持并行处理因子环境。

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

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

参数

标注说明数据类型
输入栅格

此栅格包含将根据输入位置数据采样的值。

仅当输入为单个多维栅格时,以多维方式处理参数才可用。

Raster Layer
输入位置栅格或要素

标识采样位置的数据。

输入可以是栅格或要素类。

Raster Layer; Feature Layer
输出表或要素类

包含采样像元值的输出表或要素类。

输出格式由输出位置和路径确定。 默认情况下,输出将为地理数据库工作空间中的地理数据库表或地理数据库要素类,或者文件夹工作空间中的 dBASE 表或 shapefile 要素类。

生成表或要素类的输出数据类型由生成要素类参数控制。

Table; Point feature class
重采样技术
(可选)

将用于对栅格进行采样以确定如何从栅格获取值的重采样算法。

  • 最邻近将使用最邻近分配法。 这是默认设置。
  • 双线性将使用双线性插值法。
  • 三次将使用三次卷积插值法。
String
唯一 ID 字段
(可选)

包含输入位置栅格或要素中每个位置或要素不同值的字段。

Field
以多维方式处理
(可选)

指定输入栅格的处理方式。

仅当输入为单个多维栅格时,该参数才可用。

  • 未选中 - 将对多维数据集的当前片进行样本处理。 这是默认设置。
  • 选中 - 将对多维数据集的所有维度(如时间或深度)进行样本处理。
Boolean
位置数据的获取信息
(可选)

指定与位置要素关联的时间、深度或其他采集数据。

仅支持以下组合:

  • 维度 + 开始字段或值
  • 维度 + 开始字段或值 + 结束字段或值
  • 维度 + 开始字段或值 + 相对值或之前的天数 + 相对值或之后的天数

相对值或之前的天数相对值或之后的天数仅支持非负值。

将使用统计数据类型参数计算该维度范围内变量的统计数据。

Value Table
统计类型
(可选)

用于指定要计算的统计数据类型。

  • 最小值将计算指定范围内的最小值。
  • 最大值将计算指定范围内的最大值。
  • 中值将计算指定范围内的中值。
  • 平均值将计算指定范围的平均值。
  • 总和将计算指定范围内的总值。
  • 众数将计算出现最频繁的值。
  • 少数将计算出现最不频繁的值。
  • 标准差将计算标准差。
  • 百分比数将计算指定范围内的定义百分位数。
String
百分比值
(可选)

该值范围可以介于 0 到 100 之间。 默认值为 90。

Double
缓冲区距离字段或值
(可选)

位置数据要素周围的距离。 缓冲距离以位置要素空间参考的线性单位指定。 如果要素使用地理参考,则单位将为度。

将在此缓冲区区域内计算统计数据。

Double; Field
列式布局
(可选)

指定采样值在输出表中将以行还是以列显示。

  • 未选中 - 采样值在输出表中将以单独行显示。 这是默认设置。
  • 选中 - 采样值在输出表中将以单独列显示。 仅当输入多维栅格包含一个变量和一个维度并且每个剖切为单波段栅格时,此选项才有效。
Boolean
生成要素类
(可选)

指定是生成在其表中具有采样值的点要素类,还是仅生成具有采样值的属性表。

  • 未选中 - 将生成具有采样值的表。 这是默认设置。
  • 选中- 将生成带有采样值的点要素类及其属性表。
Boolean

Sample(in_rasters, in_location_data, out_table, {resampling_type}, {unique_id_field}, {process_as_multidimensional}, {acquisition_definition}, {statistics_type}, {percentile_value}, {buffer_distance}, {layout}, {generate_feature_class})
名称说明数据类型
in_rasters
[in_raster,...]

此栅格包含将根据输入位置数据采样的值。

仅在输入为单个多维栅格时,才支持 process_as_multidimensional 参数。

Raster Layer
in_location_data

标识采样位置的数据。

输入可以是栅格或要素类。

Raster Layer; Feature Layer
out_table

包含采样像元值的输出表或要素类。

输出格式由输出位置和路径确定。 默认情况下,输出将为地理数据库工作空间中的地理数据库表或地理数据库要素类,或者文件夹工作空间中的 dBASE 表或 shapefile 要素类。

生成表或要素类的输出数据类型由 generate_feature_class 参数控制。

Table; Point feature class
resampling_type
(可选)

将用于对栅格进行采样以确定如何从栅格获取值的重采样算法。

  • NEAREST将使用最邻近分配法。 这是默认设置。
  • BILINEAR将使用双线性插值法。
  • CUBIC将使用三次卷积插值法。
String
unique_id_field
(可选)

包含输入位置栅格或要素中每个位置或要素不同值的字段。

Field
process_as_multidimensional
(可选)

指定输入栅格的处理方式。

仅当输入为单个多维栅格时,该参数才可用。

  • ALL_SLICES将对多维数据集的所有维度(如时间或深度)进行样本处理。
  • CURRENT_SLICE将对多维数据集的当前片进行样本处理。 这是默认设置。
Boolean
acquisition_definition
[acquisition_definition,...]
(可选)

指定与位置要素关联的时间、深度或其他采集数据。

仅支持以下组合:

  • 维度 + 开始字段或值
  • 维度 + 开始字段或值 + 结束字段或值
  • 维度 + 开始字段或值 + 相对值或之前的天数 + 相对值或之后的天数

Relative value or days beforeRelative value or days after 仅支持非负值。

将使用 statistics_type 参数计算该维度范围内变量的统计数据。

Value Table
statistics_type
(可选)

用于指定要计算的统计数据类型。

  • MINIMUM将计算指定范围内的最小值。
  • MAXIMUM将计算指定范围内的最大值。
  • MEDIAN将计算指定范围内的中值。
  • MEAN将计算指定范围的平均值。
  • SUM将计算指定范围内的总值。
  • MAJORITY将计算出现最频繁的值。
  • MINORITY将计算出现最不频繁的值。
  • STD将计算标准差。
  • PERCENTILE将计算指定范围内的定义百分位数。
String
percentile_value
(可选)

统计数据类型参数设置为百分比数时,要计算的百分比数。

当统计 statistics_type 参数设置为 PERCENTILE 时,要计算的百分比数。

该值范围可以介于 0 到 100 之间。 默认值为 90。

Double
buffer_distance
(可选)

位置数据要素周围的距离。 缓冲距离以位置要素空间参考的线性单位指定。 如果要素使用地理参考,则单位将为度。

将在此缓冲区区域内计算统计数据。

Double; Field
layout
(可选)

指定采样值在输出表中将以行还是以列显示。

  • ROW_WISE采样值在输出表中将以单独行显示。 这是默认设置。
  • COLUMN_WISE采样值在输出表中将以单独列显示。 仅当输入多维栅格包含一个变量和一个维度并且每个剖切为单波段栅格时,此选项才有效。
Boolean
generate_feature_class
(可选)

指定是生成在其表中具有采样值的点要素类,还是仅生成具有采样值的属性表。

  • TABLE将生成具有采样值的表。 这是默认设置。
  • FEATURE_CLASS将生成一个点要素类,其属性表中包含采样值。
Boolean

代码示例

Sample 示例 1(Python 窗口)

从多个栅格中根据输入位置将像元值提取到表中。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
Sample(["elevation", "costraster"], "observers.shp",
       "c:/sapyexamples/output/samptable","NEAREST")
Sample 示例 2(独立脚本)

从多个栅格中根据输入位置将像元值提取到表中。

# Name: Sample_Ex_02.py
# Description: Creates a feature class that shows the values of cells from 
#              rasters, for defined locations. 
#              The locations are defined by a set of points.
#              Sampling method is Bilinear.
# Requirements: Spatial Analyst Extension

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

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

# Set the analysis environments
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRasters = ["elevation",
             "costraster"]
locations = "observers.shp"
outFeatureClass = "c:/sapyexamples/output/samptable02.shp"
sampMethod = "BILINEAR"
generate_feature_class = "FEATURE_CLASS"

# Execute Sample
Sample(inRasters, locations, outFeatureClass, sampMethod, "", "", "", "", "", "", "", generate_feature_class)
采样示例 3(独立脚本)

从多个栅格中根据输入位置将像元值提取到表中。

# Name: Sample_Ex_03.py
# Description: Creates a table that shows the temperature values from 
#              a multidimensional raster, for defined locations. 
#              The locations are defined by a set 
#              of points.
# 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
inRasters = "temperature_1990_2019.nc"
locations = "observers.shp"
outTable = "C:/sapyexamples/output/samptable_03"
sampMethod = ""
uniqueIDField = "FID"
process_as_multidimensional = True

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

# Execute Sample
# the temperature value at each slice in temperature_1990_2019.nc will be extracted for each point
Sample(inRasters, locations, outTable, sampMethod, uniqueIDField, process_as_multidimensional)
采样示例 4(独立脚本)

从多个栅格中根据输入位置将像元值提取到表中。

# Name: Sample_Ex_04.py
# Description: Creates a table that shows, for each polygon, the maximum temperature value within the period [1999-01-01T00:00:00 , 2019-01-01-T00:00:00]
# Requirements: Spatial Analyst Extension

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

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

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

# Set local variables
inRasters = "temperature_1990_2019.nc"
locations = "observers_polygons.shp"
outTable = "C:/sapyexamples/output/samptable_04.dbf"
sampMethod = "BILINEAR"
uniqueIDField = "OBSERVATIONID"
process_as_multidimensional = True
# StdTime in acquisition_definition is the name of the dimension in inRasters that are related with time
# 1999-01-01T00:00:00 in acquisition_definition is the start time of the period
# 2019-01-01-T00:00:00 in acquisition_definition is the end time of the period
acquisition_definition = "StdTime 1999-01-01T00:00:00 2019-01-01-T00:00:00"
statistic_method = "MAXIMUM"

# Execute Sample
# for each polygon in locations, the maximum temperature value within the period [1999-01-01T00:00:00 , 2019-01-01-T00:00:00] will be extracted
Sample(inRasters, locations, outTable, sampMethod, uniqueIDField, process_as_multidimensional, acquisition_definition, statistic_method)

相关主题