GIS空间分析法怎么用?ArcGIS选址实战详解(附:练习数据)

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

《GIS空间分析法怎么用?ArcGIS选址实战详解(附:练习数据)》这篇教程面向刚开始做空间分析和选址建模的同学,重点解决一个很具体的问题:如何在 ArcGIS 中把多个空间条件叠加起来,筛选出适合建设某类设施的候选区域。

本文以“公共服务设施选址”为例,演示从数据准备、缓冲区分析、叠加分析、属性筛选到结果验证的完整流程。你可以把这个方法迁移到商业网点选址、应急避难场所选址、垃圾中转站选址、物流仓库选址、学校服务范围分析等场景。

GIS空间分析法 ArcGIS选址实战流程图
ArcGIS 选址分析的典型流程:先统一数据基础,再按条件生成约束区和适宜区,最后叠加筛选候选地块。

引言:GIS空间分析法在ArcGIS选址中到底怎么用

很多初学者知道 ArcGIS 有缓冲区、叠加、裁剪、擦除、空间连接等工具,但真正做选址时容易卡在一个问题上:这些工具应该按什么顺序组合?

GIS空间分析法不是单独点一个工具就结束,而是把现实中的选址条件转换成空间规则。例如:

  • 离主干道路不能太远,方便通达;
  • 离居民区要有一定服务半径;
  • 不能落在河流、湖泊、基本农田、生态红线等限制区域;
  • 候选地块面积要满足建设要求;
  • 最好位于现状建设用地或规划建设用地范围内。

在 ArcGIS 中,这些规则通常会被转换为缓冲区分析、叠加分析、擦除分析、属性筛选和面积计算。掌握这个逻辑,比死记某一个工具按钮更重要。

背景:ArcGIS选址实战需要准备哪些练习数据

为了便于练习,本文假设你已经准备了以下矢量数据。数据格式可以是 Shapefile、File Geodatabase 要素类,也可以是 GeoPackage。实际工作中更推荐使用 File Geodatabase,字段名、中文编码和空间处理稳定性更好。

数据名称 几何类型 用途 关键字段示例
研究区边界 限定分析范围 name
道路中心线 线 生成交通可达性缓冲区 road_type
居民点或小区 点或面 判断服务对象分布 pop、name
河流湖泊 线或面 作为限制建设区域 type
现状用地 筛选可建设用地类型 landuse
生态保护区或禁止建设区 从候选区中剔除 protect

如果你手头没有完整数据,也可以用一个城市或县区的公开行政边界、道路、水系和用地数据做练习。关键不是数据必须和本文完全一致,而是要包含“适宜条件”和“限制条件”两类图层。

原理:把选址条件转换为空间分析规则

做 GIS空间分析法,第一步不是打开工具箱,而是把业务语言翻译成空间语言。下面是一组常见的 ArcGIS选址规则转换方式。

业务条件 空间分析表达 ArcGIS常用工具
距离主干路 500 米以内 对主干路建立 500 米缓冲区 Buffer
距离河流至少 100 米 对河流建立 100 米限制缓冲区,然后擦除 Buffer、Erase
位于研究区内部 用研究区边界裁剪所有输入图层 Clip
用地类型必须为建设用地 按 landuse 字段筛选 Select Layer By Attribute
同时满足多个条件 多个适宜区做相交叠加 Intersect
排除生态保护区 从候选区中擦除保护区 Erase
候选面积不少于 5000 平方米 计算面积后按字段筛选 Calculate Geometry、Select Layer By Attribute

这个过程的核心是:适宜条件通常用相交或裁剪保留下来,限制条件通常用擦除或排除去掉。ArcGIS选址分析的结果是否可靠,主要取决于这些规则是否清晰、投影是否正确、距离和面积单位是否一致。

步骤:ArcGIS选址实战完整流程

步骤一:建立工程并统一坐标系

打开 ArcGIS Pro,新建一个工程,建议先创建一个 File Geodatabase,用来存放中间结果和最终成果。不要把所有中间数据都散落在桌面文件夹里,否则后续很难追踪。

把研究区边界、道路、居民点、水系、用地图层加载到地图中。右键图层查看坐标系,重点检查以下内容:

  • 所有图层是否有明确的空间参考;
  • 是否存在未知坐标系;
  • 经纬度坐标是否直接用于距离缓冲区;
  • 研究区是否需要投影到米制坐标系。

如果图层是经纬度坐标,例如 CGCS2000 地理坐标系或 WGS 84,经度纬度单位是“度”,不适合直接做 500 米、1000 米这样的距离分析。应使用 Project 工具把数据投影到适合当地的投影坐标系,例如 CGCS2000 高斯克吕格投影、UTM 投影或本地城市坐标系。

步骤二:裁剪所有数据到研究区范围

为了减少计算量,也避免研究区外的要素干扰结果,先用研究区边界对各输入图层进行裁剪。

  1. 打开 Geoprocessing 面板;
  2. 搜索 Clip 工具;
  3. Input Features 选择道路、居民点、水系或用地图层;
  4. Clip Features 选择研究区边界;
  5. 输出到工程地理数据库中,例如 road_clip、river_clip、landuse_clip。

这个步骤看起来简单,但很重要。很多 ArcGIS选址结果异常,都是因为输入图层超出研究区,导致缓冲区和叠加结果被外部数据影响。

步骤三:提取满足条件的道路和用地

假设选址要求“距离主干路 500 米以内”,不要直接对所有道路做缓冲区。应先按道路等级筛选主干路或次干路。

在道路图层中使用 Select Layer By Attribute,例如字段为 road_type,可以设置类似条件:

road_type IN ('主干路', '次干路')

将选中的道路导出为新图层 road_main。这样后续缓冲区只反映主要交通条件,而不是被村道、小路或内部道路过度放大。

如果选址要求位于建设用地内,也需要从用地图层中筛选可建设类型,例如:

landuse IN ('居住用地', '公共管理与公共服务用地', '商业服务业设施用地')

导出为 landuse_buildable,作为后续适宜区的一部分。

步骤四:生成交通可达性缓冲区

对 road_main 使用 Buffer 工具,距离设置为 500 meters。输出图层命名为 road_500m_buffer。

关键参数建议如下:

  • Distance:500 Meters;
  • Dissolve Type:选择 Dissolve all output features into a single feature;
  • Output Feature Class:保存到工程地理数据库;
  • Method:一般使用 Planar,前提是数据已经投影到米制坐标系。

如果没有 Dissolve,缓冲区会保留每条道路的独立面,叠加时可能产生大量碎小面,影响后续面积统计和结果表达。

步骤五:生成服务对象影响区

假设该设施需要服务居民区,要求距离居民点 1000 米以内。可以对居民点或居民区面要素建立 1000 米缓冲区,输出 resident_1000m_buffer。

如果居民点数据带有人口字段 pop,还可以先筛选人口大于某个阈值的居民点,再做缓冲区。例如:

pop >= 1000

这样得到的服务对象影响区更符合实际需求,避免人口很少的零散居民点对选址结果造成过大影响。

步骤六:生成限制建设区并从候选区中排除

限制条件通常包括河流、水库、生态保护区、基本农田、地质灾害区、高压走廊等。本文以河流和生态保护区为例。

对河流图层建立 100 米缓冲区,输出 river_100m_limit。然后将 river_100m_limit 与生态保护区合并,形成统一限制区 limit_area。

如果有多个限制图层,可以使用 Merge 或 Union 进行整合。后续从候选区中统一擦除 limit_area,流程会更清晰。

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

现在已经有三个主要适宜条件:

  • road_500m_buffer:距离主干路 500 米以内;
  • resident_1000m_buffer:距离居民点 1000 米以内;
  • landuse_buildable:位于可建设用地范围内。

使用 Intersect 工具对这三个图层进行相交叠加。输出为 candidate_raw。这个结果表示同时满足交通、服务对象和用地类型的区域。

这里不要使用 Union 替代 Intersect。Union 会保留所有输入图层的并集,适合分析各条件组合关系;而选址筛选通常要找“同时满足条件”的区域,因此更适合用 Intersect。

步骤八:擦除限制区得到可用候选区

使用 Erase 工具:

  • Input Features:candidate_raw;
  • Erase Features:limit_area;
  • Output Feature Class:candidate_clean。

得到的 candidate_clean 就是排除了河流缓冲区、生态保护区等限制条件后的候选区域。

如果你的 ArcGIS 许可级别中没有 Erase 工具,可以考虑使用 Pairwise Erase,或通过空间选择和编辑方式替代。但在正式项目中,建议使用稳定的地理处理工具,并保留每一步输出,便于复核。

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

选址结果通常不能只看位置,还要看面积。对 candidate_clean 添加面积字段,例如 area_m2,字段类型设置为 Double。

使用 Calculate Geometry Attributes 计算面积,单位选择 Square Meters。然后用属性选择筛选面积大于等于建设需求的地块,例如:

area_m2 >= 5000

将筛选结果导出为 candidate_final。这个图层就是本次 ArcGIS选址分析的最终候选地块。

步骤十:检查结果并制作输出图

最终结果不要只导出数据,还要做空间核查。建议在地图中叠加以下图层:

  • 研究区边界;
  • 最终候选地块 candidate_final;
  • 主干路;
  • 居民点;
  • 河流和限制区;
  • 可建设用地。

检查候选地块是否真的位于道路附近、是否避开限制区、是否落在可建设用地内、是否存在异常碎片面。如果结果过于零散,可以进一步设置最小面积阈值,或者使用 Multipart To Singlepart 后逐个地块检查。

常见坑:GIS空间分析法在ArcGIS中最容易出错的地方

坑一:经纬度数据直接做缓冲区

这是初学者最常见的问题。经纬度坐标的单位是度,不是米。直接设置 500 米缓冲区时,工具可能会给出警告,或者结果明显异常。正确做法是先投影到米制坐标系,再做距离和面积分析。

坑二:没有区分适宜条件和限制条件

适宜条件是希望保留的区域,例如道路附近、居民区服务范围、可建设用地。限制条件是必须排除的区域,例如水域、保护区、灾害区。两类条件的处理方式不同,混在一起容易导致选址逻辑错误。

坑三:用 Union 代替 Intersect

如果目标是找同时满足多个条件的区域,应优先使用 Intersect。如果使用 Union,结果会包含只满足一个条件或部分条件的区域,需要额外字段判断,操作复杂且容易误选。

坑四:忽略小碎面和缝隙

多图层叠加后经常出现碎小面、缝隙和狭长面。这可能来自边界精度不同、数据来源不同或拓扑不一致。正式出图前应检查面积阈值,并根据需要进行 Dissolve、Eliminate 或人工复核。

坑五:只看工具运行成功,不验证空间结果

ArcGIS 工具运行成功不代表分析结果正确。真正的验证应该包括坐标系、距离单位、属性筛选、限制区排除、面积计算和地图叠加检查。

方法比较:ArcGIS选址常用空间分析工具怎么选

工具或方法 适合场景 优点 注意事项
Buffer 距离道路、河流、居民点一定范围内或范围外 直观,适合表达距离规则 必须注意投影和距离单位
Clip 把数据限制在研究区内 减少干扰,提高处理效率 不能替代选址条件叠加
Intersect 多个适宜条件同时满足 逻辑清晰,适合候选区筛选 可能产生碎小面
Erase 从候选区中排除限制区域 适合禁建区剔除 部分许可级别可能受限
Union 分析多个条件的组合关系 保留信息更完整 不适合直接作为最终筛选结果
Raster Overlay 多因子适宜性评价 适合连续因子和权重评分 需要栅格化和权重设置,解释成本更高

如果你的选址规则是“满足或不满足”,例如是否在道路 500 米内、是否在保护区外,矢量叠加方法更直接。如果你的选址规则需要评分,例如坡度越小越好、离道路越近越好、人口密度越高越好,可以考虑使用栅格加权叠加。

检查清单:提交ArcGIS选址成果前必须确认

  • 坐标系:所有输入数据是否统一到合适的投影坐标系?
  • 单位:缓冲区距离和面积计算是否使用米、平方米等正确单位?
  • 范围:所有图层是否已经裁剪到研究区?
  • 道路条件:是否只选择了符合要求的道路等级?
  • 服务对象:居民点或服务对象数据是否完整,是否需要按人口筛选?
  • 用地条件:可建设用地字段是否理解正确,分类编码是否核对过?
  • 限制区:河流、保护区、禁建区是否全部纳入排除范围?
  • 叠加逻辑:适宜条件是否用 Intersect,限制条件是否用 Erase?
  • 碎面处理:是否按最小面积阈值过滤异常小面?
  • 结果验证:是否把最终候选地块与原始图层叠加检查?

FAQ:GIS空间分析法和ArcGIS选址常见问题

Q1:ArcGIS选址分析一定要用 ArcGIS Pro 吗?

不一定。ArcMap 也可以完成缓冲区、裁剪、相交、擦除等操作。但从长期学习和项目实践看,更建议使用 ArcGIS Pro。它的地理处理环境、工程管理、符号化和三维扩展能力更适合后续工作。

Q2:GIS空间分析法做选址时,缓冲区距离怎么确定?

缓冲区距离不应随意填写。它通常来自行业规范、规划要求、项目经验或甲方需求。例如道路可达距离、河流退让距离、服务半径等。练习时可以先设定合理假设,但正式项目必须说明依据。

Q3:为什么我做出来的候选区特别碎?

常见原因包括数据边界不一致、图层精度不同、叠加条件过多、没有 Dissolve 缓冲区、用地图斑本身很碎。可以尝试先 Dissolve 同类图斑,叠加后按面积阈值筛选,并人工检查关键地块。

Q4:Intersect 和 Spatial Join 都能做选址吗?

两者用途不同。Intersect 更适合生成满足多个空间条件的候选区域;Spatial Join 更适合把一个图层的属性按空间关系连接到另一个图层,例如统计每个候选地块附近的居民点数量。实际项目中两者可以配合使用。

Q5:ArcGIS选址分析可以加入权重评分吗?

可以。如果需要综合评价多个因素的重要性,可以将距离、坡度、人口密度、土地利用等因子标准化后做加权叠加。矢量数据可以先转栅格,也可以在候选地块属性表中建立评分字段。但权重设置必须有依据,不能只凭感觉。

Q6:练习数据和真实项目数据最大的区别是什么?

练习数据通常结构简单、字段清楚、拓扑问题少。真实项目数据可能存在坐标系不统一、字段编码不一致、边界错位、重复要素、缺失属性等问题。因此正式分析前,数据清洗和质量检查往往比工具操作更耗时。

结论:ArcGIS选址的关键是把业务条件变成可验证的空间规则

GIS空间分析法在 ArcGIS选址中的核心,并不是记住某一个按钮,而是建立一套清晰的分析逻辑:先统一数据和坐标系,再把适宜条件转换为缓冲区、筛选和相交叠加,把限制条件转换为擦除和排除,最后通过面积、属性和地图叠加进行验证。

如果你是 GIS 初学者,可以先用本文的流程完整做一遍练习:裁剪研究区、筛选道路、生成缓冲区、叠加适宜区、擦除限制区、计算面积、输出候选地块。做完这套流程后,你会真正理解 GIS空间分析法怎么用,也能更稳地完成 ArcGIS选址类作业和项目任务。