GEE提取红树林面积的代码
时间: 2024-02-16 08:01:47 浏览: 113
以下是使用 Google Earth Engine 提取红树林面积的示例代码:
```javascript
// 加载 Landsat 8 表面反射率影像数据集
var l8sr = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR');
// 定义 AOI(感兴趣区域)
var aoi = ee.Geometry.Polygon(
[[[-96.63177, 29.51888],
[-96.63177, 29.51063],
[-96.61924, 29.51063],
[-96.61924, 29.51888]]], null, false);
// 定义时间范围
var start_date = ee.Date('2013-01-01');
var end_date = ee.Date('2018-01-01');
// 从 Landsat 8 影像数据集中选择 AOI 和时间范围内的影像
var l8sr_filtered = l8sr.filterBounds(aoi)
.filterDate(start_date, end_date);
// 定义计算 NDVI 指数的函数
var ndvi = function(image) {
return image.normalizedDifference(['B5', 'B4']);
};
// 计算 NDVI 指数
var ndvi_collection = l8sr_filtered.map(ndvi);
// 定义阈值来将 NDVI 指数转换为二元分类结果
var threshold = 0.2;
var ndvi_binary = ndvi_collection.map(function(image) {
return image.gt(threshold);
});
// 定义一个函数来计算 AOI 中的红树林面积
var calculate_mangrove_area = function(image) {
// 将二元分类结果转换为面积
var area_image = ee.Image.pixelArea().multiply(image);
// 计算 AOI 中的红树林面积
var mangrove_area = area_image.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: aoi,
scale: 30,
maxPixels: 1e9
}).get('nd');
return mangrove_area;
};
// 计算 AOI 中的红树林面积
var mangrove_area = ndvi_binary.map(calculate_mangrove_area);
// 输出结果
print('Red mangrove area (m^2):', mangrove_area);
```
上述代码中,我们首先加载 Landsat 8 表面反射率影像数据集,并定义了一个 AOI 和时间范围。然后,我们从 Landsat 8 影像数据集中选择 AOI 和时间范围内的影像,并计算 NDVI 指数。接着,我们将 NDVI 指数转换为二元分类结果,并定义一个函数来计算 AOI 中的红树林面积。最后,我们应用这个函数来计算 AOI 中的红树林面积,并输出结果。