GIS开发强度分析图怎么做?ArcGIS空间自相关分析与可视化教程(附:Moran’s I指数计算代码)

GIS基础理论
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

《GIS开发强度分析图怎么做?ArcGIS空间自相关分析与可视化教程(附:Moran’s I指数计算代码)》这篇教程面向正在做城市建设用地、开发强度、土地利用强度或规划评估的 GIS 用户,重点解决一个具体问题:如何在 ArcGIS 中把开发强度指标做成空间分布图,并进一步用 Moran’s I 指数判断它是否存在空间集聚。

引言:GIS开发强度分析图到底要表达什么

GIS开发强度分析图通常不是简单地把地块或街道填上颜色,而是要回答三个问题:

  • 哪些区域开发强度高,哪些区域开发强度低?
  • 高强度区域是否相邻集聚,还是随机分布?
  • 这种空间格局能否用空间自相关分析进行量化验证?

在实际项目中,开发强度可以来自容积率、建筑密度、建设用地比例、单位面积建筑面积、人口建设强度等指标。本文以“行政区或网格单元中的开发强度字段”为例,演示如何制作 GIS开发强度分析图,并使用 ArcGIS 空间自相关分析计算 Moran’s I 指数。

GIS开发强度分析图与ArcGIS空间自相关分析流程示意
GIS开发强度分析图制作与 ArcGIS 空间自相关分析的基本流程。

背景:为什么开发强度图不能只看分级设色

很多同学在 ArcGIS 中做开发强度分析时,会直接使用“分级色彩”符号系统,把开发强度字段做成一张深浅颜色图。这个步骤是必要的,但还不够。

原因在于,颜色图只能告诉我们数值高低,却不能严格说明“高值是否在空间上集聚”。例如:

  • 几个高开发强度单元如果连在一起,可能说明城市核心区扩张明显。
  • 高值和低值交错出现,可能说明开发强度空间差异破碎。
  • 高值看似集中,但如果没有统计检验,结论容易停留在主观判断。

因此,一个较完整的 GIS开发强度分析图工作流,通常包括两类结果:

  1. 开发强度空间分布图:用于展示开发强度的高低格局。
  2. 空间自相关分析结果:用于判断开发强度是否存在显著空间集聚。

原理:ArcGIS空间自相关分析与 Moran’s I 指数

空间自相关是指空间位置相近的对象,其属性值是否也相似。对于开发强度分析来说,它关心的是:高开发强度区域是否更容易靠近高开发强度区域,低开发强度区域是否更容易靠近低开发强度区域。

Moran’s I 是最常用的全局空间自相关指标之一。在 ArcGIS 中,可以通过“空间统计工具箱”中的“空间自相关(Moran’s I)”工具计算。

Moran’s I 的结果通常可以这样理解:

  • Moran’s I > 0:相似值倾向于空间集聚,例如高值靠近高值、低值靠近低值。
  • Moran’s I < 0:相似值倾向于空间离散,例如高值与低值交错分布。
  • Moran’s I 接近 0:空间分布更接近随机。
  • p 值较小且 z 得分绝对值较大:说明空间格局具有统计显著性。

注意:Moran’s I 不是用来判断某个单元“是否热点”的工具,它评价的是整个研究区的全局空间格局。如果要识别具体高值集聚区,应进一步使用热点分析 Getis-Ord Gi* 或聚类和异常值分析 Anselin Local Moran’s I。

步骤:GIS开发强度分析图制作流程

步骤一:准备开发强度数据

首先需要准备一个面要素图层,例如行政区、街道、社区、地块或规则网格。属性表中至少应包含一个开发强度字段。

常见字段示例:

字段名 含义 适用场景
FAR 容积率 地块开发强度分析
BUILD_RATIO 建筑密度 城市建成区形态分析
DEV_INTENSITY 综合开发强度指数 多指标加权评价
BUA_PER_AREA 单位面积建筑面积 街道或网格尺度分析

如果你的数据中还没有开发强度字段,可以先使用字段计算器计算。例如:

开发强度 = 建筑总面积 / 单元面积

如果使用的是建设用地比例,也可以计算为:

开发强度 = 建设用地面积 / 单元总面积

计算前要确认面积单位一致,尤其是图层坐标系不能使用经纬度坐标直接算面积。

步骤二:检查投影坐标系和面积单位

开发强度分析经常涉及面积、距离和邻接关系,因此建议使用适合研究区的投影坐标系。中国区域项目常见做法包括使用 CGCS2000 高斯克吕格投影、地方城市坐标系或项目指定投影坐标系。

在 ArcGIS Pro 中可按以下方式检查:

  1. 右键图层,打开“属性”。
  2. 查看“源”或“空间参考”。
  3. 确认单位是否为米,而不是度。
  4. 如果是 GCS_WGS_1984、CGCS2000 地理坐标系等经纬度坐标,应先投影。

投影工具路径:

数据管理工具箱 → 投影和变换 → 要素 → 投影

步骤三:制作开发强度分级设色图

完成字段准备后,可以先制作 GIS开发强度分析图的基础版,即分级设色图。

  1. 在 ArcGIS Pro 中加载面要素图层。
  2. 右键图层,选择“符号系统”。
  3. 主符号系统选择“分级色彩”。
  4. 字段选择开发强度字段,例如 DEV_INTENSITY。
  5. 分类方法可选择自然间断点、分位数或等间距。
  6. 设置 5 到 7 个等级,颜色建议使用由浅到深的单色渐变。

如果目标是规划汇报图,建议同时标注高值区名称或叠加道路、水系、行政边界等参考图层。但不要叠加过多图层,否则开发强度主题会被削弱。

步骤四:运行 ArcGIS 空间自相关分析

打开 ArcGIS Pro 的地理处理工具,搜索“空间自相关”或“Spatial Autocorrelation”。工具路径一般为:

空间统计工具箱 → 分析模式 → 空间自相关(Moran's I)

关键参数建议如下:

参数 建议设置 说明
输入要素类 开发强度面图层 行政区、地块或网格图层
输入字段 DEV_INTENSITY 用于计算空间自相关的开发强度字段
生成报告 勾选 便于查看 Moran’s I、z 得分和 p 值
空间关系概念化 面邻接或固定距离范围 根据分析单元类型选择
距离方法 欧氏距离 投影坐标下常用
标准化 行标准化 常用于邻居数量不均衡的情况

如果分析单元是规则网格,可以优先考虑“固定距离范围”。如果分析单元是行政区或地块,可以考虑“边或角邻接”或“边邻接”。

步骤五:解读 Moran’s I 输出结果

ArcGIS 空间自相关分析运行后,会输出一个统计报告,通常包括 Moran’s I 指数、期望指数、方差、z 得分和 p 值。

解读时不要只看 Moran’s I 的正负,还要结合 z 得分和 p 值:

  • 如果 Moran’s I 为正,z 得分较大,p 值较小,说明开发强度存在显著高高或低低集聚趋势。
  • 如果 Moran’s I 为负,z 得分为负且显著,说明高低值交错分布明显。
  • 如果 p 值不显著,即使 Moran’s I 为正,也不宜直接下“明显集聚”的结论。

一个规范的文字描述可以写成:

基于开发强度字段进行全局 Moran’s I 空间自相关分析,结果显示开发强度在研究区内呈现正向空间自相关。结合 z 得分和 p 值判断,该格局具有统计显著性,说明高开发强度单元与高开发强度单元、低开发强度单元与低开发强度单元之间存在空间集聚趋势。

步骤六:进一步制作热点或局部集聚图

全局 Moran’s I 只能告诉你整体是否集聚。如果要在 GIS开发强度分析图上标出具体的高值集聚区和低值集聚区,可以继续做局部空间统计。

常用工具有两个:

  • 热点分析 Getis-Ord Gi*:适合识别高值热点和低值冷点。
  • 聚类和异常值分析 Anselin Local Moran’s I:适合识别高高、低低、高低、低高四类空间关系。

如果论文或报告需要解释“高开发强度核心区在哪里”,建议在全局 Moran’s I 后增加热点分析图或 Local Moran’s I 聚类图。

步骤:Moran’s I指数计算代码示例

如果希望批量处理多个开发强度字段,或者把结果写入自动化流程,可以使用 ArcPy 调用 ArcGIS 的空间统计工具。下面代码适用于已安装 ArcGIS Pro 并可正常使用 ArcPy 的 Python 环境。

import arcpy

arcpy.env.workspace = r"D:gis_projectdev_intensity.gdb"
arcpy.env.overwriteOutput = True

input_fc = "dev_intensity_unit"
field_name = "DEV_INTENSITY"

result = arcpy.stats.SpatialAutocorrelation(
    Input_Feature_Class=input_fc,
    Input_Field=field_name,
    Generate_Report="GENERATE_REPORT",
    Conceptualization_of_Spatial_Relationships="CONTIGUITY_EDGES_CORNERS",
    Distance_Method="EUCLIDEAN_DISTANCE",
    Standardization="ROW"
)

print("Moran's I:", result.getOutput(0))
print("Expected Index:", result.getOutput(1))
print("Variance:", result.getOutput(2))
print("Z Score:", result.getOutput(3))
print("P Value:", result.getOutput(4))

如果你的分析单元不是面邻接关系,而是点或规则网格,也可以使用固定距离范围。示例:

import arcpy

arcpy.env.workspace = r"D:gis_projectdev_intensity.gdb"
arcpy.env.overwriteOutput = True

input_fc = "grid_dev_intensity"
field_name = "DEV_INTENSITY"

result = arcpy.stats.SpatialAutocorrelation(
    Input_Feature_Class=input_fc,
    Input_Field=field_name,
    Generate_Report="GENERATE_REPORT",
    Conceptualization_of_Spatial_Relationships="FIXED_DISTANCE_BAND",
    Distance_Method="EUCLIDEAN_DISTANCE",
    Standardization="ROW",
    Distance_Band_or_Threshold_Distance="1000 Meters"
)

print("Moran's I:", result.getOutput(0))
print("Z Score:", result.getOutput(3))
print("P Value:", result.getOutput(4))

代码中的距离阈值不要随意填写。建议先使用“计算距离带从邻域计数”工具,查看在不同距离下每个要素能获得多少邻居,再确定合适的距离阈值。

常见坑:GIS开发强度分析图最容易出错的地方

坑一:用经纬度坐标直接计算面积

如果图层坐标单位是度,直接计算面积会导致开发强度字段错误。开发强度一旦算错,后面的 ArcGIS 空间自相关分析也会失去意义。

解决方法:先投影到以米为单位的投影坐标系,再计算面积和开发强度。

坑二:分类方法改变导致地图结论变化

自然间断点、分位数、等间距会产生不同的视觉结果。自然间断点适合突出数据自身分组,分位数适合保持每级数量接近,等间距适合固定阈值比较。

解决方法:如果是多年份开发强度对比,尽量使用统一分级阈值,不要每一年都重新自动分类。

坑三:空间权重矩阵选择不合理

Moran’s I 对空间关系设定比较敏感。不同的邻接方式或距离阈值,可能得到不同的 z 得分和 p 值。

解决方法:根据分析单元选择空间关系。行政区适合邻接关系,规则网格适合固定距离范围,点数据适合距离带或 K 近邻思路。

坑四:把全局 Moran’s I 当成热点图

全局 Moran’s I 只说明整体格局,不告诉你每个单元属于热点还是冷点。

解决方法:需要定位具体空间集聚位置时,应使用热点分析或 Local Moran’s I。

坑五:忽略异常值和空值

开发强度字段中如果存在空值、极端值或错误值,会明显影响结果。例如某个单元面积过小但建筑面积很大,可能导致异常高值。

解决方法:运行分析前检查字段统计信息、直方图和异常记录,必要时说明剔除规则。

方法比较:分级设色、Moran’s I、热点分析怎么选

方法 回答的问题 适合输出 局限
分级设色图 开发强度高低分布在哪里 GIS开发强度分析图 只能视觉判断,缺少统计检验
全局 Moran’s I 开发强度是否整体空间集聚 统计报告、论文结果描述 不能定位具体热点区域
热点分析 Gi* 高值热点和低值冷点在哪里 热点图、冷热点图 依赖距离阈值和空间权重设置
Local Moran’s I 哪些区域是高高、低低或空间异常 聚类和异常值图 解释比热点分析更复杂

如果是课程作业或毕业论文,推荐组合为:开发强度分级设色图 + 全局 Moran’s I 显著性检验 + 局部热点或聚类图。这样既有直观地图,也有统计依据。

检查清单:运行前后逐项确认

  • 研究单元是否统一,例如全部为街道、地块或规则网格?
  • 开发强度字段是否已经计算完成,并且字段类型为数值型?
  • 面积计算是否基于投影坐标系,而不是经纬度坐标?
  • 是否检查了空值、0 值、极端值和重复要素?
  • 分级设色图是否使用了适合分析目的的分类方法?
  • ArcGIS 空间自相关分析的空间关系概念化是否符合数据类型?
  • 距离阈值是否经过邻居数量检查,而不是随意填写?
  • 结果解释是否同时引用 Moran’s I、z 得分和 p 值?
  • 是否区分了全局空间自相关和局部热点分析?
  • 地图版式中是否包含图例、比例尺、指北针、数据来源和坐标说明?

FAQ:GIS开发强度分析图常见问题

1. GIS开发强度分析图一定要做 Moran’s I 吗?

不一定。如果只是做基础现状展示,分级设色图可能已经够用。但如果需要证明开发强度存在空间集聚,或者用于论文、规划评估和技术报告,建议加入 ArcGIS 空间自相关分析。

2. Moran’s I 指数为正就能说明显著集聚吗?

不能。Moran’s I 为正只说明存在正向空间自相关趋势,还需要结合 z 得分和 p 值判断是否显著。没有显著性检验时,不建议写成“显著集聚”。

3. 开发强度字段应该用容积率还是建设用地比例?

取决于研究目标。地块尺度常用容积率或建筑密度,街道和网格尺度常用建设用地比例、单位面积建筑面积或综合开发强度指数。关键是指标定义要清楚,并与研究单元匹配。

4. ArcGIS空间自相关分析中邻接关系和固定距离怎么选?

如果是连续的行政区、街道或地块面,可以优先考虑边邻接或边角邻接。如果是规则网格或点数据,固定距离范围更常用。无论选择哪种方式,都要保证大多数要素有合理数量的邻居。

5. 为什么我的 Moran’s I 结果不显著?

常见原因包括开发强度本身空间差异不明显、空间权重设置不合适、研究单元过少、异常值干扰、距离阈值过大或过小。建议先检查字段分布,再调整空间关系设定进行敏感性对比。

6. 做完 Moran’s I 后还需要做热点分析吗?

如果你只需要说明整体是否集聚,可以不做热点分析。如果需要指出具体的高开发强度集聚区、低开发强度集聚区,建议继续使用热点分析 Gi* 或 Local Moran’s I。

结论:用“地图 + 统计检验”完成开发强度分析

制作 GIS开发强度分析图的关键,不只是把开发强度字段渲染成颜色图,而是要建立一套可解释、可复现的分析流程。推荐步骤是:先计算可靠的开发强度指标,再制作分级设色图,随后使用 ArcGIS 空间自相关分析计算 Moran’s I 指数,最后根据需要补充热点分析或局部聚类分析。

对于 GIS 学生和初级工程师来说,最重要的是避免三个错误:坐标系不对、空间权重乱选、只看 Moran’s I 不看显著性。只要把这三点控制好,开发强度分析图就不仅好看,而且具备较强的分析说服力。