基于GEE的Landsat 数据使用
1.最常使用的数据:TOA数据和SR数据。
2.注意查看影像信息介绍
如下图中,需要注意比例因子的使用
比例因子的设置是为了减少存储,在正常使用时,需要进行还原,即:*(scale)+(offset)
// Applies scaling factors
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);
}
3.去云
(1)对于TOA和SR数据,去云方式有些许差别
LANDSAT/LC08/C01/T1_SR:
去云代码:
var dataset = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2')
.filterDate('2022-01-01', '2022-02-01');
// Applies scaling factors.
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);
}
dataset = dataset.map(applyScaleFactors);
var visualization = {
bands: ['SR_B4', 'SR_B3', 'SR_B2'],
min: 0.0,
max: 0.3,
};
Map.setCenter(-114.2579, 38.9275, 8);
Map.addLayer(dataset, visualization, 'True Color (432)');
(2)对于TOA数据
LANDSAT/LC08/C01/T1_TOA:
对于TOA数据而已,可以使用ee.Algorithms.Landsat.simpleComposite() 函数进行去云。
代码如下:
var roi = /* color: #0b4a8b */ee.Geometry.Polygon(
[[[115.22447911987308, 38.97207826950874],
[117.64147130737308, 39.07450027191289],
[117.55358068237308, 40.67633196985795],
[114.91686193237308, 40.576272152256934]]]);
Map.centerObject(roi, 7);
//使⽤用ee.Algorithms.Landsat.simpleCloudScore会在影像中添加⼀一个波段叫
//做“cloud”,这个波段就是GEE写的云识别算法结果,值是0-100,
//值越⼤大那么是云的可能性越⼤大
function rmCloud(image) {
var mask = image.select("cloud").lte(5);//lte筛选云量大于 5
return image.updateMask(mask);
}
//ee.Algorithms.Landsat.simpleCloudScore会在影像中添加⼀一个波段叫做“cloud”,
//这个波段就是GEE写的云识别算法结果,值是0-100,值越⼤大那么是云的可能性越⼤大。
var image = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
.filterDate('2018-01-01', '2019-1-1')
.filterBounds(roi)
.map(ee.Algorithms.Landsat.simpleCloudScore)
.map(rmCloud)
.median()
.clip(roi);
var visParams = {
bands: ['B4', 'B3', 'B2'],
min: 0,
max: 0.3
};
Map.addLayer(image, visParams, "image");