标注 | 说明 | 数据类型 |
输入研究区域 | 将在其中创建样本位置的输入研究区域。 研究区域必须是面或整数(分类)栅格。 对于栅格,具有空值的像元将不会包含在研究区域中。 | 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 |
Population 字段 (可选) | 当样本计数等于或与群体字段成比例时,分层采样的群体字段。 | Field |
输出几何类型 (可选) | 对于系统采样,指定样本位置是细分曲面还是细分曲面的质心(点)。
| String |
采样点之间的最小距离 (可选) | 对于简单随机和分层采样,样本位置之间允许的最小距离。 对于简单随机采样,所有点之间的距离至少为这个距离。 对于分层采样,同一层级内的点将至少相距此距离,但相邻层级中的点可能会比此距离更近。 对于长距离,可以创建比预期更少的样本位置以保持位置足够远。 在这种情况下,将返回一条警告消息。 | Linear Unit |
空间关系 (可选) | 指定背景细分曲面中的哪些面将作为采样位置包含在内。 当输出几何类型为面时,此参数适用于聚类采样和系统采样。
| String |
摘要
使用简单的随机、分层、系统(格网化)或聚类采样设计在连续研究区域内创建样本位置。
采样是从群体中选择个体以对其进行研究并对整个群体做出推断的过程。 连续空间采样将群体视为一个连续区域,可以从其中的任何位置或区域进行采样。 例如,您可以使用此工具为茂密森林中的树木创建样本位置或收集农田中的土壤湿度测量值。 该工具不适用于对离散群体(例如家庭、动物或城市)进行采样。
插图
使用情况
输入研究区域必须是面要素类或整数(分类)栅格。 您还可以使用交互式要素输入在地图上绘制研究区域。 对于栅格,具有空值的像元将不会被视为研究区域的一部分。
可以为以下主要采样设计创建样本位置:
- 简单随机采样 - 在研究区域内随机创建样本点。 研究区域中的每个位置被选为样本位置的可能性相同。 研究区域将被视为单个区域,并且面或栅格类别之间的所有边界都将被忽略(例如,一个州内所有县的面要素类将同一研究区域定义为整个州的单个面) 当您想要调查整个研究区域时,简单随机采样非常有用,但对于采样而言,没有哪个位置比任何其他位置更重要。 要执行简单随机采样,请选择采样方法参数的简单随机选项。
- 应用示例:如果研究区域是一片茂密的森林,可以假设每个位置都有一棵树,则可以使用简单随机采样对森林内的树木进行随机采样。
- 分层随机采样 - 通过将研究区域划分为不同的分层(例如土壤类别或土地利用类型)并在每个分层内分别执行简单随机采样来创建样本点。 当您想要确保样本中包含所有分层时,分层随机采样非常有用。 要执行分层随机采样,请选择采样方法参数的三个分层选项之一(有关每种分层类型的信息,请参阅下一个使用提示)。
- 应用示例:如果将国家公园划分为不同的高程等级,则可以采用分层随机采样的方式分别采集每个高程等级的土壤样本。 这确保了公园所有高程都有足够的土壤采样。
- 系统采样 - 在研究区域内以格网化、非随机模式创建样本位置。 格网是通过规则形状的面(例如六边形、正方形或三角形)的细分曲面创建而成。 样本位置可以作为细分曲面或点(细分曲面的质心)返回。 系统采样有助于确保研究区域的任何部分的采样数量均不超过其他部分,当目标是创建样本地图而不是对整个研究区域进行推断时,这通常是可取的。 要执行系统采样,请选择采样方法参数的系统选项。
- 应用示例:要研究海洋区域的海底,您可以创建样本位置的六边形格网来对海洋植物物种进行采样。
- 聚类采样 - 通过创建系统样本并从细分曲面中随机选择一些面来创建样本面。 生成的面称为聚类,通常会对这些聚类进行详尽的研究,在每个聚类内尽可能多地进行采样。 当您最感兴趣样本如何在短距离内相互作用时,聚类采样非常有用,并且研究区域的大部分区域没有样本也是可以接受的。 要执行聚类采样,请选择采样方法参数的聚类选项。
- 应用示例:在对昆虫群落进行采样时,可以使用聚类采样来创建一个图的小区域,并对聚类内的所有昆虫群落进行采样。
- 简单随机采样 - 在研究区域内随机创建样本点。 研究区域中的每个位置被选为样本位置的可能性相同。 研究区域将被视为单个区域,并且面或栅格类别之间的所有边界都将被忽略(例如,一个州内所有县的面要素类将同一研究区域定义为整个州的单个面) 当您想要调查整个研究区域时,简单随机采样非常有用,但对于采样而言,没有哪个位置比任何其他位置更重要。 要执行简单随机采样,请选择采样方法参数的简单随机选项。
对于分层采样,您可以通过三种方式定义分层。 每个都可用作采样方法参数的选项:
- 按单个面分层 - 面要素类中的每条记录都是不同的层级。 例如,如果研究区域是一个田地,其子图存储为单独的面,则将为每个子图单独创建样本点。 输入研究区域必须是面。
- 按连续栅格区域分层 - 整数(分类)栅格的每个区域都将是一个层级。 栅格区域是具有相同值(来自 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: 是