Sentinel数据S2_SR_HARMONIZED连续云掩膜+中位数合成

发布于:2025-05-01 ⋅ 阅读:(50) ⋅ 点赞:(0)

在GEE中实现时,发现简单的QA60是无法去云的,最近S2地表反射率数据集又进行了更新,原有的属性集也进行了变化,现在的SR数据集名称是“S2_SR_HARMONIZED”。那么:

要想得到研究区无云的图像,可以参考执行以下几个步骤,

  1. 遥感图像中筛选云占比不超过10%的图像
    // 加载Sentinel-2 L2A图像
    var s2 = ee.ImageCollection(‘COPERNICUS/S2_SR_HARMONIZED’)
    .filterDate(‘2021-09-01’, ‘2021-10-31’)
    .filter(ee.Filter.lt(‘CLOUDY_PIXEL_PERCENTAGE’,10))
    .filterBounds(basin_shp);

  2. QA60云掩膜
    // 第一次云掩膜:使用QA60
    function maskS2clouds(image) {
    var qa = image.select(‘QA60’);
    var cloudBitMask = 1 << 10;
    var cirrusBitMask = 1 << 11;
    var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
    .and(qa.bitwiseAnd(cirrusBitMask).eq(0));
    return image.updateMask(mask);
    }
    var s2_masked = s2.map(maskS2clouds);
    在这里插入图片描述

  3. SCL在最新的S2_SR_HARMONIZED产品中是存在的,判断云和云阴影
    //SCL Cloud mask
    function maskS2cloudsSCL(image) {
    var scl = image.select(‘SCL’);
    // 去除云(8)和云阴影(9)
    var mask = scl.neq(8).and(scl.neq(9));
    return image.updateMask(mask);
    }
    var s2_masked = s2_masked.map(maskS2cloudsSCL);

  4. 继续用像元云概率进行判断,要求每个像元是云的概率小于20%
    // MSK_CLDPRB Mask(Sen2Cor 云概率),可直接用阈值掩膜,云概率低于 10% 保留:
    function maskCloudProb(image) {
    var prob = image.select(‘MSK_CLDPRB’);
    return image.updateMask(prob.lt(20)); // 云概率低于 20% 保留
    }
    var s2_masked = s2_masked.map(maskCloudProb);
    最后中位数合成,避免反射率高值影响图像像元整体性。
    var s2_max = s2_masked.median();


网站公告

今日签到

点亮在社区的每一天
去签到