如何用python计算NDVI并形成tif图像
时间: 2023-04-08 07:00:57 浏览: 198
可以使用Python中的GDAL库和NumPy库来计算NDVI并形成tif图像。以下是一个示例代码:
```python
import gdal
import numpy as np
# 打开红光和近红外波段的影像
red_ds = gdal.Open('red_band.tif')
nir_ds = gdal.Open('nir_band.tif')
# 读取波段数据
red_band = red_ds.GetRasterBand(1).ReadAsArray().astype(np.float32)
nir_band = nir_ds.GetRasterBand(1).ReadAsArray().astype(np.float32)
# 计算NDVI
ndvi = (nir_band - red_band) / (nir_band + red_band)
# 创建输出影像
driver = gdal.GetDriverByName('GTiff')
out_ds = driver.Create('ndvi.tif', red_ds.RasterXSize, red_ds.RasterYSize, 1, gdal.GDT_Float32)
# 将NDVI数据写入输出影像
out_band = out_ds.GetRasterBand(1)
out_band.WriteArray(ndvi)
# 设置影像的地理信息和投影信息
out_ds.SetGeoTransform(red_ds.GetGeoTransform())
out_ds.SetProjection(red_ds.GetProjection())
# 关闭数据集
red_ds = None
nir_ds = None
out_ds = None
```
这段代码假设你已经有了红光和近红外波段的tif影像,分别命名为'red_band.tif'和'nir_band.tif'。它将计算NDVI并将结果写入一个名为'ndvi.tif'的新tif影像中。
阅读全文