植物表型程序学习(二)

接上文

(三)归一化植被指数计算(NDVI)

(1)归一化植被指数概念

1.NDVI(Normalized Difference Vegetation Index,归一化差分植被指数,标准差异植被指数),也称为生物量指标变化,通过测量近红外(植被强烈反射) 和红光(植被吸收)之间的差异来量化植被,可使植被从水和土中分离出来

2.NDVI的范围始终为-1至+1。但是每种类型的土地覆盖并没有明确的界限,例如,当值为负数时,很可能是水。另一方面,如果NDVI值接近+1,则很有可能是茂密的绿叶。然而,当NDVI接近于零时,没有绿叶,甚至可能是城市化区域。

3.NDVI是分析人员在遥感中最常用的指标

(2)NDVI基本原理:

植物叶片组织对蓝光(470nm)红光(650nm)有强烈吸收,而对绿光和红外光强烈反射

叶片中心的海绵组织和叶片背面组织对近红外辐射(NIR, 700-1000nm)反射较强。

从红光(Red)到红外光(NIR),裸地反射率较高但增幅很小。

植被覆盖越高,红光反射越小,近红外光反射越大。红光吸收很快达到饱和,而近红外光反射随着植被增加而增加。

所以,任何强化Red和NIR差别的数学变换都可以作为植被指数,来描述植被状况。归一化植被指数(NDVI)就被定义为:

此公式的结果生成一个介于-1和+1之间的值。如果红色通道的反射率较低(或较低的值),而NIR通道的反射率较高,则将产生较高的NDVI值。反之亦然。

(3)NDVI在农业中示例

检查一下中心枢纽灌溉的农业区的NDVI。枢轴灌溉在一个点上旋转,从而创建圆形作物图案。

真实的颜色是红色,绿色和蓝色条带的外观。真实的色彩是因为其与我们的眼睛所见相同。

在公式中,可以看到NDVI如何利用近红外(NIR)。因此,当将NIR波段显示为红色时,得到的是红外色。我们说彩色红外是因为近红外在红色通道中。正如在下面看到的那样,支点灌溉植被应该已经以鲜红色显示出来

应用公式时,亮绿色表示NDVI高。而红色的NDVI较低。因此,通过测量近红外光(植被强烈反射)和红光(植被吸收)之间的差异来量化植被。

(4)具有NDVI近红外功能的卫星

Sentinel-2,Landsat 和SPOT 等卫星会产生红色和近红外图像

15 个免费卫星图像数据源15 Free Satellite Imagery Data Sources - GIS Geography

(5)植被指数

这里扩展一下植被指数的概念:

根据波段间的比值运算能够提取植被的算法,称为植被指数(Vegetation Index,VI)

  • 比值植被指数(RVI:Ratio Vegetation Index):RVI=NIR/R
  • 归一化植被指数(NDVI:Normalized Vegetation Index):NDVI = (NIR-R)/(NIR+R)
  • 差值植被指数(DVI:Difference Vegetation Index):DVI=NIR-R

(6)归一化植被指数代码学习

1.python包中的functools,reduce, operator

functools:用于高阶函数,指那些作用于函数或者返回其它函数的函数,通常只要是可以被当做函数调用的对象就是这个模块的目标。

operator:标准运算符替代函数,例如,operator.add(x, y) 与表达式 x+y 相同。 许多函数名与特殊方法名相同,只是没有双下划线。为了向后兼容性,也保留了许多包含双下划线的函数。为了表述清楚,建议使用没有双下划线的函数。函数包含的种类有:对象的比较运算、逻辑运算、数学运算以及序列运算。

reduce:python3中,内置函数中已经没有reduce了。要使用reduce,需要从functools模块里引入

reduce有三个参数,第一个是函数function,第二个是序列sequence,第三个是initial,为初始值,可以忽略。可以看到源代码中已经使用了两个参数

2.多维数组的直方图函数

1)histogram:直方图

2)gd.numpy.searchsorted()

根据函数定义,该函数在应该插入元素以保持顺序的地方查找索引。将索引查找到排序数组“a”中,这样,如果“v”中的相应元素被插入索引之前,则“a”的顺序将被保留。

2)gd.numpy.sort()

返回数组的排序副本

3)gd.numpy.concatenate()

沿现有轴连接一系列阵列

3.ndvi数据的输出

该代码主要目标是计算归一化指数并保存彩色的NDVI数据为geotiff图片

读入NIR和Red图,并对数据进行处理,然后对数据进行输出

这里看一下SaveArray( )函数的定义

输出图如下

(四)土壤调节植被指数 (SAVI)

(1) SAVI概念

(SAVI) 方法是试图通过土壤亮度校正系数最小化土壤亮度影响的植被指数。 它通常用在植被覆盖率较低的干旱区域,其输出值在 -1.0 到 1.0 之间

SAVI = ((NIR - Red)/(NIR + Red + L)) * (1 + L)

(2) SAVI代码学习

该代码可以获取土壤和植被的uint8格式图像,如下图所示

主要代码分为几块

1.读取土壤和植被NIR和Red图像的处理数据(是多维数组)

2.获取土壤和植被的SAVI数据

3.绘制土壤和植被的uint8格式图像

(五)冠层覆盖度

上面已经计算量土壤调节植被指数 (SAVI)

这里接着对冠层覆盖度进行计算绘图

如下图所示

主要代码分析

红色图框中在获取掩码数据后进行比例计算获取"冠层覆盖度"

随后使用matlab绘图方法绘制冠层覆盖度

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值