GEE提取火烧迹地的代码
时间: 2024-05-08 22:20:44 浏览: 255
提取火焰疑似区域的c语言代码
以下是使用Google Earth Engine提取火烧迹地的示例代码:
```javascript
// 选择地图中感兴趣的区域
var roi = ee.Geometry.Rectangle([lon1, lat1, lon2, lat2]);
// 获取火烧迹地的数据集
var modisBurnedArea = ee.ImageCollection('MODIS/006/MCD64A1')
.filterDate('2019-01-01', '2020-12-31')
.select('BurnDate')
.filterBounds(roi);
// 将BurnDate转换为日期格式
var burnedArea = ee.Image(modisBurnedArea.first()).select('BurnDate');
var burnedAreaDate = ee.Date(burnedArea.get('system:time_start'));
var burnedAreaDateString = burnedAreaDate.format('YYYY-MM-dd');
// 将BurnDate中不同年份的数据转换为不同波段,方便后续处理
var years = ee.List.sequence(2000, 2020);
var byYear = ee.ImageCollection.fromImages(
years.map(function (y) {
var filtered = modisBurnedArea.filter(ee.Filter.calendarRange(y, y, 'year'));
return filtered.max().set('year', y);
})
);
// 计算每年的火烧迹地面积
var calcBurnedArea = function (image) {
var burnedArea = image.select('BurnDate').gt(0);
var burnedAreaPixelCount = burnedArea.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: roi,
scale: 500,
maxPixels: 1e9
}).get('BurnDate');
var burnedAreaM2 = burnedAreaPixelCount.multiply(500).multiply(500);
return image.set('burnedAreaM2', burnedAreaM2);
};
var burnedAreaByYear = byYear.map(calcBurnedArea);
// 绘制火烧迹地面积图表
var chart = ui.Chart.image.series({
imageCollection: burnedAreaByYear.select('burnedAreaM2'),
region: roi,
reducer: ee.Reducer.sum(),
scale: 500,
})
.setOptions({
title: 'Annual Burned Area (' + burnedAreaDateString + ')',
vAxis: { title: 'Burned Area (m²)' },
hAxis: { title: 'Year', format: '####' },
lineWidth: 1,
pointSize: 3,
});
// 将火烧迹地图层添加到地图中
var visParams = { palette: 'ff0000' };
Map.addLayer(burnedArea, visParams, 'Burned Area (' + burnedAreaDateString + ')');
// 显示图表
print(chart);
```
在代码中,首先选择地图中感兴趣的区域(`roi`),然后获取MODIS火烧迹地的数据集,并将它们转换为日期格式。接着,将不同年份的数据转换为不同波段,方便后续处理,然后计算每年的火烧迹地面积。最后,绘制火烧迹地面积图表并将火烧迹地图层添加到地图中。
阅读全文