给出利用landsat影像计算ndvi的代码
时间: 2023-03-31 17:01:07 浏览: 136
以下是利用Landsat影像计算NDVI的Python代码示例:
```python
import rasterio
import numpy as np
# 打开Landsat影像文件
with rasterio.open('landsat.tif') as src:
# 读取红波段和近红外波段数据
red = src.read(4)
nir = src.read(5)
# 计算NDVI
ndvi = np.where((nir+red) == ., , (nir-red)/(nir+red))
# 将NDVI写入新的GeoTIFF文件
profile = src.profile
profile.update(dtype=rasterio.float32, count=1)
with rasterio.open('ndvi.tif', 'w', **profile) as dst:
dst.write(ndvi.astype(rasterio.float32), 1)
```
这段代码使用了rasterio库来读取和写入GeoTIFF格式的影像文件,计算NDVI的公式为(NIR-Red)/(NIR+Red),其中NIR为近红外波段,Red为红波段。最后将NDVI结果写入新的GeoTIFF文件中。
相关问题
给出利用landsat影像计算evi的代码
以下是利用Landsat影像计算EVI的代码:
```python
import rasterio
import numpy as np
# 读取红、近红波段的数据
with rasterio.open('landsat.tif') as src:
red = src.read(4)
nir = src.read(5)
# 计算EVI
G = 2.5
L = 1
C1 = 6
C2 = 7.5
EVI = G * ((nir - red) / (nir + C1 * red - C2)) + L
# 将EVI保存为GeoTIFF文件
with rasterio.open('evi.tif', 'w', **src.profile) as dst:
dst.write(EVI.astype(rasterio.float32), 1)
```
希望对您有所帮助!
利用landsat7合成ndvi
利用Landsat 7合成NDVI,需要以下步骤:
1.获取Landsat 7影像,通常包括蓝、绿、红、近红外、热红外等波段。
2.将蓝、绿、红波段进行大气校正,去除大气影响。
3.将近红外波段与红波段进行计算,得到NDVI。
4.根据NDVI值进行分类和分析。
在具体实施时,可以使用遥感软件如ENVI、ArcGIS等,通过自动化流程来实现上述步骤。常见的NDVI应用有农业、林业、水资源等领域,通过测算植被覆盖度、生长情况、土壤水分等指标,进行资源管理和监测。
需要注意的是,Landsat 7于2003年出现了扫描线故障,即传感器扫描镜头出现了一个带状的缺陷。因此,若利用Landsat 7合成NDVI,需要对扫描线故障进行纠正。