// ========== 1. 研究区域与数据加载 ==========
var singleImage = ee.Image('projects/ee-yixuwei610/assets/RS2024');
var aoi = ee.FeatureCollection('projects/ee-yixuwei610/assets/hubei');
// 加载DEM数据并计算坡度
var dem = ee.Image('USGS/SRTMGL1_003').clip(aoi).rename('Elevation');
var slope = ee.Terrain.slope(dem).rename('Slope');
// ========== 2. 特征计算函数 ==========
var calculateFeatures = function(image) {
// 计算植被指数
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI');
// EVI计算公式 [^1]
var evi = image.expression(
'2.5 * (NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1)', {
'NIR': image.select('B8'),
'RED': image.select('B4'),
'BLUE': image.select('B2')
}).rename('EVI');
// 纹理特征计算 (GLCM) [^3]
var glcm = image.select('B8').glcmTexture({size: 3});
var texture = glcm.select('B8_contrast').rename('Texture');
return image
.addBands(ndvi)
.addBands(evi)
.addBands(texture);
};
// ========== 4. 多图层可视化 ==========
// DEM可视化参数
var demVis = {
min: 0,
max: 1500,
palette: ['006633', 'E6FFB3', 'CC9966', '663300', 'FFFFFF']
};
// 纹理特征可视化参数
var textureVis = {
min: 0,
max: 1000,
palette: ['000000', 'FFFFFF']
};
// NDVI可视化参数
var ndviVis = {
min: -0.2,
max: 0.8,
palette: ['FF0000', 'FFFF00', '00FF00']
};
// EVI可视化参数 [^1]
var eviVis = {
min: -0.2,
max: 1.0,
palette: ['0000FF', 'FFFF00', '00FF00'] // 蓝-黄-绿渐变
};
// 添加所有图层到地图
Map.addLayer(singleImage.select('Elevation'), demVis, 'DEM');
Map.addLayer(singleImage.select('Slope'), {min:0, max:45}, 'Slope');
Map.addLayer(singleImage.select('Texture'), textureVis, 'GLCM Texture');
Map.addLayer(singleImage.select('NDVI'), ndviVis, 'NDVI');
Map.addLayer(singleImage.select('EVI'), eviVis, 'EVI');
// ========== 5. 图层控制与样式 ==========
// 添加图例
var legend = ui.Panel({
style: {position: 'bottom-right', padding: '8px'}
});
function addLegendItem(color, title) {
var colorBox = ui.Label({
style: {
backgroundColor: color,
padding: '8px',
margin: '0 4px'
}
});
var description = ui.Label(title, {margin: '0 4px'});
legend.add(ui.Panel([colorBox, description], ui.Panel.Layout.flow('horizontal')));
}
addLegendItem('#006633', '低海拔');
addLegendItem('#FFFFFF', '高海拔');
addLegendItem('#000000', '低纹理');
addLegendItem('#FFFFFF', '高纹理');
addLegendItem('#FF0000', '低NDVI');
addLegendItem('#00FF00', '高NDVI');
addLegendItem('#0000FF', '低EVI');
addLegendItem('#00FF00', '高EVI');
Map.add(legend);
报错“Layer error: Image.select: Band pattern 'EVI' did not match any bands. Available bands: [B1, B2, B3, B4, B5, B6, B7, B8, B8A, B9, B11, B12, AOT, WVP, SCL, TCI_R, TCI_G, TCI_B, MSK_CLDPRB, MSK_SNWPRB, QA10, QA20, QA60, MSK_CLASSI_OPAQUE, MSK_CLASSI_CIRRUS, MSK_CLASSI_SNOW_ICE]”