请教一个IDL简单计算的问题

请教一个IDL简单计算的问题,第1张

pv是植被覆盖度,用以下公式计算:

pv

=

[(ndvi-

ndvisoil)/(ndviveg

-

ndvisoil)]

其中,ndvi为归一化植被指数,ndvisoil为完全是裸土或无植被覆盖区域的ndvi值,ndviveg则代表完全被植被所覆盖的像元的ndvi值,即纯植被像元的ndvi值。取经验值ndviveg

=

0.70和ndvisoil

=

0.05,即当某个像元的ndvi大于0.70时,pv取值为1;当ndvi小于0.05,pv取值为0。

在band

math,输入表达式:

(b1

gt

0.7)*1+(b1

lt

0.05)*0+(b1

ge

0.05

and

b1

le

0.7)*((b1-0.05)/(0.7-0.05))

其中,b1:ndvi。

得到的就是植被覆盖度。

你要先确定r_fid是否为-1 如果是-1就说明你波段运算出错了

那么你下一步肯定就报错了

关于波段运算 你可以参考下envi帮助的例子

fid还是用 t_fid=[fid,fid]

然后envi_doit的时候再fid=t_fid

(b1-b2)/(b1+b2)。

推导IDL运算表达式是:(b1-b2)/(b1+b2)

IDL是一种数据分析和图像化应用程序及编程语言,先由美国ITT公司所有,后由美国ExelisVis公司所有。最初在七十年代后期用于帮助科学家分析火星探险卫星发回的数据,将浩瀚的数据转换为图形。从此后,IDL得到广泛运用,使用者日众,呈几何级别增长。IDL使用者可以迅速且方便地运用此软件将数据转换为图像,促进分析和理解。通过软件转化的图像既可以是简单色彩,也可以是全色三维图像和模型。IDL(Interactive Data Language)语言是第四代科学计算可视化语言,集开放性、高维分析能力、科学计算能力、实用性和可视化分析为一体,它可以在多种硬件平台上运行,可以方便地与C、C++连接,还支持数据库的ODBC接口标准。IDL语言内置的数学库函数可以大大地减少图象处理算法开发的工作量,用IDL语言写的程序可以不加修改地在其他可以运行IDL的平台上运行,这样开发出来的系统自然地具有可移植性。由于IDL语言是解释性语言,其运行速度受到影响,对于速度要求较高的功能可以直接用标准C语言编写,利用IDL与C的接口在IDL语言中调用C模块实现高速度。IDL 语言的许多函数可以支持不同的数据类型, 例如ROT 旋转函数可以旋转字节型、整型及浮点型的矩阵数据。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11288232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存