免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 7860|回复: 5
收起左侧

envi统计ndvi变化的区域面积并制图输入

[复制链接]

5

主题

1294

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
367
发表于 2018-2-20 21:49 手机频道 | 显示全部楼层 |阅读模式
30铜板
怎样用envi计算不同时间ndvi,给出变化的图像统计变化的区域面积,并对变化的区域进行制图输入

141

主题

982万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
621916
发表于 2018-2-23 09:44 | 显示全部楼层
请论坛各位高手回答下楼主的提问,会奖励相应的铜板和威望的哦!
回复

使用道具 举报

82

主题

1万

铜板

2

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
711
发表于 2018-3-5 17:15 | 显示全部楼层
帮顶下了
回复

使用道具 举报

82

主题

1万

铜板

2

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
711
发表于 2018-3-5 17:17 | 显示全部楼层
转载的希望对楼主有用!

本人初次学习ENVI软件,就碰到了一个大的bug,实验了一天终于搞定了!记录如下

NDVI的作用就不多说了,计算公式大家都知道是利用(近红外波段-红波段)/(近红外波段+红波段)的公式,在envi中使用transform下的NDVI公式时需要时组合波段(即多个波段组合一起的文件,如果各个波段分开的则无法使用)。用此方法计算的NDVI没问题。

但是如果你要是使用basictools下的bandmath的话就要注意了。

错误一:书写公式时如果用(b4-b3)/(b4+b3),那么你会发现结果一片黑或一片白,主要是计算值均取了整数,例如(50-10)/(50+10)=40/60=0因为整数运算,结果ndvi值为0。

错误二:查询资料发现必须指定波段的取值为float,计算公式改为float(b4-b3)/float(b4+b3),结果发现NDVI对正值均计算正常,比如植被,裸地等。但是对于水体并不算大家所谓的小于0的值,而是全部大于0,而且是大于1的值。郁闷之极,询问了很多人,解释说bandmath是针对反射率的,不能直接针对DN值计算,但是课本说用DN值后者反射率都可以啊。

几经尝试,发现下面的公式时可行的:NDVI=(float(b4)-float(b3))/(float(b4)+float(b3))可行。

以上是个人多次尝试总结,如果有不对请指定出来。继续改进。
回复

使用道具 举报

0

主题

1896

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
101
发表于 2018-4-21 00:11 手机频道 | 显示全部楼层
两幅ndvi图用波段运算相减生成图1。然后build mask进行掩膜图2(对图1像元为0,也就是没变化的区域)。利用掩膜图2 apply mask到图1上,统计区域就行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表