GEE|在GEE对Sentinel-2、Landsat7、Landsat8进行批量大气校正、去云,并进行均值融合、裁剪、显示和数据下载
前言:
由于我要使用S2在2016-2020年时序数据进行作物分类,但GEE仅提供2018年后的S2 L2A数据('COPERNICUS/S2_SR'),因此需要进行大气校正,同时由于需要的数据量大,因此需要批量处理。
大气校正的方法论文:(英文)一种传感器不变的大气校正方法:适用于哨兵-2/MSI和陆地卫星8/OLI (researchgate.net)
我的代码:(主要包括去云、大气校正、矢量裁剪、均值融合、显示和数据下载)
//加载 shpfile
var shpfile1 = ee.FeatureCollection('projects/ee-wenqikou/assets/qixia_0_09').filter(ee.Filter.eq('grid_label','6')).geometry()
//聚焦shp范围
Map.centerObject(shpfile1)
//显示shp
Map.addLayer(shpfile1)
//引入大气纠正方法
var siac = require('users/marcyinfeng/utils:SIAC');
//去云函数
function rmCloudByQA(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);}
//数据函数,参数(开始日期,截止日期,云量筛选,融合形式,图像显示选择波段(这里仅支持真彩色))
// 其中,融合方式compositiontype: 0 min 1 mean 2 median 3 max
var compsition = function(startdate,enddate,cloudiness,compositiontype,bands){var image = ee.ImageCollection('COPERNICUS/S2').filterDate(startdate,enddate).filterBounds(shpfile1).filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', cloudiness))
//去云image = image.map(rmCloudByQA)
//批量大气校正image = image.map(siac.get_sur)
//融合(这样可以免本地拼接等if(compositiontype === 0){image = image.min().multiply(10000)}else if(compositiontype == 1){image = image.mean().multiply(10000)} //均值融合else if(compositiontype == 2){image = image.median().multiply(10000)}else image = image.max().multiply(10000)
//裁剪image = image.clip(shpfile1);
//数据显示if(bands == 432) {Map.addLayer(image,{min:0, max:3000, bands:["B4", "B3", "B2"]},'real'+startdate);}
//数据下载Export.image.toDrive({image: image,description: startdate,folder: 'qixia/grid/image/06',crs:"EPSG:4326",fileNamePrefix: startdate,region: shpfile1,scale: 10,maxPixels: 1e13
});return image}var ys = compsition('2021-02-15','2021-02-16',100,1,432)
关于Landsat7和Landsat8:
Landsat7:仅需要修改“siac.get_sur”为“siac.get_l7_sur”
Landsat8:仅需要修改“siac.get_sur”为“siac.get_l8_sur”
例子:
var ground_sensor = ee.Geometry.Point(-52.905090, -28.228550);
var polygon = ground_sensor.buffer(1000).bounds();//
var start_date = '2017-11-15';
var end_date = '2017-11-30';var criteria = ee.Filter.and(ee.Filter.bounds(ground_sensor), ee.Filter.date(start_date, end_date));
var cloud_perc = 60;//Max cloud percentile per scene. // -- Collections of Landsat 7, 8 and Sentinel 2 TOA data
var L8_col = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA').filter(criteria).filter(ee.Filter.lt('CLOUD_COVER', cloud_perc));var L7_col = ee.ImageCollection('LANDSAT/LE07/C01/T1_TOA').filter(criteria).filter(ee.Filter.lt('CLOUD_COVER', cloud_perc));var S2_col = ee.ImageCollection("COPERNICUS/S2").filter(criteria).filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', cloud_perc));// - Import the SIAC atmospheric correction module
var siac = require('users/marcyinfeng/utils:SIAC');// - Apply SIAC and retrieve bottom of atmosphere (BOA) reflectance
var L7_boa = siac.get_l7_sur(L7_col.first());
var L8_boa = siac.get_l8_sur(L8_col.first());
var S2_boa = siac.get_sur(S2_col.first()); // - Check and visualization
var Color_comp_01 = {bands:"B4,B3,B2", min: 0.0, max: 0.2, gamma: 1};
var Color_comp = {bands:"B4,B3,B2", min:200, max:2000, gamma: 1};
Map.addLayer(S2_col.first(), Color_comp, 'TOA');
Map.addLayer(S2_boa, Color_comp_01, 'BOA');
Map.centerObject(S2_col.first())
GEE|在GEE对Sentinel-2、Landsat7、Landsat8进行批量大气校正、去云,并进行均值融合、裁剪、显示和数据下载相关推荐
- GEE(Google earth engine)中的Landsat影像的选择和去云(附代码)
1.获取校正过的Landsat 影像 在这里可以看到GEE提供的全部Landsat数据:Landsat Collections in Earth Engine | Earth Engine Dat ...
- ENVI软件对Landsat-8数据进行辐射定标、大气校正、提取NDVI、估算植被覆盖度等操作【图说GIS】
目录 一.前言 二.数据下载 第一步 访问网站 第二步 登录账户 第三步 点击高级检索, 下载数据 三.软件下载及安装 四.辐射定标 第一步 打开数据 第二步 辐射定标 五.计算区域平均高程 第一步 ...
- gee去云处理Landsat、Sentinel和Modis影像
gee去云处理Landsat.Sentinel和Modis影像 1.Landsat 和 MODIS影像的去云函数 function cloudfree_mod09a1(image){var qa = ...
- 利用GEE下载Landsat8影像并实现去云
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.去云 二.数据获取与导出下载 1.获取数据 2.导出数据 前言 最近在使用GEE批量下载Landsat8数据,发现 ...
- GEE(8):使用MODIS填补由去云后的Landsat影像计算得到的NDVI数据
最近想要在GEE中使用Landsat影像计算一下广州的NDVI值,发现这片区域云覆盖较多,去云以后部分月份的数据很少,就造成NDVI计算结果缺失的问题.经过查阅相关资料,可以使用MODIS的NDVI产 ...
- GEE学习笔记 九十二:Sentinel-2 最新去云方法总结
关于影像去云实际上是非常复杂的算法来实现的,但是我们不是专业研究如何识别云的,所以我们采用被人已经研究好的成果来实现我们的需求就可以.在GEE如何上实现Sentinel-2去云,之前也专门提到过,这篇 ...
- Google Earth Engine(GEE)——Landsat TOA影像一种新的去云方法
利用光学仪器获取的地球观测卫星图像需要自动和准确的云检测.云层检测的多时空方法通常比其单一场景的方法更强大,因为云层的存在在不同的采集中变化很大,而表面在广义上可以假设是静止的.然而,两个实际的限制通 ...
- Google Earth Engine(GEE)——全球12级流域矢量数据免费下载(含数据下载链接)
HydroBASINS代表了一系列矢量多边形图层,在全球范围内描述了子流域的边界.该产品的目标是在全球范围内无缝覆盖不同尺度(从几十平方公里到几百万平方公里)的大小一致.分层嵌套的子流域,并由一个编码 ...
- Google Earth Engine(GEE)——Landsat 8TI/TOA/SR影像对比分析区别和去云即NDVI计算
1简介 2背景 3在 Google Earth Engine 中使用 Landsat 8 进行预处理 3.1预处理级别示例. 3.2大气顶(TOA) 3.3表面反射率(SR) 3.4 Landsat ...
最新文章
- Exchange Server 2000/2003 中设定超过2G的邮箱图解
- Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
- 从国内的源使用pip安装库,提高安装速度
- python包实际怎么使用_Python--模块与包
- Java快速入门学习笔记6 | Java语言中的for循环语句
- python数据分析系列教程——Pandas全解
- mysqld --initialize --console 没有 打印信息_JavaScript学习笔记(三)-- 循环结构
- 遗传算法及c++实现
- 车型代号对照表_车型代号对照表 2016最新版
- 如何免费批量将caj转换成PDF
- 计算32768晶体的负载电容,与晶体手册电容匹配
- Adobe Premiere Pro CC教程笔记
- poi 启用保护后取消_保护模式禁用怎么解除
- 银行与银行之间的现金是如何流转的:央行支付清算系统
- ansys 服务器无响应,ANSYS出现的各种错误及解决方法
- Linux基础系列(2命令帮助的详细获取)
- Spacy en_core_web_sm
- Source insight 4.0 显示右边文件
- java游戏魔塔20层_▓▓◇◆20层魔塔超详细攻略◇◆ ▓▓
- ROS麦克纳姆轮底盘制作(上)