ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

核密度分析

需要 Spatial Analyst 许可。

  • 摘要
  • 插图
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

使用核函数根据点或折线要素计算每单位面积的量值以将各个点或折线拟合为光滑锥状表面。

了解有关核密度分析工作原理的详细信息

插图

Kernel Density illustration
OutRas = KernelDensity(InPts, None, 30)

用法

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

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

  • 如果相对于要素(点间距离或线段长度,取决于要素类型)来说,面积单位比例因子的单位较小,则输出值可能会很小。要获取较大的值,请选择单位较大的面积单位比例因子(例如,平方千米与平方米)。

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

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

  • 密度计算依赖于准确的距离和面积计算。在大多数情况下,建议使用 GEODESIC 方法。如果要对投影准确保留了正确距离和面积的本地区域执行分析,可使用 PLANAR 方法。请参阅了解有关地理和投影坐标系的详细信息以确定适用的投影。

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

语法

KernelDensity (in_features, population_field, {cell_size}, {search_radius}, {area_unit_scale_factor}, {out_cell_values}, {method})
参数说明数据类型
in_features

要计算密度的输入要素(点或线)。

Feature Layer
population_field

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

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

以下列出的是该字段的选项和默认特性。

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

  • 如果输入要素包含 Z,则可以使用 形状。

  • 否则,默认字段为 POPULATION。以下条件同样适用。

    • 如果没有 POPULATION 字段,但是存在 POPULATIONxxxx 字段,则默认使用此字段。其中 xxxx 可以为任何有效字符,例如 POPULATION6、POPULATION1974 或 POPULATIONROADTYPE。
    • 如果没有 POPULATION 字段或 POPULATIONxxxx 字段,但是存在 POP 字段,则默认使用此字段。
    • 如果没有 POPULATION、POPULATIONxxxx 或 POP 字段,但是存在 POPxxxx 字段,则默认使用此字段。
    • 如果没有 POPULATION、POPULATIONxxxx、POP 或 POPxxxx 字段,则默认使用 NONE。
Field
cell_size
(可选)

输出栅格数据集的像元大小。

如果特别设置,则为环境中的值。如果未设置环境,单元大小则为输出空间参考中输出范围的宽度或高度较小值除以 250。

Analysis Cell Size
search_radius
(可选)

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

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

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

Double
area_unit_scale_factor
(可选)

输出密度值的所需面积单位。

基于输出空间参考的线性单位选择默认单位。若要转换密度输出,可将此单位更改为合适的单位。线密度值同时转换长度和面积单位。

未指定输出空间参考的情况下,输出空间参考与输入要素类相同。默认输出密度单位通过输出空间参考的线性单位确定,如下所示。如果输出线性单位是米,输出面积密度单位将设置为 SQUARE_KILOMETERS,输出平方千米(点要素)或千米每平方千米(折线要素)。如果输出线性单位是英尺,输出面积密度单位将设置为 SQUARE_MILES。

如果输出单位不是英尺和米,输出面积密度单位将设置为 SQUARE_MAP_UNITS。即,输出密度单位为输出空间参考的线性单位的平方。例如,如果输出线性单位是厘米,输出面积密度单位将是 SQUARE_MAP_UNITS,即平方厘米。如果输出线性单位是千米,输出面积密度单位将是 SQUARE_MAP_UNITS,即平方千米。

可用选项及相应的输出密度单位如下:

  • SQUARE_MAP_UNITS — 用于输出空间参考的线性单位的平方。
  • SQUARE_MILES — 英里(美国)。
  • SQUARE_KILOMETERS — 千米。
  • ACRES —英亩(美国)。
  • HECTARES —公顷。
  • SQUARE_YARDS —码(美国)。
  • SQUARE_FEET —英尺(美国)。
  • SQUARE_INCHES — 英寸(美国)。
  • SQUARE_METERS —米。
  • SQUARE_CENTIMETERS — 厘米。
  • SQUARE_MILLIMETERS — 毫米。
String
out_cell_values
(可选)

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

  • DENSITIES —输出值表示预测的密度值。这是默认设置。
  • EXPECTED_COUNTS —输出值表示每个像元中预测的现象数量。由于像元值链接到指定像元大小,因此无法将生成的栅格重新采样为不同像元大小,它仍然表示现象的数量。
String
method
(可选)

确定是使用椭球体上的最短路径(测地线)还是使用地平(平面)方法。强烈建议将测地线方法用于在不适合进行距离测量的坐标系(例如 Web 墨卡托或任何地理坐标系)中存储的数据,以及任何地理区域跨度较大的分析。

  • PLANAR —在要素之间使用平面距离。这是默认设置。
  • GEODESIC —在要素之间使用测地线距离。这种方法考虑到椭球体的曲率,并可以正确处理两极和国际日期变更线附近的数据。
String

返回值

名称说明数据类型
out_raster

输出核密度栅格。

总为浮点栅格。

Raster

代码示例

核密度 (KernelDensity) 示例 1(Python 窗口)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outKDens = KernelDensity("rec_sites.shp", "NONE", 45, 1200, "SQUARE_KILOMETERS")
outKDens.save("C:/sapyexamples/output/kdensout")
核密度 (KernelDensity) 示例 2(独立脚本)

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

# Name: KernelDensity_Ex_02.py
# Description: Calculates a magnitude per unit area from point or polyline 
#    features using a kernel function to fit a smoothly tapered 
#    surface to each point or polyline.
# Requirements: Spatial Analyst Extension

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

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

# Set local variables
inFeatures = "rec_sites.shp"
populationField = "NONE"
cellSize = 60
searchRadius = 2500


# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute KernelDensity
outKernelDensity = KernelDensity(inFeatures, populationField, cellSize,
                                 searchRadius, "SQUARE_KILOMETERS")

# Save the output 
outKernelDensity.save("C:/sapyexamples/output/kerneldout")

环境

  • 自动提交
  • 像元大小
  • 当前工作空间
  • 范围
  • 地理变换
  • 掩膜
  • 输出配置关键字
  • 输出坐标系
  • 临时工作空间
  • 捕捉栅格
  • 分块大小

许可信息

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

相关主题

  • 密度分析工具集概述

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明