基于GEE利用MODIS/061/MCD64A1数据计算dNBR值
时间: 2023-12-18 08:04:40 浏览: 298
dNBR值(differenced Normalized Burn Ratio)是衡量火灾烈度的指标之一,可以通过MODIS/061/MCD64A1数据计算得到。
以下是基于GEE计算dNBR值的步骤:
1. 打开GEE平台并登录账号。
2. 在左侧菜单栏中选择“地图”选项,进入地图界面。
3. 在地图界面中,点击左上角的“+”按钮,添加MODIS/061/MCD64A1数据。
4. 在左侧图层栏中选择“MODIS/061/MCD64A1_500m_aid0001”图层,并调整时间范围至所需的时间段。
5. 在左侧菜单栏中选择“代码编辑器”,并在编辑器中输入以下代码:
```
// 定义AOI区域
var aoi = ee.Geometry.Polygon(
[[[113.0, 33.0],
[115.0, 33.0],
[115.0, 35.0],
[113.0, 35.0],
[113.0, 33.0]]], null, false);
// 选择计算的时间段
var start_date = ee.Date.fromYMD(2019, 1, 1);
var end_date = ee.Date.fromYMD(2019, 12, 31);
// 选择计算的MODIS波段
var modis_bands = ['BurnDate','QA'];
// 筛选出指定时间段内的MODIS数据
var modis_dataset = ee.ImageCollection('MODIS/006/MCD64A1')
.select(modis_bands)
.filterDate(start_date, end_date)
.filterBounds(aoi);
// 定义NDVI计算公式
var nbr_formula = function(image) {
var nbr = image.normalizedDifference(['sur_refl_b04', 'sur_refl_b07']);
return nbr.rename('NBR');
};
// 计算dNBR值
var pre_fire = ee.Image(modis_dataset.sort('system:time_start', false).first()).select('BurnDate');
var post_fire = ee.Image(modis_dataset.sort('system:time_start', true).first()).select('BurnDate');
var pre_nbr = nbr_formula(pre_fire);
var post_nbr = nbr_formula(post_fire);
var dNBR = post_nbr.subtract(pre_nbr).rename('dNBR');
// 将结果可视化
Map.centerObject(aoi, 9);
Map.addLayer(dNBR, {min:-1,max:1,palette:['FF0000','FFFF00','00FF00']}, 'dNBR');
```
上述代码中,首先定义了计算区域(AOI)、计算时间段(start_date和end_date)以及需要计算的MODIS波段(modis_bands)。接着,通过ImageCollection函数筛选出指定时间段内的MODIS数据,并选择需要的波段。定义了计算dNBR值所需的函数(nbr_formula),并使用该函数计算出前火情(pre_fire)和后火情(post_fire)的NBR值,最终得出dNBR值(dNBR)。最后将结果可视化,其中min、max和palette参数可根据需要进行调整。
完成上述代码的输入和运行后,即可在地图上看到计算得到的dNBR值。
阅读全文