当前位置: 首页 > news >正文

基于GEE与哨兵2号的土地覆盖分类方法及实现

利用遥感技术进行土地覆盖分类是地表变化监测的基础工作。Google Earth Engine(GEE)平台凭借其海量数据存储与并行计算能力,显著降低了长时间序列、大区域土地分类的技术门槛。本文基于哨兵2号遥感数据,介绍利用GEE实现土地覆盖分类的完整流程,包括数据预处理、特征构建、分类器训练及精度验证等关键环节。

技术优势与数据选择

本方法采用哨兵2号(Sentinel-2)地表反射率数据(COPERNICUS/S2_SR_HARMONIZED),具有以下优势:

  • 空间分辨率达10米,可满足中小尺度土地分类需求
  • 包含13个光谱波段,覆盖可见光至短波红外范围
  • 重访周期为5天,能有效规避云污染影响

结合GEE平台特性,可实现:

  • 免数据下载与预处理,直接调用标准化产品
  • 集成多种分类算法,支持交叉验证与精度对比
  • 自动化批量处理,快速生成多时相分类结果

技术流程与实现代码

1. 研究区定义

首先加载研究区矢量边界,确保后续分析范围精准:

// 替换为实际研究区资产路径
var roi = ee.FeatureCollection("your研究区资产路径");
Map.centerObject(roi, 9); // 设定地图显示中心与缩放级别

2. 影像合成与特征构建

通过年度合成消除云干扰,并构建光谱特征与指数特征:

function getComposite(year) {// 哨兵2号影像年度合成var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED').filterDate(ee.Date.fromYMD(year, 1, 1), ee.Date.fromYMD(year, 12, 31)).filterBounds(roi).filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) // 云量控制.select(['B2', 'B3', 'B4', 'B5', 'B6', 'B8', 'B11', 'B12']).median() // 中值合成抑制噪声.clip(roi);// 特征指数计算var ndvi = s2.normalizedDifference(['B8', 'B4']).rename('NDVI'); // 植被指数var ndwi = s2.normalizedDifference(['B3', 'B8']).rename('NDWI'); // 水体指数var ndbi = s2.normalizedDifference(['B11', 'B8']).rename('NDBI'); // 建筑指数// 地形数据集成var dem = ee.Image('USGS/SRTMGL1_003').clip(roi).rename('DEM');// 整合所有特征波段return s2.addBands([ndvi, ndwi, ndbi, dem]);
}

特征集包含:

  • 8个原始光谱波段(B2-B12)
  • 3个地物指数(NDVI、NDWI、NDBI)
  • 1个地形因子(DEM)

3. 样本采集与数据集划分

样本质量直接决定分类精度,需按土地覆盖类型系统采集:

// 加载五类地物样本(替换为实际样本资产路径)
var waterSamples = ee.FeatureCollection("your水体样本路径");
var builtSamples = ee.FeatureCollection("your建筑样本路径");
var vegSamples = ee.FeatureCollection("your植被样本路径");
var cropSamples = ee.FeatureCollection("your耕地样本路径");
var unusedSamples = ee.FeatureCollection("your未利用地样本路径");// 样本类别编码(0-4对应五类地物)
var labeledSamples = waterSamples.map(f => f.set('class', 0)).merge(builtSamples.map(f => f.set('class', 1))).merge(vegSamples.map(f => f.set('class', 2))).merge(cropSamples.map(f => f.set('class', 3))).merge(unusedSamples.map(f => f.set('class', 4)));// 数据集划分(70%训练,30%验证)
var sampleWithRandom = labeledSamples.randomColumn('random');
var trainingSet = sampleWithRandom.filter(ee.Filter.lt('random', 0.7));
var validationSet = sampleWithRandom.filter(ee.Filter.gte('random', 0.7));

样本采集规范

  • 每个类别样本数量不少于100个
  • 样本需均匀分布于研究区
  • 优先选择纯净像元(混合像元比例<10%)
  • 样本点空间距离应大于30米(避免空间自相关)

4. 分类器选择与训练

采用四种经典机器学习算法进行对比实验:

// 分类器配置
var classifiers = {RF: ee.Classifier.smileRandomForest(100),  // 随机森林(100棵决策树)CART: ee.Classifier.smileCart(),           // 分类回归树SVM: ee.Classifier.libsvm({                // 支持向量机kernelType: 'LINEAR',cost: 10}),GBT: ee.Classifier.smileGradientTreeBoost({ // 梯度提升树numberOfTrees: 50,learningRate: 0.1})
};

分类器训练参数说明:

  • 随机森林:通过100棵树集成降低过拟合风险
  • SVM:采用线性核函数,正则化参数设为10
  • 梯度提升树:50棵树逐步迭代优化,学习率0.1

5. 分类执行与精度验证

分类完成后需通过混淆矩阵评估精度:

// 地物类别配色方案(RGB值)
var palette = ['#173bd6', '#ff1711', '#48dc4a', '#ffc82d', '#7979a1'];// 分类与验证流程
var targetYear = 2024;
var inputImage = getComposite(targetYear);Object.keys(classifiers).forEach(classifierName => {// 模型训练var trainedClassifier = classifiers[classifierName].train({features: trainingSet,classProperty: 'class',inputProperties: inputImage.bandNames()});// 执行分类var classificationResult = inputImage.classify(trainedClassifier);// 结果可视化Map.addLayer(classificationResult, {min: 0, max: 4, palette: palette}, `${targetYear}年-${classifierName}分类结果`);// 精度验证var validationResult = validationSet.classify(trainedClassifier);var confusionMatrix = validationResult.errorMatrix('class', 'classification');// 精度指标计算var overallAccuracy = confusionMatrix.accuracy();var kappaCoeff = confusionMatrix.kappa();var producersAccuracy = confusionMatrix.producersAccuracy();// 精度结果输出print(`${classifierName}总体精度`, overallAccuracy);print(`${classifierName}Kappa系数`, kappaCoeff);
});

主要精度指标:

  • 总体精度(Overall Accuracy):正确分类样本占总样本的比例
  • Kappa系数:考虑随机误差的一致性系数(0-1,越高越好)
  • 生产者精度:某类别被正确分类的比例

6. 结果导出

将分类结果与精度报告导出至云端存储:

// 分类影像导出
Export.image.toDrive({image: classificationResult,description: `LandClassification_${targetYear}`,folder: 'GEE_Export',region: roi,scale: 10,maxPixels: 1e13
});// 精度报告导出
Export.table.toDrive({collection: ee.FeatureCollection(accuracyResults),description: 'ClassificationAccuracy_Report',fileFormat: 'CSV'
});

部分结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关键技术要点

  1. 特征优化

    • 新增红边波段(B5-B7)可提升植被细分精度
    • 季节性合成(如生长季/非生长季)适用于物候差异显著区域
  2. 精度提升策略

    • 采用分层抽样确保样本类别均衡
    • 加入空间自相关特征(如纹理指数)可改善边界分类效果
    • 对低精度类别进行样本增补与重训练
  3. 效率优化

    • 大区域分类可采用分块处理策略
    • 特征降维(如主成分分析)可减少计算量

应用场景

本方法可广泛应用于:

  • 国土空间规划中的用地结构分析
  • 生态保护中的植被覆盖动态监测
  • 农业生产中的耕地变化与作物估产
  • 城镇化进程中的建设用地扩张监测

通过替换研究区矢量与样本数据,该流程可快速迁移至不同区域。实际应用中应根据研究目标调整分类体系与特征组合,以获得最优结果。

http://www.dtcms.com/a/287866.html

相关文章:

  • 137、真心话大冒险测谎器3.0
  • [故障诊断方向]基于二维时频图像和数据增强技术的轴承故障诊断模型
  • 家庭KTV v1.1.9 | 曲库丰富,无限制免费K歌
  • Kotlin main函数
  • RabbitMQ—事务与消息分发
  • JUC并发包CountDownLatch减法计数器的使用实例(多线程)
  • Git 完全手册:从入门到团队协作实战(2)
  • 万字解析LVS集群
  • Pandas 30分钟
  • Mybatis:注解完成增删改查
  • steam游戏搬砖项目超完整版实操分享
  • 解惑LINQ中的SelectMany用法
  • 48Days-Day03 | 删除公共字符,两个链表的第一个公共结点,mari和shiny
  • CCF编程能力等级认证GESP—C++8级—20250628
  • 【EMC设计基础--信号环路分析、PCB设计规则】
  • 深入解析文件操作(上)- 二进制文件和文本文件,流的概念,文件的打开和关闭
  • Visual Studio Code(VSCode)中设置中文界面
  • 使用C#对象将WinRiver项目文件进行复杂的XML序列化和反序列化实例详解
  • STM32_Hal库学习ADC
  • XSS的反射型、DOM型、存储型漏洞
  • sqli-labs靶场通关笔记:第32-33关 宽字节注入
  • Go语言中的类型转换与类型推断解析
  • Spring AI硬核攻略:235个模块解析 + 6大场景实战
  • view和pure的区别
  • 智能合约代理与批量调用优化:最小代理与MultiCall的应用
  • Python趣味算法:百钱百鸡问题——双重循环优化与算法效率分析
  • 【Bluedroid】btif_av_sink_execute_service之服务器启用源码流程解析
  • Typecho博客Ajax评论功能实现全攻略
  • 我是怎么设计一个防重复提交机制的(库存出库场景)
  • 【C语言进阶】结构体