朋友们好,本次我们使用GEE对ASTER影像进行处理,通过影像校正并计算多个矿物指数(如高岭土、铝钙石、石英等),从而实现对地表矿物的提取与分析。
一、ASTER数据简介
ASTER是搭载于美国宇航局Terra卫星上的传感器,发射于1999年12月18日。ASTER数据包含14个波段,分别为3个可见光近红外波段(VNIR,0.520.86μm,空间分辨率15m)、6个短波红外波段(SWIR,1.602.43μm,空间分辨率30m)和5个热红外波段(TIR,8.125~11.65μm,空间分辨率90m)。
二、ASTER波段信息
三、指数计算
在本次分析中,我们提取了以下矿物指数:
1. 高岭土指数 (Kaolinite Index)
2. 铝钙石指数 (Alunite Index)
3. 方解石指数 (Calcite Index)
4. 石英指数 (Quartz Index)
5. 碳酸盐指数 (Carbonate Index)
6. 基性岩指数 (Mafic Index)
四、GEE代码
// 定义研究区域
var GEOMETRY = ee.Geometry.Polygon(
[[[97.1261, 35.8406], [97.1261, 35.6589], [97.4062, 35.6589], [97.4062, 35.8406]]]);
Map.centerObject(GEOMETRY);
// 加载并处理ASTER影像
var ASTER = ee.ImageCollection("ASTER/AST_L1T_003")
.filterBounds(GEOMETRY)
.filter(ee.Filter.lt('CLOUDCOVER', 10))
.filter(ee.Filter.calendarRange(6, 9, 'month'))
.mean(); // 计算影像平均值
Map.addLayer(ASTER.clip(GEOMETRY), {}, 'ASTER', false);
// 图像校正函数
function correctImage(IMG) {
var MS = IMG.select('B0[1-9]', 'B3N'); // VNIR波段
var TIR = IMG.select('B1[0-4]'); // TIR波段
var darkObject = MS.reduceRegion({reducer: ee.Reducer.min(), geometry: GEOMETRY, scale: 500});
// 校正影像
var corrected = MS.bandNames().map(function(band) {
var doValue = ee.Number(darkObject.get(band));
return MS.select([band]).subtract(doValue);
});
return ee.ImageCollection(corrected).toBands().addBands(TIR);
}
// 校正ASTER影像
var ASTER_COR = correctImage(ASTER);
Map.addLayer(ASTER_COR.clip(GEOMETRY), {}, 'Corrected ASTER', false);
// 矿物指数计算函数
function computeLithologyIndex(IMG, index) {
var expressions = {
'KAOLINITE': '(b4/b5)*(b8/b6)',
'ALUNITE': '(b7/b5)*(b7/b8)',
'CALCITE': '(b6/b8)*(b9/b8)',
'QUARTZ': '(b11 * b11)/(b10 * b12)',
'CARBONATE': 'b13/b14',
'MAFIC': 'b12/b13'
};
var expression = expressions[index];
return IMG.expression(expression, {
'b4': IMG.select('2_B04'),
'b5': IMG.select('3_B05'),
'b6': IMG.select('4_B06'),
'b7': IMG.select('5_B07'),
'b8': IMG.select('6_B08'),
'b9': IMG.select('7_B09'),
'b10': IMG.select('B10'),
'b11': IMG.select('B11'),
'b12': IMG.select('B12'),
'b13': IMG.select('B13'),
'b14': IMG.select('B14')
});
}
// 计算矿物指数
var indices = ['KAOLINITE', 'ALUNITE', 'CALCITE', 'QUARTZ', 'CARBONATE', 'MAFIC'];
var layers = indices.map(function(index) {
return computeLithologyIndex(ASTER_COR, index).clip(GEOMETRY);
});
// 添加矿物图层到地图
layers.forEach(function(layer, i) {
Map.addLayer(layer, {}, indices[i], false);
});
// 合并矿物指数图层
Map.addLayer(layers[0].addBands(layers[1]).addBands(layers[2]).clip(GEOMETRY), {}, 'Kaolinite+Calcite+Quartz', false);