归一化植被指数:遥感影像中,近红外波段的反射值与红光波段的反射值之差比上两者之和。
计算公式:NDVI = (NIR-R)/(NIR+R)
注:NIR为近红外波段的反射值
R为红光波段的反射值。
由于学习需要,从网上寻找方法试图批量计算该指数,防止以后忘记。附代码如下:
(主要使用gdal库)
import os
from PIL import Image
import numpy as np
from osgeo import gdal
import glob
import cv2
list_tif = glob.glob('H:/gdal/test-data/cut-test/*.tif')
out_path = 'H:/gdal/test-data/ndvi-test/'
for tif in list_tif:
in_ds = gdal.Open(tif)
# 获取文件所在路径以及不带后缀的文件名
(filepath, fullname) = os.path.split(tif)
(prename, suffix) = os.path.splitext(fullname)
if in_ds is None:
print('Could not open the file ' + tif)
else:
# 将MODIS原始数据类型转化为反射率
red = in_ds.GetRasterBand(1).ReadAsArray() * 0.0001
nir &