标注 | 说明 | 数据类型 |
输入图层 | 用于计算密度的点。 | Feature Layer |
输出要素类 | 包含已计算密度的新要素类。 | Feature Class |
立方图格类型 | 指定分析中将使用的图格形状。
| String |
立方图格大小 | 用于聚合输入要素的条柱尺寸。 生成方形条柱时,由指定的数字和单位决定正方形的高度和长度。 生成六角条柱时,由指定的数字和单位决定平行边之间的距离。 | Linear Unit |
权重 | 指定将应用于密度函数的权重。
| String |
邻域大小 | 将应用于密度计算的搜索半径。 | Linear Unit |
字段 (可选) | 表示各要素的总体值的一个或多个字段。 总体字段表示遍布于用来创建连续表面的景观内的计数或数量。 总体字段中的值必须为数字。 默认情况下,将始终计算输入点计数的密度。 | Field |
面积单位比例因子 (可选) | 指定将用于输出密度值的面积单位。 默认单位基于输出空间参考的单位。
| String |
时间步长间隔 (可选) | 用来指定时间步长持续时间的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。 只有对输入启用了时间的情况下,才可应用时间步长。 | Time Unit |
时间步长重复 (可选) | 用来指定时间步长间隔发生频率的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。 | Time Unit |
时间步长参考 (可选) | 用来指定时间步长所要对齐的参考时间的日期。 默认情况下为 1970 年 1 月 1 日 12:00 a.m.。只有在输入点启用了时间且表示时刻时,此参数才可用。 | Date |
插图
使用情况
-
计算密度工具要求单个输入点要素。
-
可以使用一个或多个计数字段来计算密度。 计数字段是一个数值字段,用于指定每个位置处的事件点数量。 对于城市或高速公路等要素,在计算人口或交通车道密度时,可以分别使用计数字段。 如果您指定了一个计数字段,除了计算点的密度外,还将计算计数字段的密度。
-
输入点被聚合成用于分析的图格。 您必须指定将要聚合数据的图格大小。 默认情况下,输出结果将以平方公里为单位。
-
输入点将聚合到指定大小和形状(六边形或正方形)的立方图格。 如果聚合到六边形,则立方图格大小 d 为每个六边形的高度,而所生成六边形的宽度为高度除以根号 3 再乘以 2。 如果要聚合到正方形,则立方图格大小 d 为正方形的高度(等于宽度)。
-
您必须指定一个大于立方图格大小的邻域大小。 邻域大小将用于在与感兴趣的要素(立方图格)相同的邻域内查找输入要素。
邻域大小值越大,则生成的密度输出的概化程度越高。 值越小,生成的输出所显示的信息越详细。
在计算密度时,仅考虑落入邻域范围内的点。 如果没有点落入特定像元的邻域范围内,则该像元将不会被赋值。
-
有两种权重选项可以计算密度:均匀选项将计算邻域内所有值的总和并按区域划分。 核选项通过到感兴趣要素的距离来计算邻域中值的权重,并且应用核函数将每个点拟合为光滑锥状表面。
-
仅返回包含点的立方图格邻域内的区域。
如果面积单位比例因子的单位相对于点间距非常小,则输出值可能也很小。 要获得较大的值,请使用单位较大的面积单位比例因子(例如,平方千米优先于平方米使用)。
使用条柱的分析要求您的输入已投影或输出坐标系设置为投影坐标系。 如果您的数据不在投影坐标系中,并且未设置投影坐标系,则将根据您分析的数据范围使用投影。
密度值始终为浮点型。
-
计算密度可用于使用时间步长进行分析。 每个时间步长将独立于时间步长外的要素进行分析。 要使用时间步长,输入数据必须已启用时间且能够表示时刻。 应用时间步长后,输出要素将为字段表示的时间间隔。
在使用时间步长分析输入要素时,每个时间步长将独立于时间步长之外的要素进行分析。
时间步长参考参数可以是日期和时间值或仅为日期值,但不可仅为时间值。
下列字段也包含在输出要素中:
字段名 描述 density
给定面的密度。 将以指定单位比例因子返回此字段值。
density_<fieldname>
由给定字段加权的密度。 仅在指定一个或多个字段时返回。
start_date
指定时间步长后,输出面将有一个时间间隔。 该字段表示开始时间。
end_date
指定时间步长后,输出面将有一个时间间隔。 该字段表示结束时间。
您可以通过执行以下一个或多个操作来提升计算密度工具的性能:
- 设置范围环境,以便仅分析感兴趣的数据。
- 较大的立方图格比较小的立方图格性能更佳。 如果不确定使用哪种大小,可从较大的立方图格开始原型化。
- 与立方图格类似,较大的时间步长比较小的时间步长性能更佳。
- 将邻域大小的比率降低到立方图格大小。 邻域大小为立方图格大小 3 倍比为立方图格大小 10 倍时性能更佳。
- 将本地数据用于分析运行的位置。
此地理处理工具由 Spark 支持。 分析在您的台式计算机上使用多核并行完成。 有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项。
运行 GeoAnalytics Desktop 工具时,分析在您的台式计算机上完成。 为获得最佳性能,应在台式计算机上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果数据不是本地数据,则工具需要更长的运行时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools。
还可使用以下方法完成相似性分析:
- GeoAnalytics Desktop 工具箱或 GeoAnalytics Server 工具箱中的聚合点
- Spatial Analyst 工具箱中的点密度工具
- Spatial Analyst 工具箱中的核密度工具
- 标准要素分析工具箱中的计算密度工具
参数
arcpy.geoanalytics.CalculateDensity(input_layer, out_feature_class, bin_type, bin_size, weight, neighborhood_size, {fields}, {area_unit_scale_factor}, {time_step_interval}, {time_step_repeat}, {time_step_reference})
名称 | 说明 | 数据类型 |
input_layer | 用于计算密度的点。 | Feature Layer |
out_feature_class | 包含已计算密度的新要素类。 | Feature Class |
bin_type | 指定分析中将使用的图格形状。
| String |
bin_size | 用于聚合输入要素的条柱尺寸。 生成方形条柱时,由指定的数字和单位决定正方形的高度和长度。 生成六角条柱时,由指定的数字和单位决定平行边之间的距离。 | Linear Unit |
weight | 指定将应用于密度函数的权重。
| String |
neighborhood_size | 将应用于密度计算的搜索半径。 | Linear Unit |
fields [fields,...] (可选) | 表示各要素的总体值的一个或多个字段。 总体字段表示遍布于用来创建连续表面的景观内的计数或数量。 总体字段中的值必须为数字。 默认情况下,将始终计算输入点计数的密度。 | Field |
area_unit_scale_factor (可选) | 指定将用于输出密度值的面积单位。 默认单位基于输出空间参考的单位。
| String |
time_step_interval (可选) | 用来指定时间步长持续时间的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。 只有对输入启用了时间的情况下,才可应用时间步长。 | Time Unit |
time_step_repeat (可选) | 用来指定时间步长间隔发生频率的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。 | Time Unit |
time_step_reference (可选) | 用来指定时间步长所要对齐的参考时间的日期。 默认情况下为 1970 年 1 月 1 日 12:00 a.m.。只有在输入点启用了时间且表示时刻时,此参数才可用。 | Date |
代码示例
以下独立脚本演示了如何使用 CalculateDensity 函数。
# Name: CalculateDensity.py
# Description: Calculate density using the count of points as well as the severity
# value of outbreaks by week.
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/HealthInfo.gdb"
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\outbreaks.lyrx'
# MakeFeatureLayer converts the .lyrx to features
outbreaksLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "outbreaks_layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(outbreaksLayer, inputLyrx)
# By default, the count of points will be used in addition to any other fields
# that are specified
fields = "Severity"
# Set the size of bins and neighborhood and the time step size
binSize = "1 Kilometers"
neighborhoodSize = "2 Kilometers"
timeStepInterval = "1 Weeks"
# Specify output info
out = "OutbreakDensity"
# Run Calculate Density
arcpy.gapro.CalculateDensity(outbreaksLayer, out, 'HEXAGON', binSize,
'UNIFORM', neighborhoodSize, fields,
'SQUARE_KILOMETERS', timeStepInterval)