介绍请看:http://blog.sina.com.cn/s/blog_764b1e9d0100wdrr.html

源码:

IDL 源码PRO TVDI,NDVI,LST,NBINS,RES
RES = -1 SZ1 = SIZE(NDVI,/DIMENSIONS)
SZ2 = SIZE(LST,/DIMENSIONS)
IF N_ELEMENTS(SZ1) NE 2 OR N_ELEMENTS(SZ2) NE 2 THEN RETURN
IF TOTAL(ABS(SZ1 - SZ2)) NE 0 THEN RETURN
IF ~ISA(NDVI,/NUMBER) AND ~ISA(LST,/NUMBER) THEN RETURN ;FIND DYR WET PTS
RANGE = [0.0,1.0]
NPT_FILTER = 200
PTS = 50
DRY_PTS = [0]
WET_PTS = [0] IDX = FLOOR(NDVI * NBINS)
FOR I = 0, NBINS DO BEGIN
PT = WHERE(IDX EQ I,CNT)
IF(CNT GT NPT_FILTER) THEN BEGIN
II = SORT(LST[PT])
DRY_PTS = [ DRY_PTS,PT[II[INDGEN(PTS)]] ]
WET_PTS = [ WET_PTS,PT[II[-INDGEN(PTS)]] ]
ENDIF
END IF N_ELEMENTS(DRY_PTS) LE 1 THEN RETURN DRY_PTS = DRY_PTS[1:*]
WET_PTS = WET_PTS[1:*] WET = LINFIT(NDVI[WET_PTS],LST[WET_PTS])
DRY = LINFIT(NDVI[DRY_PTS],LST[DRY_PTS]) GOOD = WHERE(NDVI GE RANGE[0] AND NDVI LE RANGE[1],CNT)
IF CNT LE 0 THEN RETURN RES = MAKE_ARRAY(SIZE = SIZE(NDVI))
RES[GOOD] = (LST - POLY(NDVI[GOOD],WET)) / (POLY(NDVI[GOOD],DRY) - POLY(NDVI[GOOD],WET) ) END

说明:

  1. 主要是如何求得散点图上下两条边,我的策略是竖着切开散点,分作n个柱子。每个柱子如果总点数大于200,就统计最大最小的50个点作为干湿边的组成部分。

  2. sort排序函数,where查找满足条件的元素的下标和个数,linefit线性拟合,poly根据拟合结果和x求得y。具体的多看帮助,那里说的详细,还有例子。

IDL 计算TVDI的更多相关文章

  1. IDL计算儒略日

    遥感数据还有一些文章中使用数据的时候,经常使用儒略日(Julian day),即计算该天是一年中的第几天.正好有时间,就用IDL写了段儿小代码,方便使用.   ;+   ; :Author: caoz ...

  2. IDL数组计算

    函数 作用 min 最小值 max 最大值 total 求和 stddev 标准差 mean 平均值  

  3. Storm分布式实时流计算框架相关技术总结

    Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解S ...

  4. IDL中histogram的应用

    前面一段时间在使用Histogram时一直是不能更好的理解其中的奥秘,通过阅读帮助以及查看相应的文档,终于理解了其中的玄机,很多时候是因为在学习的时候英文不知道翻译成什么样的内容比较合理,这样就给后面 ...

  5. IDL简介与corba入门案例

    IDL接口定义语言简介   IDL用中立语言的方式进行描述,能使软件组建(不同语言编写的)间相互通信. IDL提供了一个桥来连接不同的系统. Corba 上的服务用IDL描述,将被映射为某种程序设计语 ...

  6. IDL与C#混合编程技术

    C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言.C#与Java有很多的相似之处,包括了诸如单一继承.界面.与Java几乎同样的语法,和编译成中间代码再运行的过程.它又借鉴了D ...

  7. ENVI/IDL与ArcGIS集成开发的三种途径

    转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...

  8. IDL绘制黑体辐射曲线

    普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况.绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义.1900年普朗克引进量子概念,将辐射当做不连续的量子发射,成功地从 ...

  9. IDL 实现PCA算法

    在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析.简化数据集的技术.主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特 ...

随机推荐

  1. chapter 13_4 跟踪table的访问

    __index和__newindex都是在table中没有所需访问的index时才发挥作用. 因此,只有将一个table保持为空,才有可能捕捉到所有对它的访问.为了监视一个table的所有访问,就应该 ...

  2. 高精度运算专题2-减法运算(The subtraction operation)

    这个专题呢,我就来讲讲高精度的减法,下面是三个计算减法的函数,第一个函数是char类型的,要对字符串进行数字转换,而第二个是两个int类型的数组,不用转换成数字,第三个则更为优化,用a数组-b数组放回 ...

  3. redis的常用命令

    键值得相关命令: keys * 返回满足给定patternd的所有key exists 确认一个key是否存在 del 删除一个key expire 设置一个key的过期时间 ttl 查看过期时间还有 ...

  4. redis数据类型:sets

    sets类型及操作: set是集合,它是string类型的无序集合.set是通过hash table实现的, 添加.删除和查找的复杂度都是O(1).对集合我们可以取并集.交集.差集. 通过这些操作我们 ...

  5. 《实战Java高并发程序设计》pdf

    花了我五元大洋,需要的拿去吧.百度云盘:https://pan.baidu.com/s/1o8bESY2

  6. 《JavaScript高级程序设计》读书笔记 ---基本类型和引用类型的值

    变量.作用域和内存问题 基本类型和引用类型的值ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.在 ...

  7. svn hooks的使用demo

    我是理论家: svn server端提供了Hooks Script.所谓钩子实际上是一种时间触发机制,是指当系统执行到某个特殊的事件时,触发我们预定义的动作,可以让我们在某些特定状态发生的时候做我们想 ...

  8. Cross compile openwrt

    在Centos7上交叉编译生成OpenWrt固件 安装ss-* 获取最新的ss, 当前是 wget https://github.com/shadowsocks/shadowsocks-libev/a ...

  9. Chapter 1 First Sight——28

    "Which one is the boy with the reddish brown hair?" 那个红褐色头发的男孩是谁? I asked. I peeked at him ...

  10. Output Limit Exceed是什么情况引起的

    输入的格式错误 Output Limit Exceed是超过输出限制(OLE)错误,提示你的程序产生了过多的输出信息,一般是由于死循环造成的.你的程序发生上述错误的主要原因是循环语句while(sca ...