简介:《ArcGIS基础100例(操作手册+操作数据)》由汤国安教授编写,面向GIS初学者及有一定基础的ArcGIS用户,通过100个实操案例帮助读者系统掌握软件核心功能与操作技巧。资源包共2069个文件,约156.04MB,涵盖操作手册PDF、PPT教程、练习案例文本及配套数据。其中shp、dbf、shx、prj等矢量数据文件与tif、tfw栅格数据构成完整练习底图,mxd地图文档、gdb地理数据库、xml元数据及sbx、sbn空间索引文件支撑从数据导入、图层管理到地图布局的全流程操作。手册详细讲解界面认识、数据导入导出与地图设计,PPT教程覆盖GIS基本概念与系统架构,练习案例涉及数据处理、空间分析与模型构建。已有1630人学习下载,适合希望在城市规划、环境研究、自然资源管理等领域提升空间分析能力的学习者,通过真实数据反复练习,逐步理解数据含义、工具选择与结果解读,夯实GIS素养。
1. 从一份被翻烂的 ArcGIS 操作手册说起
如果你在 GIS 这行待过一阵,大概率听过“ArcGIS 基础100例”这个名号。它不是什么新出的在线课程,而是一套流传多年的操作手册加配套练习数据,作者是汤国安。我第一次接触它是在一个做土地利用规划的项目里,当时需要把几十个村的矢量边界和遥感影像做叠加分析,手头只有 ArcGIS 的基本概念,具体操作全靠零散搜来的帖子拼凑,结果坐标系一锅粥,属性表关联后字段全乱。后来一位前辈丢给我这套资料,说“别瞎折腾了,照着练一遍,比你看十篇教程都管用”。
这套资源的核心价值在于“系统”和“可复现”。它把 ArcGIS 从地图打开、图层管理、坐标系定义,到矢量编辑、栅格计算、空间插值、网络分析、三维可视化这些模块,拆成了 100 个独立又互相衔接的练习。每个练习都配了操作步骤和对应的数据文件,你不需要自己去找数据,也不用猜参数怎么设。适合谁?刚入行的 GIS 专业学生、转行做空间数据处理的开发者、需要快速上手 ArcGIS 做项目的规划或环境类从业者。它不教你 Python 脚本自动化,也不涉及 ArcGIS Pro 的最新特性,但如果你连 ArcMap 的基本工具条都没摸熟,这套东西就是最省时间的入门路径。
2. 拆开这份资源:文件构成与数据组织逻辑
2.1 操作手册的章节编排与练习粒度
手册本身是 PDF 或 Word 格式,按功能模块分章,每章下面有若干“例”。一个典型的“例”包含三部分:练习目的、操作步骤、注意事项。练习目的通常一句话,比如“掌握矢量数据的裁剪与合并”;操作步骤会精确到点哪个菜单、选哪个参数、输入什么字段名;注意事项则是一些容易翻车的地方,比如“裁剪时输出范围要选输入要素,否则结果为空”。
我一般会先翻目录,把 100 个例按数据依赖关系分成几组。比如“坐标系定义与投影转换”这组必须最先做,因为后面所有涉及距离、面积的计算都依赖正确的坐标系。然后是“矢量数据采集与编辑”,再是“栅格数据分析”,最后是“空间分析与建模”。这样分组的好处是,你不会在做一个插值练习时突然发现数据还没配准。
2.2 配套数据的目录结构与格式说明
配套数据通常按章节编号放在不同文件夹里,比如Ch03_矢量编辑、Ch07_栅格计算。每个文件夹里包含 Shapefile、栅格影像(TIFF 或 IMG)、个人地理数据库(MDB)或文件地理数据库(GDB)。Shapefile 至少包含.shp、.shx、.dbf、.prj四个文件,缺一不可。如果.prj缺失,ArcGIS 会提示“未知空间参考”,这时候要么手动定义,要么用“定义投影”工具补上。
常见做法是先把所有数据拷贝到本地硬盘的一个英文路径下,比如D:\GIS_Data\ArcGIS100。不要放在中文路径或桌面,ArcGIS 对中文路径的支持时好时坏,尤其是涉及栅格计算和 Python 脚本调用时,中文路径经常导致工具报错“无效的输入”。另外,如果数据是压缩包,解压后检查一下是否有嵌套文件夹,有时候解压出来是Ch03/Ch03/xxx.shp,直接拖进 ArcMap 会找不到关联文件。
提示:拿到数据后先做一次“检查几何”和“修复几何”,尤其是从网上流传的 Shapefile,经常有自相交或空几何,不修复的话后续裁剪、相交都会失败。
3. 从零跑通第一个练习:坐标系定义与矢量裁剪
3.1 环境准备与 ArcMap 初始设置
假设你装的是 ArcGIS Desktop 10.x(这套资料主要针对这个版本,ArcGIS Pro 也能用但菜单位置不同)。打开 ArcMap,新建一个空白地图。第一件事不是急着加载数据,而是设置“默认地理数据库”和“当前工作空间”。在 Catalog 窗口里,右键点击你存放数据的文件夹,选择“属性”,确认路径没有中文。然后打开“环境设置”(Geoprocessing -> Environments),把“工作空间”里的“当前工作空间”和“临时工作空间”都设成你的数据文件夹。这一步能避免很多“输出路径无效”的玄学问题。
接下来加载第一个练习的数据。通常第一个例是“定义投影”。找到Ch02_坐标系文件夹里的一个无投影的 Shapefile,拖进 ArcMap。它会提示“缺少空间参考”,点确定。然后打开 ArcToolbox -> Data Management Tools -> Projections and Transformations -> Define Projection。输入要素选这个 Shapefile,坐标系选“GCS_WGS_1984”。确定后,.prj文件就生成了。
3.2 矢量裁剪的完整操作与参数解析
裁剪是后面几十个练习的基础。假设你有两个图层:study_area.shp(研究区边界)和landuse.shp(土地利用现状)。目标是把土地利用数据裁剪到研究区范围内。
打开 ArcToolbox -> Analysis Tools -> Extract -> Clip。参数设置如下:
- Input Features:
landuse.shp - Clip Features:
study_area.shp - Output Feature Class:
D:\GIS_Data\ArcGIS100\Ch04_裁剪\landuse_clip.shp - XY Tolerance:留空,除非坐标单位是度且数据范围很小,才需要手动设一个很小的值(比如 0.0001)
# 如果你习惯用 Python 窗口,等价代码如下 import arcpy arcpy.env.workspace = r"D:\GIS_Data\ArcGIS100\Ch04_裁剪" arcpy.Clip_analysis("landuse.shp", "study_area.shp", "landuse_clip.shp")逻辑说明:Clip_analysis的第一个参数是被裁剪的要素,第二个是裁剪边界,第三个是输出。注意,裁剪工具会保留输入要素的所有属性字段,但只保留落在裁剪边界内的几何部分。如果裁剪边界是面,输出也是面;如果裁剪边界是线,输出可能是线或面,取决于输入。参数XY Tolerance一般不用改,ArcGIS 会根据输入数据的坐标系自动计算一个容差。如果裁剪结果为空,先检查两个图层的坐标系是否一致,不一致的话用“投影”工具统一。
3.3 属性表连接与字段计算器
裁剪完,下一步往往是关联属性数据。比如landuse_clip.shp里有一个字段CODE,你还有一个 Excel 表landuse_type.xlsx,里面是CODE和对应的TYPE_NAME。用“连接”(Join)功能:右键landuse_clip-> Joins and Relates -> Join。参数选“基于属性字段连接”,图层字段选CODE,表字段选CODE。连接后,属性表里会多出TYPE_NAME字段,但这是临时连接,导出数据才能永久保存。
导出后,如果需要根据TYPE_NAME计算面积,用字段计算器。新建一个双精度字段Area_ha,右键字段 -> Field Calculator。勾选“高级”,输入:
# 假设坐标系是投影坐标系,单位是米 !shape.area! / 10000逻辑说明:!shape.area!返回几何面积,单位取决于坐标系。如果是地理坐标系(度),这个值没有实际面积意义,必须先投影到投影坐标系。除以 10000 是把平方米转成公顷。注意,字段计算器里用!包裹字段名,这是 ArcGIS 的语法,不是 Python 的常规写法。
4. 栅格分析与空间插值的参数怎么设
4.1 栅格计算器与地图代数
栅格分析是这套资料里比较厚的一部分。常见练习包括“栅格计算器”、“重分类”、“栅格裁剪”、“坡度坡向提取”。以“栅格计算器”为例,假设你有两个栅格:dem.tif(高程)和slope.tif(坡度),想算一个“地形起伏度”指标,公式是dem * 0.6 + slope * 0.4。
打开 Spatial Analyst Tools -> Map Algebra -> Raster Calculator。输入:
"dem.tif" * 0.6 + "slope.tif" * 0.4逻辑说明:栅格计算器会自动对齐两个栅格的像元,如果范围或分辨率不一致,会以交集为准并重采样。参数里没有显式的“输出范围”设置,但可以在环境设置里指定“处理范围”和“像元大小”。我一般会先统一两个栅格的投影和分辨率,再做计算,否则结果会有偏移。如果报错“栅格计算器无法打开”,检查栅格是否被其他程序占用,或者路径是否太长。
4.2 反距离权重插值的参数与验证
空间插值练习通常用气象站或采样点数据。以“反距离权重插值”(IDW)为例,输入是点图层stations.shp,字段是rainfall,输出栅格idw_rain.tif。
打开 Spatial Analyst Tools -> Interpolation -> IDW。参数:
- Input point features:
stations.shp - Z value field:
rainfall - Output raster:
idw_rain.tif - Power:2(默认值,表示距离的幂次,越大越局部)
- Search radius:Variable,点数设 12(表示用最近的 12 个点参与插值)
- Output cell size:根据研究区范围设,比如 100(单位同坐标系)
import arcpy from arcpy.sa import * arcpy.CheckOutExtension("Spatial") out_idw = Idw("stations.shp", "rainfall", 100, 2, "VARIABLE 12") out_idw.save(r"D:\GIS_Data\ArcGIS100\Ch08_插值\idw_rain.tif")逻辑说明:Power参数控制插值的平滑程度,值越大,近处点的权重越高,结果越不平滑。Search radius选 Variable 时,点数越多,结果越平滑但计算越慢。Output cell size设得太小会导致栅格文件巨大,设得太大则丢失细节。验证插值效果,可以用“交叉验证”工具,或者留几个点不参与插值,最后对比预测值和实测值。常见坑是点图层有重复坐标,导致插值报错“无法计算”,需要先“删除相同项”。
4.3 重分类与栅格裁剪的联动
重分类常用于把连续栅格转成分类栅格。比如把坡度栅格按 0-5、5-15、15-25、>25 分成四级。打开 Spatial Analyst Tools -> Reclass -> Reclassify。输入slope.tif,重分类字段选Value,点击“分类”按钮,设断点。输出slope_class.tif。
然后裁剪到研究区:用 Spatial Analyst Tools -> Extraction -> Extract by Mask。输入slope_class.tif,掩膜选study_area.shp。参数里有个“是否使用输入栅格的范围”,一般选“否”,让输出范围跟掩膜一致。如果裁剪结果全是 NoData,检查掩膜和栅格的坐标系是否一致,或者掩膜是否在栅格范围之外。
5. 避坑与排查:那些年我踩过的 ArcGIS 雷
5.1 坐标系不一致导致的“空结果”
现象:裁剪、相交、插值结果为空,或者面积计算出来是 0。原因:两个图层的坐标系不同,一个是地理坐标系(度),一个是投影坐标系(米),ArcGIS 不会自动转换,而是按数值直接计算,导致范围不重叠。解决:先用“投影”工具把其中一个图层转到另一个的坐标系,或者统一转到同一个投影坐标系。在 ArcMap 里,右键图层 -> Properties -> Source,看“空间参考”是否一致。
5.2 中文路径与字段名引发的工具报错
现象:运行工具时提示“ERROR 000732: 输入不存在”或“ERROR 000210: 无法创建输出”。原因:路径或文件名包含中文、空格、特殊字符,或者字段名是中文。ArcGIS 的底层是 Python 2.7 和 C++,对非 ASCII 字符支持不完善。解决:所有数据放在英文路径下,文件名用英文和下划线,字段名也改成英文。如果必须保留中文,导出时用“复制要素”工具,在输出路径里手动输入英文名。
5.3 属性表连接后字段丢失或乱码
现象:连接 Excel 或 CSV 后,部分字段显示为 Null 或乱码。原因:Excel 的列名有空格或特殊字符,或者字段类型不匹配(比如一个是文本,一个是数字)。解决:先把 Excel 另存为 CSV,用记事本打开检查列名,确保没有 BOM 头。连接时,两个字段的类型必须一致,文本对文本,数字对数字。如果还是乱码,在“控制面板”->“区域”->“非 Unicode 程序的语言”里改成“英语(美国)”,重启 ArcGIS。
5.4 栅格计算器报错“无法打开栅格”
现象:栅格计算器输入表达式后,提示“ERROR 000964: 指定的范围无效”或“无法打开栅格”。原因:栅格文件被其他程序占用,或者路径太长(超过 255 字符),或者栅格本身损坏。解决:关闭其他打开该栅格的软件,把数据移到更短的路径下,比如D:\GIS\data。如果栅格损坏,用“复制栅格”工具重新导出一次。
5.5 内存不足与大型栅格处理
现象:处理大范围高分辨率栅格时,ArcGIS 崩溃或提示“内存不足”。原因:32 位 ArcMap 最多只能用 2GB 内存,栅格太大时直接爆掉。解决:先用“重采样”降低分辨率,或者用“分割栅格”工具分块处理。如果必须处理原始分辨率,改用 ArcGIS Pro(64 位)或者用 Python 脚本调用arcpy在后台分块计算。
6. 进阶技巧:把 100 例串成自己的工具箱
这套资料最大的价值不是让你会点 100 个工具,而是帮你建立“空间数据流水线”的思维。我后来做项目时,习惯把重复的操作写成 Python 脚本,用arcpy批量跑。比如,把 100 例里的“裁剪-投影-重分类-统计”四个步骤串成一个脚本,输入一个文件夹,自动处理里面所有 Shapefile。
import arcpy import os arcpy.env.workspace = r"D:\GIS_Data\ArcGIS100\Batch" out_folder = r"D:\GIS_Data\ArcGIS100\Batch_Out" clip_feature = r"D:\GIS_Data\ArcGIS100\study_area.shp" # 遍历工作空间里的所有 Shapefile for shp in arcpy.ListFeatureClasses("*.shp"): name = os.path.splitext(shp)[0] # 裁剪 clip_out = os.path.join(out_folder, name + "_clip.shp") arcpy.Clip_analysis(shp, clip_feature, clip_out) # 投影到统一坐标系 proj_out = os.path.join(out_folder, name + "_proj.shp") arcpy.Project_analysis(clip_out, proj_out, arcpy.SpatialReference(32650)) print(f"{name} 处理完成")逻辑说明:ListFeatureClasses返回当前工作空间的所有 Shapefile。Clip_analysis按研究区裁剪,Project_analysis统一投影到 WGS 1984 UTM Zone 50N(EPSG:32650)。SpatialReference(32650)是直接传 EPSG 代码,比手动选坐标系更稳。脚本跑完后,检查输出文件夹里是否有空文件,空文件说明裁剪时没有重叠,需要回头检查坐标系。
另一个技巧是“模型构建器”。把 100 例里涉及多步骤的练习,比如“从 DEM 提取坡度、坡向、起伏度”,用 ModelBuilder 连起来,保存成工具。下次换一个 DEM,直接拖进去就能跑。模型构建器里可以设“前提条件”,比如先检查坐标系是否一致,不一致就自动投影。这样即使数据变了,流程也不会断。
从那以后我每次拿到新数据,都强制走一遍“检查几何 -> 定义投影 -> 统一坐标系 -> 裁剪 -> 分析”的流程,再也没出现过结果为空或者面积算错的情况。这套 ArcGIS 基础100例,我建议你别贪快,一天做 5 个,做完把步骤默写一遍,比看视频强。希望帮到你。
本文还有配套的精品资源,点击获取