sentinel2 NDWI
时间: 2024-12-31 18:24:11 浏览: 21
### 使用 Sentinel-2 数据计算 NDWI
归一化差异水体指数(NDWI)用于增强水体特征,减少其他地物类型的干扰。对于 Sentinel-2 卫星影像而言,NDWI 的计算基于近红外波段(NIR, B8A 或者 B8)和绿光波段(Green, B3)。具体公式如下:
\[ \text{NDWI} = \frac{(B3 - B8)}{(B3 + B8)} \]
这里 \(B3\) 表示绿色波段反射率值而 \(B8\) 则表示近红外波段反射率值。
为了实现这一过程,在 Google Earth Engine 平台上可以通过调用 `normalizedDifference` 方法来简化操作[^1]。下面是一个 Python 版本的例子展示如何通过 GEE API 来加载 Sentinel-2 图像集合并计算 NDWI:
```python
import ee
ee.Initialize()
def add_ndwi(image):
ndwi = image.normalizedDifference(['B3', 'B8'])
return image.addBands(ndwi.rename('ndwi'))
# 定义研究区域范围
aoi = ee.Geometry.Polygon(
[[[116.0, 40.0],
[117.0, 40.0],
[117.0, 39.0],
[116.0, 39.0]]])
# 加载哨兵二号图像集合并过滤日期与地理位置
sentinel2 = (ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2023-01-01', '2023-12-31')
.filterBounds(aoi))
# 应用函数到整个图像集合上
with_ndwi = sentinel2.map(add_ndwi)
# 打印处理后的第一个条目查看结果
print(with_ndwi.first().getInfo())
```
这段代码首先初始化了 EE 对象,并定义了一个辅助函数用来向每张图片添加一个新的图层——即由原始两个波段计算得到的 NDWI 值;接着指定了感兴趣区(AOI),选择了特定时间段内的所有可用 S2 场景作为输入源;最后将上述自定义变换应用到了整个数据集中[^2]。
阅读全文