文章目录
这几天在做指数运算的时候,发现landsatT1级别数据是需要做辐射校正的,看到很多人使用LandsatT1数据,所以记录一下T1数据做辐射校正的方法和使用的波段。使用的数据集和波段如下表所示,
卫星名称 | 影像集合 | 去云波段 | 辐射校正波段 |
---|---|---|---|
Landsat-9 | LANDSAT/LC09/C02/T1 | QA_PIXEL | B10 |
Landsat-8 | LANDSAT/LC08/C01/T1 | BQA | B10 |
Landsat-7 | LANDSAT/LE07/C02/T1 | QA_PIXEL | B6_VCID_1 |
Landsat-5 | LANDSAT/LT05/C01/T1 | BQA | B6 |
Landsat-9
// 未辐射校正数据
var L5 = ee.ImageCollection("LANDSAT/LC09/C02/T1")
.filterBounds(roi)
.filterDate('2022-1-1','2022-10-30')
.filterMetadata('CLOUD_COVER',"less_than",15)
.map(radiance)
.max()
.clip(roi);
Landsat-9 去云和云阴影

function remove_cloud(image){
//去云和云阴影
var cloudShadowBitMask = (1 << 3);
var cloudsBitMask = (1 << 5);
var qa = image.select("QA_PIXEL");
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask);
}
Landsat-9 辐射校正

function radiance(image){
var ThermalRadiance=ee.Algorithms.Landsat.calibratedRadiance(image.select('B10')).rename('B10_radiance');
return image.addBands(ThermalRadiance)
}
Landsat-8
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1")
.filterBounds(roi)
.filterDate('2020-1-1','2020-12-31')
.filterMetadata('CLOUD_COVER',"less_than",15)
.map(remove_cloud)
.map(radiance)
.max()
.clip(roi)
Landsat-8 去云

function remove_cloud(image){
var image_qa = image.select('BQA');
var maskComposite = image_qa.bitwiseAnd(1 << 4).eq(0)
return image.updateMask(maskComposite)
}
Landsat-8 辐射校正

function radiance(image){
var ThermalRadiance=ee.Algorithms.Landsat.calibratedRadiance(image.select('B10')).rename('B10_radiance');
return image.addBands(ThermalRadiance)
}
Landsat-7
// 未辐射校正数据
var L7 = ee.ImageCollection("LANDSAT/LE07/C02/T1")
.filterBounds(roi)
.filterDate('2013-1-1','2013-12-31')
.filterMetadata('CLOUD_COVER',"less_than",15)
.map(radiance)
.max()
.clip(roi);
Landsat-7 去云和云阴影

function remove_cloud(image){
//去云和云阴影
var cloudShadowBitMask = (1 << 4);
var cloudsBitMask = (1 << 3);
var qa = image.select("QA_PIXEL");
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask);
}
Landsat-7 辐射校正

function radiance(image){
var ThermalRadiance=ee.Algorithms.Landsat.calibratedRadiance(image.select('B6_VCID_1')).rename('B6_radiance');
return image.addBands(ThermalRadiance)
}
Landsat-5
// 未辐射校正数据
var L5 = ee.ImageCollection("LANDSAT/LT05/C01/T1")
.filterBounds(roi)
.filterDate('2005-1-1','2005-12-31')
.filterMetadata('CLOUD_COVER',"less_than",15)
.map(radiance)
.max()
.clip(roi);
Landsat-5 去云

function remove_cloud(image){
var image_qa = image.select('BQA');
var maskComposite = image_qa.bitwiseAnd(1 << 4).eq(0)
return image.updateMask(maskComposite)
}
Landsat-5 辐射校正

function radiance(image){
var ThermalRadiance=ee.Algorithms.Landsat.calibratedRadiance(image.select('B6')).rename('B6_radiance');
return image.addBands(ThermalRadiance)
}