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
end
OSTaskCreate()函式分析
int8u ostaskcreate void task void pd void p arg,os stk ptos,int8u prio 函式返回乙個8位的整型數,呼叫該函式需要四個引數。第乙個引數乙個指標,也就是使用者 的首位址,在平時使用中我們把自己建立的任務的名字作為這個引數就可以了 第三...
getopt函式分析
函式getopt主要用於拆分命令列引數,用這個函式就不自己寫命令列引數解析程式了,以下 摘自tcpdump原始碼,對這個函式比較感興趣,故對此進行分析注釋,因水平實在不敢恭維,不足之處希望能一起 函式getopt 有三個引數,nargc,nargv就是命令列傳過來的argc和argv字串ostr,它...
uCOS OSTaskCreate()函式分析
int8u ostaskcreate void task void pd void p arg,os stk ptos,int8u prio 函式返回乙個8位的整型數,呼叫該函式需要四個引數。第乙個引數乙個指標,也就是使用者 的首位址,在平時使用中我們把自己建立的任務的名字作為這個引數就可以了 第三...