GEE必须会教程—Landsat去云处理(新)

此前小编分享了以前的Landsat去云方法,由于GEE平台对数据有所更新,我们用全新数据再做一次去云处理。今天就不一一对代码进行解释,想要理解原理的朋友可以阅读小编的上一篇博客。

话不多说,直接上代码:

A.TOA数据

去云代码:

//定义研究区域
var roi = ee.Geometry.Polygon([[[114.60501460813856,25.432854344138594],
                                [115.05545406126356,25.432854344138594],
                                [115.05545406126356,25.735083087312486],
                                [114.60501460813856,25.735083087312486],
                                [114.60501460813856,25.432854344138594] ]]);
Map.centerObject(roi,7);
//影像访问和调用
var collection = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
                    .filterDate("2020-01-01","2020-01-31").filterBounds(roi);
print(collection);
//生成影像列表
var list = collection.toList(collection.size());
var firstImage = ee.Image(list.get(0));
var secondImage = ee.Image(list.get(1));
var ThirdImage = ee.Image(list.get(2));
var visParams = {
  min:0.0,
  max:0.4,
  bands:["B4","B3","B2"]
};
Map.addLayer(firstImage,visParams,"FirstImage");
Map.addLayer(secondImage,visParams,"secondImage");
Map.addLayer(ThirdImage,visParams,"ThirdImage");
//定义去云掩膜函数
 function Mask(image){
  var mask = image.select("cloud").lte(30);
  return image.updateMask(mask);
};
//调用去云函数和已经定义好的云掩膜函数
var C1 = ee.Algorithms.Landsat.simpleCloudScore(firstImage);
var T1 = Mask(C1);
var C2 = ee.Algorithms.Landsat.simpleCloudScore(secondImage);
var T2 = Mask(C2);
var C3 = ee.Algorithms.Landsat.simpleCloudScore(ThirdImage);
var T3 = Mask(C3);
print(T1,T2,T3);
Map.addLayer(T1,visParams,"T1");
Map.addLayer(T2,visParams,"T2");
Map.addLayer(T3,visParams,"T3");
Map.addLayer(roi,{"color":"red"},"roi");

去云前后的影像结果对比:

B.SR数据

去云代码(记得在GEE平台的数据库中查看新数据的QA质量波段信息)

//SR数据
//定义研究区域
var roi = ee.Geometry.Polygon([[[114.60501460813856,25.432854344138594],
                                [115.05545406126356,25.432854344138594],
                                [115.05545406126356,25.735083087312486],
                                [114.60501460813856,25.735083087312486],
                                [114.60501460813856,25.432854344138594] ]]);
Map.centerObject(roi,7);
//影像访问和调用
var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
    .filterDate('2020-01-01', '2020-01-31').filterBounds(roi);

//还原缩放
function applyScaleFactors(image) {
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
  return image.addBands(opticalBands, null, true)
              .addBands(thermalBands, null, true);
}
var collection = dataset.map(applyScaleFactors);
print(collection);
//生成影像列表
var list = collection.toList(collection.size());
var firstImage = ee.Image(list.get(0));
var secondImage = ee.Image(list.get(1));
var thirdImage = ee.Image(list.get(2));
//影像可视化参数设置
var visParams = {
  bands: ['SR_B4', 'SR_B3', 'SR_B2'],
  min: 0.0,
  max: 0.3,
};
Map.addLayer(firstImage,visParams,"firstImage");
Map.addLayer(secondImage,visParams,"secondImage");
Map.addLayer(thirdImage,visParams,"thirdImage");
//定义去云掩膜函数
function Mask(image){
  var cloudMask = (1<<3);
  var cloudshadowMask = (1<<4);
  var QA = image.select("QA_PIXEL");
  var mask = QA.bitwiseAnd(cloudMask).eq(0).and(QA.bitwiseAnd(cloudshadowMask).eq(0));
  return image.updateMask(mask);
}
//调用已经定义好的云掩膜函数
var S1 = Mask(firstImage);
var S2 = Mask(secondImage);
var S3 = Mask(thirdImage);
print(S1,S2,S3);
Map.addLayer(S1,visParams,"S1");
Map.addLayer(S2,visParams,"S2");
Map.addLayer(S3,visParams,"S3");
Map.addLayer(roi,{"color":"red"},"roi");

去云前后结果对比:

本篇代码链接:

(1)https://code.earthengine.google.com/278e131d32ecc68c2ab5b09c3c7c9a57

(2)https://code.earthengine.google.com/2dc1d5b64138e84b051d2c1a1739a95c

关于Landsat去云处理的分享到这里就结束了,如果代码内容能够帮助到你,不要忘记了给小编点赞哦!你的支持是小编继续更新的动力,谢谢啦!咱们下期再会!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梧桐GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值