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

问题描述

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

QuikScat数据说明

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

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

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

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

实现代码

;Author:Sailor
;2013-10-11
PRO Course_3

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

;遍历文件夹
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)+'日'
  verson=STRMID(filename,8)+'版'
  diplayname=year+month+day+verson+' 纬向平均风速趋势图'

  ;读入数组
  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

  ;绘图
  ;有对象图形法和直接图形法
  ;PLOT , indgen(200) , ArSpd , /NOERASE
  p=PLOT(indgen(200)/4. , ArSpd , TITLE=diplayname , YTITLE='风速 :m/sec' , XTITLE='纬度 :°N' , font_name = 'SimSun')

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

ENDFOR
END

效果如图

 

这是采用的对象绘图的方法,在使用对象绘图的时候,中文会产生乱码的问题,解决方法在这里

其它说明

文中MyRootDir='D:\3' 是定义的数据路径,这里共享下我用的实验数据 。链接:http://pan.baidu.com/s/1o6kcda6 密码:03m5

如果你有其他问题,欢迎留言联系。

逸夫楼:最美的中国地图 IDL直接读取QuikScat 压缩gz文件

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

已有 4 条评论

  1. skylover
    1#
    skylover  · 2014-10-08 03:32

    你好,代码很详细,但实验数据的下载链接失效了。

      1. Sailor
        Sailor  · 2014-10-08 19:44

        不好意思,我需要找找,百度的链接出问题了。

      2. Sailor
        Sailor  · 2014-10-08 20:50

        下载地址:http://pan.baidu.com/s/1o6kcda6,提取密码:03m5

  2. skylover
    2#
    skylover  · 2014-10-09 08:40

    数据可以下载了,谢谢!

发表评论