注:
目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。
计算密度工具使用输入点要素来计算感兴趣区域内的密度地图。
工作流示意图
使用 GeoAnalytics Tools 进行的分析
通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics Tools 和 ArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别。
示例
- 使用鸟类数量统计来计算物种密度。 然后将密度与土地覆被数据相比较,以确定每个物种喜爱的栖息地。
- 可通过计算飞行路径 GPS 测量结果的密度来确定哪一空域的交通流量较大。
用法说明
计算密度工具要求单个输入点要素。
密度可以选择性地使用一个或多个计数字段进行计算。 计数字段是一个数值字段,用于指定每个位置处的事件点数量。 对于城市或高速公路等要素,在计算人口或交通车道密度时,可以分别使用计数字段。 如果您指定了一个计数字段,除了计算点的密度外,还将计算计数字段的密度。
输入点被聚合成用于分析的条柱。 您必须指定将要聚合数据的条柱大小。 输出结果将以平方英里或平方公里为单位,具体取决于您在配置文件中设置的单位。 这些默认设置可以使用工具参数选择密度的输出单位下拉菜单进行更改。
您可以提供要用于分析的区域图层,也可以生成要聚合到的指定大小和形状(六边形或正方形)的图格。 如果聚合到六边形,则条柱大小 d 为每个六边形的高度,而所生成六边形的宽度为高度除以根号 3 再乘以 2。 如果要聚合到正方形中,则立方图格大小 d 为正方形的高度(等于宽度)。
您必须指定一个大于条柱大小的邻域大小。 邻域大小用于在与感兴趣的要素(条柱)相同的邻域内查找输入要素。
有两种方法可以计算密度:统一选项将计算邻域内所有值的总和并按区域划分。 核选项通过到感兴趣要素的距离来计算邻域中值的权重,并且应用核函数将每个点拟合为光滑锥状表面。
计算密度可用于使用时间步长选择性地进行分析。 每个时间片将独立于时间步长外的要素进行分析。 要使用时间步长,输入数据必须已启用时间且能够表示时刻。 应用时间步长后,输出要素将为字段 START_DATETIME 和 END_DATETIME 表示的时间间隔。
仅返回包含点的立方图格邻域内的区域。
计算密度要求您的区域图层位于投影坐标系中。 如果您的数据没有投影,并且您没有设置投影坐标系,则分析将在世界圆柱等面积投影 (wkid 54034) 中完成。
如果选中使用当前地图范围,则仅对当前地图范围中可见的要素进行分析。如果未选中,则将分析输入图层中的所有输入要素,包括超出当前地图范围的要素。
局限性
只可计算点要素的密度。
ArcGIS API for Python 示例
可通过 ArcGIS API for Python 获取计算密度工具。
本示例可使用 1 千米条柱、2 千米邻域以及 1 天时间步长计算犯罪密度。
# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import analyze_patterns
# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password")
if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported")
exit(1)
# Find the feature layer to use for analysis and only use the features where a burglary occurred
crimes_search_result = portal.content.search("Crimes", "Feature Layer")
crimes_layer = crimes_search_result[0].layers[0]
crimes_layer.filter = "Burglary = 'TRUE'"
# Set the tool environment settings
arcgis.env.process_spatial_reference = 32618
arcgis.env.verbose = True
# Calculate daily crime density using 1-kilometer hexagon bins with a 2-kilometer radius
calculate_density_result = analyze_patterns.calculate_density(input_layer = crimes_layer,
weight = 'Uniform',
bin_type = 'Hexagon',
bin_size = 1,
bin_size_unit = "Kilometers",
time_step_interval = 1,
time_step_interval_unit = "Days",
radius = 2,
radius_unit = "Kilometers",
output_name = "crime_density")
# Visualize the tool results if you are running Python in a Jupyter Notebook
processed_map = portal.map('NYC, NY', 10)
processed_map.add_layer(calculate_density_result)
processed_map
类似工具
使用计算密度通过点测量来创建密度地图。 其他工具或许在解决略有差异的类似问题时十分有用。
Map Viewer 经典版 分析工具
如果要计算线要素的密度或使用标准分析工具,请使用计算密度工具。
如果要在不应用邻域或加权函数的情况下聚合数据,请使用聚合点工具。
如果要在点要素或面要素中查找具有统计显著性的聚类,请使用查找热点工具。
如果要基于点测量预测值,请使用插值点标准工具。