插图
使用方法
计算密度工具要求单个输入点要素。
密度可以选择性地使用一个或多个计数字段进行计算。计数字段是一个数值字段,用于指定每个位置处的事件点数量。对于城市或高速公路等要素,在计算人口或交通车道密度时,可以分别使用计数字段。如果您指定了一个计数字段,除了计算点的密度外,还将计算计数字段的密度。
输入点被聚合成用于分析的图格。您必须指定将要聚合数据的图格大小。默认情况下,输出结果将以平方公里为单位。
输入点将聚合到指定大小和形状(六边形或正方形)的立方图格。如果聚合到六边形,则立方图格大小 d 为每个六边形的高度,而所生成六边形的宽度为高度除以根号 3 再乘以 2。如果要聚合到正方形,则立方图格大小 d 为正方形的高度(等于宽度)。
您必须指定一个大于立方图格大小的邻域大小。邻域大小用于在与感兴趣的要素(立方图格)相同的邻域内查找输入要素。
邻域大小数值越大,生成的密度输出的概化程度便越高。值越小,生成的输出所显示的信息越详细。
计算密度时,仅考虑落入邻域范围内的点。如果没有点落入特定像元的邻域范围内,则该像元不会被赋值。
有两种权重选项可以计算密度:均匀选项将计算邻域内所有值的总和并按区域划分。核选项通过到感兴趣要素的距离来计算邻域中值的权重,并且应用核函数将每个点拟合为光滑锥状表面。
仅返回包含点的立方图格邻域内的区域。
如果面积单位比例因子的单位相对于点间距非常小,则输出值可能也很小。要获得较大的值,请使用单位较大的面积单位比例因子(例如,平方千米优先于平方米使用)。
计算密度要求您的区域图层位于投影坐标系中。如果您的数据没有投影,并且您没有设置投影坐标系,则分析将在世界圆柱等面积投影 (WKID 54034) 中完成。
密度值始终为浮点型。
计算密度可用于使用时间步长选择性地进行分析。每个时间步长将独立于时间步长外的要素进行分析。要使用时间步长,输入数据必须已启用时间且能够表示时刻。应用时间步长后,输出要素将为字段表示的时间间隔。
在使用时间步长分析输入要素时,每个时间步长将独立于时间步长之外的要素进行分析。
时间步长参考参数可以是日期和时间值或仅为日期值,但不可仅为时间值。
下列字段也包含在输出要素中:
字段名 描述 density
给定面的密度。将以指定单位比例因子返回此字段值。
density_<fieldname>
由给定字段加权的密度。仅在指定一个或多个字段时返回。
start_datetime
指定时间步长后,输出面将有一个时间间隔。该字段表示开始时间。
end_datetime
指定时间步长后,输出面将有一个时间间隔。该字段表示结束时间。
您可以使用以下一个或多个提示来提升计算密度工具的性能:
- 设置范围环境,以便仅分析感兴趣的数据。
- 较大的立方图格比较小的立方图格性能更佳。如果不确定使用哪种大小,可从较大的立方图格开始原型化。
- 与立方图格类似,较大的时间步长比较小的时间步长性能更佳。
- 将邻域大小的比率降低到立方图格大小。邻域大小为立方图格大小三倍比为立方图格大小 10 倍时性能更佳。
- 将本地数据用于分析运行的位置。
此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。
当 GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS Pro 到 GeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。
还可使用以下方法完成相似性分析:
- GeoAnalytics Desktop 工具箱或 GeoAnalytics Server 工具箱中的聚合点
- Spatial Analyst 工具箱中的点密度工具
- Spatial Analyst 工具箱中的核密度工具
- 标准要素分析工具箱中的计算密度工具
语法
CalculateDensity(input_layer, output_name, bin_type, bin_size, weight, neighborhood_size, {fields}, {area_unit_scale_factor}, {time_step_interval}, {time_step_repeat}, {time_step_reference}, {data_store})
参数 | 说明 | 数据类型 |
input_layer | 用于计算密度的点。 | Feature Set |
output_name | 输出要素服务的名称。 | String |
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 |
data_store (可选) | 指定将用于保存输出的 ArcGIS Data Store。默认为 SPATIOTEMPORAL_DATA_STORE。存储在 SPATIOTEMPORAL_DATA_STORE 中的所有结果都将存储于 WGS84 中。存储在 RELATIONAL_DATA_STORE 中的所有结果都将保持各自的坐标系。
| String |
派生输出
名称 | 说明 | 数据类型 |
output | 落入每个单元周围邻域内的点要素的每单位面积量级。 | 要素集 |
代码示例
以下 Python 窗口脚本演示了如何使用 CalculateDensity 工具。
#-------------------------------------------------------------------------------
# Name: Calculate Density.py
# Description: Calculate density using the count of points as well as the severity
# value of outbreaks by week.
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
# This example used a big data file share name "HealthInfo" with dataset
# "Outbreaks" registered on a GeoAnalytics server
inFeatures = "https://MyGeoAnalyticsMachine.domain.com/geoanalytics/rest/services/DataStoreCatalogs/bigDataFileShares_HealthInfo/BigDataCatalogServer/Outbreaks"
# 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
outFS = "OutbreakDenisty"
dataStore = "SPATIOTEMPORAL_DATA_STORE"
# Execute Calculate Density
arcpy.geoanalytics.CalculateDensity(inFeatures, outFS, 'HEXAGON', binSize,
'UNIFORM', neighborhoodSize, fields,
'SQUARE_KILOMETERS', timeStepInterval, None,
None, dataStore)
环境
- 输出坐标系
将用于分析的坐标系。除非由该参数进行指定,否则将基于输入坐标系完成分析。对于 GeoAnalytics 工具,最终结果将存储于 WGS84 中的时空数据存储之内。
许可信息
- Basic: 需要 ArcGIS GeoAnalytics Server
- Standard: 需要 ArcGIS GeoAnalytics Server
- Advanced: 需要 ArcGIS GeoAnalytics Server