首页 > 编程语言 >单窗算法的地表温度反演:谷歌地球引擎GEE代码

单窗算法的地表温度反演:谷歌地球引擎GEE代码

时间:2023-04-26 14:01:24浏览次数:49  
标签:单窗 LST 反演 遥感 GEE 地表 代码 温度

  本文介绍在GEE中基于Landsat遥感影像实现地表温度(LST)单窗算法反演的代码。

1 背景知识

  基于遥感数据的地表温度(LST)反演目前得到了广泛的应用,尤其是面向大尺度、长时间范围的温度数据需求,遥感方法更是可以凸显其优势。目前,基于各类遥感数据源的地表温度反演方法不断得以改进,精度亦不断提升。而利用遥感图像处理软件,对地表温度加以反演,其操作整体较为繁琐,尤其是需要处理大量遥感数据时,其数据下载、操作步骤与结果保存等,都是很大的问题。因此,本文介绍一种基于谷歌地球引擎(Google Earth Engine,GEE)的地表温度反演算法及其代码。

  该方法基于Landsat 4/5/7/8卫星反演地表温度。基于该算法,我们可以直接在GEE中获取遥感图像、计算LST,并选择下载结果文件,非常方便快捷。

  本文所依据的文献为:Google Earth Engine Open-Source Code for Land Surface Temperature Estimation from the Landsat Series,发表于Remote Sensing

2 算法介绍

  该论文基于Statistical Mono-Window(SMW)算法,对地表温度加以求解。其中,简单地说,SMW算法即是通过简单的线性关系,对由单热红外波段所得的大气表观亮温地表温度之间的经验关系加以表示,从而计算得到LST

3 代码

  代码在这里

  点击链接,浏览器将自动进入你的GEE帐号;而代码则将会自动出现在左侧ScriptReader中:

  其中,modules为计算LST的综合代码库,我们仅仅需要修改、运行其下方example_1.jsexample_2.js的内容即可;其中,依据作者的注释我们可以知道,example_1.js用以计算单时相LST,而example_2.js则为多时相LST

  我们就以example_1.js为例。其中,在代码的这一部分:

// select region of interest, date range, and landsat satellite
var geometry = ee . Geometry . Rectangle([-8.91, 40.0, -8.3, 40.4]);
var satellite = 'L8' ;
var date_ start = '2018-05-15' ;
var date_ end =' 2018-05-31' ;
var use_ ndvi= true;

  由上到下分别是修改ROI区域(即需要计算LST的区域)、基于的卫星(即Landsat 4/5/7/8)、所依据遥感图像开始和结束的时间,以及是否引入NDVI计算。大家在实际操作时,依据自己的需要自行修改这部分内容即可。

4 效果

  在这里,我们将作者原定的位于美国的ROI修改为武汉市局部地区,以此为例执行代码,效果如下:

  其中,黑色区域是我的ROI,底图便是已经计算出的温度数据图层了(由此可知,代码默认计算整个可见范围的LST,这里的ROI仅仅是方便我们查看、对比感兴趣区域内是否各栅格点均有LST数据)。整个代码执行的过程仅仅需要几秒钟,和用遥感图像处理软件操作比起来真的快了很多。

  随后,依据需要自行选择下载结果数据的范围、保存方法等即可。是不是非常方便~

  最后,大家在使用上述代码时,也要记得按照论文作者的相关要求来,需要规范引用的场合要引用清楚,尊重大家的劳动成果。

标签:单窗,LST,反演,遥感,GEE,地表,代码,温度
From: https://www.cnblogs.com/fkxxgis/p/17355692.html

相关文章

  • 二项式反演
    反演就是对于两个整数函数\(f\)和\(g\),从用\(g\)表示\(f\)转化为用\(f\)表示\(g\)。简而言之,\(f(n)\)是\(g(0),g(1),\cdots,g(n)\)的一个线性组合,那么很明显,有\(f(n)=\sum_{i=0}^na_{n,i}g(i)\)。如果把\(g(i),f(i)\)用向量\(G,F\)表示,那么\(F=\{a_{i,j}\}*G......
  • [AHK]打开同花顺委托下单窗口在同花顺(v8.60.13) 试验可用
    DetectHiddenWindows,onSetTitleMatchMode,Fast;主程序IfWinExist,ahk_class#32770ahk_exexiadan.exe ToolTip,找到下单窗口else{ open_xiadan() loop{ Sleep,1000 ifA_index>20 { MsgBox下单窗口呼叫失败 break } }UntilWinExist(ahk_class......
  • Google Earth Engine(GEE)——全球河流网络及相应的水资源区数据集
    全球河流网络及相应的水资源区河流网络和水资源区(WRZ)对于水资源的规划、利用、开发、保护和管理至关重要。目前,世界上的河网和水资源区大多是根据数字高程模型数据自动获得的,这些数据不够准确,尤其是在平原地区。此外,WRZ代码与河网不一致。作者提出了一系列方法,生成了分辨率较高、......
  • [未解决] Cesium 报错 undefined RangeError: Invalid array length
    Anerroroccurredwhilerendering.Renderinghasstopped.undefinedRangeError:InvalidarraylengthRangeError:InvalidarraylengthatupdateFrustums(webpack-internal:///./src/source/CesiumEngine/Scene/View.js:94:36)atView.createPotentiallyV......
  • 莫比乌斯反演
    反演我们再来看看容斥原理实质上发生了什么——根据定义我们有\[N_\geq(S)=\sum\limits_{S\subseteqJ}N_=(J)\]而容斥原理(一般形式)表明\[N_=(S)=\sum\limits_{J:S\subseteqJ\subseteq\mathscr{A}}(-1)^{|J|-|S|}N_\geq(J)\]也就是说,容斥原理其实是由\((1)\)式解出了\((......
  • PayloadTooLargeError: request entity too large错误解决
    这个错误通常是由于你正在尝试上传大于服务器最大允许大小的文件或数据导致的。这通常可以通过在服务器端进行一些配置更改来解决。如果您使用的是Node.js,您可以使用body-parser中间件来增加请求体的限制。例如,以下代码将允许请求体的最大大小为10MB:varbodyParser=require('body......
  • 二项式反演
    若\[g_n=\sum_{i=0}^n\dbinom{n}{i}f_n\]有\[f_n=\sum_{i=1}^{n}\dbinom{n}{i}g_n\]若\[g_i=\sum_{j=i}^{n}\dbinom{j}{i}f_j\]则\[f_i=\sum_{j=i}^{n}\dbinom{j}{i}(-1)^{j-i}g_j\]P4859已经没有什么好害怕的了给两个数列\(a\),\(b\),要求\(a_i,b_i\)两两匹配,......
  • Google Earth Engine (GEE) ——矢量转栅格初学者最易犯的错误
    我们都知道有时候我们需要对矢量和栅格进行转化,这样做的目的就是为了方便我们影像统一操作或者其它处理。这里我们会用到GEE中的一个矢量转换栅格的函数,通过这个函数我们可以快速的将矢量转化未栅格,但是这里需要注意的是我们需要查看我们的矢量集合是否会有很多细节,也就是节点比较......
  • 博客园 geek 主题备份
    geek......
  • 2023-04-14 uni-popup 报错:Error in config.errorHandler: "RangeError: Maximum call
    问题描述:首次导入uniapp的uni-popup,在项目中使用时报错,业务场景为:页面渲染完成后显示弹窗。报错:Errorinconfig.errorHandler:"RangeError:Maximumcallstacksizeexceeded"config.errorHandler中的错误:“RangeError:超出了最大调用堆栈大小”页面如下:<uni-popupref="l......