标注 | 说明 | 数据类型 |
输入研究区域 | 将在其中创建样本位置的输入研究区域。 研究区域必须是面或整型(分类)栅格。 对于栅格,空值像元将不包括在研究区域内。 | Feature Layer; Raster Layer |
输出要素 | 表示样本位置的输出要素。 对于简单随机和分层采样,输出要素将为点。 对于聚类采样,输出要素将为面。 对于系统采样,输出要素将为点或面。 | Feature Class |
采样方法 (可选) | 指定将用于创建样本位置的采样方法。
| String |
分层 ID 字段 (可选) | 对于按分层 ID 字段分层采样,用于定义层的层 ID 字段。 | Field |
分层采样计数分配方法: (可选) | 对于分层采样,指定将用于确定每个层中将创建的样本位置数量的方法。
| String |
图格形状 (可选) | 对于系统和聚类采样,请指定将在格网化细分曲面中生成的面的形状。
| String |
图格大小 [计数或面积] (可选) | 对于系统和聚类采样,细分曲面中每个面的大小。 该值可以以计数(在研究区域中创建的细分曲面的总数)或面积(每个细分曲面的面积)的形式提供。 对于计数输入,默认值为 100。 对于面积输入,必须提供一个值。 如果提供了计数,工具将尝试创建指定数量的样本位置。 如果无法创建确切数量,将返回警告。 | Areal Unit; Long |
H3 分辨率 (可选) | 对于使用 H3 六边形图格的系统或聚类采样,指定六边形的 H3 分辨率。 随着分辨率值的增加,多边形的面积将是其大小的七分之一。
| Long |
样本数 (可选) | 将创建的采样位置数量。 此参数始终适用于简单随机采样和聚类采样。 对于分层采样,当样本计数与层面积成比例或与总体字段成比例时,此参数适用。 对于简单随机采样和分层采样,默认值为 100。 对于聚类采样,默认值为 10。 | Long |
每个层级的样本数 (可选) | 对于每个层中样本计数相等的分层采样,将在每个层内创建的样本位置数量。 样本总数将是此值乘以层数。 默认值为 100。 | Long |
总体字段 (可选) | 总体字段:当样本计数等于或与总体字段成比例时,用于分层采样的总体字段。 | Field |
输出几何类型 (可选) | 对于系统采样,指定样本位置将是细分曲面还是细分曲面的质心(点)。
| String |
样本点之间的最小距离 (可选) | 对于简单随机采样和分层采样,样本位置之间允许的最小距离。 对于简单随机采样,所有点将至少相距此距离。 对于分层采样,同一层内的点将至少相距此距离,但相邻层内的点可能距离小于此距离。 对于较大的距离,为了保持位置足够远,可能会创建的样本位置数量少于预期。 在这种情况下,将返回警告消息。 | Linear Unit |
空间关系 (可选) | 指定背景细分曲面中的哪些面将作为采样位置包含在内。 当输出几何类型为面时,此参数适用于聚类采样和系统采样。
| String |
摘要
利用简单随机、分层、系统(格网化)或聚类采样设计,在连续的研究区域内创建样本位置。
采样是指从总体中选择个体进行研究并对整个总体进行推断的过程。 连续空间采样将总体视为一个连续区域,可以从中抽取任何位置或区域作为样本。 例如,您可以使用此工具在密集森林中为树木创建样本位置,或者在农田中收集土壤湿度测量值。 此工具不适用于采样离散总体,如家庭、动物或城市。
插图
![创建空间抽样位置工具示意图 创建空间抽样位置工具示意图](GUID-3C58437B-D557-41B2-A094-04104FB09EE2-web.png)
使用情况
输入研究区域必须是面要素类或整数(分类)栅格。 您还可以使用交互式要素输入在地图上绘制研究区域。 对于栅格,空值像元不会被视为研究区域的一部分。
可以为以下主要采样设计创建样本位置:
- 简单随机采样 - 在研究区域内随机创建样本点。 研究区域内的每个位置被选为样本位置的可能性相同。 研究区域将被视为单一区域,所有面或栅格类别之间的边界都将被忽略(例如,一个州内所有县的面要素类将定义与整个州的单个面相同的研究区域)。 在需要调查整个研究区域,但没有任何位置比其他位置更重要的情况下,简单随即采样非常有用。 要执行简单随机采样,需要为采样方法参数指定简单随机选项。
- 示例应用:如果研究区域是密集森林,假设每个位置都有一棵树,则可以使用简单随机采样在森林内随机采样树木。
- 分层随机采样 - 通过将研究区域划分为不同的层(如土壤类别或土地利用类型)并在每个层内单独执行简单随机采样,来创建样本点。 当希望确保在样本中表示所有层时,分层随机采样将非常有用。 要执行分层随机采样,需要为采样方法参数指定三个分层选项之一(有关每种分层类型的信息,请参阅下一个使用提示)。
- 示例应用:如果一个国家公园被划分为不同的海拔等级,则可以使用分层随机采样分别为每个海拔等级收集土壤样本。 这样可以确保对公园所有海拔层面均进行充分的土壤采样。
- 系统采样 - 在研究区域内,以格网化的非随机模式创建样本位置。 格网通过规则形状面(如六边形、正方形或三角形)的细分曲面创建。 样本位置可以作为细分曲面或点(细分曲面的质心)返回。 如需确保对研究区域任何部分的采样都不会多于其他部分,系统采样将非常有用,这在目标是创建样本地图(而非对整个研究区域进行推断)时,通常是可取的。 要执行系统采样,需要为采样方法参数指定系统选项。
- 示例应用:为了研究海洋区域的海底,可以创建一个六边形格网的样本位置来采样海洋植物种类。
- 聚类采样 - 通过创建系统样本并从细分曲面中随机选择一些面,创建样本面。 生成的面称为聚类,通常会对聚类进行彻底研究,在每个聚类内尽可能多地采样。 当您感兴趣的是样本在短距离内如何相互作用,并且可以接受大部分研究区域没有样本时,聚类采样将非常有用。 要执行聚类采样,需要为采样方法参数指定聚类选项。
- 示例应用:在采样昆虫群落时,可以使用聚类采样创建小型散点区域,并对所有该聚类内的昆虫群落进行采样。
- 简单随机采样 - 在研究区域内随机创建样本点。 研究区域内的每个位置被选为样本位置的可能性相同。 研究区域将被视为单一区域,所有面或栅格类别之间的边界都将被忽略(例如,一个州内所有县的面要素类将定义与整个州的单个面相同的研究区域)。 在需要调查整个研究区域,但没有任何位置比其他位置更重要的情况下,简单随即采样非常有用。 要执行简单随机采样,需要为采样方法参数指定简单随机选项。
对于分层采样,可以按照以下所述三种方式定义层。 每种方式都是采样方法参数的一个选项。
- 按单个面分层 - 面要素类中的每条记录是一个不同的层。 例如,如果研究区域是一个包含作为单独面存储的子地块的田地,将为每个子地块单独创建样本点。 输入的研究区域必须是面。
- 按连续栅格区域分层 - 整数(分类)栅格的每个区域将是一个层。 栅格区域是具有相同值(来自 Value 字段)且通过共享像元边界连接的连续像元块。 如果两个区域具有相同的值但彼此断开,则它们将是不同的层。 输入的研究区域必须是栅格。
- 按分层 ID 字段分层 - 所有具有相同层 ID 值的面或栅格像元将是一个层。 要属于同一层,面或栅格像元无需连续。 提供包含层 ID 值的字段在分层 ID 字段参数中。 字段必须为整型或文本字段。
可以针对分层样本计数分配方法参数使用以下选项之一来指定每个层中将创建的样本数量:
- 每个层级中的计数相等 - 每个层中将创建相同数量的样本。 在每个层级的样本数参数中提供该值。
- 计数与层级面积成比例 - 层中的样本数量将与层的大小成比例。 在样本数参数中提供总样本数量,总计数将根据其面积比例分配给每个层。
- 计数等于总体字段 - 每个层中的样本数量将等于总体字段的值。 在总体字段参数中提供该字段。 该字段不能包含负值,并且必须是整数类型。
- 计数与总体字段成比例 - 每个层中的样本数量将与总体字段的值成比例。 在总体字段参数中提供该字段,并在样本数参数中提供样本总数。
- 按单个面分层 - 面要素类中的每条记录是一个不同的层。 例如,如果研究区域是一个包含作为单独面存储的子地块的田地,将为每个子地块单独创建样本点。 输入的研究区域必须是面。
您也可以使用该工具创建以下高级采样设计,这些设计不能用作采样方法参数的显式选项:
- 两阶段聚类采样 - 首先创建聚类样本,然后在每个聚类中创建点(简单随机、分层或系统),以在研究区域内创建点聚类。 当需要聚类样本但无法全面研究每个聚类面时,这种采样设计将非常有用。 当您主要关注样本在短距离内如何相互作用时,这种设计也非常有用。 要进行两阶段聚类采样,需首先使用工具创建聚类样本;然后使用聚类面作为输入研究区域,以在简单随机、分层或系统采样设计中使用。
- 混合(复合)采样 - 根据不同的采样设计创建单独的采样位置,然后将它们合并成单一数据集。 例如,将简单随机样本和两阶段聚类样本结合起来,将在整个研究区域(简单随机)内创建采样位置,同时也包括具有更多点的小型图面(两阶段聚类)。 这将非常有用,因为单独的简单随机采样可能会错过样本在短距离内的相互作用,但两阶段聚类采样会使研究区域的大面积内没有样本位置。 通过结合这两种方法,您可以确保整个研究区域都有样本表示,同时还能调查样本在短距离内的相互作用。
如果无法创建指定数量的样本位置,将返回警告。 这可能发生在以下情况:
- 样本点之间的最小距离参数的值过大,以至于如果某些点之间的距离小于最小距离,则无法在研究区域(或层)内创建指定数量的样本位置。 在这种情况下,创建的位置数量将少于指定的数量。
- 如果以计数值提供图格大小参数,不总是可以在研究区域内创建指定数量的样本位置。 工具将尝试不同的面积值,并使用创建样本计数最接近指定值的面积。 将以地理处理消息的形式返回面积(输出坐标系单位)和生成的样本位置数量。
如果指定的参数没有创建任何样本位置(例如使用不与研究区域相交的输出范围),将返回错误。
对于系统和聚类采样以及任何图格形状(除 H3 六边形之外),细分曲面的第一个面的质心将在输出范围的左下角创建。 对于 H3 六边形,六边形位置是固定的。 对于所有图格形状,您可以使用空间关系参数返回相交、完全位于研究区域内或质心位于研究区域内的面。
如果您按层 ID 字段分层并使用总体字段(相等或成比例),则每个层的总体将是层中每个面或栅格类别的总体字段值之和。
如果按连续栅格区域分层,则无法使用总体字段。 这是因为每个总体字段值代表一个栅格类别的总总体,即使该类别由多个不相连的区域组成。 要在按连续栅格区域分层时使用总体字段,需使用栅格转面工具将栅格转换为面,并为每个面分配总体值(例如,按每个区域的像元数比例分配每个类别的总体)。
如果将范围环境与面研究区域配合使用,则与该范围相交的任何面都将包含在研究区域中,并且将在整个面内创建采样位置,即使其超出所提供的范围也是如此。
对于按面积或总体字段成比例分层采样的样本计数,使用“最大剩余法”确保总样本计数不会因四舍五入而改变。
参数
arcpy.management.CreateSpatialSamplingLocations(in_study_area, out_features, {sampling_method}, {strata_id_field}, {strata_count_method}, {bin_shape}, {bin_size}, {h3_resolution}, {num_samples}, {num_samples_per_strata}, {population_field}, {geometry_type}, {min_distance}, {spatial_relationship})
名称 | 说明 | 数据类型 |
in_study_area | 将在其中创建样本位置的输入研究区域。 研究区域必须是面或整型(分类)栅格。 对于栅格,空值像元将不包括在研究区域内。 | Feature Layer; Raster Layer |
out_features | 表示样本位置的输出要素。 对于简单随机和分层采样,输出要素将为点。 对于聚类采样,输出要素将为面。 对于系统采样,输出要素将为点或面。 | Feature Class |
sampling_method (可选) | 指定将用于创建样本位置的采样方法。
| String |
strata_id_field (可选) | 对于按分层 ID 字段分层采样,用于定义层的层 ID 字段。 | Field |
strata_count_method (可选) | 对于分层采样,指定将用于确定每个层中将创建的样本位置数量的方法。
| String |
bin_shape (可选) | 对于系统和聚类采样,请指定将在格网化细分曲面中生成的面的形状。
| String |
bin_size (可选) | 对于系统和聚类采样,细分曲面中每个面的大小。 该值可以以计数(在研究区域中创建的细分曲面的总数)或面积(每个细分曲面的面积)的形式提供。 对于计数输入,默认值为 100。 对于面积输入,必须提供一个值。 如果提供了计数,工具将尝试创建指定数量的样本位置。 如果无法创建确切数量,将返回警告。 | Areal Unit; Long |
h3_resolution (可选) | 对于使用 H3 六边形图格的系统或聚类采样,指定六边形的 H3 分辨率。 随着分辨率值的增加,多边形的面积将是其大小的七分之一。
| Long |
num_samples (可选) | 将创建的采样位置数量。 此参数始终适用于简单随机采样和聚类采样。 对于分层采样,当样本计数与层面积成比例或与总体字段成比例时,此参数适用。 对于简单随机采样和分层采样,默认值为 100。 对于聚类采样,默认值为 10。 | Long |
num_samples_per_strata (可选) | 对于每个层中样本计数相等的分层采样,将在每个层内创建的样本位置数量。 样本总数将是此值乘以层数。 默认值为 100。 | Long |
population_field (可选) | 总体字段:当样本计数等于或与总体字段成比例时,用于分层采样的总体字段。 | Field |
geometry_type (可选) | 对于系统采样,指定样本位置将是细分曲面还是细分曲面的质心(点)。
| String |
min_distance (可选) | 对于简单随机采样和分层采样,样本位置之间允许的最小距离。 对于简单随机采样,所有点将至少相距此距离。 对于分层采样,同一层内的点将至少相距此距离,但相邻层内的点可能距离小于此距离。 对于较大的距离,为了保持位置足够远,可能会创建的样本位置数量少于预期。 在这种情况下,将返回警告消息。 | Linear Unit |
spatial_relationship (可选) | 指定背景细分曲面中的哪些面将作为采样位置包含在内。 当输出几何类型为面时,此参数适用于聚类采样和系统采样。
| String |
代码示例
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Create 50 sampling locations in the dissolved California counties.
import arcpy
arcpy.management.CreateSpatialSamplingLocations(
in_study_area="CA_counties",
out_features="outputSamplingLocations"
sampling_method="RANDOM",
strata_id_field=None,
strata_count_method="EQUAL",
bin_shape="HEXAGON",
bin_size=None,
h3_resolution=7,
num_samples=50,
num_samples_per_strata=100,
population_field=None,
geometry_type="POINT",
min_distance="15 NauticalMilesInt",
spatial_relationship = "HAVE_THEIR_CENTER_IN"
)
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Simple random sampling
# Create 50 sample points in a polygon study area.
# Import system modules.
import arcpy
# Allow overwriting output.
arcpy.env.overwriteOutput = True
# Define study area and output features.
inputStudyArea = "C:/samplingdata/inputs.gdb/study_area_polygons"
outputFeatures = "C:/samplingdata/outputs.gdb/out_samples_SRS"
# Define the sampling method and number of samples.
samplingMethod = "RANDOM"
numSamples=50
# Define the minimum distance between any two points.
minDistance= "15 NauticalMilesInt"
# Run tool.
try:
arcpy.management.CreateSpatialSamplingLocations(inputStudyArea, outputFeatures,
samplingMethod, "", "", "", "", "", numSamples, "", "", "",
minDistance)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Stratify by individual polygons
# Create 100 sample points in each polygon.
# Import system modules.
import arcpy
# Allow overwriting output.
arcpy.env.overwriteOutput = True
# Define the study area and output features.
inputStudyArea = "C:/samplingdata/inputs.gdb/study_area_polygons"
outputFeatures = "C:/samplingdata/outputs.gdb/out_samples_SBIP"
# Define the sampling method.
samplingMethod = "STRAT_POLY"
# Create 100 samples in each polygon.
strataCountMethod = "EQUAL"
numSamplesPerStrata=100
# Define the minimum distance between any two points in the same polygon.
minDistance= "15 Meters"
# Run tool.
try:
arcpy.management.CreateSpatialSamplingLocations(inputStudyArea, outputFeatures,
samplingMethod, "", strataCountMethod, "", "", "", "",
numSamplesPerStrata, "", "", minDistance)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Stratify by contiguous raster region
# Create 100 points in a raster study area with number of samples in
# each region proportional to the area of the region.
# Import system modules.
import arcpy
# Allow overwriting output.
arcpy.env.overwriteOutput = True
# Define the study area and output features.
inputStudyArea = "C:/samplingdata/raster_study_area.tif"
outputFeatures = "C:/samplingdata/outputs.gdb/out_samples_SBCRR"
# Define the sampling method.
samplingMethod = "STRAT_RAST"
# Create 100 points and allocate proportionally to the area of the regions.
strataCountMethod = "PROP_AREA"
numSamples=100
# Run tool.
try:
arcpy.management.CreateSpatialSamplingLocations(inputStudyArea, outputFeatures,
samplingMethod, "", strataCountMethod, "", "", "", numSamples)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Stratify by strata ID field
# Create sample points in each land use category of a raster.
# Use a population field to define the number of samples in each category.
# Import system modules.
import arcpy
# Allow overwriting output.
arcpy.env.overwriteOutput = True
# Define the study area and output features.
inputStudyArea = "C:/samplingdata/land_use_raster.tif"
outputFeatures = "C:/samplingdata/outputs.gdb/out_samples_SBSIDF"
# Define the sampling method.
samplingMethod = "STRAT_ID"
# All raster cells with the same value are in the same stratum.
strataIDField = "LandUse"
# Define the number of samples using a population field.
strataCountMethod = "FIELD"
populationField="Population"
# Run tool.
try:
arcpy.management.CreateSpatialSamplingLocations(inputStudyArea, outputFeatures,
samplingMethod, strataIDField, strataCountMethod, "", "", "",
"", "", populationField)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Systematic sampling
# Create sample points in a hexagonal tessellation in a polygon study area.
# Import system modules.
import arcpy
# Allow overwriting output.
arcpy.env.overwriteOutput = True
# Define the study area and output features.
inputStudyArea = "C:/samplingdata/inputs.gdb/study_area_polygons"
outputFeatures = "C:/samplingdata/outputs.gdb/out_samples_SYS"
# Define the sampling method.
samplingMethod = "SYSTEMATIC"
# Create points in a hexagonal tessellation.
binShape = "HEXAGON"
binSize = "10000 SquareFeet"
outputGeometryType = "POINT"
# Run tool.
try:
arcpy.management.CreateSpatialSamplingLocations(inputStudyArea, outputFeatures,
samplingMethod, "", "", binShape, binSize, "", "", "", "",
outputGeometryType)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
以下 Python 脚本演示了如何使用 CreateSpatialSamplingLocations 函数。
# Cluster sampling
# Create 100 cluster polygons that are diamond shaped.
# Import system modules.
import arcpy
# Allow overwriting output.
arcpy.env.overwriteOutput = True
# Define the study area and output features.
inputStudyArea = "C:/samplingdata/inputs.gdb/study_area_polygons"
outputFeatures = "C:/samplingdata/outputs.gdb/out_samples_CLUST"
# Define the sampling method.
samplingMethod = "CLUSTER"
# Create a diamond tessellation and randomly choose 100 polygons.
binShape = "DIAMOND"
binSize = "1000000 SquareFeet"
numSamples=100
spatialRelationship = "INTERSECT"
# Run tool.
try:
arcpy.management.CreateSpatialSamplingLocations(inputStudyArea, outputFeatures,
samplingMethod, "", "", binShape, binSize, "", numSamples, "",
"", "", "", spatialRelationship)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是