计算核密度比 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

使用两个输入要素数据集计算空间相对风险表面。 该比率中的分子代表案例,例如犯罪数量或患者人数,而分母代表对照,例如总人口。

使用情况

  • 此工具使用与核密度工具相同的计算来创建密度表面。 核密度计算核密度比工具的输出可能看起来很相似;但是,计算核密度比工具的输出是归一化的值,这意味着它显示的是一个比例值。 核密度工具的输出并非如此。 当正在分析的现象需要对照(例如总人口)的时候,请使用密度比。

    在计算比率之前,将使用核密度工具计算各个密度表面。

  • Population 字段中的值过大或过小都会导致结果看起来并不直观。 如果 population 字段的平均值远大于 1(例如,城市人口),则默认搜索半径可能会非常小,导致在输入点周围生成很小的环。 如果总体字段的平均值远小于 1,则计算的搜索半径看起来可能会非常大。 在这些情况下,您可提供搜索半径。

  • 输出像元大小参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果没有将像元大小明确指定为参数值,则将从像元大小环境获取相应值(前提是已指定环境)。 如果未指定参数像元大小和环境像元大小,但已设置捕捉栅格环境,则将使用捕捉栅格的像元大小。 如果未指定任何内容,则像元大小会通过使用范围的宽度或高度中的较小值除以 250 来计算,其中范围位于在环境中指定的输出坐标系内。

  • 如果使用数值指定像元大小,则工具会直接将其用于输出栅格。

    如果使用栅格数据集指定像元大小,则该参数将显示栅格数据集的路径而不是像元大小的值。 如果数据集的空间参考与输出空间参考相同,则栅格数据集的像元大小将直接用于分析。 如果数据集的空间参考与输出空间参考不同,将根据指定的像元大小方法值进行投影。

  • 搜索半径值越大,密度栅格越平滑且概化程度越高。 值越小,生成的栅格所显示的信息越详细。

  • 默认搜索半径是基于空间配置和输入点数计算的。 此方法可更正空间异常值(距离其他输入点非常远的点),这样将不会导致搜索半径过大。

  • 输出像元值(Python 中的 out_cell_values)参数可指定输出栅格值表示的内容。 如果选择密度值,则这些值将表示每个像元每单位面积的核密度值。 如果选择预期计数,则这些值将表示每像元面积的核密度。 根据密度值计算计数的公式为:计数 = 密度 × 面积。

  • 如果要对投影准确保留了正确距离和面积的局部范围执行分析,则可以使用方法(Python 中的 method)参数中的平面选项。 如果要以区域或大比例执行分析(例如,使用 Web Mercator 或任何地理坐标系),则可使用测地线选项。 这种方法考虑到椭球体的曲率,并可以正确处理两极和国际日期变更线附近的数据。

  • 计算密度时,仅考虑落入邻域范围内的点或线段。 如果没有点或线段落入特定像元的邻域范围内,则会为该像元分配 NoData。

  • 对于支持 Null 值的数据格式,例如文件地理数据库要素类,在将 Null 值用作输入时,该值将被忽略。

  • 作为分母的输入点或折线要素(Python 中的 in_features_denominator)为零时,该要素搜索半径内的输出结果将为NoData。

  • 默认输出坐标系基于作为分子的输入点或折线要素(Python 中 in_features_numerator)。

    分子搜索半径(Python 中的 search_radius_numerator)和分母搜索半径(Python 中的 search_radius_denominator)的默认值基于作为分子的输入点或折线要素的输出坐标系的线性单位。 如果使用“输出坐标系”环境设置,则分子搜索半径分母搜索半径参数值将基于“输出坐标系”环境设置的线性单位。

    默认分析范围是作为分子的输入点或折线要素范围与作为分母的输入点或折线要素范围的交集。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

  • 参考:

    Silverman, B. W. Density Estimation for Statistics and Data Analysis. New York: Chapman and Hall, 1986.

参数

标注说明数据类型
作为分子的输入点或折线要素

将为其计算密度的示例中的输入要素(点或线)。

Feature Layer
作为分母的输入点或折线要素

将为其计算密度的控件中的输入要素(点或线)。

Feature Layer
分子 Population 字段

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

如果不使用任何项目或特殊值,则选择 OID 或 FID,这样每一要素就只计数一次。

总体字段的值可以是整型或浮点型。

如果输入要素包含 z 值,则可以使用 Shape 字段。

Field
分母 Population 字段

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

如果不使用任何项目或特殊值,则选择 OID 或 FID,这样每一要素就只计数一次。

总体字段的值可以是整型或浮点型。

如果输入要素包含 z 值,则可以使用 Shape 字段。

Field
输出像元大小
(可选)

将创建的输出栅格的像元大小。

此参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果未将像元大小明确指定为参数值,则将使用环境像元大小值(如果已指定);否则,将使用其他规则通过其他输出计算像元大小。 有关详细信息,请参阅用法部分。

Analysis Cell Size
分子搜索半径
(可选)

在其范围内计算密度的搜索半径。 单位基于输出空间参考投影的线性单位。

例如,如果单位为米,若要包含一英里邻域内的所有要素,可将搜索半径设置为 1609.344(1 英里 = 1609.344 米)。

使用“Silverman 经验规则”(Silverman,1986 年版)的空间变量专为输入数据集计算默认搜索半径,该变量足够强大,可避免空间异常值(距离其余点太远的点)。 有关该算法的描述,请参阅使用提示。

Double
分母搜索半径
(可选)

在其范围内计算密度的搜索半径。 单位基于输出空间参考投影的线性单位。

例如,如果单位为米,若要包含一英里邻域内的所有要素,可将搜索半径设置为 1609.344(1 英里 = 1609.344 米)。

使用“Silverman 经验规则”(Silverman,1986 年版)的空间变量专为输入数据集计算默认搜索半径,该变量足够强大,可避免空间异常值(距离其余点太远的点)。 有关该算法的描述,请参阅使用提示。

Double
输出像元值
(可选)

指定输出栅格中的值的含义。

由于像元值链接到指定像元大小,因此无法将生成的栅格重新采样为不同像元大小。

  • 密度输出值表示为每个像元计算的每单位面积的密度值。 这是默认设置。
  • 预期计数输出值表示所计算的每单位面积的密度值。
String
方法
(可选)

指定将使用地平(平面)距离还是椭球体上的最短路径(测地线)距离。

测地线方法仅支持作为输入要素的点。

  • 平面将使用要素之间的平面距离。 这是默认设置。
  • 测地线将使用要素之间的测地线距离。
String
分子的输入障碍要素
(可选)

定义障碍的数据集。

障碍可以是折线或面要素的要素图层。

Feature Layer
分母的输入障碍要素
(可选)

定义障碍的数据集。

障碍可以是折线或面要素的要素图层。

Feature Layer

返回值

标注说明数据类型
输出栅格

输出核密度栅格。

总为浮点栅格。

Raster

CalculateKernelDensityRatio(in_features_numerator, in_features_denominator, population_field_numerator, population_field_denominator, {cell_size}, {search_radius_numerator}, {search_radius_denominator}, {out_cell_values}, {method}, {in_barriers_numerator}, {in_barriers_denominator})
名称说明数据类型
in_features_numerator

将为其计算密度的示例中的输入要素(点或线)。

Feature Layer
in_features_denominator

将为其计算密度的控件中的输入要素(点或线)。

Feature Layer
population_field_numerator

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

如果不使用任何项目或特殊值,则选择 OID 或 FID,这样每一要素就只计数一次。

总体字段的值可以是整型或浮点型。

如果输入要素包含 z 值,则可以使用 Shape 字段。

Field
population_field_denominator

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

如果不使用任何项目或特殊值,则选择 OID 或 FID,这样每一要素就只计数一次。

总体字段的值可以是整型或浮点型。

如果输入要素包含 z 值,则可以使用 Shape 字段。

Field
cell_size
(可选)

将创建的输出栅格的像元大小。

此参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果未将像元大小明确指定为参数值,则将使用环境像元大小值(如果已指定);否则,将使用其他规则通过其他输出计算像元大小。 有关详细信息,请参阅用法部分。

Analysis Cell Size
search_radius_numerator
(可选)

在其范围内计算密度的搜索半径。 单位基于输出空间参考投影的线性单位。

例如,如果单位为米,若要包含一英里邻域内的所有要素,可将搜索半径设置为 1609.344(1 英里 = 1609.344 米)。

使用“Silverman 经验规则”(Silverman,1986 年版)的空间变量专为输入数据集计算默认搜索半径,该变量足够强大,可避免空间异常值(距离其余点太远的点)。 有关该算法的描述,请参阅使用提示。

Double
search_radius_denominator
(可选)

在其范围内计算密度的搜索半径。 单位基于输出空间参考投影的线性单位。

例如,如果单位为米,若要包含一英里邻域内的所有要素,可将搜索半径设置为 1609.344(1 英里 = 1609.344 米)。

使用“Silverman 经验规则”(Silverman,1986 年版)的空间变量专为输入数据集计算默认搜索半径,该变量足够强大,可避免空间异常值(距离其余点太远的点)。 有关该算法的描述,请参阅使用提示。

Double
out_cell_values
(可选)

指定输出栅格中的值的含义。

  • DENSITIES输出值表示为每个像元计算的每单位面积的密度值。 这是默认设置。
  • EXPECTED_COUNTS输出值表示所计算的每单位面积的密度值。

由于像元值链接到指定像元大小,因此无法将生成的栅格重新采样为不同像元大小。

String
method
(可选)

指定将使用地平(平面)距离还是椭球体上的最短路径(测地线)距离。

  • PLANAR将使用要素之间的平面距离。 这是默认设置。
  • GEODESIC将使用要素之间的测地线距离。

测地线方法仅支持作为输入要素的点。

String
in_barriers_numerator
(可选)

定义障碍的数据集。

障碍可以是折线或面要素的要素图层。

Feature Layer
in_barriers_denominator
(可选)

定义障碍的数据集。

障碍可以是折线或面要素的要素图层。

Feature Layer

返回值

名称说明数据类型
out_raster

输出核密度栅格。

总为浮点栅格。

Raster

代码示例

CalculateKernelDensityRatio 示例 1(Python 窗口)

本示例根据点 shapefile 来计算平滑的密度比栅格。

from arcpy import env 
from arcpy.sa import * 
env.workspace = r"C:/sapyexamples/data" 
outKDenRa = CalculateKernelDensityRatio("rec_sites.shp", "rec_sites.shp", "Crime", "POP", 45, 1200, 1200, "", "GEODESIC") 
outKDenRa.save(r"C:/sapyexamples/output/KD_out.tif")
CalculateKernelDensityRatio 示例 2(独立脚本)

本示例根据点 shapefile 来计算平滑的密度比栅格。

# Name: CalculateKernelDensityRatio_Ex_02.py 
# Description: Calculates the ozone concentration per population of each county out of 
#              Sierra Nevada Mountain in California 
#              based on the two point samples using a kernel function to 
#              fit a smoothly tapered surface of density ratio. 
# Requirements: Spatial Analyst Extension 

# Import system modules 
import arcpy 
from arcpy import env 
from arcpy.sa import * 

# Set environment settings 
env.workspace = r"C:/sapyexamples/data" 

# Set local variables 
inFeatures1 = "ozone_california.shp" 
inFeatures2 = "pop_california.shp" 
populationField1 = "OZONE" 
populationField2 = "POP" 
cellSize = 60 
searchRadius1 = 2500 
searchRadius2 = 500 
inBarriers1 = "SierraNevada.shp" 
inBarriers2 = "county.shp" 

# Execute CalculateKernelDensityRatio 
outKernelDensityRatio = CalculateKernelDensityRatio(inFeatures1, inFeatures2, populationField1, populationField2,
                                                    cellSize, searchRadius1, searchRadius2, "DENSITIES", "PLANAR",
                                                    inBarriers1, inBarriers2) 

# Save the output  
outKernelDensityRatio.save(r"C:/sapyexamples/output/KD_ozone_california.tif")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题