标注 | 说明 | 数据类型 |
输入栅格 | 此栅格包含将根据输入位置数据采样的值。 仅当输入为单个多维栅格时,以多维方式处理参数才可用。 | 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 |
使用情况
系统将从每个位置的所有输入栅格(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。
参数
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 (可选) | 将用于对栅格进行采样以确定如何从栅格获取值的重采样算法。
| String |
unique_id_field (可选) | 包含输入位置栅格或要素中每个位置或要素不同值的字段。 | Field |
process_as_multidimensional (可选) | 指定输入栅格的处理方式。 仅当输入为单个多维栅格时,该参数才可用。
| Boolean |
acquisition_definition [acquisition_definition,...] (可选) | 指定与位置要素关联的时间、深度或其他采集数据。 仅支持以下组合:
Relative value or days before 和 Relative value or days after 仅支持非负值。 将使用 statistics_type 参数计算该维度范围内变量的统计数据。 | Value Table |
statistics_type (可选) | 用于指定要计算的统计数据类型。
| String |
percentile_value (可选) | 当统计数据类型参数设置为百分比数时,要计算的百分比数。 当统计 statistics_type 参数设置为 PERCENTILE 时,要计算的百分比数。 该值范围可以介于 0 到 100 之间。 默认值为 90。 | Double |
buffer_distance (可选) | 位置数据要素周围的距离。 缓冲距离以位置要素空间参考的线性单位指定。 如果要素使用地理参考,则单位将为度。 将在此缓冲区区域内计算统计数据。 | Double; Field |
layout (可选) | 指定采样值在输出表中将以行还是以列显示。
| Boolean |
generate_feature_class (可选) | 指定是生成在其表中具有采样值的点要素类,还是仅生成具有采样值的属性表。
| Boolean |
代码示例
从多个栅格中根据输入位置将像元值提取到表中。
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")
从多个栅格中根据输入位置将像元值提取到表中。
# 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)
从多个栅格中根据输入位置将像元值提取到表中。
# 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)
从多个栅格中根据输入位置将像元值提取到表中。
# 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)