ArcGIS实战:全国各省PM2.5浓度分级制图全流程详解
发布时间:2026/10/5 2:10:34 作者:尧图编辑部 阅读量:1,286

最近又有同事拿着全国各省的PM2.5年均浓度数据来找我想让数据“变成图”。这种需求在环境、统计、规划甚至论文写作里特别常见一张全国省级行政边界底图配上按浓度高低填充的不同颜色旁边再挂个图例一目了然。用ArcGIS做这种事再顺手不过但很多新手第一次操作时会卡在数据格式、投影设置、表连接这些环节不是图出不来就是出来的图配色乱、标注叠成一团。这篇文章我会把整个流程捋一遍从数据整理、投影设置、表连接、分级配色到出图整饰全部按实操顺序讲清楚。你只要跟着步骤走哪怕之前没怎么碰过ArcGIS也能做出一张能放进论文或汇报PPT里的全国各省PM2.5浓度图。1. 制图思路先理清要做“行政尺度对比图”还是“连续浓度表面”1.1 两条技术路线我为什么选“面数据分级设色”做PM2.5浓度图网上能搜到两种主流做法。一种是拿到监测站点的点数据用插值方法生成连续的浓度表面再裁剪到全国范围最后做分级渲染另一种是直接拿省级行政边界的面数据把每个省看作一个统计单元把属于该省的监测数据汇总成一个代表值然后用分级色彩去填充。两种思路都能出图但表达的信息完全不一样。连续浓度表面更强调浓度在空间上的渐变适合展示污染扩散和地形影响而省级面分级图更侧重行政区域之间的横向比较适合做政策分析、年度对比、汇报展示。我这篇文章主讲第二种也就是“省级面属性分级”。原因很实际大多数非科研岗的读者手里拿到的权威数据往往就是已经汇总到省一级的统计表即使你拿到的是站点数据把站点数据按省求均值再挂到省面图层上操作量也小得多。这个方案对ArcGIS技能要求低出图速度快而且结果图非常符合环境公报、学术论文中常见的“省级行政区划分级图”审美。1.2 完整流程拆解从原始数据到成品图的5个环节整条制图链路我习惯拆成五步数据准备与整理、建立工程与坐标系统、属性数据挂接、分级符号化、布局整饰与导出。每一步都有固定的坑位提前知道坑在哪能省出大量返工时间。我把每个环节的核心任务、常用工具和容易出问题的点整理成了下表你可以先存个印象后面的章节再逐个展开。流程环节核心任务常用工具/菜单最容易出问题的地方数据准备获取各省PM2.5数据、省级行政边界整理表格字段Excel、CSV、shapefile字段名乱取、经纬度格式混乱、汇总口径不统一坐标处理统一地理坐标系和投影坐标系定义投影、投影工具搞混地理坐标系与投影坐标系图整体发生偏移或变形属性挂接把PM2.5统计表挂接到省面属性表连接、连接和关联字段类型不一致或连接结果为空值分级符号化选择分级方法、配色方案并对图面进行标注图层属性、符号系统分级方法不匹配展示目的色带区分度低布局导出添加图例、比例尺、指北针等并导出成图布局视图、导出地图导出的图片分辨率不够或图例与地图内容不一致这五步跑完一张合格的浓度图基本上就出来了。接下来我先讲前两步因为我对太多人栽在数据准备和坐标系统这关的印象太深了。2. 数据准备与坐标系统处理2.1 源数据怎么整理才不会在ArcGIS里翻车收到PM2.5数据后的第一件事不是打开ArcGIS而是先把源数据收拾干净。我最常处理的是两类数据一类是已经汇总好的省级“浓度统计表”比如一个Excel表里有省份名称、年均浓度值两个字段另一类是原始的监测站点数据包含站点名称、经度、纬度、浓度值。这两类数据进ArcGIS的路径不一样前者直接做表连接后者要先转成点要素再参与后续计算。很多新手习惯给Excel字段用中文命名比如“省份”“浓度微克/立方米”这本身没问题但字段名里如果有括号、空格或特殊符号在ArcGIS写表达式或做连接时就会变得极其痛苦。我给自己定了一个规矩所有字段名只用英文字母、下划线和数字哪怕表是给别人看的也先另存一版纯英文字段的表。省级统计表我常用的字段是province和pm25_avg站点表则用province、lon、lat、pm25。另外要特别提醒不要直接在ArcGIS里连接.xlsx文件解析慢且容易因为Excel版本问题连不上。正确的做法是把Excel另存为CSV格式或者直接在ArcGIS里右键连接到文件夹但我个人更推荐把CSV用记事本打开看一眼编码如果是中文内容出现乱码就把CSV另存为带UTF-8 BOM或ANSI编码的样子。当然最稳的方法是直接把CSV导入到文件地理数据库File Geodatabase里再操作这也是我一直在用的习惯。后续如果你要把稀散的站点数据汇总到省可以按“省名作为分组字段 浓度值求平均”的思路要么在Excel里用透视表提前算好要么在ArcGIS里用“汇总统计数据”工具按省分组求浓度均值然后把汇总结果挂到省面上。这里我更推荐在Excel里提前算因为你能顺便检查一下数据质量比如有没有站点浓度值和省份对不上、有没有异常单位。2.2 “定义投影”和“投影”到底有什么区别这是ArcGIS新手最容易踩坑的地方也是我几乎每次带人做图都要解释一遍的概念。很多人拿到一个数据打开ArcMap发现图跑到不知道哪里去了或者加载两个图层后一个在赤道附近一个在北极第一反应就是“我是不是要定义投影”。话没错但关键是搞清楚到底该用“定义投影”还是“投影”工具。“定义投影”只是给数据一个“身份标签”它不会改变数据里任何一个坐标值。打个比方你手里有一组坐标数字你需要告诉软件“这些数字的参考基准是WGS84”此时用定义投影就够了。如果数据本身已经有了坐标系统只是图层加载后显示不对你再跑去定义投影反而会把原来的坐标信息覆盖掉让数据彻底错乱。“投影”工具则是真正把坐标从一套系统换算到另一套系统会改变坐标数值。如果两套数据都是WGS84地理坐标系但一张图要求用投影坐标系显示你需要的是“投影”工具而不是“定义投影”。在ArcMap中你先在图层上右键“属性”里看看“源”页签下有没有坐标系统信息。如果显示“未定义”再判断这批数据预期应该落在哪里然后使用“定义投影”去指定正确的坐标系。如果已经定义了继续用“投影”工具转换为目标坐标系例如在中国地图制作里常用的Albers等积投影。ArcToolbox路径是数据管理工具-投影和变换-要素-投影设置输出坐标系时可以直接把另一个图层的坐标系作为模板引用这样能保证两个图层最终处于同一套坐标系统下。我自己做全国尺度地图时投影坐标系一般都选择“Asia_North_Albers_Equal_Area_Conic”或“Albers”因为等积投影在计算面积和比较区域大小的时候不忽悠人。2.3 把浓度数据挂接到省级面表连接的完整操作坐标统一之后接下来就是把统计表挂到省面属性表上。这个环节用到的工具叫“连接和关联”右键图层打开“连接和关联” - “连接”然后在弹窗里设置三项要把外部表格基于哪个字段连接进来、外部表是哪个文件、外部表中用来匹配的字段是哪个。我用的省级边界图层里通常有NAME或省字段外部统计表里有province字段两边匹配成功连接后省面的属性表里就会多出pm25_avg这一列。连接成功后的第一件事不是急着符号化而是检查连接的结果。最常见的翻车场景是连接完成后图层属性表里pm25_avg全是空值或者连接完明明有30个省面但只有28个记录对应上数值。排查的时候先看两个表的匹配字段写法是否完全一致比如一边是“内蒙古”一边是“内蒙”一边是“北京”一边是“北京市”这类差异会导致连接失败。必要时用编辑器手动改掉不匹配的字段值。另外还要注意字段类型数值字段不能是文本型否则后面做分级时会把它当字符串处理出来的图会按字母排序而不是按浓度排序极其难看。如果你手里的是站点级数据而不是省级汇总表那就先把站点数据导入ArcMap作为XY数据生成点然后用“空间连接”把点数据对应到省级面里再按省分组求浓度均值。操作路径是ArcToolbox - 分析工具 - 叠加分析 - 空间连接目标要素选省面连接要素选站点点匹配选项可以选“相交”连接操作选择“统计”统计字段选浓度值统计类型选“平均值”。得到的结果是一个新的省面要素类属性表里直接带上了全省PM2.5均值字段这样就省去了手动连表的步骤。3. 分级符号化把数值变成有层次的配色3.1 分级方法选择的门道数据挂接完成图层属性表里有了各省浓度值之后真正的制图工作才刚刚开始。有浓度值还不够你得决定“用什么方式把这些数值划分成几个区间”这个过程在ArcGIS里叫分类在制图学里叫分级。不同分级方法会直接影响图的观感和信息传达重点。ArcGIS符号系统里提供了自然间断点分级、分位数、相等间隔、几何间隔等几种常用方法。自然间断点分级是基于数据分布特征寻找“断点”让组内差异最小、组间差异最大适合展示数据本身的分组结构也是我在这类浓度图上最常用的方法。相等间隔就是等距离切分数据范围适合浓度值分布相对均匀的情况但如果数据有一个极端值其他省份会被压到同一级里图基本废掉。分位数分级保证每个级别里的要素数量大致相等适合强调排名而不是数值差异但可能把差距很大的数据硬塞到同一等级里模糊了浓度差异。我建议你先默认用自然间断点分5级然后观察图面效果如果某几级颜色太接近再手动调整断点。说到分级数这个没有标准答案。学术论文里常见的是5到7级。级别太少的图信息量不够级别太多会让颜色非常琐碎不适合小比例尺的全国图。我做这种省级浓度图时一般固定5级既能够看出梯度变化又不至于让色带碎裂。如果后续需要多张图放在一起比较还可以采用“统一断点”的方式把多期数据的断点统一这样图与图之间可以直接对比不然每张图各自分级色彩级别不可比。3.2 ArcGIS中符号系统设置的实操路径具体操作步骤很简单却也最容易出细节问题。在ArcMap里右键点击省面图层选择“属性”切换到“符号系统”标签页在左侧选择“数量” - “分级色彩”。右侧的“值”下拉框里选中我们刚挂接进来的pm25_avg字段。这时默认应该会显示5个类别和一种默认配色方案。点击“分类”按钮在分类对话框里把分类方法改成“自然间断点分级法”类别数保持5点击确定。配色这里我要多唠叨两句。很多人默认用ArcGIS里那种从浅黄到深红的连续色带但浓度图配色最怕的是深浅变化不够明确。我更习惯把低浓度用浅黄绿色、中浓度用浅橙色、高浓度用暗红色整体形成一个从“冷”到“暖”再到“重”的渐变色。在“符号系统”里点击色带旁边的小箭头可以调出“编辑”入口自定义色带也可以把默认色带倒过来。核心原则是面积越大的省份颜色饱和度不能太高否则整张图会显得“一片红”真正的高浓度区域应该靠更重的颜色跳出来。还有一个经常被忽略的细节“标准化”和“排除”设置。如果图层属性表里存在空值或0值一定要在“符号系统”里点击“排除”按钮把那些值设成NODATA或排除掉否则这些省会被分到第一级显示成最低浓度非常误导读者。同样如果某些省份缺少数据我建议在图层属性里把空值显示成浅灰色并专门说明“数据缺失”而不是让读者误以为那里浓度极低。3.3 标注与图面排版细节决定专业度符号化完成后图已经不是“白板一块”了但省界之间如果没有任何标注读者很难把颜色和地名对应上。此时可以打开省级面图层的标注在“图层属性” - “标注”页签里勾选“标注此图层中的要素”文本字符串字段选NAME或者省名字段字体大小建议在8到10磅之间字色选黑色或深灰色并加上白色背景晕圈这样标注压在彩色面上也能看清。如果还要在图斑旁标出具体数值可以在“表达式”里写成两行文本一行省名一行浓度值中间用换行符连接。表达式示例[NAME] vbnewline Round([pm25_avg],1)这是VBScript语法在ArcMap中可以直接用。标注多了以后常见的问题是相邻小省的文字互相压盖。可以在“标注”选项卡点开“放置属性”把权重策略改成优先显示面积较大的要素或者把标注密度调低。如果压盖问题仍然存在就手动编辑个别标注的位置切换到“标注工具条”里的标注管理器把那几个小省份的标注手动拖开。做全国尺度图我通常会单独考虑那些地理面积小但浓度又很高的城市用引线引出标注避免文字遮挡图形。图面整体排版还建议把浓度分级色带的每一级标签文字设置成带单位的数值比如“35-50 µg/m³”而不是单纯显示分级序号。双击图例或者进入符号系统的“标注”列可以直接改每个级别的显示文本。这一点太重要了因为论文评审或领导看图的第一个问题一定是“这个颜色代表多少”。4. 出图整饰与导出设置4.1 布局视图里的标准要素图做好了接下来就要从“数据视图”切换到“布局视图”把地图放到一张标准页面里并添加整饰要素。布局视图的入口在ArcMap左下角的视图切换按钮也可以用菜单“视图” - “布局视图”进入。在布局里地图主体只是整张图的一部分还需要给这张图配上图例、比例尺、指北针、标题、数据来源说明等元素。在布局视图中插入图例的方法是菜单“插入” - “图例”。图例向导会让你选择要显示的图层这里只勾选浓度分级图层不要勾行政边界底图之类没有符号学意义的图层。图例的标题建议直接写“PM2.5年均浓度 (µg/m³)”。比例尺我习惯选“交替比例尺”或“双线比例尺”单位改成公里然后根据图的显示范围调整长度。插入指北针时全国地图一般用正北方向指北针即可不要为了好看插一个花哨的斜向指北针。标题栏通常放到图面的正上方或最下方内容写成“全国各省PM2.5年均浓度分布图”这种直白格式必要时在副标题里标注统计时间口径比如“XXXX年”。数据来源说明很多人会忽略但这是专业地图的标配。在布局底部加一行小字写清楚“PM2.5浓度数据来源于XXX行政边界来源于XXX制图时间为XXXX年X月”不仅能增加可信度也是学术规范的一部分。除此之外如果图里存在没有数据的省份建议在图例下方或用脚注方式注明“灰色表示数据缺失”避免看图的人产生误会。4.2 地图导出的参数与格式选择当布局视图里各要素位置调整好后最后一步就是导出。ArcMap的“文件” - “导出地图”会弹出一个对话框里面有各种格式和分辨率选项。这里我直接给你我的经验值如果是用于PPT汇报或网页显示导出PNG格式分辨率为300dpi背景色为白色如果要放进论文或打印不要只导一张位图强烈建议首选PDF或AI格式因为这些矢量格式在放大后不会产生马赛克而且文字是矢量可编辑的后续在AI里微调非常方便。有一类杂病很常见导出后的图片白边明显、背景灰底甚至图例文字出现锯齿。这通常是地图显示缓存的问题而不是ArcGIS本身的毛病。解决方法是先在“布局”页面空白处右键选择“刷新”再使用“文件” - “导出地图”。导出前也要重点检查“选项”里的页面默认背景色确认是白色而不是浅灰。如果导出后图里的文字发虚多半是因为纸张页面尺寸设置得太小但地图比例尺过大可以把页面调整到合适大小裁剪掉多余空白再导出。另外导出的图片在插入Word文档后建议“图片格式”里的压缩不要选太低尤其不要选择“电子邮件96ppi”否则图里的字直接糊掉。这是很多人做完图之后发现“放到Word里就模糊”的根本原因。如果是给同事传原图最好连PDF一起发过去方便对方直接查看或二次编辑。5. 常见问题与排查技巧实录5.1 连上表后属性全是空或者中文变成乱码表连接后出现空值原因八九不离十在字段匹配上。你可以试试直接打开省面图层的属性表检查NAME字段里是否存在不可见空格或全角半角差异。和Excel里看起来一样的“河北”在文本比较时可能一个是全角字符一个是半角字符肉眼根本看不出来但匹配逻辑上就是不等。这时候我习惯在Excel里先用TRIM函数和CLEAN函数清理一遍或者用ArcGIS的字段计算器写成[NAME].Trim()转换后再做连接。中文乱码问题在shapefile中比较常见本质是编码页代码页不被ArcGIS识别。我强烈建议从源头避免不要直接用shp存中文属性把所有数据都放在文件地理数据库.gdb里gdb对中文字段名和中文内容的支持远好于shp。如果你拿到的正好是shp格式且属性表中文乱码可以尝试用ArcGIS的“创建要素类”或“要素转要素”工具把数据导入gdb有时能自动修复编码。用工具转换无效时再考虑用“定义投影”的工具把空间参考属性里的“原始数据集编码”字段改掉这个操作较底层这里不展开但你的方向先知道就好。5.2 导出图片黑背景、背景透明、压盖标注怎么处理导出时发现背景变成纯黑色多半是ArcGIS的“背景值”设置提到了NODATA透明处理。在做分级色彩符号时如果勾选了“Display background value”并且把背景色设成了黑色或是在布局里设置了透明背景导出时就会呈现黑块或透明块。解决办法是在图层属性 - 显示页签把“背景色”设置为白色在导出地图的选项里把背景色设置成白色同时检查“符号系统”里的“NODATA”是否被渲染成了黑色。三个位置逐一检查基本能解决背景异常。标注压盖问题是所有出图新手都会遇到的一关。大范围压盖经过上文的放置属性调整后还是有顽固压盖的话我建议放弃自动放置直接用“标注管理器”把重点省份的标注改成“手动放置”逐一拖动到合适位置。手动放置后需要开启“标注工具条”里的“编辑标注”功能才能保留手动位置并在后续缩放中不跑偏。做全国图时我还会顺手把浓度值最高的几个省用加粗字体和深色背景重点标注引导读者第一时间看到高值区。5.3 想画连续浓度表面从点数据插值到栅格的扩展方案如果你的最终目标不是省级图而是全国范围内更加平滑的浓度连续表面那么就需要用插值方法把监测站点数据外推到整个陆地区域。ArcGIS常用工具包括反距离加权法IDW和克里金插值法。操作路径是ArcToolbox - 空间分析工具 - 插值分析 - 反距离权重法或克里金法输入要素选站点点Z值字段选浓度字段。插值生成的是一个栅格图层默认的分辨率和范围跟当前环境变量有关建议在“环境设置”里把处理范围和掩膜设置为全国陆地边界同时把像元大小设成1公里左右避免生成文件过大。插值结果通常还需要再做一步“掩膜提取”用全国行政边界把插值范围裁剪到陆地部分这样海域不会显示颜色。栅格裁剪后可以根据需要重分类成5级或7级再套用色带符号化。这套流程和省级分级图完全互补省级图适合看行政单元排名插值图适合看空间分布和污染中心。你在论文里两个都可以放只要明确说明两者的数据口径和制图方法即可尤其要警惕站点点位很少但插值范围覆盖全国的情况插值结果在站网稀疏区域的可靠性非常有限这点在文章里最好如实标注。5.4 容易被忽略的几个ArcGIS实用技巧做这类图的过程中还有几个通用技巧值得顺便提一下。第一个是ArcGIS里检查线图层是否有尖锐角、是否有压盖线这类拓扑问题以前需要装插件后来我发现ArcGIS自带的“拓扑”工具就够了在目录窗口里新建拓扑规则如“不能自相交”“不能重叠”跑一遍就能快速把边界图层里的问题清理干净避免出图时出现细碎的线头。第二个是如果要从原始站点数据里点转面比如把某省监测点对应到某省行政单元直接使用“空间连接”比先点转面再相交更高效我建议把空间连接当作首选。第三个是ArcGIS如果要导入在线地图做底图很多人会去搜插件但其实最简单的方式是在ArcGIS Pro里的“添加数据”里直接搜索在线底图或者在ArcMap中添加WMTS服务传统加载天地图或其它服务的思路同样能实现。还有一个使用习惯建议工程要素比较多的时候及早使用“打包地图”功能把省面图层、浓度表、符号设置全部打成一个地图包这样过几个月要复现或者交给同事接手时打开包就是完整工程不用再重新连一次数据。打包入口在“文件” - “共享为” - “地图包”。我吃过好几次亏当时做完图不打包半年后数据文件夹换了位置重新打开ArcMap找不到路径标注和符号设置全部丢失现在无论图纸多简单我都会顺手打一个包。6. 最后一点心得每张图在做之前先花十秒钟想清楚“读者需要从这张图里看到什么”。是看省份排名还是看地理分布规律这个答案会直接决定你用省级面分级还是插值法、用自然间断点还是分位数、要不要加数值标注。我自己做完这类图的习惯是一定会把生成结果截图发给一个不懂ArcGIS的人看一眼问他“哪几个省份浓度最高哪几个最低”如果他能一眼指出来这张图的配色和分级就是达标的如果他需要读图例才能判断那就回去继续调。这个检验方法听起来很土但比任何制图规范都管用。愿你这张全国PM2.5浓度图一次通过。