用GEE写一个提取水体的代码
时间: 2023-03-20 17:00:48 浏览: 195
以下是一个简单的使用 Google Earth Engine 提取水体的代码:
```javascript
// 设置 ROI (Region of Interest)
var roi = ee.Geometry.Rectangle([lon, lat, lon+0.01, lat+0.01]);
// 加载 Landsat 8 的数据集
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(roi)
.filterDate('2018-01-01', '2018-12-31');
// 选择需要的波段
var bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7'];
// 应用水体指数 MNDWI (Modified Normalized Difference Water Index)
function addMNDWI(image) {
var mndwi = image.normalizedDifference(['B3', 'B6']).rename('MNDWI');
return image.addBands(mndwi);
}
// 对所有影像应用 MNDWI
var withMNDWI = l8.map(addMNDWI);
// 设置阈值并应用
var water = withMNDWI
.select('MNDWI')
.gt(0.15) // 根据需要可以调整阈值
.selfMask() // 去除非水体区域
// 可视化结果
Map.addLayer(water, {palette: 'blue'}, 'Water');
```
这个代码会从 Landsat 8 数据集中选择指定区域和时间范围内的图像,并将其转换为水体指数 MNDWI。然后,将阈值应用于 MNDWI 数据,并通过 `selfMask()` 去除非水体区域。最后,将结果可视化在 Google Earth Engine 上。
阅读全文