PRO Course_13
;定义文件路径
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,0,14) ;文件名字符串处理
sat=STRMID(filename,0,5)+' ' ;截取0-5个字节为sat
year=STRMID(filename,6,4)+' ' ;截取6-10个字节为年
month=STRMID(filename,10,2)+' ' ;截取6-10个字节为月
day=STRMID(filename,12,2)+' ' ;截取6-10个字节为日
diplayname=sat+year+month+day ;显示的字符串(名字)等于这些字符串组合一起,他在IMAGE函数会调用这个字符串用作标题
;读入数组&抽样
FleArr = BYTARR(1440,720,3) ;创建1440列720行3个字节的随机数组
;
READU , LUN , FleArr ;读LUN标识符的文件到IDL变量库
help,FleArr;[160:320,340:480,0] ;
DisSpd=FleArr(*,*,0)*0.2 ;除了数组的字节数 所有随机的x,y数组坐标变成原来的0.2倍
WdSpd = congrid(FleArr[160:320,340:480,0],80,70) ;congrid函数萎缩或膨胀量的任意数组的大小,80,70可能表示x,y轴的膨胀度
WdDir = congrid(FleArr[160:320,340:480,1],80,70)
;help,wdspd,wddir
;过滤数据
GT250IdxDir = where(WdDir GT 250); ;找到大于250的索引
WdSpd[GT250IdxDir] = 0; ;大于250对应的索引的值(风速)=0
GT250IdxDir = where(DisSpd GT 250*0.2); ;找到大于250的0.2倍的索引
DisSpd[GT250IdxDir] = 0; ;大于250的0.2倍对应的索引的值(风速)=0
DisSpd[GT250IdxDir] = max(DisSpd)+0.1; ;让上述这个值 = 其中随机且经过筛选的最大风速的那个点 + 0.1
;计算U和V,X和y
WdSpd = WdSpd*0.2 ;风速变为0.2倍
WdDir = WdDir*1.5 ;方向变成1.5倍
WdSpd[0,*]=0 ;x=0,y=任意 这个点的坐标的值全部置为0 ???
U = WdSpd*sin(WdDir/180*(!pi)) ;数学变换
V = WdSpd*cos(WdDir/180*(!pi))
x = DINDGEN(80)*2 ;创建一个双精度浮点数组(80个,值为0,1,2,3,...,80),x,y值扩大两倍。
y = DINDGEN(70)*2
;绘图
SpdImg = IMAGE(congrid(DisSpd[160:320,340:480,0],160,140),RGB_TABLE=39,TITLE=diplayname,grid_units=1,POSITION=[0.3,0.3,0.9,0.9]) ;DisSpd是一个数组(中间参数取点),rgb_table是rgb颜色,title是标题显示的字符串,grid—unit是渐变的程度系数,position是位置(可能是渐变的起始位置??)
;加载vector
vec = VECTOR(COLOR='BLACK',U,V,x,y,/overplot,LENGTH_SCALE=0.00001,HEAD_ANGLE=26,HEAD_SIZE=0.3,THICK=0.2)
grdx= axis(TICKDIR=1,'X',LOCATION=[0,0],AXIS_RANGE=[40,80],COORD_TRANSFORM=[40,0.25],MINOR=0,MAJOR=9) ;轴的功能添加到现有的IDL图形轴(x轴)。
grdy= axis(TICKDIR=1,'Y',LOCATION=[0,0],AXIS_RANGE=[-5,30],COORD_TRANSFORM=[-5,0.25],MINOR=0,MAJOR=8)
;COLORBAR
c = COLORBAR(target=SpdImg,RGB_TABLE=39,TITLE='Wind Speed (m/s)',POSITION=[0.15,0.1,0.85,0.15]) ;最下方的颜色条
;关闭文件释放设备号
CLOSE , LUN
FREE_LUN , LUN
ENDFOR
;定义文件路径
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,0,14) ;文件名字符串处理
sat=STRMID(filename,0,5)+' ' ;截取0-5个字节为sat
year=STRMID(filename,6,4)+' ' ;截取6-10个字节为年
month=STRMID(filename,10,2)+' ' ;截取6-10个字节为月
day=STRMID(filename,12,2)+' ' ;截取6-10个字节为日
diplayname=sat+year+month+day ;显示的字符串(名字)等于这些字符串组合一起,他在IMAGE函数会调用这个字符串用作标题
;读入数组&抽样
FleArr = BYTARR(1440,720,3) ;创建1440列720行3个字节的随机数组
;
READU , LUN , FleArr ;读LUN标识符的文件到IDL变量库
help,FleArr;[160:320,340:480,0] ;
DisSpd=FleArr(*,*,0)*0.2 ;除了数组的字节数 所有随机的x,y数组坐标变成原来的0.2倍
WdSpd = congrid(FleArr[160:320,340:480,0],80,70) ;congrid函数萎缩或膨胀量的任意数组的大小,80,70可能表示x,y轴的膨胀度
WdDir = congrid(FleArr[160:320,340:480,1],80,70)
;help,wdspd,wddir
;过滤数据
GT250IdxDir = where(WdDir GT 250); ;找到大于250的索引
WdSpd[GT250IdxDir] = 0; ;大于250对应的索引的值(风速)=0
GT250IdxDir = where(DisSpd GT 250*0.2); ;找到大于250的0.2倍的索引
DisSpd[GT250IdxDir] = 0; ;大于250的0.2倍对应的索引的值(风速)=0
DisSpd[GT250IdxDir] = max(DisSpd)+0.1; ;让上述这个值 = 其中随机且经过筛选的最大风速的那个点 + 0.1
;计算U和V,X和y
WdSpd = WdSpd*0.2 ;风速变为0.2倍
WdDir = WdDir*1.5 ;方向变成1.5倍
WdSpd[0,*]=0 ;x=0,y=任意 这个点的坐标的值全部置为0 ???
U = WdSpd*sin(WdDir/180*(!pi)) ;数学变换
V = WdSpd*cos(WdDir/180*(!pi))
x = DINDGEN(80)*2 ;创建一个双精度浮点数组(80个,值为0,1,2,3,...,80),x,y值扩大两倍。
y = DINDGEN(70)*2
;绘图
SpdImg = IMAGE(congrid(DisSpd[160:320,340:480,0],160,140),RGB_TABLE=39,TITLE=diplayname,grid_units=1,POSITION=[0.3,0.3,0.9,0.9]) ;DisSpd是一个数组(中间参数取点),rgb_table是rgb颜色,title是标题显示的字符串,grid—unit是渐变的程度系数,position是位置(可能是渐变的起始位置??)
;加载vector
vec = VECTOR(COLOR='BLACK',U,V,x,y,/overplot,LENGTH_SCALE=0.00001,HEAD_ANGLE=26,HEAD_SIZE=0.3,THICK=0.2)
grdx= axis(TICKDIR=1,'X',LOCATION=[0,0],AXIS_RANGE=[40,80],COORD_TRANSFORM=[40,0.25],MINOR=0,MAJOR=9) ;轴的功能添加到现有的IDL图形轴(x轴)。
grdy= axis(TICKDIR=1,'Y',LOCATION=[0,0],AXIS_RANGE=[-5,30],COORD_TRANSFORM=[-5,0.25],MINOR=0,MAJOR=8)
;COLORBAR
c = COLORBAR(target=SpdImg,RGB_TABLE=39,TITLE='Wind Speed (m/s)',POSITION=[0.15,0.1,0.85,0.15]) ;最下方的颜色条
;关闭文件释放设备号
CLOSE , LUN
FREE_LUN , LUN
ENDFOR
END