计算密度 (GeoAnalytics Desktop)

摘要

根据落入每个单元周围邻域内的点要素计算每单位面积的量级。

了解有关时间步长工作原理的详细信息

插图

计算密度工具图示

使用情况

  • 计算密度工具要求单个输入点要素。

  • 可以使用一个或多个计数字段来计算密度。 计数字段是一个数值字段,用于指定每个位置处的事件点数量。 对于城市或高速公路等要素,在计算人口或交通车道密度时,可以分别使用计数字段。 如果您指定了一个计数字段,除了计算点的密度外,还将计算计数字段的密度。

  • 输入点被聚合成用于分析的图格。 您必须指定将要聚合数据的图格大小。 默认情况下,输出结果将以平方公里为单位。

  • 输入点将聚合到指定大小和形状(六边形或正方形)的立方图格。 如果聚合到六边形,则立方图格大小 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

  • 还可使用以下方法完成相似性分析:

参数

标注说明数据类型
输入图层

用于计算密度的点。

Feature Layer
输出要素类

包含已计算密度的新要素类。

Feature Class
立方图格类型

指定分析中将使用的图格形状。

  • 平方条柱形状将为方形。 这是默认设置。
  • 六边形条柱形状将为六边形。
String
立方图格大小

用于聚合输入要素的条柱尺寸。 生成方形条柱时,由指定的数字和单位决定正方形的高度和长度。 生成六角条柱时,由指定的数字和单位决定平行边之间的距离。

Linear Unit
权重

指定将应用于密度函数的权重。

  • 均匀将使用单位面积的量级计算(所有立方图格的权重均相等)。 这是默认设置。
  • 将使用应用了平滑算法(核)的单位面积的量级计算,权重立方图格离点越近,权重越大。
String
邻域大小

将应用于密度计算的搜索半径。

Linear Unit
字段
(可选)

表示各要素的总体值的一个或多个字段。 总体字段表示遍布于用来创建连续表面的景观内的计数或数量。

总体字段中的值必须为数字。 默认情况下,将始终计算输入点计数的密度。

Field
面积单位比例因子
(可选)

指定将用于输出密度值的面积单位。 默认单位基于输出空间参考的单位。

  • 国际英亩面积单位将为国际英亩。
  • 公顷面积单位将为公顷。
  • 法定平方英里面积单位将为平方法定英里。
  • 平方千米面积单位将为平方千米。
  • 平方米面积单位将为平方米。
  • 国际平方英尺面积单位将为国际平方英尺。
  • 国际平方码面积单位将为国际平方码。
  • 美国测量平方英里面积单位为美国测量平方英里。
  • 美国测量平方英尺面积单位为美国测量平方英尺。
  • 美国测量平方码面积单位为美国测量平方码。
  • 美国测量英亩面积单位将为美国测量英亩。
String
时间步长间隔
(可选)

用来指定时间步长持续时间的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。

只有对输入启用了时间的情况下,才可应用时间步长。

Time Unit
时间步长重复
(可选)

用来指定时间步长间隔发生频率的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。

Time Unit
时间步长参考
(可选)

用来指定时间步长所要对齐的参考时间的日期。 默认情况下为 1970 年 1 月 1 日 12:00 a.m.。只有在输入点启用了时间且表示时刻时,此参数才可用。

Date

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

指定分析中将使用的图格形状。

  • SQUARE条柱形状将为方形。 这是默认设置。
  • HEXAGON条柱形状将为六边形。
String
bin_size

用于聚合输入要素的条柱尺寸。 生成方形条柱时,由指定的数字和单位决定正方形的高度和长度。 生成六角条柱时,由指定的数字和单位决定平行边之间的距离。

Linear Unit
weight

指定将应用于密度函数的权重。

  • UNIFORM将使用单位面积的量级计算(所有立方图格的权重均相等)。 这是默认设置。
  • KERNEL将使用应用了平滑算法(核)的单位面积的量级计算,权重立方图格离点越近,权重越大。
String
neighborhood_size

将应用于密度计算的搜索半径。

Linear Unit
fields
[fields,...]
(可选)

表示各要素的总体值的一个或多个字段。 总体字段表示遍布于用来创建连续表面的景观内的计数或数量。

总体字段中的值必须为数字。 默认情况下,将始终计算输入点计数的密度。

Field
area_unit_scale_factor
(可选)

指定将用于输出密度值的面积单位。 默认单位基于输出空间参考的单位。

  • ACRES面积单位将为国际英亩。
  • HECTARES面积单位将为公顷。
  • SQUARE_MILES面积单位将为平方法定英里。
  • SQUARE_KILOMETERS面积单位将为平方千米。
  • SQUARE_METERS面积单位将为平方米。
  • SQUARE_FEET面积单位将为平方英尺。
  • SQUARE_YARDS面积单位将为平方码。
  • SQUARE_MILES_US面积单位为美国测量平方英里。
  • SQUARE_FEET_US面积单位为美国测量平方英尺。
  • SQUARE_YARDS_US面积单位为美国测量平方码。
  • ACRES_US面积单位将为美国测量英亩。
String
time_step_interval
(可选)

用来指定时间步长持续时间的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。

只有对输入启用了时间的情况下,才可应用时间步长。

Time Unit
time_step_repeat
(可选)

用来指定时间步长间隔发生频率的值。 只有在输入点启用了时间且表示时刻时,此参数才可用。

Time Unit
time_step_reference
(可选)

用来指定时间步长所要对齐的参考时间的日期。 默认情况下为 1970 年 1 月 1 日 12:00 a.m.。只有在输入点启用了时间且表示时刻时,此参数才可用。

Date

代码示例

CalculateDensity 示例(独立脚本)

以下独立脚本演示了如何使用 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)