IDL遥感应用入门(4):利用QuikScat 数据绘制纬向平均风速趋势图(单图显示)

在上一篇文章中,介绍了利用QuickSat数据绘制纬向平均风速趋势图,不过是每个文件一幅图的显示方式。本文将用采用单图显示的方式,对其进行实现。

预期目标

求出每个文件0°- 50°N 和 100°E – 150°E 范围纬向平均风速(也就是每行平均),画在同一张图上。

QuikScat数据说明

QuikScat提供3个方面数据信息:表面风速,表面风向和降雨信息。

其中数据在0到250属于有效信息,大于250的值均属于无效信息。

计算风速的时候需要乘以0.2,风向需要乘以1.5

更多详细信息可以查看这里

代码实现

;Author:Sailor
;2013-10-30
PRO Course_4

;定义文件路径
MyRootDir='D:\3\'

;绘制坐标系
DEVICE,DECOMPOSED=1
!P.BACKGROUND='FFFFFF'xl
!P.COLOR='000000'xl
PLOT , indgen(50) , TITLE="WEND SPEED" , YRANGE = [0, 12] ,/NoData, YTITLE='Wind Speed : m/sec' , XTITLE='Latitude : N'

;设置颜色数组
linecr=intarr(7)
linecr=['FF0000'xl,'FF7F00'xl,'FFFF00'xl,'00FF00'xl,'00FFFF'xl,'0000FF'xl,'8B00FF'xl]

;遍历文件夹
filearr = file_search(MyRootDir,'*.gz',count=num);
FOR fileindex=0,num-1,1 DO BEGIN

  ;打开文件
  OPENR , LUN , filearr[fileindex] , /COMPRESS,/GET_LUN

  ;构造显示标题
  filename=FILE_BASENAME(filearr[fileindex]);
  filename=STRMID(filename,6,10)
  year=STRMID(filename,0,4)+' '
  month=STRMID(filename,4,2)+' '
  day=STRMID(filename,6,2)+' '
  diplayname=year+month+day

  ;读入数组
  FleArr = BYTARR(1440,720)
  READU , LUN , FleArr

  ;寻找经纬度的具体位置
  WdSpeed = BYTARR(200,200);
  WdSpeed = FleArr[100*4:150*4,360:140*4];

  ;计算平均风速
  ArSpd=DBLARR(200);
  FOR i=0,199,1 DO BEGIN
    Le250Index = where(WdSpeed[*,i] LE 250);过滤数据
    IF(Le250Index[0] NE -1) THEN BEGIN
      ArSpd[i]=MEAN(WdSpeed[Le250Index,i])*0.2
    ENDIF
  ENDFOR

  ;绘图&图例
  OPLOT , indgen(200)/4. , ArSpd ,color=linecr[fileindex],thick=1.5
  XYOUTS, 100, 100+fileindex*10, diplayname, COLOR=linecr[fileindex],/DEVICE

  ;关闭文件释放设备号
  CLOSE , LUN
  FREE_LUN , LUN

ENDFOR

END

效果如图

其它说明

文中MyRootDir=’D:\3\’ 是定义的数据路径,这里共享下我用的实验数据 。猛击这里下载

另外本文使用的是直接法绘图,小编也没有找到使用对象法绘图的好方法,欢迎留言交流。

IDL直接读取QuikScat 压缩gz文件 IDL遥感应用入门(5):利用QuikScat数据绘制风速矢量图

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论