1

我想合并 Landsat 4、5、7 和 8 图像。我需要调整 Landsat 8 波段,使其与其他 Landsat 影像波段相匹配。这是我的代码的基本结构:

// L4 collection
var L4 = ee.ImageCollection("LANDSAT/LT04/C01/T1")
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 59))
        .select(['B3', 'B2', 'B1']);     

// L5 collection
var  L5 = ee.ImageCollection("LANDSAT/LT05/C01/T2")
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 59))
        .select(['B3', 'B2', 'B1']);

// l7 collection
var L7 = ee.ImageCollection("LANDSAT/LE07/C01/T1")
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 58))
        .select(['B3', 'B2', 'B1']);   

// l8 collection
var L8 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 58))
        .select(['B4', 'B3', 'B2', ],['B3', 'B2','B1']);

// Merge all
var collection = ee.ImageCollection(L4.merge(L5.merge(L7.merge(L8))));

// Map
Map.addLayer(collection, {bands:['B3', 'B2', 'B1'], min: 0, max: 3000}, 'collection_merge')

我已经尝试了几种改变 Landsat 8 波段的方法......

  return image.rename(['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'B10', 'B11']);
})
.select(['B3', 'B2', 'B1']);
function renameBandsL8(image) {
    var bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'pixel_qa'];
    var new_bands = ['B', 'G', 'R', 'NIR', 'SWIR1', 'SWIR2', 'pixel_qa'];
    return image.select(bands).rename(new_bands);
}

和最新的

.select(['B4', 'B3', 'B2', 'B1'],['B5', 'B4', 'B3','B2'])

似乎没有任何工作,我不知道为什么。

4

1 回答 1

0

您应该将所有乐队转换为相同的格式。landsat-4,5,7 采用 unsigned int8 格式,而您的 landsat-8 采用 unsigned int16 格式。有不同的方法来处理这个问题,一种方法是将你的 Landsat-8 转换为 unsigned int8 格式。请注意,我只是修改了 L8 集合部分。

// L4 collection
var L4 = ee.ImageCollection("LANDSAT/LT04/C01/T1")
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 59))
        .select(['B3', 'B2', 'B1']);     

// L5 collection
var  L5 = ee.ImageCollection("LANDSAT/LT05/C01/T2")
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 59))
        .select(['B3', 'B2', 'B1']);

// l7 collection
var L7 = ee.ImageCollection("LANDSAT/LE07/C01/T1")
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 58))
        .select(['B3', 'B2', 'B1']);   

// l8 collection
var L8 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
        .filter(ee.Filter.eq('WRS_PATH', 225))
        .filter(ee.Filter.eq('WRS_ROW', 58))
        .select(['B4', 'B3', 'B2', ],['B3', 'B2','B1'])
        .map(function(image){return image.toByte()});

// Merge all
var collection = ee.ImageCollection(L4.merge(L5.merge(L7.merge(L8))));
print(collection)
Map.addLayer(collection, {bands:['B3', 'B2', 'B1'], min: 0, max: 3000}, 'collection_merge')

希望能帮助到你。

于 2020-05-21T09:07:01.703 回答