IDL遥感应用入门(8):读取并显示SSMI / SSMIS数据
发布时间: 2014-01-08
所属分类: IDL遥感应用教程
在之前的几篇文章一直围绕着QuikScat数据做读取分析,当然遥感中的数据多种多样,本文涉及的所有数据仅仅作为一个参考,另外关于数据的下载,也会做一个整理,需要的读者可以在博客里面搜索。
言归正传,本文将换一种数据做数据读取分析,这里采用的是SSMI / SSMIS数据,关于SSMI / SSMIS数据可以看下面简单的介绍。
SSMI / SSMIS数据内含4种数据,WSPD_MF、VAPOR、CLOUD、RAIN。
其中WSPD_MF*0.2代表10米风速,VAPOR*0.3代表大气水汽含量,CLOUD*0.01-0.05代表云层液体水分含量,RAIN*0.1代表降雨率。
0-250属于有效数据
详细说明请看这里
详细代码
;Author:Sailor
;2013-11-15
PRO Course_8
;定义文件路径
MyRootDir='D:\7\'
;遍历文件夹
filearr = file_search(MyRootDir,'*.gz',count=num)
;全局变量
Mul=[0.2,0.3,0.01,0.1]
SubName=['WSPD_MF','VAPOR','CLOUD','RAIN']
ColorBarTltle=['wind speed : m/s','water vapor : mm','liquid water : mm','Rain rate : mm/hr']
FOR fileindex=0,num-num,1 DO BEGIN
;打开文件
OPENR , LUN , filearr[fileindex], /COMPRESS,/GET_LUN,ERROR=err
IF(err EQ 0) THEN BEGIN
;构造显示标题
filename=FILE_BASENAME(filearr[fileindex]);
filename=STRMID(filename,4,8)
year=STRMID(filename,0,4)+'-'
month=STRMID(filename,4,2)+'-'
day=STRMID(filename,6,2)+'-'
displayname=year+month+day
;读入数组
FleArr = BYTARR(1440,720,4)
READU , LUN , FleArr
;读取4组数据
FOR dataindex=0,3,1 DO BEGIN
DataArr = FleArr(*,*,dataindex)*Mul[dataindex]
;过滤数据
GT250IdxDir = where(DataArr GT 250*Mul[dataindex]);
DataArr[GT250IdxDir] = 0
DataArr[GT250IdxDir]=max(DataArr)
;出图
SpdImg = IMAGE(DataArr,RGB_TABLE=39,TITLE=displayname+SubName[dataindex],POSITION=[0.1,0,0.85,1])
grdx= axis('X',LOCATION=[0,0],AXIS_RANGE=[0,360],COORD_TRANSFORM=[0,0.25],MINOR=0,MAJOR=19,title='Longitude(°)')
grdy= axis('Y',LOCATION=[0,0],AXIS_RANGE=[-90,90],COORD_TRANSFORM=[-90,0.25],MINOR=0,MAJOR=7,title='Latitude(°)')
;COLORBAR
c = COLORBAR(TARGET=SpdImg, ORIENTATION=1,TITLE=ColorBarTltle[dataindex])
ENDFOR
ENDIF
;关闭文件释放设备号
CLOSE , LUN
FREE_LUN , LUN
ENDFOR
END
效果如图
其他说明
文中MyRootDir=’D:\7\’ 是定义的数据路径,这里共享下我用的实验数据 。链接:http://pan.baidu.com/s/1mg2xNkO 密码:0sud
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
公众号关注
知识星球
手机阅读
最新GIS干货
私享圈子
为什么没有结果输出呢?IDL显示如下:
% Compiled module: COURSE_8.
% Attempt to call undefined procedure: 'SSMI_SSMIS'.
% Execution halted at: $MAIN$
作业要完不成了,呜呜,求大佬解答,万分感谢。
懂了懂了,命名不一致导致的。
OK