GEE联合多源时序遥感数据下载:以Landsat-8和Sentinel-2为例(含去云异常影像的识别和删除)

本文介绍了如何利用GoogleEarthEngine(GEE)实现多源遥感数据(如Landsat-8和Sentinel-2)的联合处理,包括数据筛选、去云、影像合成以及空白区域填补,以提高地表信息质量和减少噪声,特别关注了GEE代码示例和关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、联合多源遥感影像的意义

        1. 提高信息质量

        2. 丰富数据内容

        3. 降低数据噪声

二、GEE实现

        1、研究区域和下载年份的选择

        2、定义数值转换函数

        3、定义影像去云函数

        4、筛选研究需要的Landsat-8数据

        补充:去云异常影像的识别和删除流程

        5、筛选研究需要的Sentinel-2数据

        6、时序遥感影像的合成

        7、多源遥感影像的合成

        8、遥感影像空白区域的填补

        9、遥感影像的批量显示和批量下载


一、联合多源遥感影像的意义

        联合多源遥感影像意味着将来自不同传感器、不同时间或不同空间分辨率的遥感数据融合在一起,来获取完整、准确的地表信息。这种融合可以提供比单一数据源更多、更丰富的信息,同时还能降低遥感数据中的噪声、缺失数据和歧义等因素的影响,从而提高地表信息的质量和可靠性。联合多源遥感影像的意义主要体现在以下几个方面:

        1. 提高信息质量

        利用多源遥感数据的互补性,可以提高地表信息的准确性、全面性和时效性,从而更好地满足决策和研究的需要。

        2. 丰富数据内容

        联合多源遥感影像可以提供更多的地表特征信息,如高程、植被、水体、土壤类型、岩石等,这样可以帮助更好地理解自然环境和人类活动。

        3. 降低数据噪声

        联合多源遥感影像还可以通过对不同数据源的重叠区域进行一些处理,去除重复信息和不一致信息,从而减少噪声和错误。

        联合多源遥感影像的技术在生态环境监测、资源调查、城市规划、农业生产、灾害管理、国土安全等领域均有广泛的应用前景。接下来以Landsat-8和Sentinel-2的数据融合为例,详细讲解其处理过程的GEE实现。

二、GEE实现

        本例以Sentinel-2数据为主,Landsat-8做为Sentinel-2没有数据区域的补充,GEE下载代码如下:

        1、研究区域和下载年份的选择
// 指定研究区域
var geometry = 自己导入的FeatureCollection对象;
// 区域筛选,有需要就加上
geometry = geometry.filterMetadata(列名, 筛选条件, 筛选对象名称);
// 研究区域显示
Map.centerObject(geometry, 8);

// 选择下载年份,每次下载一年的数据,后面需要用前后两年数据补充
var the_year = ee.Number(2020);
var startYear = the_year.subtract(1);
var endYear = the_year.add(1);
        2、定义数值转换函数

        接下来先写好Landsat-8地表反射率产品和Sentinel-2 2A产品的数值转化函数,参考GEE相关产品的示例代码。虽然GEE上的这两个产品已经做好了大气校正,但数值不是地表反射率,还需做一个简单的线性变换

// L8辐射定标 DN-->反射率
function L8_applyScaleFactors(image) {
  image = ee.Image(image);
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  return image.addBands(opticalBands, null, true);
}

// S2辐射定标 DN-->反射率
function S2_applyScaleFactors(image) {
  image = ee.Image(image);
  var opticalBands = image.select('B.').divide(10000);
  return image.addBands(opticalBands, null, true);
}
        3、定义影像去云函数

        再是去云函数的定义,可根据需求调整,具体数值含义参考产品中相应波段说明。其中Sentinel-2去云参考了‘SCL’和‘QA60'两个波段,因为经过尝试后笔者认为联合这两个波段去除效果最好,单独使用其中一个都有较严重的去不干净的问题。Sentinel-2的去云方法大家也多多参考其他博主的见解:

// L8去云、去雪
function maskL8sr(image){
  var DilatedCloud = 1 << 1; //云层边缘
  var Cloud = 1 << 3; //云层
  var CloudShadowBitMask = 1 << 4; //云影
  var SnowBitMask = 1 << 5; //积雪
  var qa = image.select('QA_PIXEL');
  var mask = qa.bitwiseAnd(DilatedCloud).eq(0)
        .and(qa.bitwiseAnd(Cloud).eq(0))
        .and(qa.bitwiseAnd(CloudShadowBitMask).eq(0))
        .and(qa.bitwiseAnd(SnowBitMask).eq(0));
  return image.updateMask(mask);
}

// S2去云、去雪
function maskS2clouds(image) {
  var scl = image.select('SCL');
  var Cloud_Shadows = 1 << 3;
  var Clouds_Low_Probability = 1 << 7;
  var	Clouds_Medium_Probability = 1 << 8;
  var Clouds_High_Probability = 1 << 9;
  var Cirrus = 1 << 10;
  var	Snow_Ice = 1 << 11;
  
  var qa = image.select('QA60');
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;
  
  var mask = scl.bitwiseAnd(Cloud_Shadows).eq(0)
    .and(scl.bitwiseAnd(Clouds_Low_Probability).eq(0))
    .and(scl.bitwiseAnd(Clouds_Medium_Probability).eq(0))
    .and(scl.bitwiseAnd(Clouds_High_Probability).eq(0))
    .and(scl.bitwiseAnd(Cirrus).eq(
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值