10米分辨率土地覆盖数据处理全流程:从解压到面积统计与制图
2026/8/30 4:22:41 网站建设 项目流程

简介:本资源为2019年云南省高精度土地利用/覆盖专题数据集,面向地理信息、遥感、生态规划及国土管理领域的科研人员与高校师生,用于区域土地利用格局分析、变化监测、生态评估等空间分析任务。数据基于Sentinel-2 10米分辨率影像,采用深度学习方法生成,涵盖耕地、林地、草地、灌木、湿地、水体、不透水面、裸地、雪/冰共10类地物;经坐标系统一重投影(墨卡托→WGS84)并按云南省16个地级行政区精确裁剪,每个市州均提供独立TIF栅格文件及配套属性支持文件。压缩包含112个文件,主体为16个.tif(主数据)、16个.xml(元数据)、16个.xlsx(分类编码与统计表)、16个.png(可视化预览图)等,总大小115.71MB,结构规范、开箱即用。已有325人学习下载,用户可直接开展ArcGIS/QGIS空间叠加、面积统计、景观指数计算及市级尺度对比分析,无需额外处理坐标与边界。 拿到这个压缩包的时候,我其实是很高兴的——2019年10m精度云南省土地覆盖土地利用,这个命名就已经把最关键的信息都摆出来了:区域范围、数据时相、空间分辨率。但高兴归高兴,真正动手处理才是挑战的开始。说实话,这类数据我前后处理过不少,从Landsat的30米到GF-2的亚米级,但10米这个档位其实是最“鸡肋”也最实用的一个档次,处理得好能出很多活,处理不好就是一堆打不开的黑块。

这篇就把我从解压、预处理、读分类、做统计到实际出图的全过程理一遍。内容偏实操,适合刚拿到数据、正对着一个.rar文件发愁的朋友,也适合做过30米数据但现在想换成10米精度的老手参考。

1. 看到“10m精度”先别急:先弄懂这份数据到底是什么

1.1 土地覆盖和土地利用:概念上就差一层窗户纸

很多人把“土地覆盖”和“土地利用”混着用,但在遥感数据里,这是两个完全不同层次的东西。

土地覆盖(Land Cover)看的是地表的物理属性:这里长的是树、那里是水、再过去是裸土,这些都是直接能从影像上判读的。土地利用(Land Use)则是社会属性:同一片林地,可能是生态公益林,也可能是经济林;同一块草地,可能是天然牧草地,也可能是人工草坪。土地利用分类必须结合社会经济数据、实地调查、规划资料才能定,光靠卫星影像很难一个像素一个像素地判断。

这份数据命名为“土地覆盖土地利用”,大概率是做了兼容处理——主分类偏土地覆盖,但在部分类别上参考了土地利用的语义。比如“农田”这种类别,既需要看地表有没有农作物,也需要参考种植结构信息才能区分水田和旱地。我在处理时有个习惯,拿到数据后第一件事就是看它的属性表或分类说明,确认每个类别到底是按地表特征分的,还是按用途分的。这个不搞清楚,后面的面积统计、专题图制作都有可能会被带偏。

1.2 10米分辨率在实际应用里到底够不够用

先给结论:10米精度在当前的应用场景里,属于“够用且高效”的中间档。

对比一下就明白了。Landsat系列的30米分辨率,一个像元对应地面900平方米,超过一个标准篮球场。用它做省域尺度的森林覆盖变化,可以;但要做一条村级道路两侧的违建图斑,就完全不够看。亚米级数据(0.5到1米)精度高,一栋房子、一棵大树都能看清,但覆盖云南省39万平方公里,数据量动不动就是几个TB,处理成本非常高,一般项目根本顶不住。

10米精度则是一个很好的折中。一个像元100平方米,能分辨出大块耕地、连续林地、村落建筑群、河流主干道,在做省级、州市级尺度的土地利用现状调查和生态评估时完全够用。我在处理云南省的数据时发现,10米产品对云南这种地形破碎、地表类型转换频繁的区域,比30米数据好太多——云南的山地梯度大,山谷里的耕地和山坡上的林地往往就隔几十米,30米数据很难把它们分开,10米就能比较清晰地切出边界。

当然,它也有短板。10米数据对零星分布的农村单体建筑、小路、小水塘这类细小地物仍然会漏判;在云贵高原的阴影区,峡谷两侧的山体阴影很容易被误分类成水体或裸地,这个后面会专门说。

2. 从.rar到“能用的数据”:解压、校验、文件识别一次讲完

2.1 解压环节最容易出问题的三个点

先说工具。.rar格式最稳妥的软件还是WinRAR或7-Zip,国产的Bandizip也不错。WinRAR是收费的,但解压功能一直能用,只是会弹窗提醒;7-Zip完全免费,解压.rar格式没有问题,我日常主力就是它。还有一点,Windows 11系统自带了对.rar的解压支持,右键直接“全部解压缩”就行,不装第三方软件也能应付大多数情况。

但解压这件事,看着简单,实际有三个坑值得提前注意。

第一个坑是解压路径。很多人图省事,把压缩包解压到C盘用户目录或系统临时目录,结果数据一出就是几十GB,C盘瞬间爆红。土地覆盖数据是栅格数据,云南省10米一层通常是几个GB到十几个GB,如果包含多波段或分幅文件,还会更大。我拿到这类数据的第一反应是准备一块剩余空间充足的独立数据盘,在根目录建一个“LandCover_Yunnan_2019”文件夹,把路径记下来,后面所有操作都在这个目录下进行。

第二个坑是文件名乱码。很多数据在生产时用的是Linux环境或国内自研软件打包,文件名里带中文字符比较容易出问题,更麻烦的是部分字符编码用的是GBK,而Windows下解压默认按本地编码处理,有时候解出来的文件名会变成“锟斤拷”之类的乱码,甚至直接解压报错。碰到这种情况,可以先试7-Zip打开压缩包,看文件名在软件里显示是否正常;如果正常,解压时在选项里选择“使用原始文件名”往往能解决。

第三个坑是压缩包被分卷存放。如果拿到的是一堆.split或.part01.rar这样的文件,说明数据被分卷压缩了,必须把所有分卷放在同一个目录下,文件名不能改动,然后双击第一个分卷解压。少任何一个分卷都会报错,这个没捷径。

2.2 解压后你该看到什么样的文件

解开之后,你大概率会面对一个或几个栅格文件。常见的有这几种情况:

  • 单个完整的GeoTIFF文件(.tif),范围覆盖云南省全境,可能附带一个.tfw世界文件或内嵌的地理参考信息
  • 按标准分幅拆分的多个TIFF文件,需要用镶嵌工具拼起来
  • .img或.ers格式文件,通常是Erdas或PCI软件处理的产物
  • 如果数据是矢量格式,可能会有.shp、.dbf、.shx等文件组

不管哪种情况,我都建议先打开文件管理器,看一眼文件大小和数量,然后挨个用ArcGIS的栅格浏览功能或QGIS快速预览一遍,确认不是所有文件都是同一区域的重叠图。有些数据因为生产时按图幅处理,相邻图幅之间有重叠区,后期拼接时需要做接边处理,不能直接一股脑地全部加载进来。

2.3 数据完整性检查

这一步很多人会跳过,但我强烈建议做。完成解压后,在ArcGIS中先添加一次数据,打开属性表或查看“源”信息,确认维度(行数和列数)、分辨率(10米)、位深、投影信息都正常。如果数据坐标系是地理坐标系(经纬度),不管是不是WGS84,在使用前都需要判断是否需要投影转换,因为直接在地理坐标系下做面积计算会误差很大。这一条我会在后面的面积统计部分重点演示。

另外,如果压缩包里附带了.xml或.txt元数据文件,一定花几分钟读一遍。元数据里往往写清楚了分类体系、数据生产方法、投影信息、数据版本和修改日期,这些信息比数据本身还值钱。

3. 把栅格数据“用起来”:ArcGIS与QGIS里的加载和显示

3.1 加载前先确认坐标系

这一步是新手最容易忽略、也最容易导致后面连环报错的环节。

我习惯的做法是:先把栅格添加进ArcMap或ArcGIS Pro,图层右键打开“属性”,切到“源”选项卡,查看“空间参考”信息。这里会显示坐标系名称、投影参数、中央经线、False Easting等。

对云南省来说,常见的有两种情况:

  • 地理坐标系,比如WGS84或CGCS2000,单位是度
  • 投影坐标系,比如WGS 1984 UTM Zone 47N(云南大部分区域落在47带和48带)、CGCS2000 / 3-degree Gauss-Kruger zone 35到37,或Albers等积投影

如果是做面积统计或距离量算,必须在投影坐标系下进行,而且优先选择等积投影。我通常直接把数据重投影到“Albers Conical Equal Area”或“CGCS2000 / Albers”,中央经线设在云南中部(约101度E),双标准纬线设为25度和47度左右——这是全国地图和省级制图里比较通用的配置。

这里插一句:如果源数据已经是地理坐标系,而你要做统计但不想重投影整个栅格,也可以用ArcToolbox里“数据管理工具 → 投影和变换 → 栅格 → 投影栅格”进行转换,重采样方法选“最近邻”(NEAREST)。注意,土地覆盖数据是分类数据,重采样一定不要用双线性或三次卷积,那些会让类别边界出现中间混合值,导致后续统计出错。

3.2 为什么打开后一片黑或者一片惨绿

这个问题绝大多数人都遇到过,而且原因各不一样。

最常见的原因:栅格数据用整型表示类别代码(比如1代表林地、2代表草地),默认拉伸显示时,软件把全场最小值到最大值的范围线性拉伸,导致大片区域都落在同一个色阶上,看起来就是一片黑或一片绿。解决办法是:

  • 在图层属性里找到“符号系统”(Symbology)
  • 对单波段栅格选择“唯一值”(Unique Values)渲染方式
  • 把Value字段选为类别代码
  • 系统会自动为每个类别分配颜色,如果类别多,可以手动替换色带

第二种情况是源数据本身有NoData值设置问题。有些栅格把背景区域设为0,但分类体系里0并没有定义,这样0就会跟水体、裸地混在一起,甚至直接遮住有效数据。这时候需要运行“按掩膜提取”或“重分类”工具,把0和NoData统一处理,再显示就正常了。

第三种情况是位深和拉伸配合不佳,比如16位无符号整型数据按8位方式显示,色彩会严重失真甚至完全变黑。这种我一般是把符号系统改成“拉伸”并按自定义最小值/最大值渲染,或者用“计算统计数据”先生成统计值,问题基本能解决。

3.3 制图输出时的配色经验

土地覆盖数据的专题图,配色如果拉胯,整个专业度都会大打折扣。我在这里分享一个多年总结的配色调色板思路,对不同类别用一眼可辨的颜色:

  • 林地/森林:绿色系,深绿代表乔木林,浅绿代表灌丛
  • 草地:草绿或黄绿色
  • 农田:黄色或亮橙色
  • 水体:蓝色系
  • 建设用地/不透水面:红色或深灰色
  • 裸地:棕色或浅黄
  • 湿地:青色或蓝绿色

ArcGIS Pro里可以保存为“配色方案”文件(.clr或.lyrx),以后处理其他省份数据直接套用。QGIS里则是加载样式文件(.qml),操作逻辑一样。这套配色逻辑还有一个好处:视觉上更接近GlobeLand30的官方配色,出图后拿去和权威产品对比时,会比较直观。

4. 分类体系是数据的灵魂:读懂类别代码才能做统计

4.1 常见10米土地覆盖分类体系的对比

拿到数据后,你可能看到的是数值代码(比如10、20、30),也可能直接是中文类别名称。如果只有数值代码而没有分类说明,可以通过属性表或元数据判断用的是哪套体系。

10米产品里比较常见的分类体系:

代码Esri 10m体系FROM-GLC体系常见对应地物
1水体水体河流、湖泊、水库
2树木森林乔木林、竹林
3草地草地天然草甸、草坡
4灌丛灌木山地灌丛、灌草丛
5农田耕地水田、旱地
6建筑不透水面城镇、村落、道路
7裸地裸地裸岩、沙地、工地
8积雪/冰湿地冰川、季节性雪(云南极少)

如果数据带中文属性表,那就不需要猜。不管哪种体系,第一件事是把完整的“代码-类别”对照表记录下来,最好存成一个Excel或CSV,后面要用它做面积汇总和分级统计。

4.2 用属性表做全区域面积统计

分类栅格的统计,最忌讳的就是“人工数像元”。一张云南全境10米栅格,像元数动辄几十亿,必须用工具。

在ArcGIS里最常用的方式是:ArcToolbox → 空间分析工具 → 制图 → “以表格显示分区统计”或“栅格转面”后再拿矢量属性表做汇总。我更推荐用“以表格显示分区统计”,它能把每个类别代码占用的像元数输出成一个dbf表,再通过像元数乘以像元面积(10乘10等于100平方米)就得到面积,然后转成公顷或平方千米。

Python方式更灵活。这里给一个用rasterio读取并统计面积的示例,适合不在ArcGIS环境下快速出结果:

import rasterio import numpy as np with rasterio.open("LandCover_Yunnan_2019.tif") as src: data = src.read(1) nodata = src.nodata # 像元尺寸 transform = src.transform pixel_size_x = abs(transform[0]) pixel_size_y = abs(transform[4]) cell_area = pixel_size_x * pixel_size_y # 去掉NoData valid = data[data != nodata] classes, counts = np.unique(valid, return_counts=True) total_area_by_class = {} for cls, cnt in zip(classes, counts): area_m2 = cnt * cell_area total_area_by_class[cls] = area_m2 / 1_000_000 # 转成平方千米 for cls in sorted(total_area_by_class): print(f"类别 {cls}: {total_area_by_class[cls]:,.2f} km²")

注意,如果数据源坐标系是地理坐标系,上面这个像素宽高是按度计算的,算出来的面积没有任何意义。必须先投影成等积投影坐标系,再执行统计。这一点我说三遍都不嫌多,因为这是最容易被忽略、又最容易导致结果完全错误的环节。

4.3 按行政区划或流域做分区统计

全省总面积统计只是基础,实际工作中更多是按州市、县域或流域范围来统计。

在ArcGIS里可以用“分区统计”(Zonal Statistics as Table),分区要素是行政边界(.shp),值栅格是土地覆盖数据。输出的表格里每一行对应一个行政区,每一列对应一个地类的面积或像元数。这样就能快速回答“某个县农田占比多少”“上游某流域森林覆盖面积多少”这类问题。

做这一步之前有一个重要准备:行政边界和栅格数据必须处于同一坐标系下。如果边界是地理坐标系,栅格是投影坐标系,必须先用“投影”工具把边界投影到和栅格一致;如果栅格是地理坐标系,则建议先把栅格投影到等积坐标系,再让边界跟着投影。反正中心原则就是:统计前必须统一坐标系,否则每个县界的边界位置都可能漂移几百米到几公里。

5. 这份数据能做什么:从现状制图到变化检测再到综合评价

5.1 土地利用现状图与规划辅助

10米精度的土地覆盖数据,做州市级和县级“土地利用现状图”的底图是完全够用的。我在项目里经常拿它做现状图底图,叠加行政边界、道路、水系、居民点符号,出图比例尺控制在1:5万左右,视觉效果和精度都过得去。

这类图件的直接用途包括:国土空间规划现状基数底图、生态保护红线校核的基础参考、植树造林适宜性评估的前期底图等。尤其在云南省这种生态系统类型丰富的地区,用10米数据能比较清楚地把林地和灌丛、草地之间的边界标出来,规划人员在踏勘前就能大致了解区域地表覆盖格局。

5.2 多期数据叠加做变化检测

如果手头有多个年份的10米土地覆盖数据,变化检测是最好用的方向之一。

做法其实不复杂:用栅格计算器(Raster Calculator)或重分类工具,把两期数据的类别代码按下标偏移后相加,就能生成一个“变化类型图”。比如2009年林地(代码2)到2019年耕地(代码5),变化类型值可以记录为“2→5”。然后对变化类型做统计分析,就能得到主要的变化方向、变化面积和空间分布。

结合云南实际情况来看,这类变化检测最常发现的几类问题:

  • 城镇扩张占用的耕地和林地
  • 橡胶林、茶园等经济林扩张,吞并天然林
  • 水库修建后淹没区域
  • 山火后林地向灌丛/裸地转化

需要注意,跨产品对比时要先确认两期数据的分类体系完全一致,如果不一致,必须先做类别合并归一到统一体系,再对比。否则误差会远超真实变化量,得出完全反直觉的结论。

5.3 与高程、气象、人口数据融合的进阶玩法

单独一份土地覆盖数据能做的分析有限,但和其他数据叠加,就能做出很多扩展应用。

我做过的一个例子是:把土地覆盖数据和高分辨率DEM(比如SRTM 30米或12.5米)叠加,按坡度和海拔分段统计林地的分布规律。云南是典型的高原山地区域,不同海拔带上的植被类型差异极大,这种叠加分析对生态区划特别有用。

再比如叠加人口格网数据、道路数据和夜间灯光数据,可以分析城乡建设用地扩展与人口迁移的关系。叠加降雨和温度格网数据,可以估算不同覆盖类型下的生态服务价值或水源涵养能力。这类分析在ArcGIS里通过“提取多值到点”或“分区统计”就能完成,难度不高,但产出很出彩。

6. 实操中的坑:我处理这类数据时踩过的雷

6.1 大范围栅格数据的计算内存问题

云南省面积约39万平方公里,10米栅格全图运算非常考验电脑。我曾在普通办公电脑上用ArcGIS做全省范围的重分类,跑了一个小时都还在“Drawing...”,最后直接报内存不足。后来总结经验,分两步走:

一是先裁剪再运算。把全省范围按照州市或县域边界裁剪成小块,分别处理完再合并结果。ArcGIS的“按掩膜提取”非常快,按16个州市来切份,每份数据的运算速度会快几个数量级。二是合理使用环境设置。在执行重分类、面积统计等工具前,把“环境 → 处理范围”设为目标区域,“栅格分析 → 像元大小”设为10米,避免软件把整个数据集当作一个整体来加载。

QGIS里处理大数据相对轻量,但文件格式建议转成Cloud Optimized GeoTIFF(COG)或直接使用原生TIFF,避免Shapefile转栅格时一次性载入内存。

6.2 面积误差的来源能有多大

项目里见过不少把面积算错的情况,几乎都出在坐标系和投影上。同样是云南全省的林地面积,用WGS84地理坐标系直接统计,结果可能是用Albers等积投影统计结果的1.5倍以上。原因是经度方向的长度在不同纬度上被拉长或压缩,而面积误差随纬度变化非常明显。

还有一类误差来自数据本身:原始分类栅格中的混合像元、云影误判和边界锯齿,都会让某类地物面积偏高或偏低。我的建议是,当统计结果与官方统计数据有明显出入时,先不要急着怀疑数据,把元数据和分类说明翻出来,看有没有做过滤(比如面积小于某阈值的图斑被去除),再做局部目视检验。

我在云南处理10米数据时,试过用原始数据统计森林覆盖率,和官方公布数字差了2到3个百分点,后来逐块对比发现是峡谷阴影被大量分成了裸地。用DEM做坡度筛选,把坡度大于60度、位于阴影区域的地类重新校正回去,误差就明显缩小了。

6.3 关于加密压缩包和授权文件

再回到最开始那个.rar文件。有时候你拿到的压缩包是加密的,这出于数据授权和保护需要,是正常的。我自己也遇到过打不开的情况,这时候最正确的做法不是去想各种“密码移除”的旁门左道,而是直接联系数据提供方或数据生产单位,找对接人索取解压密码和授权文件。

特别提醒:如果是科研项目用的数据,拿到压缩包后第一时间记录数据的来源渠道、获取时间和授权范围,妥善保存证明文件,因为后续论文投稿或项目验收有可能需要说明数据来源合法性。另外,解压出来如果包含没有后缀名的文件,不要随便去改后缀,先尝试用ArcGIS或QGIS的打开方式识别,或者用十六进制工具看一下文件头——很多栅格数据只是扩展名被去掉了,数据本身并没有坏。

还有一次,我遇到压缩包里附带了一个.lock文件,当时以为是病毒,后来才知道是某生产软件自动生成的临时锁定文件,可以直接忽略。这类“杂项文件”不要乱删,只要不影响主要数据文件,就保留在原地,万一要溯源还能用得上。

6.4 一批可用的小工作站配置建议

如果你打算长期处理10米精度的省级土地覆盖数据,电脑配置高低直接决定下班早晚。我的经验配置是:内存至少32GB起步,64GB更从容,因为加载全省栅格做计算时,内存是最大的瓶颈;CPU核心数尽量多,重分类和分区统计这类工具都是单线程优化的,多核提升相对有限,但数据IO密集操作时多核还是有帮助;固态硬盘必须有,NVMe协议的最好,栅格数据读取快慢很多时候就卡在磁盘读写上;显卡反而不重要,制图出图时显卡内存有8GB就够。

如果手头机器确实跑不动,也别硬扛,建议把数据按范围切块处理,或者直接上虚拟Linux服务器用GDAL/Parallel处理,批量脚本跑完再拿回桌面GIS出图。我第一次跑全省数据时就是在服务器上用GDAL做重投影和统计,效率比自己电脑高非常多。

最后分享一个小习惯,我现在拿到的每一份数据,都会在旁边建一个名为“00_README.txt”的文本文件,记下数据名称、来源、坐标系、像元大小、分类体系对照表、处理日期、处理人。开始的时候觉得是浪费时间,后来项目一多、数据一杂,这个文件救了我好几次,几次交接工作全靠它撑场面。也希望这份云南省2019年10米数据的处理记录,能帮你少走点弯路。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询