使用GEE对Landsat-8二级产品数据进行大气校正
时间: 2023-06-16 13:02:47 浏览: 477
GEE是Google Earth Engine的缩写,是一个基于云计算的地理信息数据处理平台。使用GEE进行Landsat-8二级产品数据的大气校正可以分为以下几个步骤:
1. 在GEE中选择Landsat-8 OLI/TIRS Collection 2 Level-2数据集作为数据源。
2. 选择需要进行大气校正的影像,并导入到代码中。
3. 根据影像的时间和位置信息,获取对应的气象数据,如大气温度、水汽含量等。
4. 使用提供的大气校正模块,对影像进行大气校正。GEE提供了多种大气校正模块,如DOS (Dark Object Subtraction)、ATCOR (Atmospheric and Topographic Correction)等。
5. 对校正后的影像进行后续处理,如NDVI计算、图像显示等。
以下是一个基于GEE进行Landsat-8二级产品数据大气校正的示例代码:
```javascript
// 选择数据集
var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filter(ee.Filter.eq('WRS_PATH', 44))
.filter(ee.Filter.eq('WRS_ROW', 34))
.filterDate('2018-01-01', '2018-12-31')
.select(['SR_B2', 'SR_B3', 'SR_B4', 'SR_B5', 'SR_B6', 'SR_B7']);
// 导入需要进行大气校正的影像
var img = ee.Image(dataset.first());
// 获取影像的时间和位置信息
var date = img.get('system:time_start');
var lat = img.get('LAT');
var lon = img.get('LON');
// 获取气象数据
var meteoData = ee.ImageCollection('NOAA/CFSV2/FOR6H')
.filterBounds(ee.Geometry.Point(lon, lat))
.filterDate(ee.Date(date).advance(-1, 'day'), ee.Date(date))
.select(['Temperature_height_above_ground', 'Specific_humidity_height_above_ground']);
// 获取大气温度和水汽含量
var airTemp = meteoData.select('Temperature_height_above_ground').mean();
var waterVap = meteoData.select('Specific_humidity_height_above_ground').mean();
// 大气校正
var corrImg = ee.Algorithms.Landsat.simpleCloudScore(img).select(['B2','B3','B4','B5','B6','B7','cloud']);
var dosCorr = ee.Image(ee.Algorithms.Landsat.dos(corrImg, airTemp, waterVap, 0.08));
// 输出校正后的影像
Map.addLayer(dosCorr, {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000}, 'dos corrected');
```
其中,ee.Algorithms.Landsat.simpleCloudScore用于对影像进行云检测,返回一个包含云掩膜的影像,ee.Algorithms.Landsat.dos用于进行DOS大气校正,返回一个校正后的影像。在输出校正后的影像时,可以选择需要显示的波段、色彩范围等参数。
阅读全文