IDL遥感应用入门(7):利用QuikScat数据绘制风速图

在上面的几篇文章我我写的是关于利用QuikScat数据,绘制风向图。这次重新利用QuikScat数据中的风速数据,来绘制全球范围内的风速图像,并且通过colorbar来显示相关数据。

QuikScat数据说明

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

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

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

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

详细代码

;Author:Sailor
;2013-11-08
PRO Course_7

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

;遍历文件夹
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,3)
  READU , LUN , FleArr
  WdSpd = FleArr(*,*,0)*0.2

  ;过滤数据
  GT250IdxDir = where(WdSpd GT 250*0.2);
  WdSpd[GT250IdxDir] = 25.001;
  print,max(WdSpd)

  ;出图&加载色表
  SpdImg = IMAGE(WdSpd,RGB_TABLE=39,TITLE=diplayname,POSITION=[0.1,0.1,0.9,1])
  grdx= axis('X',LOCATION=[0,0],AXIS_RANGE=[0,360],COORD_TRANSFORM=[0,0.25],MINOR=0,MAJOR=19)
  grdy= axis('Y',LOCATION=[0,0],AXIS_RANGE=[-90,90],COORD_TRANSFORM=[-90,0.25],MINOR=0,MAJOR=7)
  ;COLORBAR
  c = COLORBAR(TARGET=SpdImg, ORIENTATION=0,TITLE='Wind Speed (m/s)',POSITION=[0.1,0.1,0.9,0.15])
  ;SpdImg.save, MyRootDir+diplayname+ImgExtName
  ;spawn,MyRootDir+diplayname+ImgExtName

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

ENDFOR
END

效果如图

这里比较难设置的参数是COORD_TRANSFORM,如果不清楚可以看这里

说明

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

关于IDL对象图形法的VECTOR函数 IDL遥感应用入门(8):读取并显示SSMI / SSMIS数据

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

已有 7 条评论

  1. lwk1542
    1#
    lwk1542  · 2016-02-19 22:21

    请问:我要读取L8 OLI txt文件的几个角度信息,该如何读取指定行或者指定关键字及其所在行的数字呢?

  2. daoyu
    2#
    daoyu  · 2016-11-15 22:51

    过滤数据为什么要 WdSpd[GT250IdxDir] = 25.001; 而不是0呢?

      1. Sailor
        Sailor  · 2016-11-16 08:39

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

          1. daoyu
            daoyu  · 2016-11-16 17:13

            既然是无效值,那直接给0不也可以吗?

          2. daoyu
            daoyu  · 2016-11-16 17:15

            给25.001的话不是反而把原来无效单位里的值变成有效的了吗?

              1. Sailor
                Sailor  · 2016-11-16 17:45

                0也是有效值,要给0也可以,这里给25.001是因为使用的色表中最大值对应是的白色,这样可视化更容易区分。

                  1. daoyu
                    daoyu  · 2016-11-16 18:34

                    原来是这样。不过只有7月1日的色表最大值是25。2,3,4,5,6,7日的数据色表的最大值就不是25了。

发表评论