GIS开发强度分析图怎么做?ArcGIS空间自相关分析与可视化教程(附:Moran’s I指数计算代码)
《GIS开发强度分析图怎么做?ArcGIS空间自相关分析与可视化教程(附:Moran’s I指数计算代码)》这篇教程面向正在做城市建设用地、开发强度、土地利用强度或规划评估的 GIS 用户,重点解决一个具体问题:如何在 ArcGIS 中把开发强度指标做成空间分布图,并进一步用 Moran’s I 指数判断它是否存在空间集聚。
引言:GIS开发强度分析图到底要表达什么
GIS开发强度分析图通常不是简单地把地块或街道填上颜色,而是要回答三个问题:
- 哪些区域开发强度高,哪些区域开发强度低?
- 高强度区域是否相邻集聚,还是随机分布?
- 这种空间格局能否用空间自相关分析进行量化验证?
在实际项目中,开发强度可以来自容积率、建筑密度、建设用地比例、单位面积建筑面积、人口建设强度等指标。本文以“行政区或网格单元中的开发强度字段”为例,演示如何制作 GIS开发强度分析图,并使用 ArcGIS 空间自相关分析计算 Moran’s I 指数。

背景:为什么开发强度图不能只看分级设色
很多同学在 ArcGIS 中做开发强度分析时,会直接使用“分级色彩”符号系统,把开发强度字段做成一张深浅颜色图。这个步骤是必要的,但还不够。
原因在于,颜色图只能告诉我们数值高低,却不能严格说明“高值是否在空间上集聚”。例如:
- 几个高开发强度单元如果连在一起,可能说明城市核心区扩张明显。
- 高值和低值交错出现,可能说明开发强度空间差异破碎。
- 高值看似集中,但如果没有统计检验,结论容易停留在主观判断。
因此,一个较完整的 GIS开发强度分析图工作流,通常包括两类结果:
- 开发强度空间分布图:用于展示开发强度的高低格局。
- 空间自相关分析结果:用于判断开发强度是否存在显著空间集聚。
原理: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 中可按以下方式检查:
- 右键图层,打开“属性”。
- 查看“源”或“空间参考”。
- 确认单位是否为米,而不是度。
- 如果是 GCS_WGS_1984、CGCS2000 地理坐标系等经纬度坐标,应先投影。
投影工具路径:
数据管理工具箱 → 投影和变换 → 要素 → 投影
步骤三:制作开发强度分级设色图
完成字段准备后,可以先制作 GIS开发强度分析图的基础版,即分级设色图。
- 在 ArcGIS Pro 中加载面要素图层。
- 右键图层,选择“符号系统”。
- 主符号系统选择“分级色彩”。
- 字段选择开发强度字段,例如 DEV_INTENSITY。
- 分类方法可选择自然间断点、分位数或等间距。
- 设置 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 不看显著性。只要把这三点控制好,开发强度分析图就不仅好看,而且具备较强的分析说服力。