ArcGIS空间分析怎么做?城市选址实战详解(附:练习数据)

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

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

ArcGIS空间分析城市选址实战与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 中新建一个工程,并把所有练习数据加载到地图中。右键图层查看属性,检查每个图层的坐标系。

城市选址涉及缓冲距离、面积计算和叠加分析,必须使用投影坐标系,而不是经纬度坐标系。经纬度坐标系的单位通常是度,不适合直接做米级缓冲区和平方米面积统计。

  1. 打开 ArcGIS Pro,新建 Map 工程。
  2. 添加 city_boundary、landuse、main_roads、existing_facilities、rivers、protected_area 等图层。
  3. 检查图层坐标系是否一致。
  4. 如果数据是 WGS 1984 经纬度坐标系,使用 Project 工具转换到本地合适的投影坐标系。
  5. 确认地图单位为米,面积单位后续可使用平方米或公顷。

这是 ArcGIS空间分析中最重要的基础检查之一。很多“缓冲区很大”“面积不对”“叠加结果错位”的问题,本质都是坐标系没有统一。

步骤 2:裁剪研究范围

为了减少计算量,先把所有图层裁剪到城市边界范围内。使用 Clip 工具可以把道路、用地、河流、保护区等数据限制在 city_boundary 内。

  1. 打开 Analysis 选项卡。
  2. 进入 Tools,搜索 Clip
  3. Input Features 选择需要裁剪的图层,例如 main_roads。
  4. Clip Features 选择 city_boundary。
  5. 输出为 main_roads_clip。
  6. 对 landuse、rivers、protected_area 等图层重复操作。

裁剪后的数据更干净,后续 ArcGIS缓冲区分析和叠加分析速度也会更快。

步骤 3:筛选建设用地

候选地块应位于可建设区域内。假设 landuse 图层中 land_type 字段包含“建设用地”“居住用地”“商业用地”“绿地”“水域”等类别,可以先筛选允许建设的用地类型。

  1. 右键 landuse_clip 图层,打开属性表。
  2. 点击 Select By Attributes
  3. 构造表达式,例如 land_type = '建设用地'
  4. 如果允许多种用地类型,可以使用 land_type IN ('建设用地', '商业用地')
  5. 右键图层,选择 Data,导出选中要素为 buildable_land。

这一步得到的是初始可选范围。后面的限制区擦除和适宜区叠加,都会在 buildable_land 基础上继续进行。

步骤 4:做道路缓冲区,提取交通可达范围

道路可达性是城市选址中常见的适宜条件。这里以“距离主干路 500 米以内”为例,使用 ArcGIS缓冲区分析生成道路服务范围。

  1. 打开 Buffer 工具。
  2. Input Features 选择 main_roads_clip。
  3. Distance 设置为 500 Meters
  4. Dissolve Type 建议选择 Dissolve all output features into a single feature
  5. 输出为 road_buffer_500m。

缓冲区距离需要根据城市尺度调整。小城市或社区级分析可以使用 300 米到 500 米;新区或产业园区分析可以使用 800 米到 1000 米。本文重点是方法练习,不建议把距离阈值理解为固定标准。

步骤 5:生成现有设施避让范围

为了避免重复建设,新设施不应距离现有公共服务设施太近。假设要求“距离现有设施至少 800 米”,可以对 existing_facilities 做 800 米缓冲区,作为不宜新建范围。

  1. 打开 Buffer 工具。
  2. Input Features 选择 existing_facilities。
  3. Distance 设置为 800 Meters
  4. Dissolve Type 选择合并输出。
  5. 输出为 facility_buffer_800m。

这一步得到的是限制区,不是适宜区。后续需要从候选区域中把它擦除掉。

步骤 6:生成河流和保护区限制范围

如果 rivers 是线图层,建议先做缓冲区,例如河流两侧 100 米作为限制范围。如果 rivers 已经是水域面,则可以直接作为限制区使用。

  1. 对 rivers_clip 使用 Buffer 工具。
  2. Distance 设置为 100 Meters
  3. 输出为 river_buffer_100m。
  4. protected_area_clip 可以直接作为限制区。
  5. 如有多个限制区,后续可使用 MergeUnion 合并。

在真实项目中,河流、坡度、地质灾害、永久基本农田、生态红线等都可能成为限制条件。本文用河流和保护区作为练习示例。

步骤 7:叠加适宜条件,得到初步候选区

现在已有 buildable_land 和 road_buffer_500m。要找“建设用地内且距离主干路 500 米以内”的区域,可以使用 Intersect 工具。

  1. 打开 Intersect 工具。
  2. Input Features 添加 buildable_land 和 road_buffer_500m。
  3. 输出为 candidate_step1。
  4. 运行后检查结果是否只保留两者重叠区域。

Intersect 的含义是“取共同重叠部分”。在城市选址中,它常用于表达多个适宜条件同时满足。

步骤 8:擦除限制区,得到可选候选地块

接下来要从 candidate_step1 中移除限制范围,包括 facility_buffer_800m、river_buffer_100m 和 protected_area_clip。

一种简单做法是先把限制区合并,再一次性擦除:

  1. 使用 MergeUnion 合并 facility_buffer_800m、river_buffer_100m、protected_area_clip。
  2. 输出为 restricted_area。
  3. 打开 Erase 工具。
  4. Input Features 选择 candidate_step1。
  5. Erase Features 选择 restricted_area。
  6. 输出为 candidate_step2。

如果你的 ArcGIS 许可级别没有 Erase 工具,可以使用替代方法:先用 Select By Location 选择与限制区相交的候选地块,再删除或导出未被选中的部分。也可以通过 Pairwise Erase 等工具完成类似处理,具体取决于你的 ArcGIS Pro 版本和许可。

步骤 9:计算面积并筛选最终候选地块

候选区生成后,还需要按面积筛选。太小的碎片面虽然满足空间条件,但不一定能实际建设。

  1. 打开 candidate_step2 属性表。
  2. 新增字段 area_ha,字段类型选择 Double。
  3. 使用 Calculate Geometry Attributes 计算面积。
  4. 面积单位选择 Hectares 或 Square Meters。
  5. 使用 Select By Attributes 筛选面积,例如 area_ha >= 2
  6. 导出选中结果为 final_candidate_sites。

如果候选地块被切得很碎,可以根据业务需求使用 Dissolve 按相邻区域合并,再重新计算面积。但不要盲目合并所有地块,否则可能掩盖地块之间的实际分隔关系。

步骤 10:符号化与结果验证

ArcGIS空间分析不能只看工具运行成功,还要检查结果是否符合常识。建议对最终候选地块进行地图验证和属性验证。

  1. 将 final_candidate_sites 设置为醒目的填充色。
  2. 叠加显示道路、河流、现状设施和城市边界。
  3. 检查候选地块是否确实在建设用地内。
  4. 检查候选地块是否避开现有设施缓冲区。
  5. 检查是否有候选地块落入河流、保护区或边界外。
  6. 按面积从大到小排序,优先查看面积较大的候选地块。

验证时可以使用 Measure 工具随机测量距离,也可以使用 Select By Location 检查候选区是否仍与限制区相交。

常见坑:ArcGIS空间分析结果不对通常查这些

常见坑不是小问题,很多初学者的城市选址结果错误,都是因为前期数据检查不到位。

坑 1:用经纬度坐标直接做缓冲区

如果数据坐标单位是度,缓冲区距离却输入 500,很可能得到完全错误的范围。解决方法是先使用 Project 工具转换到投影坐标系,再做缓冲区和面积计算。

坑 2:只定义投影,没有真正投影转换

Define Projection 只是告诉 ArcGIS 这个数据“原本是什么坐标系”,不会改变坐标值。真正转换坐标要用 Project。如果两者混用,图层可能看似对齐,实际分析却有偏差。

坑 3:没有 Dissolve,导致缓冲区碎片太多

道路和设施数量较多时,缓冲区会产生大量重叠面。如果后续只关心整体范围,Buffer 时建议选择 Dissolve。这样叠加分析更清晰,也能减少不必要的碎片。

坑 4:把限制条件当成适宜条件叠加

道路缓冲区通常是适宜区,设施避让区、河流缓冲区、保护区通常是限制区。适宜条件常用 Intersect,限制条件常用 Erase 或反向选择。两者逻辑相反,不能混用。

坑 5:没有检查拓扑和几何有效性

如果面图层存在自相交、空几何、缝隙或重叠,叠加分析可能产生异常碎片。运行前可以使用 Repair GeometryCheck 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空间分析成果更有说服力。