IDL遥感应用入门(10):利用QuikScat数据绘制风速矢量图(对象图形法改进版)
发布时间: 2014-01-14
所属分类: IDL遥感应用教程
在之前教程6的文章中,我采用了对象图形法绘制了风速矢量图,但是不言而喻,绘制的图实在是丑,有点拿不出手的程度,这里我对原来的方法做了一个改进,是显示效果稍微提高了下。
改进之后效果图
是不是改进之后高大上了呢?
全部代码
;Author:Sailor
;2013-11-15
PRO Course_9
;定义文件路径
MyRootDir='D:\3\'
;遍历文件夹
filearr = file_search(MyRootDir,'*.gz',count=num);
FOR fileindex=0,num-num,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 = congrid(FleArr(*,*,0),90,45)
WdDir = congrid(FleArr(*,*,1),90,45)
;过滤数据
GT250IdxDir = where(WdDir GT 250);
WdSpd[GT250IdxDir] = 0;
;计算U和V,X和y
WdSpd = WdSpd*0.2
WdDir = WdDir*1.5
U = WdSpd*sin(WdDir/180*!pi)
V = WdSpd*cos(WdDir/180*!pi)
x = DINDGEN(90)*4
y = DINDGEN(45)*4-90
;加载MAP
m = MAP('Equirectangular', LIMIT=[-90,0,90,360],LABEL_POSITION=0, LABEL_ANGLE=0, COLOR='light gray', LABEL_COLOR='black',POSITION=[0.1,0.1,0.9,1])
cont = MAPCONTINENTS(FILL_COLOR='light gray')
;加载vector
vec = VECTOR(COLOR='BLACK',U,V,x,y,/OVERPLOT,LENGTH_SCALE=0.3,HEAD_ANGLE=26,HEAD_SIZE=0.4,THICK=0.3)
l = Legend(SAMPLE_MAGNITUDE=10, UNITS='$m s^{-1}$', POSITION=m.MapForward(-45,61), /DATA, VERTICAL_ALIGNMENT='bottom')
;关闭文件释放设备号
CLOSE , LUN
FREE_LUN , LUN
ENDFOR
END
改进的秘密
本文的效果之所以会好,是因为VECTOR参数的问题,可以看我这次设置vector的代码和之前教程6的做一个对比。
vec = VECTOR(COLOR='BLACK',U,V,x,y,/OVERPLOT,LENGTH_SCALE=0.3,HEAD_ANGLE=26,HEAD_SIZE=0.4,THICK=0.3)这里LENGTH_SCALE设置了箭头的缩放比例,HEAD_ANGLE设置了箭头的角度,HEAD_SIZE设置了箭头的大小,THICK设置了箭头的粗细程度。
一些说明
文中file_search(‘D:\3′,’*.gz’) 是定义的数据路径,这里共享下我用的实验数据 。
链接:http://pan.baidu.com/s/1c2DqeC4 密码:0wdc
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
公众号关注
知识星球
手机阅读
最新GIS干货
私享圈子
请问经纬度在代码中是如何设置的?