ArcGIS空间分析怎么做?城市选址实战详解(附:练习数据)
引言:如果你正在学习“ArcGIS空间分析怎么做?城市选址实战详解(附:练习数据)”,最容易卡住的地方通常不是某一个工具按钮,而是不知道如何把选址条件拆成可执行的空间分析流程。本文以“城市新建公共服务设施选址”为例,用 ArcGIS Pro 的缓冲区、叠加分析、裁剪、字段筛选和面积统计,带你完成一套可复现的 ArcGIS空间分析实战流程。

背景:城市选址为什么适合练习 ArcGIS空间分析
城市选址是 GIS 入门到进阶阶段非常典型的综合练习。它既包含空间关系判断,也包含属性筛选和结果验证,适合用来理解 ArcGIS空间分析的完整工作流。
本文使用的练习场景是:在一个城市范围内,为新的社区公共服务中心寻找候选地块。选址需要同时满足以下条件:
- 位于城市建设用地范围内。
- 距离主干道路较近,便于到达。
- 距离现有公共服务设施不能太近,避免重复建设。
- 避开河流、水域、生态保护区等限制区域。
- 候选地块面积不能太小,便于后续建设。
这类问题的关键不是“点一下某个工具”,而是把业务条件转换为 ArcGIS 可执行的空间规则。例如,“距离道路较近”可以转换为道路缓冲区;“避开河流”可以转换为限制区擦除;“面积足够”可以转换为字段计算和属性筛选。
练习数据说明:建议准备哪些图层
为了复现本文流程,你可以准备以下练习数据。数据可以来自教学案例、开源底图整理结果,或者自己在 ArcGIS Pro 中构造简单示例数据。
| 图层名称 | 几何类型 | 用途 | 关键字段建议 |
|---|---|---|---|
| city_boundary | 面 | 城市研究范围 | name |
| landuse | 面 | 建设用地、绿地、水域等用地类型 | land_type |
| main_roads | 线 | 主干路可达性分析 | road_type |
| existing_facilities | 点 | 现状公共服务设施 | facility_type |
| rivers | 线或面 | 水域限制区 | name |
| protected_area | 面 | 生态保护或禁止建设区域 | level |
如果你的练习数据字段名称不同,不影响操作。只要图层类型和含义一致,就可以按照本文思路完成 ArcGIS空间分析。
原理:把选址条件转换为空间分析规则
原理部分先解决一个核心问题:为什么 ArcGIS空间分析可以做城市选址?原因在于大多数选址条件都可以被表达为“空间位置关系”和“属性条件”。
常见的选址条件可以这样转换:
- “靠近道路”:对道路做缓冲区,生成交通可达范围。
- “远离现有设施”:对现有设施做缓冲区,生成不宜新建范围。
- “避开河流”:对河流做缓冲区或直接使用水域面,作为限制区。
- “只能在建设用地内”:按 land_type 字段筛选建设用地。
- “面积不能太小”:计算候选面面积,再按面积阈值筛选。
- “多个条件同时满足”:使用 Intersect、Erase、Clip、Select By Location 等叠加工具。
城市选址分析一般可以分成两类条件:
- 适宜条件:满足后更适合选址,例如靠近主干路、位于建设用地。
- 限制条件:必须排除的区域,例如水域、保护区、现有设施过近区域。
实际工作中,建议先处理限制条件,再处理适宜条件。这样可以尽早剔除明显不可用区域,减少后续分析数据量,也更容易检查错误。
步骤:ArcGIS空间分析城市选址完整流程
步骤 1:新建工程并统一坐标系
步骤开始前,先在 ArcGIS Pro 中新建一个工程,并把所有练习数据加载到地图中。右键图层查看属性,检查每个图层的坐标系。
城市选址涉及缓冲距离、面积计算和叠加分析,必须使用投影坐标系,而不是经纬度坐标系。经纬度坐标系的单位通常是度,不适合直接做米级缓冲区和平方米面积统计。
- 打开 ArcGIS Pro,新建 Map 工程。
- 添加 city_boundary、landuse、main_roads、existing_facilities、rivers、protected_area 等图层。
- 检查图层坐标系是否一致。
- 如果数据是 WGS 1984 经纬度坐标系,使用 Project 工具转换到本地合适的投影坐标系。
- 确认地图单位为米,面积单位后续可使用平方米或公顷。
这是 ArcGIS空间分析中最重要的基础检查之一。很多“缓冲区很大”“面积不对”“叠加结果错位”的问题,本质都是坐标系没有统一。
步骤 2:裁剪研究范围
为了减少计算量,先把所有图层裁剪到城市边界范围内。使用 Clip 工具可以把道路、用地、河流、保护区等数据限制在 city_boundary 内。
- 打开 Analysis 选项卡。
- 进入 Tools,搜索 Clip。
- Input Features 选择需要裁剪的图层,例如 main_roads。
- Clip Features 选择 city_boundary。
- 输出为 main_roads_clip。
- 对 landuse、rivers、protected_area 等图层重复操作。
裁剪后的数据更干净,后续 ArcGIS缓冲区分析和叠加分析速度也会更快。
步骤 3:筛选建设用地
候选地块应位于可建设区域内。假设 landuse 图层中 land_type 字段包含“建设用地”“居住用地”“商业用地”“绿地”“水域”等类别,可以先筛选允许建设的用地类型。
- 右键 landuse_clip 图层,打开属性表。
- 点击 Select By Attributes。
- 构造表达式,例如
land_type = '建设用地'。 - 如果允许多种用地类型,可以使用
land_type IN ('建设用地', '商业用地')。 - 右键图层,选择 Data,导出选中要素为 buildable_land。
这一步得到的是初始可选范围。后面的限制区擦除和适宜区叠加,都会在 buildable_land 基础上继续进行。
步骤 4:做道路缓冲区,提取交通可达范围
道路可达性是城市选址中常见的适宜条件。这里以“距离主干路 500 米以内”为例,使用 ArcGIS缓冲区分析生成道路服务范围。
- 打开 Buffer 工具。
- Input Features 选择 main_roads_clip。
- Distance 设置为
500 Meters。 - Dissolve Type 建议选择 Dissolve all output features into a single feature。
- 输出为 road_buffer_500m。
缓冲区距离需要根据城市尺度调整。小城市或社区级分析可以使用 300 米到 500 米;新区或产业园区分析可以使用 800 米到 1000 米。本文重点是方法练习,不建议把距离阈值理解为固定标准。
步骤 5:生成现有设施避让范围
为了避免重复建设,新设施不应距离现有公共服务设施太近。假设要求“距离现有设施至少 800 米”,可以对 existing_facilities 做 800 米缓冲区,作为不宜新建范围。
- 打开 Buffer 工具。
- Input Features 选择 existing_facilities。
- Distance 设置为
800 Meters。 - Dissolve Type 选择合并输出。
- 输出为 facility_buffer_800m。
这一步得到的是限制区,不是适宜区。后续需要从候选区域中把它擦除掉。
步骤 6:生成河流和保护区限制范围
如果 rivers 是线图层,建议先做缓冲区,例如河流两侧 100 米作为限制范围。如果 rivers 已经是水域面,则可以直接作为限制区使用。
- 对 rivers_clip 使用 Buffer 工具。
- Distance 设置为
100 Meters。 - 输出为 river_buffer_100m。
- protected_area_clip 可以直接作为限制区。
- 如有多个限制区,后续可使用 Merge 或 Union 合并。
在真实项目中,河流、坡度、地质灾害、永久基本农田、生态红线等都可能成为限制条件。本文用河流和保护区作为练习示例。
步骤 7:叠加适宜条件,得到初步候选区
现在已有 buildable_land 和 road_buffer_500m。要找“建设用地内且距离主干路 500 米以内”的区域,可以使用 Intersect 工具。
- 打开 Intersect 工具。
- Input Features 添加 buildable_land 和 road_buffer_500m。
- 输出为 candidate_step1。
- 运行后检查结果是否只保留两者重叠区域。
Intersect 的含义是“取共同重叠部分”。在城市选址中,它常用于表达多个适宜条件同时满足。
步骤 8:擦除限制区,得到可选候选地块
接下来要从 candidate_step1 中移除限制范围,包括 facility_buffer_800m、river_buffer_100m 和 protected_area_clip。
一种简单做法是先把限制区合并,再一次性擦除:
- 使用 Merge 或 Union 合并 facility_buffer_800m、river_buffer_100m、protected_area_clip。
- 输出为 restricted_area。
- 打开 Erase 工具。
- Input Features 选择 candidate_step1。
- Erase Features 选择 restricted_area。
- 输出为 candidate_step2。
如果你的 ArcGIS 许可级别没有 Erase 工具,可以使用替代方法:先用 Select By Location 选择与限制区相交的候选地块,再删除或导出未被选中的部分。也可以通过 Pairwise Erase 等工具完成类似处理,具体取决于你的 ArcGIS Pro 版本和许可。
步骤 9:计算面积并筛选最终候选地块
候选区生成后,还需要按面积筛选。太小的碎片面虽然满足空间条件,但不一定能实际建设。
- 打开 candidate_step2 属性表。
- 新增字段
area_ha,字段类型选择 Double。 - 使用 Calculate Geometry Attributes 计算面积。
- 面积单位选择 Hectares 或 Square Meters。
- 使用 Select By Attributes 筛选面积,例如
area_ha >= 2。 - 导出选中结果为 final_candidate_sites。
如果候选地块被切得很碎,可以根据业务需求使用 Dissolve 按相邻区域合并,再重新计算面积。但不要盲目合并所有地块,否则可能掩盖地块之间的实际分隔关系。
步骤 10:符号化与结果验证
ArcGIS空间分析不能只看工具运行成功,还要检查结果是否符合常识。建议对最终候选地块进行地图验证和属性验证。
- 将 final_candidate_sites 设置为醒目的填充色。
- 叠加显示道路、河流、现状设施和城市边界。
- 检查候选地块是否确实在建设用地内。
- 检查候选地块是否避开现有设施缓冲区。
- 检查是否有候选地块落入河流、保护区或边界外。
- 按面积从大到小排序,优先查看面积较大的候选地块。
验证时可以使用 Measure 工具随机测量距离,也可以使用 Select By Location 检查候选区是否仍与限制区相交。
常见坑:ArcGIS空间分析结果不对通常查这些
常见坑不是小问题,很多初学者的城市选址结果错误,都是因为前期数据检查不到位。
坑 1:用经纬度坐标直接做缓冲区
如果数据坐标单位是度,缓冲区距离却输入 500,很可能得到完全错误的范围。解决方法是先使用 Project 工具转换到投影坐标系,再做缓冲区和面积计算。
坑 2:只定义投影,没有真正投影转换
Define Projection 只是告诉 ArcGIS 这个数据“原本是什么坐标系”,不会改变坐标值。真正转换坐标要用 Project。如果两者混用,图层可能看似对齐,实际分析却有偏差。
坑 3:没有 Dissolve,导致缓冲区碎片太多
道路和设施数量较多时,缓冲区会产生大量重叠面。如果后续只关心整体范围,Buffer 时建议选择 Dissolve。这样叠加分析更清晰,也能减少不必要的碎片。
坑 4:把限制条件当成适宜条件叠加
道路缓冲区通常是适宜区,设施避让区、河流缓冲区、保护区通常是限制区。适宜条件常用 Intersect,限制条件常用 Erase 或反向选择。两者逻辑相反,不能混用。
坑 5:没有检查拓扑和几何有效性
如果面图层存在自相交、空几何、缝隙或重叠,叠加分析可能产生异常碎片。运行前可以使用 Repair Geometry 或 Check Geometry 检查数据质量。
坑 6:面积阈值没有结合实际尺度
面积筛选不能照搬。社区服务中心、学校、医院、物流园区需要的面积完全不同。练习时可以设定 2 公顷、5 公顷等阈值,但真实项目必须依据规划指标和建设标准。
方法比较:不同 ArcGIS空间分析工具怎么选
方法比较可以帮助你理解各工具的适用场景。城市选址中常用的工具并不多,但每个工具的逻辑要分清楚。
| 工具或方法 | 主要作用 | 适合场景 | 注意事项 |
|---|---|---|---|
| Buffer | 生成距离范围 | 道路可达区、设施避让区、河流保护带 | 必须注意坐标单位和缓冲距离 |
| Clip | 按边界裁剪数据 | 限制研究区范围 | 只保留边界内部分 |
| Intersect | 提取多个图层重叠区域 | 多个适宜条件同时满足 | 容易产生碎片面 |
| Erase | 从输入区域中扣除限制区 | 避开水域、保护区、设施缓冲区 | 部分许可级别可能不可用 |
| Select By Location | 按空间关系选择要素 | 检查相交、包含、距离关系 | 常用于结果验证和替代擦除流程 |
| Dissolve | 合并相邻或同类面 | 减少碎片、汇总候选区域 | 合并前要确认业务含义 |
如果你刚开始学习 ArcGIS空间分析,建议先掌握 Buffer、Clip、Intersect、Erase 和 Select By Location。它们已经能完成大多数基础选址、影响范围分析和空间筛选任务。
检查清单:提交城市选址结果前逐项确认
检查清单适合在完成分析后逐项核对,避免把错误结果提交给老师、导师或项目负责人。
- 所有输入图层是否使用同一个投影坐标系?
- 缓冲区距离单位是否为米,而不是度?
- 研究范围是否已用 city_boundary 裁剪?
- 建设用地筛选表达式是否正确?
- 道路缓冲区是否代表适宜范围?
- 现有设施缓冲区是否作为限制范围处理?
- 河流、水域、保护区是否已从候选区中扣除?
- Intersect 和 Erase 的输入图层顺序是否正确?
- 候选地块面积是否重新计算,而不是沿用旧字段?
- 最终结果是否与限制区仍有相交?
- 地图符号是否清晰区分候选区、限制区和背景图层?
- 是否保存了每一步中间结果,便于回溯检查?
FAQ:ArcGIS空间分析城市选址常见问题
FAQ 1:ArcGIS空间分析怎么做才算完整?
完整的 ArcGIS空间分析不只是运行工具,而是包括需求拆解、数据检查、坐标系统一、条件转换、空间处理、结果验证和制图表达。城市选址案例中,至少应包含适宜区提取、限制区排除、面积筛选和最终检查。
FAQ 2:ArcGIS缓冲区分析距离应该怎么定?
缓冲距离要根据业务含义确定。道路可达范围可以参考步行距离、车行距离或规划服务半径;设施避让距离可以参考服务半径、规范要求或案例假设。教学练习可以使用 500 米、800 米等示例值,但真实项目不能随意设定。
FAQ 3:为什么我的缓冲区看起来特别大或特别小?
优先检查坐标系。若数据是经纬度坐标系,缓冲距离单位可能不是米。请先用 Project 转换到合适的投影坐标系,再重新运行 Buffer。其次检查输入距离是否写错单位,例如把 500 米写成 500 千米。
FAQ 4:没有 Erase 工具还能做城市选址吗?
可以。你可以使用 Select By Location 找到与限制区相交的候选地块,然后导出未被选中的要素。也可以根据软件许可使用 Pairwise Erase 或其他叠加工具替代。关键是理解逻辑:从候选范围中移除限制区域。
FAQ 5:城市选址一定要用 ArcGIS Pro 吗?
不一定。QGIS、PostGIS、GeoPandas 也可以完成类似分析。但如果你正在学习 ArcGIS空间分析,ArcGIS Pro 的地理处理工具、可视化环境和模型构建器更适合初学者理解完整流程。
FAQ 6:练习数据和真实项目数据有什么区别?
练习数据通常字段简单、图层较少、质量较好,目的是帮助你掌握流程。真实项目数据可能存在坐标系混乱、字段不规范、几何错误、边界不一致和政策约束复杂等问题。因此真实项目中要增加数据清洗、标准核查和成果审查环节。
FAQ 7:如何把这个流程做成可重复运行的模型?
可以使用 ArcGIS Pro 的 ModelBuilder。把 Clip、Buffer、Intersect、Erase、Calculate Geometry Attributes、Select 等工具按顺序连接,并把缓冲距离、面积阈值、输入图层设置为参数。这样后续更换城市或阈值时,可以快速复用整个城市选址流程。
结论:掌握逻辑比记住工具更重要
结论是:ArcGIS空间分析做城市选址,核心不是记住每个工具的位置,而是理解“适宜条件叠加、限制条件排除、结果再验证”的分析逻辑。
本文以公共服务设施选址为例,完成了从数据准备、坐标系统一、建设用地筛选、ArcGIS缓冲区分析、限制区擦除、面积筛选到结果验证的完整流程。只要你能把业务条件转换为空间规则,就可以把同样的方法迁移到学校选址、停车场选址、应急避难场所选址、商业网点选址等更多 GIS 分析任务中。
建议你在练习时保留每一步的中间数据,并记录每个阈值的来源。这样不仅便于排错,也能让你的 ArcGIS空间分析成果更有说服力。