ENVI下基于劈窗算法从MODIS数据中反演海表温度

news2025/1/14 2:29:58

        劈窗算法最初是为反演海面温度开发的,具体地说是针对NOAA/AVHRR的4和5通道设计的,后来也被用来反演地表温度,这种算法较成熟,精度也高。劈窗算法以地表热辐射传导方程为基础,利用10~13μm 大气窗口内,两个相邻热红外通道(一般为10.5~11.5μm、11.5~12.5μm)对大气吸收作用的不同,通过两个通道测量值的各种组合来剔除大气的影响,进行大气和地表比辐射率的修正。表达式为:

                                                          T S= T 4+ A (T 4- T 5) + B

其中:T S为地表真实温度,T 4和 T 5分别为AVHRR的4和5通道,A和B为常量。

      AVHRR 的通道4(10.15~11.13μm) 和通道5 (11.15~12.15μm) 恰与MODIS 的第31 波段 (10.178~ 11.128μm) 和32 波段 (11.177~ 12.127μm ) 的中心波长相对应, 可将MODIS 的31、32 波段资料, 用于劈窗算法进行地表温度计算。很多学者对这个算法进行了推演,得到很多新的算法,如覃志豪、毛克彪等人。本文就是使用其他学者推演的算法。

      利用MODIS数据劈窗算法反演海表温度技术流程如下图:

图:技术流程图

注:(1)按照本流程反演出来的结果是SST。陆地上的值可以视为无效值,若要得到正确的陆表温度,需要加入海陆分离的步骤,以及城镇和自然表面的比辐射率计算。

(2)MODIS数据下载:nasa官网:MODIS Web.

下面详细介绍处理流程,本操作适合ENVI5.3及以上版本

第一步:读取原始数据

    通过File->Open As->Scientific Formats->HDF4,选择原始的hdf数据,点击OK,选择热红外原始DN像素值数据打开,如下图所示。

   打开的是热红外原始数据集,第20-36波段,共16个波段,分别是:20、21、22、23、24、25、27、28、29、30、31、32、33、34、35、36波段。

图:Dataset Brower 

第二步,热红外B31、B32辐射亮度定标

     在上一步中的Dataset Brower,找到相应的辐射亮度值定标系数:

     radiance_scales,和radiance_offset这两项参数代表波段的增益和偏移量,是辐射定标的系数。比如要计算31波段的辐射亮度,读取到scales为0.00084002,offsets为1577.34,带入MODIS辐射定标的公式:Radiance=scales*(DN-offsets),即可以得到该波段的辐射亮度。

      打开/Band Algebra/Band Math工具,输入公式:0.00084002*(B31-1577.334),(B31是第31波段的DN值),点击OK,选择第31波段数据为B31,设置路径和文件名,点击OK。得到的结果就是31波段的辐射亮度。

     同样的方法得到32波段的辐射亮度,公式为:0.00072970*(B32-1658.22)。

第三步:几何校正

      MODIS1b数据是hdf格式,自带有经纬度坐标信息,可自动进行几何校正,先对反射率数据集进行自动几何校正。

反射率数据几何校正:

(1)直接可选择MODIS的hdf文件打开,ENVI自动打开为分为三个数据集:热红外数据发射率(20-36波段),可见光到短波红外的辐射率数据(1-19、26波段),可见光到短波红外的反射率数据(1-19、26波段);

(2)工具/Geometric Correction/Reproject GLT with Bowtie Correction,选择反射率数据集文件,点击Spatial Subset,选择大亚湾的大概位置,点击Spectral Subet,选择2和19波段。点击OK;

(3)打开工具/Geometric Correction/Georeference by Sensor/Georeference MODIS,选择反射率数据集,点击Spatial Subset,选择大亚湾的大概位置,点击Spectral Subet,选择2和19波段。点击OK。

图:选择数据同时选择空间子集和光谱子集

(4)在Georeference MODIS Parameter面板设置为UTM, WGS84,49带,并输出GCP文件。

图:Georeference MODIS Parameter面板

(5)点击OK,在结果输出面板,设置路径和文件名输出。

31、32波段的几何校正:

(1)双击/Geometric Correction/Registration/Warp from GCPs: Image to Map Registration,选择上一步保存出来的GCP文件,设置坐标系为:UTM WGS84 49带,设置输出分辨率均为1000米;

(2)点击OK,选择辐射定标后的31波段数据,点击Spatial Subset,起止行列号设置为和反射率子集一致,点击OK,

(3)输出面板上,设置输出的方法为:Triangulation,重采样方法为:Bilinear,设置文件名输出;

同样的方法对32波段辐射定标的结果进行几何校正。

第四步:海表温度反演

       本文使用的是《高懋芳,覃志豪等,MODIS数据反演地表温度的基本参数估计方法》中分裂窗算法模型进行海表温度反演,旨在学习ENVI中的操作流程。

算法为:

T s = A 0 + A 1*T 31 - A 2* T 32 ( 1)

其中:T s 是 地 表 温 度 ( K ) , T 31 和 T 32 分 别 是M OD I S 第 31 和 32 波段的亮度温度; A 0, A 1 和 A 2 是分裂窗算法的参数,分别定义如下:

A 0 = [ D 32( 1 - C31 - D 31) / ( D 32 C31 -D 31 C32) ] a31 - [ D 31( 1 - C32 - D 32) /( D 32 C31 - D 31 C32) ] a 32 ( 2)

A 1 = 1 + D 31/ ( D 32C31 - D 31 C32) + [ D 32( 1 -C31 - D 31) / ( D 32C31 - D 31 C32) ] b31 ( 3)

A 2 = D 31/ ( D 32 C31 - D 31C32) + [ D 31( 1 - C32 - D 32) / ( D 32 C31 - D 31C32) ] b32 ( 4)

式中, a 31,b31,a 32 和 b 32 是常量, 根据 MODIS的波段特征确定, 在地表温度 0 ~ 5 e 范围内, 这些常量 分 别 可 取 a 31 = -64.60363 , b31 = 0.440817, a 32 = -68.72575, b32 = 0.473453。

上述公式的中间参数分别计算如下:

Ci = Ɛ iτi (ɵ) ( 6)

D i = [ 1 -τi (ɵ)] [ 1 + ( 1 - Ɛ i) τi (ɵ)] ( 7)

式中: i 是指 MODIS的第31和32波段, 分别为 i= 31 或 32; τi (ɵ)是视角为 ɵ的大气透过率; Ɛ i 是波段 i 的地表比辐射率。

      由以上公式可以看出, 该算法要求卫星遥感器的 31 和 32 波段数据来计算星上亮度温度, 同时还要求已知大气透过率和地表比辐射率, 才能进行地表温度的反演。

下面是详细操作步骤:

(1)大气透过率计算

      大气透过率τi (ɵ)是计算地表温度的基本参数, 通常是通过大气水汽含量来估计。经过前人研究,可以用MODIS第 2 和 19 波段来反演大气水分含量,然后再根据大气水分含量与大气透过率之间的关系来估计大气透过率。对于MODIS图像中的任何一个像元,其可能的大气水分含量用下式估计

(8)

式中: ω是大气水分含量( g *cm-2) , α和β常量,分别α= 0.02 和 β=0.6321;ρ19和ρ2分别是MODIS第19和2波段的地面反射率。

    使用bandmath工具计算大气水分含量:

    表达式:((0.02-alog(b19/b2))/0.6321)^2

    B19:第19波段反射率

    B2:第2波段反射率

     大气透过率的计算中,水汽是最主要的考虑因素,毛克彪等将MODTRAN等大气模型模拟出来的两者的关系,应用到MODIS数据中,提高了地表温度反演的精度和实时性,本文采用模拟效果较好的指数关系模拟方程,拟合度达到了0.99以上,公式为:

τ 31= 2.89798-1.88366*exp{-[ω/(-21.22704)]} (9)

τ32= -3.59289+4.60414*exp{-[ω/(-32.70639)]} (10)

式中,ω是水汽含量。

使用bandmath工具计算大气透过率:

31波段大气透过率表达式:2.89798-1.88366*exp(b1/21.22704)

B1:大气水分含量。

32波段大气透过率表达式:-3.59289+4.60414*exp(b1/32.70639)

B1:大气水分含量。

(2)地表比辐射率的估算

      地表比辐射率主要取决于地表的物质结构,对MODIS来说,大致分为水面、城镇和自然表面。对于反演来说,利用混合像元分解的方法,根据植被覆盖率来计算自然表面和城镇的比辐射率,水体的可以用常量:

Ɛ 31水体=0.996,Ɛ 32水体=0.992。

有了这些参数,我们就可以计算C31、C32、D31、D32中间参数,BandMath表示式分别为:

C31=0.996*b31

C32=0.992*b32

D31=(1-b31)*(1+(1-0.996)*b31)

D32=(1-b32)*(1+(1-0.996)*b32)

其中 B31:31波段大气透过率

B32:32波段大气透过率

(3)亮度温度的计算

      将图像DN值定标维热辐射强度之后, 可用Planck函数求解出星上亮度温度, 计算公式如下:

T i = K i 2 / l n ( 1 + K i 1 /I i )

式中, K i 1和 K i 2 是常量,对于第 i = 31 波段, 分别为 K 31 , 1 = 729 .541636 W•m-2•sr-1•um-1 ,

K 31 , 2 = 1304.413871K ; 对于第 i = 32 波段, 为 K 32 , 1 = 474 . 6 84780 W•m-2•sr-1•um-1,, K 31 , 2 = 1196 . 978785 K。

    使用bandmath工具计算31和32的亮温。

   31波段亮温:1304.413871/alog(1+729.541636/b31)

    B31: 31波段辐射亮度值

    32波段亮温:1196.978785 /alog(1+474.684780/b32)

    B32:32波段辐射亮度值

(4)A 0, A 1 和 A 2参数计算

     接下来我们计算A 0, A 1 和 A 2参数,Bandmath表达式分别为:

      A 0=b4*(1-b1-b3)/(b4*b1-b3*b2)*(-64.60363)-b3*(1-b2-b4)/(b4*b1-b3*b2)*(-68.72575)

      A 1=1+b3/( b4*b1-b3*b2)+b4*(1-b1-b3)/( b4*b1-b3*b2)* 0.440817

     A 2=b3/(b4*b1-b3*b2)+b3*(1-b2-b4)/(b4*b1-b3*b2)* 0.473453

其中,b1:C31

B2:C32

B3:D31

B4:D32

(5)温度计算

   把这些参数带入公式1中计算温度值,Bandmath表达式为:

T s=b0+b1*b31-b2*b32-273

其中:b0:A0参数

B1:A1参数

B2:A2参数

B31:B31亮温值

B32:B32亮温值

      如下为得到的最终地表温度反演结果,单位为摄氏度。通过/Statistics/Compute Statistics工具统计看到最初的结果会有一些数量很少的异常值,几十个像素,这些异常值大多是处于影像的边缘。如下图为统计的结果,小于-40的像元占0.6%,大于32度像元占0.1%。可以将这些像元处理,如用以下bandmath处理:-40>b1<32。

图:初始结果统计

图:最终反演结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1635299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 24.04安装搜狗输入法-解决闪屏问题

问题描述 在Ubuntu 24.04 LTS系统中按照官方安装指导《Ubuntu20.04安装搜狗输入法步骤》安装搜狗输入法后&#xff1a; 会出现屏幕闪烁&#xff0c;无法正常使用的问题&#xff1b;系统搜索框和gnome-text-editor无法使用搜狗输入法&#xff1b; 原因分析 闪屏可能是Ubuntu…

ES6之rest参数、扩展运算符

文章目录 前言一、rest参数二、扩展运算符 1.将数组转化为逗号分隔的参数序列2.应用总结 前言 rest参数与arguments变量相似。ES6引入rest参数代替arguments&#xff0c;获取函数实参。扩展运算符能将数组转化为参数序列。 一、rest参数 function namelist1() {console.log(ar…

作为程序员,开发用过最好用的AI工具有哪些?

你用过最好用的AI工具有哪些&#xff1f; 这些年有过比较好用的ai工具的算github copilot 了吧,最近JetBrains IDE还出了一款内置的ai插件&#xff1a;ai assistant。也是相当的好用的。 GitHub Copilot GitHub Copilot 在编写代码时提供 AI 对程序员的自动完成样式的建议 …

Flutter 从 Assets 中读取 JSON 文件:指南 [2024]

在本教程中&#xff0c;我们将探讨如何从 Flutter 项目中的 asset 中读取 JSON 文件。您将找到详细的解释、实际示例和最佳实践&#xff0c;使您的 JSON 文件处理顺利高效。那么&#xff0c;让我们深入了解 Flutter 和 JSON 的世界吧&#xff01; 从 asset 中读取 JSON 文件 …

第1篇:创建Platform Designer系统

Q&#xff1a;本期我们开始使用Platform Designer工具创建带IP核的FPGA自定义硬件系统。 A&#xff1a;Platform Designer是集成在Quartus软件里的系统设计工具&#xff0c;名称随着Quartus的不断更新曾命名为SOPC Builder和Qsys。 使用Platform Designer可以添加Quartus已有自…

手持气象站:现代气象观测的便携式工具

手持气象站&#xff0c;作为现代气象观测的便携式工具&#xff0c;其功能和用途在不断地扩展和完善。随着科技的进步&#xff0c;手持气象站不仅仅是一个简单的数据采集工具&#xff0c;更是集成了智能化、多功能化和无线通信技术于一体的气象监测平台。 首先&#xff0c;手持…

Linux第二节--常见的指令介绍集合(持续更新中)

点赞关注不迷路&#xff01;&#xff0c;本节涉及初识Linux第二节&#xff0c;主要为常见的几条指令介绍。 Linux下基本指令 1. ls 指令 语法&#xff1a; ls [选项][目录或文件] 功能&#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&#…

时间序列分析-无模型

本节内容介绍了无模型的时间序列分析方法&#xff0c;包括时间序列作趋势图、逐年分解、时间序列分解、直方图、ACF与PACF图&#xff0c;主要是作图。 首先导入数据和对应的库&#xff1a; import pandas as pd import numpy as np import matplotlib.pyplot as plt import se…

1.2 Java全栈开发前端+后端(全栈工程师进阶之路)-前置课程JavaScript,看这一篇就够了

上一章我们讲了HTML的知识&#xff0c;那么我们现在要来学习&#xff0c;JavaScript 那么首先我们要知道JavaScript写在哪里。 JavaScript核心语法 js书写的位置 1、写在页面中的script标签下 只有在代码与页面有强关联的情况下才会写在页面里 2、写在指定的js文件下通过…

Oracle程序常驻程序内存优化【数据库实例优化系列二】

Oracle系统参数调整【数据库实例优化系列一】-CSDN博客 Oracle数据库中有一个软件包 dbms_shared_pool,它可以keep和unkeep,将用户经常使用的程序,比如存储过程、函数、序列、触发器、游标以及java source等数据库对象,长期保存在这一块区域。这些程序可以常驻这个区域(s…

【全开源】餐饮点餐系统小程序源码独立部署/上线/维护/更新_博纳软云

餐饮点餐系统小程序源码 基于ThinkPHPFastAdminUniApp开发的餐饮点餐系统&#xff0c;主要应用于餐饮&#xff0c;例如早餐、面馆、快餐、零食小吃等快捷扫码点餐需求&#xff0c;标准版本仅支持先付款后就餐模式&#xff0c;高级版本支持先付后就餐和先就餐后付费两种模式 餐…

【linuxC语言】fcntl和ioctl函数

文章目录 前言一、功能介绍二、具体使用2.1 fcntl函数2.2 ioctl函数 三、拓展&#xff1a;填写arg总结 前言 在Linux系统编程中&#xff0c;经常会涉及到对文件描述符、套接字以及设备的控制操作。fcntl和ioctl函数就是用来进行这些控制操作的两个重要的系统调用。它们提供了对…

系统评估和优化——Datawhale笔记

评估优化生成部分 在前面的章节中&#xff0c;我们讲到了如何评估一个基于 RAG 框架的大模型应用的整体性能。通过针对性构造验证集&#xff0c;可以采用多种方法从多个维度对系统性能进行评估。但是&#xff0c;评估的目的是为了更好地优化应用效果&#xff0c;要优化应用性能…

Creo Assembly “Save As“时,为什么关联的Drawing无法Save As

问题描述&#xff1a; Creo Assembly 进行“另存为”&#xff0c;勾选了“Copy Drawings”。但操作结果是&#xff0c;该Assembly相关联的Drawing没有被“另存为”。 原因分析&#xff1a; 查看Workspace&#xff0c;发现该Assembly a.asm相关联的Drawing为b.drw&#xff0…

与Apollo共创生态:Apollo 7周年大会带给我的启发和心得

Apollo 7周年大会 前不久的Apollo 7周年大会&#xff0c;吸引到我这个对自动驾驶有着浓厚兴趣的开发者&#xff0c;真的精彩&#xff0c;受益匪浅。Apollo 7周年大会展示了Apollo在自动驾驶领域的创新成果&#xff0c;探讨自动驾驶技术的未来发展趋势&#xff0c;并推动自动驾…

【好书推荐8】《智能供应链:预测算法理论与实战》

【好书推荐8】《智能供应链&#xff1a;预测算法理论与实战》 写在最前面编辑推荐内容简介作者简介目录精彩书摘前言/序言我为什么要写这本书这本书能带给你什么 致谢 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴…

想开发一款带有视频通话/共享屏幕功能的产品?那WebRTC是你必须要知道的!

作为一名技术爱好者&#xff0c;我总是对各种协议、各种功能感兴趣&#xff0c;两周前我想为我的开源项目ChatCraft集成视频通话功能&#xff0c;我就开始了对应技术的研究&#xff0c;然后我盯上了WebRTC。在这个研究过程中&#xff0c;我恶补了大量有关WebRTC的知识&#xff…

8.机器学习-十大算法之一朴素贝叶斯(Naive Bayes)算法原理讲解

8.机器学习-十大算法之一朴素贝叶斯&#xff08;Naive Bayes&#xff09;算法原理讲解 一摘要二个人简介三朴素贝叶斯算法简介朴素贝叶斯算法概念贝叶斯方法朴素贝叶斯算法贝叶斯公式 四贝叶斯算法的核心思想&#xff1a;利用贝叶斯定理进行分类五优缺点优点缺点 六朴素贝叶斯原…

从浏览器输入url到页面加载(八)你的web网站有几台服务器?

你有没有想过一个问题&#xff0c;做为一名前端开发&#xff0c;你的网站上线后&#xff0c;准备了几台服务器&#xff1f;前端静态资源用了几台&#xff0c;你调接口的那个后端部署了几台&#xff1f; 目录 1 没接触过这个问题很正常 2 当访问量上升的时候 2.1 提升带宽 …

计算机科学与技术就业方向和前景怎么样

计算机科学与技术专业的就业方向极为广泛&#xff0c;方向可以是软件开发与工程、网络与信息安全、数据科学与大数据分析等&#xff0c;几乎渗透到现代社会的每一个角落。以下是上大学网 &#xff08;www.sdaxue.com)对计算机科学与技术专业一些主要的就业方向及其前景分析&…