简介:这套中国七大地理分区GIS数据包面向ArcGIS、QGIS及Python空间分析使用者,提供华北、东北、华中、华东、西北、西南、华南七个标准区域的Shapefile矢量边界,并附带全国七区合并版,适合开展区域气候对照、生态评估、资源禀赋比较及政策范围界定等中尺度研究。包内共68个文件,以.shp几何数据、.shx索引、.dbf属性表、.prj投影定义、.cpg字符编码等为主,另含可运行的gis_viewer.py辅助脚本;资源总大小仅1.26MB,结构清晰、加载轻量。所有文件已统一坐标系并规范属性字段,省去重复配准与编码处理,可直接用于区域裁剪、空间叠加、统计汇总或制图出图。目前已有129人学习下载,适合需要快速获取标准化地理分区边界、减少数据预处理工作的GIS初学者和研究人员。
1. 数据包定位与实际使用场景
做GIS这行最常遇到的一个情况:项目还没正式跑起来,光是找数据就耗掉半天。尤其是涉及全国范围的空间分析、专题制图、统计汇总这类工作,行政边界的底图数据是绕不开的基础材料,而这个基础材料恰恰是最容易被低估的环节。
前阵子我整理了一套标准化的中国七大地理分区GIS数据包,包含华北、东北、华东、华中、西北、西南、华南七个片区的完整Shape文件,以及一份合并后的全国总文件。聊这个项目不只是分享一个现成的数据资源,更想借这次整理过程,把Shapefile这套老而弥坚的格式在使用中的门道、坐标系选择、属性表规范、常见坑都摊开讲一遍。如果你平时做区域经济分析、人口分布可视化、自然资源普查,或者要给客户做一张看着体面的分区地图,这套数据包可以直接拿来当底图用,省掉最枯燥的准备工作。
数据包里每片区的边界都严格对应标准行政区划,严格意义上来说这七个分区不是纯粹的行政边界——华北、华东、华南这些概念更多地是个经济地理范畴的分片方式。很多公开渠道能找到的全国行政区划数据,往往只到省界这一层,但实际做分析时,常按七个大区做汇总统计,或者按片区着色出图。这套数据包就是围绕这个高频需求做的:按传统七大地理分区把全国省界数据切分好,每片一个shp文件,同时给一份合并版,方便不同场景直接选用。
数据包适合谁用?一句话总结:被边界数据折腾过的人都用得着。无论是刚上手ArcGIS的初学者,还是经常做省级汇总分析的老手,拿到这套数据就能少绕几个弯。后面我会把这套数据的结构、制作过程、使用细节、常见问题一次说透,照着操作用不了十分钟就能跑通。
2. Shapefile格式的核心细节盘点
2.1 一个shp其实是一堆文件的合称
很多刚接触GIS的朋友以为Shapefile就是那个后缀名为.shp的文件,双击就能用。实际操作过就会发现,一个完整的Shapefile是一个文件集合,至少由三个基础文件构成:.shp存几何坐标、.dbf存属性数据、.shx存几何索引。少了任何一个,GIS软件都会报出各种千奇百怪的错误。
这套数据包里每个片区文件夹内有完整的一套文件,除了上面三个基础件之外还带上了.prj和.cpg。这两个文件很多人容易忽略,但它们的作用恰恰很关键。.prj文件记录坐标系统信息——数据用的什么投影、什么基准面,全写在这里;.cpg则声明属性表里的字符编码。我在早年刚入行时吃过大亏:一个同事拷给我的shp文件属性表打开全是乱码,后来才查出是.cpg缺失,默认按当前系统的本地编码去读,而当年那张表是用其他编码存的。所以这次整理数据时所有文件全部补齐编码声明,就是为了杜绝这类低级问题。
另外还有几个非必需但常见的伴随文件:.sbn和.sbx是空间索引,做空间查询时能起加速作用;.shp.xml是元数据文件,记录数据的来源、更新时间等信息。完整的文件集在压缩打包时可能还带一个.lyr或.aprx文件,那个是ArcGIS的图层样式文件,不是Shapefile的标准组成部分,属于项目工程的表达层,换软件就不一定兼容。
2.2 坐标系选择:CGCS2000是基准
这套数据包统一采用CGCS2000国家大地坐标系,这是目前国内官方标准。为什么不用更常见的WGS84?这是个好问题,不少人在微信上问过我。WGS84是GPS使用的全球坐标系,理论上跟CGCS2000差异很小——在中国境内,两者在平面位置上的差距通常在0.5到2米之间,对于宏观区域分析来说几乎可以忽略。但从数据规范的角度,面向国内政务类、科研类项目,CGCS2000始终是硬性要求,很多招投标文件里就白纸黑字写着“采用CGCS2000国家大地坐标系”。
所以做数据包时,我干脆统一按CGCS2000输出,属性层面的坐标数值看上去跟WGS84差别不大,但.prj里记录的基准面定义是国标版本,这样一份数据送到哪个甲方手里都挑不出毛病。如果拿到数据后发现需要的坐标系不是这个,ArcGIS里做一次Project转换就能换过去,几秒钟的事。
这里要特别提醒:合并版文件和各分区文件的坐标系必须一致,否则在ArcGIS中叠加显示时,不同坐标系的数据会自动做投影转换,不仅慢,而且边界会错位几个像素。肉眼看着没什么,量算面积就会出偏差。整理数据包这件事,跟整理代码库一样,统一的规范比技巧更重要。
2.3 属性表结构:FID和NAME是不够的
网上很多公开的省界shp数据,属性表就两个字段:一个OBJECTID,一个NAME。用来画个图还能对付,真要用来做数据分析——比如统计各片区面积、关联经济指标——会发现字段太单薄,做关联时还得手动匹配。
这套数据包在属性表设计上做了一些增强。每个片区文件的属性表里配了这几个字段:NAME(省级行政区名称)、PY(名称拼音首字母,方便检索)、AREA(按CGCS2000计算出的面积,单位是平方千米)、ZONE(所属大区名称)。合并版额外增加一个ZONE_CODE字段,用数字01到07标记七个片区,方便做符号化和统计分析时按字段配色。
字段编码方式是用拼音首字母而不是中文名,算是GIS行业属性表里的一个默认惯例。因为很多大数据平台的关联键就是按拼音规则生成的编码,比如河南省对应代码HA,湖北省对应代码HB,衔接起来少一层转换。如果你拿到这套数据后需要挂自己的统计指标,直接把指标表里的行政区名称字段跟NAME字段做join就行,前提是两边名称写法完全一致——“内蒙古自治区”不能写成“内蒙古”,这些细节往往决定了关联成败。
3. 七大地理分区的划分逻辑与数据构成
3.1 划分标准:省级行政区归属与片区范围
中国七大地理分区是经济地理领域经常使用的划分方式,跟纯粹的自然地理分界不完全一致,是结合行政区划、经济发展水平、地理方位等因素形成的一种约定俗成的划分框架。这套数据包严格按照以下归属关系制作:
华北片区包括北京、天津、河北、山西、内蒙古;东北片区包括辽宁、吉林、黑龙江;华东片区包括上海、江苏、浙江、安徽、福建、江西、山东;华中片区包括河南、湖北、湖南;西北片区包括陕西、甘肃、青海、宁夏、新疆;西南片区包括重庆、四川、贵州、云南、西藏;华南片区包括广东、广西、海南。
港澳台地区的处理方式比较特殊。这三个地区的空间边界数据获取渠道敏感且不同公开来源的表示口径并不统一,所以这套数据包没有包含港澳台的具体边界要素,避免口径不统一导致误用。如果需要这部分数据,建议通过官方发布渠道获取权威版本自行叠加。
3.2 文件的组织方式与命名规范
数据包下载解压后的目录结构是这样的:总文件夹名“中国七大地理分区GIS数据包”,内部有七个片区子文件夹(按拼音排序,华北、东北、华东、华中、西北、西南、华南),每个文件夹里有该片区的完整shp文件集,所有文件用片区中文拼音缩写作为前缀命名。文件命名里尽量不出现中文,能少很多事情。不少GIS软件对中文文件名支持不太好,尤其是老版本的开源工具,碰到中文路径会直接读不出来。所以数据包内的路径和文件名全部采用拼音和英文的组合方式。
另外提供一个名为“全国合并版”的文件夹,里面是那份包含所有省级行政区边界的合并版shp。这份合并版的作用主要体现在两个场景:一是做全国范围的整体出图时,不需要先加载七个分区文件再手动合并,直接拖进来就能用;二是做跨区查询、缓冲区分析这些全局性空间运算时,省掉数据合并这一步能明显减少处理时间。特别是当数据量大了以后,每追加一个要素就做一次几何运算和字段重新计算,这种隐形开销累积起来很可观。
3.3 数据包内文件的规模与预估大小
先说个直观的数字。全国省级行政区划的要素数量是34个(不含港澳台),分布在七个分片里,每个片区少的3个要素(东北片区的辽吉黑),多的7个要素(华东片区的七省一市未含台湾的情况下是七个省),数据量总归是不大的。Shapefile本身存储的是矢量数据,面要素的复杂度主要取决于边界折点的数量。省级边界省界部分相对平滑,国界线部分折点较多,但总体数据量很小。
整个数据包压缩后的体积在实测量级大约400KB到800KB之间,解压后全套文件一般在2MB到8MB的量级,取决于边界要素的详细程度。对比一下影像数据动辄几个GB起步的规模,shp这种轻量级矢量格式在空间数据领域确实算“小文件”了。正因如此,很多网络环境下的地图服务也用矢量瓦片的方式传输边界数据,本质上是把shp按金字塔切片的逻辑进一步拆细。
4. 核心目录:制作流程与实操步骤
4.1 数据源筛选与质量验证
数据包的底图来源是公开的全国省级行政区划矢量数据,选取时重点关注了三个维度:一是边界精细度,省界和国界线的折点密度要够,放大到县域级别依然能看出平滑轮廓;二是属性完整性,省级名称字段必须齐全;三是拓扑正确性,相邻省份的公共边界不能出现重叠或缝隙。
拿到原始数据后的第一件事不是急着做分区,而是跑一遍质量检查。重点检查两类问题:一类是几何问题,包括碎面、重叠面、空几何;另一类是拓扑问题,相邻面之间的公共边是否有保证一致性。具体的检查方法是在ArcGIS里用Check Geometry工具跑一遍,再用Repair Geometry处理掉被标记的要素。这一步如果跳过,后面做合并、裁剪、融合时各种诡异的报错都会冒出来,比如合并后面积对不上、要素数量多出几个莫名其妙的碎片。
4.2 七大分区的切分与生成
制作分区文件时用的是ArcGIS里的Select工具,按ZONE字段把全国数据拆成七个部分。这里有个操作细节:直接用Feature Class to Feature Class转换比Select导出要稳妥得多,因为前者会校验几何,导出过程中报错能及时暴露问题。
拆出七个分区之后,每个分区的要素还要做一次Dissolve操作,把同属一个片区的边界合并成一个多部分要素。这一步的目的是让每个片区文件只有一个要素记录,后面如果要按片区着色、按片区统计面积就非常好处理。如果跳过Dissolve,片区文件里依然还是若干个省级要素,那切分出来的文件跟单独下载省级数据就没有区别了,就失去“分区数据包”的意义了。
合并版文件的制作则反过来,把所有片区的要素合并到一个shp里。用的是ArcToolbox里Data Management Tools → General → Merge。合并后要注意重新计算一下面积字段,因为源数据里的AREA是各省级要素的独立面积,合并后ZONE级别的面积需要重新汇总,否则属性表的数值和几何实际面积对不上。
4.3 属性表字段规范化处理
字段规范是整个数据包里最不起眼却最体现功力的部分。原始数据的NAME字段写的是“北京市”“天津市”这样带后缀的全称,这对做地图注记来说是好事,美观、正式。但做数据关联时往往只需要简称,比如“北京”。为了方便两种场景的使用,属性表里保留了FULL_NAME字段存放全称,另设置NAME字段存放标准名称。
拼音字段PY的生成方式不复杂,手工整理成一张对照表批量更新进去就行,不需要额外写脚本,全国34个省级行政区拼一遍还要不了十分钟。倒是ZONE_CODE这个数字代码需要用Field Calculator做一次条件赋值,相当于跑一遍条件判断的赋值语句,也没技术含量,纯粹是繁琐。
关于字段名长度和命名规范,顺手提一句:Shapefile的dBASE属性表字段名最长10个字符,而且不能有空格、不能用数字开头,这是老格式的历史限制——dBASE III那个时代的遗产一直延续到今天。所以设计属性表字段时,一开始就要按这个规则来,免得字段建好了导出shp时被软件强行截断改名,后面所有依赖字段名的脚本都会跟着翻车。
4.4 打包输出与坐标信息检查
所有文件生成后,最后一道工序是逐一检查.prj文件是否存在且内容正确。操作方法是在ArcGIS里加载每个shp,打开Layer Properties → Source,查看坐标系的描述文字。如果显示的是Unknown或空值,说明.prj缺失或损坏,需要手动重新定义。
都确认无误后,用压缩软件把整个目录打成zip包。这里有个提示:打包时注意保持目录结构,不要单独把文件提取出来扔在压缩包根目录,不然用户解压后要自己建文件夹整理。文件名里要带上日期或者版本号,比如“中国七大地理分区GIS数据包_v1.0_20240615.zip”,后续更新迭代时能自然区分版本。
5. 实操过程中的典型问题与排查记录
5.1 报错排查:从几何错误到编码问题
整理数据的过程中遇到的最典型报错是核密度分析和拓扑检查时的报错信息。热搜词里就有“gis核密度计算报错error 010024: 转换时出错。执行(kerneldensity)失败”,这个错误很多情况下不是核密度工具本身的问题,而是输入要素存在几何错误,或者在投影过程中产生了空几何。处理办法是先用Check Geometry和Repair Geometry跑一遍数据,修复掉无效几何后重新执行核密度操作,成功率会大幅提升。
还有一个高频问题:打开shp属性表时发现中文字段名乱码。这个问题的原因九成是.cpg文件缺失或编码声明与实际不符。常规解决方案是在ArcGIS Pro里重新设置编码,或者用记事本打开.cpg文件,内容是UTF-8就改名为UTF-8.cpg放回原目录。如果数据里的字段值已经是乱码了,那基本要回到源头重新导出。所以数据包里所有文件的.cpg我都确认过是UTF-8声明,避免出现这个常见问题。
5.2 尖锐角与狭长面:边界质量中的隐形风险
做区域分析时,尖锐角和狭长面问题非常容易被忽视,但实际影响很大。用ArcGIS做拓扑检查时,默认的规则不会专门标记尖锐角,只有手动添加拓扑规则“不能存在尖锐角”才能检查出来。尖锐角判断一般以角度值作为阈值,常见的默认阈值是10度或15度——夹角小于这个值的折点会被标记为尖锐角。狭长面的判断则更复杂一些,通常通过面积和周长的比值来衡量,比如一个面要素面积很小但周长异常大,基本可以判定为狭长面。
这类几何瑕疵影响最深的是面积计算和空间统计分析。一个狭长面如果落在统计区域边缘,缓冲区分析的结果会偏离预期。做数据包时我专门跑过一轮拓扑检查,把标记出来的尖锐角逐个手动修整掉。手工修整的操作并不复杂,在Editor工具栏里选择需要修改的顶点拖动即可。但对省级边界这种精度要求不高的数据来说,某些细小折角其实不影响使用,追求绝对的拓扑完美反而浪费时间。这里有一个度的问题,建议在实际项目中按数据用途合理设置阈值。
5.3 同一图层两个面要素重叠的检查
热搜词里“gis 同一图层两个面要素 重叠”这个问题,做全国合并版时特别值得关注。重叠指的是两个面要素的面积区域发生交叉,这和共边是两回事。共边是相邻面共享同一条边界线,这是正常的;重叠则意味着一个物理位置同时归属于两个行政区域,统计时如果不处理就会重复计算。
检查方法在ArcGIS里是用Intersect工具,把图层跟自己求交集,输出的结果里凡是要素数量超过原图层要素数的,就是发生了重叠。修复方法要么是选择其中一个面做擦除(Erase),要么在拓扑规则里选择“不能重叠”进行批量修正。这套数据包在合并前的检查中确实清理掉了几处重叠,主要发生在省界两侧的数据源精度不一致的区域。
5.4 常见问题速查表
| 问题现象 | 可能原因 | 处理方式 |
|---|---|---|
| 属性表中文乱码 | .cpg缺失或编码不符 | 统一改用UTF-8编码并补齐.cpg文件 |
| 打开shp报“未找到对象” | 缺少.shx索引文件 | 检查文件完整性,重新解压或导出 |
| 数据叠加显示对不齐 | 坐标系或投影不一致 | 用Project工具统一到CGCS2000 |
| 面积计算偏差大 | 数据处于地理坐标系未投影 | 先投影到Albers等面积投影再计算 |
| 核密度工具报010024 | 输入要素含空几何或错误几何 | 先Repair Geometry再执行 |
| 合并后要素数量莫名变多 | 源数据存在重叠面 | 使用Intersect检查并擦除重叠区域 |
| 相邻省份边界有缝隙 | 数据源精度不一致 | 在拓扑规则中设定“不能有缝隙”批量处理 |
| 关联字段join后大量空值 | 名称字段写法不一致 | 统一行政区名称规范后重新关联 |
6. 工具选型:ArcGIS与QGIS的取舍
这套数据包全部基于ArcGIS制作,但使用环节用QGIS也完全没问题。QGIS对Shapefile的支持一直非常稳定,开箱即用,且完全免费,对个人用户和中小团队来说是很友好的工具。两者没有孰优孰劣的问题,只是使用习惯和项目要求的差异。
如果你用的是QGIS,打开这套数据包里的任何一个shp后会发现坐标显示和ArcGIS有细微差别,这是因为QGIS默认按WGS84实时投影显示,而数据本身是CGCS2000。不影响使用,只是读取显示层面的差异。QGIS里也能直接修改字段值、跑Dissolve和Merge,操作入口位置不同但功能一致。
如果项目要求高精度制图出图,建议在ArcGIS Pro里打开数据包,利用它的符号系统做分层设色,叠加标注、比例尺、指北针后直接导出打印版图件。ArcGIS的Layout视图在排版方面比QGIS成熟,出图效率高不少。反过来,如果只是做快速浏览和简单查询,QGIS启动快、插件生态丰富,会更顺手一些。
行内有个老说法:工具只是手段,数据才见功底。数据包的整理过程确实让我更确信这句话。数据准备工作是整个GIS项目中最枯燥但最不能省的环节,扎实的基础数据比花哨的分析工具更能决定项目最终质量。
7. 数据包使用建议与后续扩展方向
整套数据拿来直接出图的话,操作路径很简短:打开ArcGIS Pro新建地图,把需要的分区shp拖进内容列表,右键图层打开Symbology,按ZONE字段做Unique Values分类着色,再把标注打开、设个浅色底色,一张分区示意图几分钟就能出来。如果要做省级数据的专题分析,把新区划数据挂接进来、按省份关联字段做join,也算不上复杂操作。
一次省级层面面积汇总只用短短几秒、能得到每个片区的精确面积数值,这就得益于前面做的AREA字段。把这份划分数据保存成模板,后续再有类似统计任务可以直接复用,不需要每次重新处理原始数据。一些做经济地理分析的朋友还可以把历年统计年鉴数据按片区做汇总,生成时空变化图,这套数据包直接作为底图就能承载这类需求。
从长远角度看,可以考虑做的扩展版本包括添加地级市边界、县级边界,或者接入更高精度的省级边界数据。但目前这套七大分区数据包,对大多数日常分析场景来说已经够用了。经过多次实际场景验证,数据质量稳定、属性规范、坐标统一,拿到就能直接用,这本身就是一件难得的省心事。
本文还有配套的精品资源,点击获取