游茂燕
摘 要:海表面温度(SST)是海洋-大气系统中的一个重要物理量。所以,提供高精度的海表面温度,对了解全球气候变化及其他各种海洋科学工作有重要意义。卫星遥感提供了获得海表面温度的有效可行方法。MODIS具有强大的海洋信息探测功能,其存储和分发格式为HDF,可以通过交互式语言IDL编程,实现利用MODIS数据进行全球SST反演。
关键词:海表面温度;MODIS;反演;IDL
中图分类号:TB
文献标识码:A
文章编号:16723198(2015)19022603
0 前言
卫星SST观测的目的是为了了解区域和全球的气候变化,使人们能认识大范围的洋流变化。这些观测是非常重要的。首先,3m内的上层水体具有大致相同的热容量,上层10m的海水质量与覆盖其上的水柱的大致相同,海洋上层具有调节全球气候系统的能力,而SST与海洋上层的热存储成比例。第二,大气的水汽和热通量的时间分布是海表面温度的函数。第三,海表面温度的梯度分布与流系、涡、气流和上升流区域有关,这些过程在SST图像上是可以看到的。
随着人们认识的提高和卫星探测技术的发展,卫星海表面温度反演方法也在不断的发展。目前,反演方法主要归为两大类:一类是利用与卫星同步的浮标回归得到海表面温度反演系数,另一类是利用大气辐射传递模式模拟计算从海面到卫星高度处的辐射传输,获得海表面温度反演系数。本次实验中的SST反演算法属于第一类,即采用的参数由实测数据回归分析而来。
1 MODIS介绍
中分辨率成像光谱仪(Moderate-resolution Imaging Spectroradiometer)-MODIS是Terra和Aqua卫星上搭载的主要传感器之一,两颗星相互配合每1-2天可重复观测整个地球表面,得到36个波段的观测数据,这些数据将有助于我们深入理解全球陆地、海洋和低层大气内的动态变化过程,因此,MODIS在发展有效的、全球性的用于预测全球变化的地球系统相互作用模型中起着重要的作用,其精确的预测将有助于决策者制定与环境保护相关的重大决策。MODIS自2000年4月开始正式发布数据,NASA对MODIS数据以广播X波段向全球免费发送,我国目前已建立了数个接收站并分别于2001年3月前后开始接收数据。由于NASA对MODIS数据实行这种全球免费接收的政策,使得MODIS数据的获取十分廉价和方便。MODIS数据的存储和分发格式为HDF(Hierarchical Data Format),MODIS數据的存储和分发格式为HDF(Hierarchical Data Format),HDF是一种国际标准的超文本文件格式,由美国国家高级计算应用中心组织开发,能够存储和处理不同种类的大数据的科学数据,MODIS使用的是HDF4版本,目前包括C、Fortran、Matlab和IDL等软件都可以方便地进行读取和处理。表1列出了SST反演中使用的MODIS波段,对每一个波段列出了热红外波段的波长范围和NET。
2 IDL介绍
IDL(Interactive Data Language)交互式数据语言是进行二维及多维数据可视化分析及应用开发的理想软件工具。作为面向矩阵、语法简单的第四代可视化语言,IDL致力于科学数据的可视化和分析。
IDL在海洋领域具有广泛的应用,在各种海洋数据的可视化及与时间、空间相关的分析,对风、流、浪、温度以及水、粒子流等数据的生物学和化学参数的时间序列,不同格式的数据的读取,不同的机器和操作系统的兼容都有很强的优势。
图1 Topex/Poseidon数据时间上的动态模拟
3 SST反演算法
MODIS的SST反演算法主要来源于“迈阿密”探路者海表面温度算法,是在NOAA/AVHRR的SST算法基础上发展而来,属于一种非线性多通道结构。公式如下:
MODIS_sst=C1+C2·T31+C3·T(31)(32)+C4[sec(θ)-1]·T(31)(32)
该公式模拟了NOAA气象卫星AVHRR的MCSST算法。式中θ是卫星天顶角;T31代表MODIS通道31探测到的亮温,它等价于AVHRR的通道4亮温;T(31)(32)代表MODIS通道32亮温与通道31亮温之间的温差,它等价于AVHRR的通道4亮温与通道5亮温之间的温差。该算法通过运用通道32亮温与通道31亮温之间的温差T(31)(32)进行大气校正,来剔除大气衰减的影响。因为瑞利-金斯定律在热红外波段不成立,所以MODIS热红外通道的亮温Ti需要依据普朗克定律(黑体辐射定律)从该通道探测的辐亮度Li计算获得。
因为亮温Ti是依据黑体辐射定律从该通道探测的辐亮度Li计算获得,故Ti又称为对应通道的黑体温度。
4 利用IDL对MODIS数据进行处理
(1)查看变量和属性。
function hdf_sd_vardir,hdfid
if(n_params() ne 1)then $
message,'usage:result=hdf_sd_vardir(hdfid)'
if(n_elements(hdfid)eq 0) then $
message,'hdfid is undefined'
varnames="
hdf_sd_fileinfo,hdfid,nvars,ngatts
if(nvars gt 0) then begin
varnames=strarr(nvars)
for index=0L,nvars-1L do begin
varid=hdf_sd_select(hdfid,index)
hdf_sd_getinfo,varid,name=name
hdf_sd_endaccess,varid
varnames[index]=name
endfor
endif
return,varnames
End
(2)返回變量和属性的数目。
function hdf_sd_attdir,hdfid,varnames
if(n_params() ne 2) then $
message,'usage:result=hdf_sd_attdir(hdfid,varname)'
if(n_elements(hdfid) eq 0) then $
message,'hdfid is undefined'
if(n_elements(varnames) eq 0) then $
message,'varname is undefined'
attnames=''
if(varnames eq'') then begin
hdf_sd_fileinfo,hdfid,nvars,natts
endif else begin
index=hdf_sd_nametoindex(hdfid,varnames)
varid=hdf_sd_select(hdfid,index)
hdf_sd_getinfo,varid,natts=natts
endelse
if (natts gt 0)then begin
attnames=strarr(natts)
for index=0,natts-1 do begin
if(varnames eq '') then begin
hdf_sd_attrinfo,hdfid,index,name=name
endif else begin
hdf_sd_attrinfo,varid,index,name=name
endelse
attnames[index]=name
endfor
endif
if(varnames ne '') then hdf_sd_endaccess,varid
return,attnames
End
(3)以获取文件\A20131522013181.L3m_MO_SST4_4中所有变量的名称为例。
hdfid=hdf_sd_start('E:\卫星海洋实习\A20131522013181.L3m_MO_SST4_4')
varnames=hdf_sd_vardir(hdfid)
print,varnames
index=hdf_sd_nametoindex(hdfid,'l3m_data')
varid=hdf_sd_select(hdfid,index)
hdf_sd_getinfo,varid,ndims=ndims,dims=dims,type=type
print,ndims,dims
print,type
hdfid=hdf_sd_start('E:\卫星海洋实习\A20131522013181.L3m_MO_SST4_4')
attnames=hdf_sd_attdir(hdfid,'l3m_data')
hdf_sd_end,hdfid
print,attnames
lhdfid=hdf_sd_start('E:\卫星海洋实习\Data\A20131522013181.L3m_MO_SST4_4')
index=hdf_sd_nametoindex(hdfid,'l3m_data')
varid = hdf_sd_select(hdfid,index)
attindex=hdf_sd_attrfind(varid,'Slope')
hdf_sd_attrinfo,varid,attindex,data=attvalue
hdf_sd_endaccess,varid
print,attvalue
hdfid=hdf_sd_start('E:\卫星海洋实习\A20131522013181.L3m_MO_SST4_4')
index=hdf_sd_nametoindex(hdfid,'l3m_data')
varid = hdf_sd_select(hdfid,index)
attindex=hdf_sd_attrfind(varid,'Intercept')
hdf_sd_attrinfo,varid,attindex,data=attvalue
hdf_sd_endaccess,varid
print,attvalue
index=hdf_sd_nametoindex(hdfid,'l3m_data')
varid=hdf_sd_select(hdfid,index)
hdf_sd_getdata,varid,data
hdf_sd_end,hdfid
hdfid=hdf_sd_start('E:\卫星海洋实习\A20131522013181.L3m_MO_SST4_4')
attnames=hdf_sd_attdir(hdfid,'l3m_qual')
hdf_sd_end,hdfid
print,attnames
hdfid=hdf_sd_start('E:\卫星海洋实习\A20131522013181.L3m_MO_SST4_4')
index=hdf_sd_nametoindex(hdfid,'l3m_qual')
varid = hdf_sd_select(hdfid,index)
attindex=hdf_sd_attrfind(varid,'valid_range')
hdf_sd_attrinfo,varid,attindex,data=attvalue
hdf_sd_endaccess,varid
print,attvalue
hdfid=hdf_sd_start('E:\卫星海洋实习\A20131522013181.L3m_MO_SST4_4')
index=hdf_sd_nametoindex(hdfid,'l3m_qual')
varid=hdf_sd_select(hdfid,index)
hdf_sd_getdata,varid,data_y
hdf_sd_end,hdfid
index=where(data_y eq 2,count)
if(count gt 0) then data(index)=65535
y=0.000717185*data-2.00000
data=congrid(data,700,500) ;tvscl,data
index=where(data eq 65535,count)
if(count gt 0) then data(index)=33
data=reverse(data,2)
window,/free,xsize=900,ysize=600
device,decomposed=0
loadct,39
tvscl,data,100,100
colorbar,-2,32,6,'sst'
device,decomposed=1
到此完成了对参数的读取。
5 反演结果及其结果分析
图2 MODIS反演SST图像
黑的是陆地,色条是温度标尺。
从反演结果图(图2)可以看出世界大洋海表面的温度大致沿纬向呈带状分布,即东西方向上量值的差异相对很小;而在经向上,即南北方向上的变化却十分显著。
(1)在这个图像上SST的宽的带状分布通过近极地锋面的暗蓝色边界和接近赤道较暖的红色到绿色边界予以实现。
(2)同时有许多特殊的非带状特性,包括沿着北美的东海岸与湾流有联系的向北方向流的暖水羽状流和邻近日本海岸类似于羽状的由黑潮产生的流。沿着南部非洲的东海岸,流向南方的阿加勒斯海流延伸到好望角。
(3)该图也显示了一个邻近南部美洲的冷水上升流区域和在太平洋赤道冷水上升流的拉尼娜带。相似的冷水带沿着大西洋延伸。
6 結语
本文介绍SST及利用IDL语言编程实现MODIS数据的SST反演方法并给出了应用实例。海表面温度是海洋学研究中最重要的参数之一。几乎所有的海洋过程,特别是海洋动力过程都直接或间接地与之相关。由此可见,提供高精度的海表面温度,对了解全球气候变化及其他各种海洋科学工作有重要意义。本文的海表面温度反演实现方法,运算速度快,能从海量的MODIS数据直接提取有效数据,可用于批量和实时地对MODIS数据进行SST反演,节省了大量的人力和物力。
参考文献
[1]何全军,张月维,曹静等.基于AMSRE与MODIS数据海表面温度遥感反演研究[J].热带气象学报,2009,15(04).
[2]陈宏.基于MODIS的海表面温度反演系统设计与实现[J].遥感信息,2009.
[3]宋佳.基于MODIS数据的海面温度反演及应用研究[J].西安电子科技大学,2011,01(01).
[4]张莉,曾志远.基于HDF4文件格式的MODIS1B影像数据提取的研究与实现[J].国土资源遥感,2004,15(12).
[5]刘玉光.卫星海洋学[M].北京:高等教育出版社,2009:253260.
[6]冯士筰,李凤岐,李少菁.海洋科学导论[M].北京:高等教育出版社,2010.