ArcGIS 空间分析实验教程
第一部分:实验准备与环境搭建
实验目标:

- 安装并熟悉 ArcGIS Desktop (以 ArcMap 10.x 或 ArcGIS Pro 2.x 为例,本教程以 ArcMap 为主,因其界面经典,教学案例丰富)。
- 理解空间分析的基本概念和数据处理流程。
- 掌握 ArcGIS 中数据加载、管理和基本显示的方法。
1 软件与数据准备
-
软件安装:
- 安装 ArcGIS Desktop (包含 ArcMap, ArcToolbox, ArcCatalog)。
- 确保已获得有效的 License,至少需要 ArcGIS Spatial Analyst 扩展模块的权限,在 ArcMap 中,通过
Customize -> Extensions勾选 "Spatial Analyst" 来启用。
-
实验数据:
- 本教程将使用一个虚构的“绿谷市”数据进行演示,您可以从网络上下载一些公开的 GIS 数据作为替代,
- DEM (数字高程模型): 用于地形分析。
- 土地利用/土地覆盖数据: 用于分析不同地类的分布。
- 道路网络数据: 用于网络分析。
- 兴趣点数据: 如学校、医院、商场等。
- 数据格式: 通常为 Shapefile (.shp) 或 Geodatabase (.gdb) 格式,为了数据完整性,强烈推荐使用 File Geodatabase。
- 本教程将使用一个虚构的“绿谷市”数据进行演示,您可以从网络上下载一些公开的 GIS 数据作为替代,
2 ArcGIS 空间分析核心界面

-
ArcMap 界面:
- Table of Contents (内容列表): 管理和显示地图图层。
- Data View / Layout View (数据视图/布局视图): 数据视图用于交互分析,布局视图用于地图制图。
- ArcToolbox (工具箱): 空间分析的核心,包含了所有空间分析工具,通常位于窗口右侧,如果未显示,可以通过
Geoprocessing -> ArcToolbox打开。
-
ArcToolbox 结构:
- 工具箱按功能分类,如
Analysis Tools,Conversion Tools,Data Management Tools等。 Spatial Analyst Tools是我们本次实验的重点,它内部又细分为多个工具集:- Distance (距离分析): 计算要素间的距离、邻近性。
- Extract (提取分析): 根据条件提取栅格或要素数据。
- Math (数学分析): 对栅格图层进行数学运算。
- Overlay (叠加分析): 组合多个图层生成新信息。
- Neighborhood (邻域分析): 基于像元周围邻域进行计算。
- Surface (表面分析): 基于栅格数据生成表面,如坡度、坡向、等高线。
- Zonal (分区分析): 基于一个图层对另一个图层进行分区统计。
- Hydrology (水文分析): 专门用于水流路径、流域划分等。
- Conditional (条件分析): 根据条件设置像元值。
- 工具箱按功能分类,如
第二部分:核心空间分析实验
我们将通过一系列由简到难的实验,逐一探索这些工具。
距离分析 - 计算服务区

场景: 绿谷市规划部门想了解新建的商业中心对市民的辐射范围,假设市民愿意步行 1 公里内到达该商业中心。
目标: 生成商业中心 1 公米范围内的服务区。
操作步骤:
-
加载数据:
- 在 ArcMap 中,将商业中心点图层 (
commercial_centers.shp) 添加到地图中。
- 在 ArcMap 中,将商业中心点图层 (
-
执行分析:
- 打开 ArcToolbox -> Spatial Analyst Tools -> Distance -> Euclidean Distance。
- 设置参数:
- Input raster or feature data source (输入栅格或要素数据源): 选择
commercial_centers。 - Output raster (输出栅格): 指定一个保存路径和文件名,
euclidean_distance.tif。 - Output cell size (输出像元大小): 通常设置为与输入数据或研究区域相匹配的值,
10(米)。 - Maximum distance (最大距离): 可以不填,表示计算所有距离。
- Input raster or feature data source (输入栅格或要素数据源): 选择
- 点击 OK 执行,执行后,地图上会生成一个栅格图层,每个像元的值代表其到最近商业中心的直线距离。
-
重分类:
- 我们只关心 1 公里 (1000 米) 范围内的区域,使用 Reclassify 工具来提取这部分区域。
- 打开 ArcToolbox -> Spatial Analyst Tools -> Reclassify。
- 设置参数:
- Input raster (输入栅格): 选择上一步生成的
euclidean_distance.tif。 - Reclassify field (重分类字段): 选择
Value。 - Reclassify (重分类): 在右侧的
Old values列表中,将1-1000的值范围设置为1,其余值范围设置为NoData。 - Output raster (输出栅格): 指定保存路径,
service_area_1km.tif。
- Input raster (输入栅格): 选择上一步生成的
- 点击 OK 执行。
-
结果可视化:
- 打开
service_area_1km.tif的图层属性,设置其符号系统,例如将值为1的区域显示为半透明的绿色。 - 最终结果清晰地展示了商业中心 1 公里的步行服务区。
- 打开
表面分析 - 提取坡度与坡向
场景: 绿谷市计划在山区修建一条公路,需要了解不同区域的坡度,以评估工程难度。
目标: 根据 DEM 数据,生成坡度图层和坡向图层。
操作步骤:
-
加载数据:
- 将 DEM 数据 (
valley_dem.tif) 添加到地图中。
- 将 DEM 数据 (
-
计算坡度:
- 打开 ArcToolbox -> Spatial Analyst Tools -> Surface -> Slope。
- 设置参数:
- Input raster (输入栅格): 选择
valley_dem.tif。 - Output raster (输出栅格): 指定保存路径,
slope_degree.tif。 - Output measurement (输出测量单位): 选择
DEGREE(度)。
- Input raster (输入栅格): 选择
- 点击 OK 执行,生成的
slope_degree.tif显示了每个位置的坡度值。
-
计算坡向:
- 打开 ArcToolbox -> Spatial Analyst Tools -> Surface -> Aspect。
- 设置参数:
- Input raster (输入栅格): 选择
valley_dem.tif。 - Output raster (输出栅格): 指定保存路径,
aspect.tif。
- Input raster (输入栅格): 选择
- 点击 OK 执行,生成的
aspect.tif显示了每个位置的坡向(朝向),以度为单位。
-
结果分析:
- 分别对
slope_degree.tif和aspect.tif进行符号化渲染(使用渐变色表示坡度大小,用色轮表示坡向),直观地展示地形特征。
- 分别对
叠加分析 - 寻找适宜建设区
场景: 绿谷市希望为一个新的工业园区寻找适宜的建设地点,选址标准如下:
- 坡度小于 15 度。
- 土地利用类型为“荒地”或“草地”。
- 距离主要公路不超过 500 米。
目标: 综合多个条件,生成一个满足所有要求的“适宜建设区”图层。
操作步骤:
-
数据准备与预处理:
- 加载三个图层:
slope_degree.tif(坡度),landuse.shp(土地利用),main_roads.shp(主要道路)。 - 将要素转换为栅格:
- 对于
landuse.shp,使用 ArcToolbox -> Conversion Tools -> To Raster -> Feature to Raster,将其转换为栅格landuse_raster.tif,字段选择LAND_TYPE。 - 对于
main_roads.shp,使用 Euclidean Distance 工具,计算到道路的距离,生成road_distance.tif。
- 对于
- 加载三个图层:
-
条件重分类:
- 坡度 < 15度
- 使用 Reclassify 工具对
slope_degree.tif进行重分类。 - 将
0-15的范围设为1(适宜),15-90的范围设为0(不适宜),输出slope_reclass.tif。
- 使用 Reclassify 工具对
- 土地利用为“荒地”或“草地”
- 使用 Reclassify 工具对
landuse_raster.tif进行重分类。 - 将 “荒地” 和 “草地” 对应的值设为
1,其他类型设为0,输出landuse_reclass.tif。
- 使用 Reclassify 工具对
- 距离道路 < 500米
- 使用 Reclassify 工具对
road_distance.tif进行重分类。 - 将
0-500的范围设为1,其余设为0,输出road_reclass.tif。
- 使用 Reclassify 工具对
- 坡度 < 15度
-
叠加分析 (Raster Calculator):
- 这是叠加分析最强大的工具,打开 ArcToolbox -> Spatial Analyst Tools -> Map Algebra -> Raster Calculator。
- 在表达式框中输入:
"slope_reclass.tif" == 1 & "landuse_reclass.tif" == 1 & "road_reclass.tif" == 1
&代表逻辑与运算,即所有条件必须同时满足。
- Output raster (输出栅格): 指定保存路径,
suitable_area.tif。 - 点击 OK 执行。
-
结果解读:
- 生成的
suitable_area.tif中,值为1的像元即为所有条件都满足的“适宜建设区”,你可以通过符号化将其高亮显示,并转换为面要素,以便后续的规划和设计。
- 生成的
水文分析 - 提取流域与河网
场景: 环保部门需要研究绿谷市主要河流的流域范围,以便进行流域综合治理。
目标: 基于 DEM 数据,提取出流域边界和河网。
操作步骤:
-
数据准备:
- 加载 DEM 数据 (
valley_dem.tif)。
- 加载 DEM 数据 (
-
填充洼地:
- DEM 中可能存在洼地,会阻碍水流,必须先进行填充。
- 打开 ArcToolbox -> Spatial Analyst Tools -> Hydrology -> Fill。
- Input raster (输入栅格):
valley_dem.tif。 - Output raster (输出栅格):
filled_dem.tif。 - 点击 OK 执行。
-
流向计算:
- 确定水流方向。
- 打开 ArcToolbox -> Spatial Analyst Tools -> Hydrology -> Flow Direction。
- Input raster (输入栅格):
filled_dem.tif。 - Output raster (输出栅格):
flow_direction.tif。
-
流累积计算:
- 计算每个像元上游汇流区的面积,值越大的像元,越可能是河道。
- 打开 ArcToolbox -> Spatial Analyst Tools -> Hydrology -> Flow Accumulation。
- Input flow direction raster (输入流向栅格):
flow_direction.tif。 - Output raster (输出栅格):
flow_accumulation.tif。
-
提取河网:
- 设定一个阈值,累积流量大于该阈值的像元即为河道。
- 使用 Reclassify 工具对
flow_accumulation.tif进行重分类。 - 将
10000以上的值设为1(河道),其余设为0(非河道),输出stream_network.tif。 - 可选:将结果转换为线要素 (
ArcToolbox -> Conversion Tools -> From Raster -> Raster to Line)。
-
划分流域:
- 需要先定义出水点(出水口),即河流的终点,可以通过
stream_network.tif找到出水口点。 - 打开 ArcToolbox -> Spatial Analyst Tools -> Hydrology -> Watershed。
- Input flow direction raster (输入流向栅格):
flow_direction.tif。 - Input raster or feature pour point data (输入出水点数据): 选择定义好的出水点图层。
- Output raster (输出栅格):
watersheds.tif。 - 点击 OK 执行,生成的
watersheds.tif中,每个流域都会被赋予唯一的值。
- 需要先定义出水点(出水口),即河流的终点,可以通过
第三部分:实验总结与进阶
1 实验总结
本教程通过四个经典案例,覆盖了 ArcGIS 空间分析的主要方面:
- 距离分析: 用于评估空间可达性和服务范围。
- 表面分析: 用于量化地形特征。
- 叠加分析: 是多条件综合决策的核心方法。
- 水文分析: 是特定领域(地理、环境)的深度应用。
核心流程:
- 明确问题: 将现实世界的问题转化为 GIS 可以分析的空间问题。
- 准备数据: 获取、整理、格式化所需的矢量或栅格数据。
- 选择工具: 根据分析目标,从 ArcToolbox 中选择合适的空间分析工具。
- 执行分析: 设置参数,运行工具,生成中间和最终结果。
- 结果解释与应用: 将分析结果可视化,并结合专业知识进行解读,为决策提供支持。
2 进阶学习方向
- 空间统计: 使用
ArcToolbox -> Spatial Statistics Tools进行热点分析、聚类分析等,探索空间数据的分布模式。 - 网络分析: 使用
Network Analyst扩展模块进行路径规划、服务区分析(沿路)、选址-分配等更复杂的网络问题分析。 - 三维分析: 使用
3D Analyst扩展模块进行视域分析、日照分析、三维表面建模等。 - 模型构建器: 学习使用 ModelBuilder,将多个空间分析工具串联成一个自动化的工作流,提高效率和可重复性。
- Python 脚本编写: 对于高级用户,学习使用 ArcPy 库,通过 Python 编写脚本实现复杂、大规模的空间分析任务。
3 注意事项
- 数据质量: “垃圾进,垃圾出”,确保输入数据的准确性、现势性和投影一致性。
- 像元大小: 栅格分析的结果精度受像元大小影响,在分析前,应根据研究需求确定合适的像元分辨率。
- 投影坐标: 进行涉及面积、距离的精确分析时,务必使用投影坐标系(如 UTM),而不是地理坐标系(经纬度)。
- 文档记录: 养成好习惯,记录下每一步分析的工具、参数和逻辑,便于复现和追溯。
希望这份详细的教程能帮助您顺利开启 ArcGIS 空间分析的学习之旅!祝您实验愉快!
