手把手教你用QGIS加载GLC_FCS30-2020土地覆盖数据(附配色方案与分类体系详解)

张开发
2026/4/12 17:42:39 15 分钟阅读

分享文章

手把手教你用QGIS加载GLC_FCS30-2020土地覆盖数据(附配色方案与分类体系详解)
从零开始QGIS加载GLC_FCS30土地覆盖数据的完整指南第一次打开GLC_FCS30-2020数据时我盯着那片灰蒙蒙的GeoTIFF文件完全不知所措——这和我期待中五彩斑斓的土地覆盖图相差甚远。直到摸索出正确的配色方案和分类体系这些数据才真正活了过来。本文将带你完整走一遍这个数据可视化过程让你也能快速掌握这个强大工具的使用方法。1. 准备工作与环境配置在开始操作前我们需要确保所有前置条件都已满足。首先确认你已安装QGIS的最新稳定版本推荐3.28或更高这个开源GIS软件完全免费且功能强大。安装过程非常简单只需从官网下载对应操作系统的安装包即可。提示Mac用户建议通过Homebrew安装命令为brew install qgis准备好GLC_FCS30-2020数据文件通常下载后会得到一个压缩包解压后包含以下关键文件GLC_FCS30_2020.tif主数据文件GeoTIFF格式Class_Table.csv分类编码与颜色对照表如未提供可手动创建Readme.pdf元数据说明文件重要建议创建一个专门的项目文件夹结构如下/GLC_FCS30_Project │── /Data │ ├── GLC_FCS30_2020.tif │ └── Class_Table.csv │── /Output │── /Temp2. 数据加载与初步检查启动QGIS后按照以下步骤加载土地覆盖数据点击菜单栏的图层→添加图层→添加栅格图层在弹出的文件浏览器中找到GLC_FCS30_2020.tif点击添加按钮导入数据加载完成后你可能会看到一片单色图像——这完全正常因为原始数据使用数字编码表示不同土地类型尚未应用配色方案。此时可以通过以下方法检查数据是否加载正确# 在QGIS Python控制台中运行以下代码检查图层信息 layer iface.activeLayer() print(f波段数: {layer.bandCount()}) print(f宽度: {layer.width()} 像素) print(f高度: {layer.height()} 像素) print(f空间参考: {layer.crs().authid()})正确加载的数据应该显示如下特征属性预期值波段数1分辨率30米空间参考EPSG:4326数据类型整型3. 分类体系与配色方案详解GLC_FCS30-2020采用三级分类系统共包含30种土地覆盖类型。要让这些数据真正有意义我们需要理解其分类逻辑并应用正确的颜色映射。3.1 分类体系解析这个数据集的分类系统基于联合国粮农组织的LCCS标准主要分为5个大类森林植被常绿/落叶阔叶林常绿/落叶针叶林混交林农业用地雨养农田灌溉农田果园自然植被灌木地草地苔藓地衣人工地表不透水面裸地水域冰雪水体永久冰雪完整的分类编码与对应RGB值如下表所示代码分类名称RGB值示例区域10雨养农田(255,255,100)华北平原51常绿阔叶林(76,115,0)东南亚热带190不透水面(195,20,0)城市中心区210水体(0,70,200)湖泊河流220永久冰雪(255,255,255)极地地区3.2 应用配色方案在QGIS中为土地覆盖数据应用标准配色的步骤如下右键点击图层选择属性切换到符号化选项卡渲染类型选择单波段伪彩色插值方式选择离散点击分类按钮加载预设值如果数据集未内置颜色表可以手动创建.qml样式文件内容结构如下!DOCTYPE qgis_style qgis_style version2 symbols/ colorramps/ textformats/ labelsettings/ legendpatchshapes/ symbols3d/ colorramps colorramp typegradient nameGLC_FCS30 tagslandcover prop kcolor1 v255,255,100/ prop kcolor2 v0,70,200/ prop kdiscrete v0/ prop krampType vgradient/ /colorramp /colorramps /qgis_style4. 数据分析与可视化技巧正确配置样式后土地覆盖数据才能真正发挥其价值。以下是几个实用的分析技巧4.1 面积统计计算要计算某类土地的面积分布可以使用栅格计算器打开处理工具箱CtrlAltT搜索栅格计算器输入表达式(GLC_FCS30_20201 51) * 900其中51是常绿阔叶林代码900是30m×30m像元的面积(m²)4.2 创建专题地图制作专业土地覆盖图的建议布局主地图使用配置好样式的土地覆盖数据图例显示所有30个分类可分组折叠比例尺同时显示数字和图形比例指北针简单清晰的方位指示标题框包含数据集名称和时间信息注意打印布局中建议使用导出为图片而非打印可获得更高分辨率输出4.3 常见问题解决遇到数据异常时可尝试以下排查步骤坐标系统不匹配右键图层→属性→源确认CRS为EPSG:4326如需要转换使用处理工具箱中的重投影工具值域显示异常# 检查数值范围 import numpy as np layer iface.activeLayer() stats layer.dataProvider().bandStatistics(1) print(f最小值: {stats.minimumValue}) print(f最大值: {stats.maximumValue})内存不足在设置→选项→系统中增加缓存大小对大区域分析时先使用裁剪栅格工具缩小范围5. 进阶应用与扩展掌握了基础操作后可以尝试以下进阶应用5.1 时序变化分析如果有2015和2020两期数据可以制作土地覆盖变化图使用栅格计算器计算差异(20201 - 20151) ! 0将结果转换为多边形处理工具箱→栅格转多边形对变化区域进行统计分析5.2 与矢量数据叠加土地覆盖数据常需要与其他地理数据结合分析# 示例计算保护区内的森林比例 protected_area QgsProject.instance().mapLayersByName(Protected)[0] raster_layer QgsProject.instance().mapLayersByName(GLC_FCS30)[0] # 使用Zonal Statistics插件 processing.run(qgis:zonalstatistics, { INPUT_RASTER: raster_layer, RASTER_BAND: 1, INPUT_VECTOR: protected_area, COLUMN_PREFIX: lc_, STATISTICS: [2] # 计数统计 })5.3 自动化处理脚本对于重复性工作可以创建处理脚本from qgis.core import * from qgis.utils import iface def style_landcover(layer_path, style_path): 自动应用样式到土地覆盖数据 layer QgsRasterLayer(layer_path, LandCover) layer.loadNamedStyle(style_path) QgsProject.instance().addMapLayer(layer) iface.layerTreeView().refreshLayerSymbology(layer.id()) print(f已为 {layer.name()} 应用样式) # 使用示例 style_landcover( /path/to/GLC_FCS30_2020.tif, /path/to/GLC_Style.qml )记得在QGIS资源管理器中创建对应的按钮方便一键运行这些脚本。

更多文章