今日分享:
基于Satellite Embedding全球森林作物分布图
地球观测大数据的出现,以及人工智能的最新进展,促成了地理空间嵌入技术的发展。这些嵌入技术是紧凑且信息丰富的特征向量,旨在直接应用于机器学习(ML)应用,以执行包括森林监测在内的各种地物识别任务。鉴于现有全球森林产品的局限性以及欧盟森林砍伐法规(EUDR)等政策要求,研究团队评估了应用于谷歌DeepMind Alpha地球基金会(AEF)卫星嵌入数据的轻量级分类器能否准确绘制全球森林和林木作物分布范围。
在本研究中,我们介绍了GEM-Forest,这是一个基于卫星嵌入数据的全球森林数据集,空间分辨率为10米,数据涵盖2020年。此外,我们还推出了相关产品:GEM-FnF2020,用于区分森林/非森林(F/nF)区域;以及GEM-TC2020,用于进一步区分包含林木作物的非森林区域。我们利用覆盖所有主要生物群落的约 47,000 个全球分布的训练样本(这些样本通过自动化方法收集,并结合了多个森林相关、土地覆盖和树木作物数据集),比较了多种机器学习方法,包括线性模型和神经网络。在包含约 21,000 个样本的全球 F/nF 数据集上进行的精度评估显示,不同分类器的性能相近,总体精度为 90-92%,宏观 F1 分数为 0.89-0.90,而线性模型通常优于更复杂的方法。在 10 个数据集上对树木作物子类的验证表明,不同机器学习模型之间的差异更大,其中线性模型大多获得了最高的精度。这种一致性表明,嵌入编码了信息丰富且线性可分的结构,可用于全球 F/nF 区分,包括树木作物的区分。
因此,我们采用线性支持向量机生成了GEM-FnF2020模型,其总体准确率达到91%,宏观F1分数为0.90,森林的漏分率和错分率较为均衡(分别为15%和13%)。这些结果与现有的全球产品相当甚至更优,其中大部分误差出现在开阔林地和林灌过渡带。GEM-FnF2020中将树木作物误分类为森林的残差比例在0.5%至14.8%之间,这表明在GEM-TC2020地图中包含树木作物子类的重要性。GEM-TC2020能够区分农业树木作物,大多数树木作物的总体准确率高于85%,但欧洲树木作物的分类仍然最具挑战性。树木作物分类显著降低了GEM-FnF2020主产品的误判率(0.5%–14.8%)。
提出的方法在AEF嵌入所涵盖的2017–2025年期间展现出强大的时间可迁移性。这项功能支持多年应用,并可基于单年训练的模型进行变化检测,是我们研究的关键下一步。研究结果表明,AEF嵌入结合简单的机器学习方法能够支持准确、可迁移且计算高效的全球森林识别,但仍存在一些与时间分辨率和特征可解释性相关的局限性。
这是一张基于谷歌DeepMind的Alpha Earth Foundation (AEF)卫星嵌入数据,并结合简单的线性支持向量机分类器构建的2020年全球森林和农作物分布的10米分辨率地图。与大多数全球森林产品不同,GEM-Forest明确区分了森林和农作物,例如油棕、橡胶、椰子、橄榄和果树,从而解决了现有树木覆盖数据集的一个已知缺陷,即往往将人工林与天然林混为一谈。
该数据集包含两个版本。GEM -FnF2020是一个二元森林/非森林地图,遵循 FAO 和 EUDR 的森林定义,在包含约 21,000 个点的独立验证集上,总体准确率达到 91%,宏观 F1 分数为 0.90。GEM -TC2020在非森林类别中增加了树木作物类别,大多数树木作物类型的总体准确率超过 85%。由于 AEF 嵌入涵盖 2017 年至 2025 年,因此可以将相同的训练模型权重应用于整个时期——这意味着用户无需重新训练或重建辅助数据集即可生成一致的年度变化检测地图。
| 特征 | |
|---|---|
| 空间分辨率 | 10m |
| 坐标系 | WGS 84 (EPSG:4326) |
| 时间范围 | 2020 年(基准年;可通过发布的模型权重转移至 2017-2025 年) |
| 数据来源 | Google DeepMind Alpha Earth Foundation (AEF) 卫星嵌入 |
| 分类器 | 线性支持向量机(从测试的 8 个机器学习模型中选择) |
| 训练样本 | 全球分布的约 47,000 个点,位于 230 个 100×100 公里的区域内。 |
| 验证样本 | 约 21,000 个 (F/nF) + 8 个树木作物验证数据集 |
| 总体准确率(F/nF) | 91%(宏观 F1 = 0.90) |
| 树木作物准确性 | 大多数类型的成功率超过 85%。 |
| 森林定义 | 粮农组织/欧盟土地登记标准:≥0.5公顷,树木高度>5米,树冠覆盖率>10%,不包括农业和城市用地。 |
| 覆盖范围 | 全球 |
GEM-FnF2020 分类(二元分类):非森林(0),森林(1)。
GEM-TC2020 分类(多分类):非森林其他(0)、森林(1)、树木作物(2)。树木作物包括油棕、橡胶、椰子、其他棕榈树以及欧洲树木作物,如橄榄树和果树。
训练数据说明:
全球森林和土地覆盖数据集(ESA WorldCover、JRC GFC2020 v3、Hansen GFC)相交生成,形成一个“严格”的森林掩膜而自动生成的。
树木作物训练点来源于森林数据伙伴关系(Forest Data Partnership)的棕榈/橡胶图层、全球椰子树地图、哥白尼FADSL欧洲树木作物图层和南美洲树木作物地图。对森林类别应用0.5公顷的多数滤波器,以符合FAO/EUDR的面积阈值。
城市区域则使用GUB GAIA和FADSL城市图层进行掩膜。由于数据限制以及仅凭遥感数据难以区分荫生系统和天然林,可可和咖啡种植园未包含在内。
数据局限性:
由于地块结构分散且训练样本有限,欧洲树木作物的分类准确率较低(45%–66%,具体数值取决于分类器)。
过渡植被(稀疏林地、灌木-乔木镶嵌地、森林边缘)的性能也较差,这些区域是造成大部分误分类的原因
该数据集无法生成2017–2025年AEF覆盖范围之外年份的数据
文章引用方式:
Data Release: Paluba, D., Marsocci, V., Onačillová, K., Puerta Quintana, Y. T., & Hastie, A. (2026). GEM-Forest: A Global satellite EMbedding–based map of forests and tree crops for 2020 (GEM-Forest products, training & validation data, and model weights) (1.0)数据下载地址:
https://zenodo.org/records/18921586源代码链接:
https://github.com/palubad/GEM-Forest交互式展示链接:
https://danielp-cuni.projects.earthengine.app/view/gem-forest数据集限制和使用说明
树木作物组成:树木作物类别主要包括油棕、橡胶、椰子和欧洲水果/橄榄园。
排除项:值得注意的是,由于缺乏高质量的开放获取的全球训练数据,以及通过地球观测数据检测“遮荫”种植系统的技术难度,可可和咖啡种植园被排除在训练过程之外。
区域表现差异: 树木作物的代表性可能因地区而异,有的可能不足,有的可能过高。不确定性最大的是小规模、破碎化的景观(尤其是在欧洲),因为模型可能难以区分非森林植被和复杂的树木作物系统。
验证数据:虽然主要全球森林/非森林数据集和八个树木作物验证数据集的准确性很高,额外的区域验证数据将进一步完善对树木作物分布的全球评估。
- 森林再生分类:与粮农组织和欧盟森林恢复定义将“预期再生的皆伐区”视为森林不同,GEM-Forest 数据集将最近皆伐区或早期再生区(不符合物理标准(5 米高))归类为非森林。
城市土地覆盖误判:在某些城市环境中可能会遇到森林类别的误判。这种情况可能发生在 GUB GAIA 和 FADSL 数据集未能完全捕捉城市土地覆盖范围的特定区域。
| 分类代码 | 描述 |
| 0 | 非森林/其他土地覆盖/无数据 |
| 1 | 天然林 |
| 2 | 树木作物(以油棕、椰子、橡胶和欧洲树木作物为培训对象) |
01
—
GEE部分下载代码
// =====================================================================var GEM_Forest = ee.ImageCollection("projects/sat-io/open-datasets/GEM-Forest/GEM-Forest_2020").mosaic().rename('class');// ---------------------------------------------------------------------// 分类定义// 0 = 非森林(其他)— 遮罩(透明)// 1 = 森林 — 绿色// 2 = 树木作物 — 琥珀色/橙色(仅在 GEM-TC2020 中)// ---------------------------------------------------------------------var COLORS = {forest: '#2e7d32', // deep greentreecrop: '#f57c00' // amber, distinct from forest};// 森林/非森林产品(二元):屏蔽类别 0var FnF = GEM_Forest.updateMask(GEM_Forest.eq(1));// 林业/非林业/树木作物产品:保留第1类和第2类var FnF_TC = GEM_Forest.updateMask(GEM_Forest.gte(1));Map.setOptions('HYBRID');Map.setCenter(15, 10, 3); // global view, slightly off-equatorMap.addLayer(FnF,{min: 1, max: 1, palette: [COLORS.forest]},'GEM-FnF2020(仅限森林)',false // off by default — TC layer is more informative);Map.addLayer(FnF_TC,{min: 1, max: 2, palette: [COLORS.forest, COLORS.treecrop]},'GEM-TC2020(森林+树木作物)',true);// ---------------------------------------------------------------------// Legend (bottom-left)// ---------------------------------------------------------------------var legend = ui.Panel({style: {position: 'bottom-left',padding: '10px 12px',backgroundColor: 'rgba(255,255,255,1)'}});legend.add(ui.Label({value: 'GEM-Forest 2020',style: {fontWeight: 'bold', fontSize: '14px', margin: '0 0 2px 0'}}));legend.add(ui.Label({value: '10米全球森林和树木作物地图',style: {fontSize: '11px', color: '#555', margin: '0 0 8px 0'}}));var legendRow = function(color, label, sublabel) {var swatch = ui.Label({style: {backgroundColor: color,padding: '8px',margin: '0 6px 0 0',border: '1px solid #999'}});var textPanel = ui.Panel({layout: ui.Panel.Layout.flow('vertical'),style: {margin: '0', padding: '0'}});textPanel.add(ui.Label({value: label,style: {margin: '0', padding: '0', fontSize: '12px', fontWeight: 'bold'}}));if(sublabel) {textPanel.add(ui.Label({value: sublabel,style: {margin: '0', padding: '0', fontSize: '10px', color: '#666'}}));}return ui.Panel({widgets: [swatch, textPanel],layout: ui.Panel.Layout.flow('horizontal'),style: {margin: '0 0 4px 0'}});};legend.add(legendRow(COLORS.forest, 'Forest', '>0.5 ha, >5 m, >10% cover'));legend.add(legendRow(COLORS.treecrop, 'Tree crops', '油棕、橡胶、橄榄等'));legend.add(ui.Label({value: 'Paluba et al. 2026 • CC BY 4.0',style: {fontSize: '10px', color: '#1a73e8', margin: '6px 0 0 0'},targetUrl: 'https://doi.org/10.5194/egusphere-2026-1401'}));Map.add(legend);// ---------------------------------------------------------------------// Click-to-query panel (top-right)// ---------------------------------------------------------------------var infoPanel = ui.Panel({style: {position: 'top-right',padding: '10px 12px',width: '260px',backgroundColor: 'rgba(255,255,255,1)'}});infoPanel.add(ui.Label({value: '点击地图查看类别',style: {fontWeight: 'bold', fontSize: '13px', margin: '0 0 4px 0'}}));var infoLabel = ui.Label({value: '(no point selected)',style: {fontSize: '12px', whiteSpace: 'pre', fontFamily: 'monospace'}});infoPanel.add(infoLabel);var clearBtn = ui.Button({label: '清除',onClick: function() {infoLabel.setValue('(no point selected)');var layers = Map.layers();for(var i = layers.length() - 1; i >= 0; i--) {if(layers.get(i).getName() === 'Click point') {layers.remove(layers.get(i));}}},style: {margin: '6px 0 0 0', padding: '0'}});infoPanel.add(clearBtn);Map.add(infoPanel);Map.style().set('cursor', 'crosshair');// Web Mercator m/px at given latitudevar zoomToScale = function(zoom, lat) {var latRad = lat * Math.PI / 180;return 156543.03392 * Math.cos(latRad) / Math.pow(2, zoom);};// Map class code -> labelvar CLASS_LABELS = {0: '非森林(其他)',1: '森林',2: '树木作物'};Map.onClick(function(coords) {infoLabel.setValue('querying...');var layers = Map.layers();for(var i = layers.length() - 1; i >= 0; i--) {if(layers.get(i).getName() === 'Click point') {layers.remove(layers.get(i));}}var pt = ee.Geometry.Point([coords.lon, coords.lat]);Map.addLayer(pt, {color: 'FF0000'}, 'Click point');var zoom = Map.getZoom();var scale = zoomToScale(zoom, coords.lat);// Sample at native 10 m resolution; .unmask(0) so a click on// masked non-forest still returns class 0 instead of null.GEM_Forest.unmask(0).reduceRegion({reducer: ee.Reducer.first(),geometry: pt,scale: 10,maxPixels: 1}).evaluate(function(result) {var classVal = (result && result.class !== null && result.class !== undefined)? result.class: null;var classLabel = (classVal !== null)? (CLASS_LABELS[classVal] !== undefined? CLASS_LABELS[classVal] + ' (' + classVal + ')': 'Unknown (' + classVal + ')'): 'no data';infoLabel.setValue('Lat: ' + coords.lat.toFixed(5) + 'n' +'Lon: ' + coords.lon.toFixed(5) + 'n' +'Class: ' + classLabel + 'n' +'Zoom: ' + zoom + 'n' +'Scale: ' + scale.toFixed(2) + ' m/px');});});var snazzy = require("users/aazuspan/snazzy:styles");snazzy.addStyle("https://snazzymaps.com/style/38/shades-of-grey", "Greyscale");// Center the map on a specific region (optional)Map.setCenter(0, 0, 2); // You can adjust the coordinates and zoom level as neededvar tzero_solar_analysis = ee.FeatureCollection("projects/sat-io/open-datasets/TZERO/TZ-SOLAR-2025Q3_ANALYSIS_POLYGONS");var tzero_solar_analysis_centroid = ee.FeatureCollection("projects/sat-io/open-datasets/TZERO/TZ-SOLAR-2025Q3_ANALYSIS_POLYGONS_CENTROID");var tzero_solar_raw = ee.FeatureCollection("projects/sat-io/open-datasets/TZERO/TZ-SOLAR-2025Q3_RAW_POLYGONS");var tzero_solar_raw_centroid = ee.FeatureCollection("projects/sat-io/open-datasets/TZERO/TZ-SOLAR-2025Q3_RAW_POLYGONS_CENTROID");// Define the visualization parametersvar vizParams = {color: 'FFD700',fillColor: '00000000'};var snazzy = require("users/aazuspan/snazzy:styles");snazzy.addStyle("https://snazzymaps.com/style/38/shades-of-grey", "Greyscale");// Center the map on a specific region (optional)Map.setCenter(0, 0, 2); // You can adjust the coordinates and zoom level as needed
代码有以下功能:
1.下载研究区的数据
2.数据可视化
02
—
结果展示
代码完整链接请在微信公众号后台私信“
全球森林作物分布图(10m)”感谢关注,欢迎转发!
声明:仅供学习使用!
希望关注的朋友们转发,如果对你有帮助的话记得给小编点个赞或者在看!
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……




发表评论