Ncar Graphics
-
Upload
philipchentw -
Category
Documents
-
view
293 -
download
0
Transcript of Ncar Graphics
文化大學大氣系電腦使用手冊 -NCAR Graphics
NCAR Graphics 氣象繪圖基礎教材
Jien-Yi Tu & Yin-Ming Cho @ C.C.U. (2000/3/7)
NCAR Graphics 為美國國家大氣研究中心(NCAR)所發展之一套功能強大的電腦繪圖軟體,也是目前氣象界最常使用的繪圖軟體之一,重要性可想而知。由於其主要是專為氣象界設計的繪圖軟體,因此舉凡等值線、流線、風標、地圖投影、天氣符號、天氣圖、彩色繪圖等都可以透過此軟體繪製,因此是一個常被利用軟體。對使用者而言,唯一的缺點就是太過複雜(相對於其他繪圖軟體而言),所以近年來有慢慢被另一個軟體 GrADS(稍後介紹)取代的趨勢。雖然如此,我們還是在這裡針對 NCAR Graphic 中較簡單且常使用到的部份作簡單
35
文化大學大氣系電腦使用手冊 -NCAR Graphics 的介紹,其他若有需要請自行翻閱 NCAR Graphic User Guides。
36
文化大學大氣系電腦使用手冊 -NCAR Graphics ◎NCAR 的成圖程序:(1) 於工作站上先編輯一個含有 NCAR 氣象繪圖的程式(如:plot.f)
(2) compiler 程 式 → ncargf77 主 檔 名 (plot.f) -o 執 行 檔 檔 名
(ex:plot.exe)。使其產生一個執行檔。(亦可直接執行 ncargf77 檔名,此
時會產生一個內定的執行檔 → a.out)
(3) 執行程式 → 打執行檔檔名(plot.exe) (若沒打 -o _____.exe,則打系統內
定的執行檔『a.out』做執行的工作)
(4) % ls→ 則可看到於目錄底下會出現 gmeta 這個圖形檔案。
(5) 若要秀出圖形,則打『idt gmeta』,即可看到圖形。若打 idt& 則表示放到背
景處理。
【註】:當程式編輯完、執行後會產生一個圖形檔,系統內訂為"gmeta",因此若欲
保留此圖檔,需於執行另一個程式時先將檔名更改,否則此檔案會被覆蓋掉。
◎我們常可以看見幾種常見的圖形,如 postscript、gif、gmeta 等,當你看到這些圖
檔時要如何看它呢?底下將告訴大家:
(a)postscript 的 圖 形 (*.ps) , 一 般 用 ghostview ( 即 『 gv 』 ) 看 , 如 : gv
plot.ps,而 xv3.0 版亦可看 ps 的檔案。
(b)*.cgm(或 gmeta)的圖形用『idt』看,如:idt gmeta or idt sst.cgm。
(c)*.gif 的圖形用 xview (即『xv』) 看,如:xv sst.gif。若要看動畫則下
『animate』的指令,如 animate 970101*。(只有 gif 檔可看動畫)
【注意】:圖形檔不可用 lpr 來列印。
Ghostview 看圖軟體介面
37
文化大學大氣系電腦使用手冊 -NCAR Graphics
IDT 看圖軟體介面
◎在寫 NCAR Graphic 程式時有五行一定要寫:1.call opngks → 將 ncar 核心程式打開。(放在第一行)
2.call set → 訂定座標。
3.call perim → 若無此 call 則框框有時會無法出現。
38
文化大學大氣系電腦使用手冊 -NCAR Graphics 4.call frame → 將劃好的圖送出,若沒有此行,則無法將圖形送出。若放錯位置
則有可能會將數個圖形疊在一起。
5.call clsgks → 將 ncar 核心程式關閉。(放在最後一行)
【註】:gks=Graphical Kernel System。一般來說,call frame 與 call clsgks 都
放到最後寫。
39
文化大學大氣系電腦使用手冊 -NCAR Graphics
◎訂定座標軸轉換:call set(al , ar , ab , at , bl , br , bb , bt , n) ↓ ↓ ↓
A B C
A 為 ncar 系統內定之 x、y 座標軸,其範圍介於 0~1,需用實數。
B 為 user 自訂之 x 與 y 座標軸,其值亦需用實數,此數可正可負。
A 與 B 皆有兩組,前者為 X 軸之起迄點,後者為 Y 軸之起迄點。
C 為定義 ncar 系統座標和 user 座標之轉換形式,用整數。
1 表兩者成線性關係。
2 表 x 軸呈線性變化,y 軸呈 log 變化。
3 表 x 軸呈 log 變化,y 軸呈線性變化。
4 表 x、y 軸均成 log 變化。
【註】:l→左邊界、r→右邊界、b→下邊界、t→上邊界。
call set(0.,1.,0.,1.,0.,1.,0.,1.,1)表 user 所取的範圍與系統相同
Ex:call set (0.5 , 0.9 , 0.3 , 0.7 , 0. , 28. , 0. , 100. , 1)
表所取的 monitor 範圍,x 軸是從 0.5~0.9,y 軸是從 0.3~0.7,而在此範圍
內,x 軸大小從 0~28,y 軸大小則由 0~100。若為(-10. , 10. , -100. ,
200.)則表 x 軸之範圍從-10~10,而 y 軸之範圍則由-100~200。
40
文化大學大氣系電腦使用手冊 -NCAR Graphics
41
文化大學大氣系電腦使用手冊 -NCAR Graphics
◎劃線:call line(x y x y1 1 2 2, , , ) →可放在 Do 迴圈中。 A 點座標 B 點座標
其中 x 與 y 皆需用實數,且可用變數來表示。
ex:(1) call line (2.,5.,10.,10.)
(2) do i=1,10 long=120.0+0.5×(i-1) lat1=20. lat2=30. call line(long,lat1,long,lat2) enddo
◎打點:call point(x,y)→可放在 Do 迴圈中。
其中 x 與 y 皆需用實數,且可用變數表示。
ex:(1) call point(10.,20.)
(2) real data(2,10)do i=1,10
xx = data(1,i)yy = data(2,i)call point(xx,yy)
enddo
◎劃曲線:call curve(x,y,np)→不可放在 Do 迴圈中。
其中 x 與 y分別為放資料之陣列名稱,而 np 則為資料總點數。
ex:real px(20),py(20)
do i =1,20px(i) = i ! for xpy(i) = i ! for y
enddo
42
文化大學大氣系電腦使用手冊 -NCAR Graphics call curve(px , py , 20)
【法二】:call GSLN (type) ==> 決定型式
call GPL (np,px,py) ==> 畫線
call GSLN (type) ==> 還原型式
其中 type = 1 = solid line
type = 2 = dashed linetype = 3 = dottedtype = 4 = dashed - dotted
【註】:loop 的部份只是運算,其與 ncar 無關,因此可單獨做。
◎將線條或點加深:call gslwsc(n)
(1)n 為線條或點加深的級數,其可用 2.0、2.5、3.0 ....,其中系統內定值為 1.0
(2)其通常放在 call line、call curve 之前。(最好把粗細相同者放在一起,如此只要
call gslwsc 一次即可,省得麻煩)。
ex: call gslwsc (2.0) call point (2.0,5.0) call gslwsc (1.0) call line (1.0,1.0,2.0,2.0)
上面的片段程式表示把點變粗,但線條粗細仍保持不變。
◎分格數:call perim(x1,x2,y1,y2)
其中 X、Y 用整數。
ex:call perim(4,2,3,4)
表將 X方向分成四大格,而於每大格中再分成兩小格,
Y方向分成三大格,於每大格中再分成四小格。
【注意】:若在 call set(0.,1.,0.,1.,0.,1.,0.,1.,1)內執行,則會在圖形外產生大框。
43
文化大學大氣系電腦使用手冊 -NCAR Graphics ◎在圖形框框外加字:
call pwrit(x,y,"欲加之字串",字數,字型大小,角度,對齊方向)
call plchhq(x,y,"欲加之字串",字型大小,角度,對齊方向)
在作 call pwrit 之前,需還原成原來的 set →(0.,1.,0.,1.,0.,1.,0.,1.,1)。
(1)X、Y 為字串欲放之位置。(實數)
(2)字數:需與字串中的字數相符(包括空格、符號都要算)。(整數)
(3)角度:若用 0 表平置,90 表旋轉九十度。(逆時針轉)
(4)對齊方向:0 表置中,>0 表靠右,<0 表靠左。
【註】:對 pwrite 而言,字型大小、角度、對齊方向需用整數,但 plchhq 需用實數。
Ex:call pwrit(0.7 , 0.9 , "atmos" , 5 , 2 , 0 , 0)
表將字串 atmos 置於(0.7,0.9)的位置上,且比例大小採第二等級,不旋轉,
且以(0.7,0.9)為中心點置中。
◎改變字型、顏色
call pcseti(‘FN’,Font type) → 改變字型
call pcseti(‘CC’,cindex) → 改變顏色
44
文化大學大氣系電腦使用手冊 -NCAR Graphics
call pwrit 可至於 loop 中
ex:宣告部份:character long(5)*3
data (long(i),i=1,5)/" 0 ","90E","180","90W"," 0 "/
或 data long/" 0 ","90E","180","90W"," 0 "/
片段程式部份:do i=1,5 xcoord=0.1+(i-1)×0.8/5. ycoord=0.09 call pwrit(xcoord,ycoord,long(i) , 3 , 2 , 0 , 0) call plchhq(xcoord,ycoord,long(i) , 0.02 , 0. , 0.)enddo
【註】:先前所做 call 的動作都是在 USER 自訂之座標下,其所給的值都用實數,然而
在 做 call pwrit 時 需 回 到 系 統 原 先 的 座 標 中 ( 即 需 執 行 call
set(0.,1.,0.,1.,0.,1.,0.,1.,1) ) , 如 此才可 以 執 行 call pwrit ( or call
45
文化大學大氣系電腦使用手冊 -NCAR Graphics plchhq)而在框框外打上欲打的字,否則會將字打在框框內。
46
文化大學大氣系電腦使用手冊 -NCAR Graphics
【註】:將實數轉成文字格式並將其打在圖上 ==>
character*2 lab
write(lab,'(i2)') aa (其中 aa 為一整數)
call plchhq(xcd,ycd,lab,.......)
47
文化大學大氣系電腦使用手冊 -NCAR Graphics
◎劃等值線:call cpcnrc(name,nx,nx,ny,rmin,rmax,rint,P,Q,R)
call conrec(name,nx,nx,ny, rmin,rmax,rint,P,Q,R)
name :為放資料之陣列名稱
nx :為 X方向的資料筆數。(整數)
ny :為 Y方向的資料筆數。(整數)
rmin:等值線之最小值。(實數)
rmax :等值線之最大值。(實數)
rint :等值線間隔大小。(實數)
P:決定劃的形式。(常用『-1』)
Q:決定要不要標上 H、L 以及各點的值。若為" 0 "表要標註(H、L)," <0 "表
都不標," >0 "表除標註外,亦將各點之值標出。
R:決定劃線的形式。" <0 " 表負值用虛線畫出。
【註】:若資料為三或四維,則可用下列方式直接畫出 ==>
call cpcnrc(dd(1,1,k),nx,nx,ny,rmin,rmax,rint,P,Q,R)
若用此法需放在 doo loop 中。
◎劃風標:call
velvct(u,nx,v,nx,nx,ny,rmin,rmax,nset,leng,ispv,sp
v)
u :放 U場資料之陣列名稱。
v :放 V場資料之陣列名稱。
nx :矩陣於 X方向的資料筆數。(整數)
ny :矩陣於 Y方向的資料筆數。(整數)
rmin :所劃風標之最小值。(實數)
48
文化大學大氣系電腦使用手冊 -NCAR Graphics rmax :所劃風標之最大值。(實數)
nset :決定風標的間隔。大於零表使用 user 自訂視窗之最適當間隔,等於零
表使用系統內定之值,小於零表使用 user 自訂視窗之最小值。
leng :決定 max value 之風標長度,愈大表最大值之風標長度愈長。
ispv :特殊值的使用情形。0 表若遇到特殊值則不劃風標。1 表若 U場有值為特
殊值則不劃風標,2 表若 V場有值為特殊值則不劃風標,3 表若 U、V 中有
一個特殊值則不劃風標,4 表若兩者皆為零則不劃風標。
spv:特殊值。若用零則表忽略此特殊值。
◎劃流線:call strmln(u,v,work,nx,nx,ny,nset,ier)
work 表 working space,其為一陣列,最少需大於(2×nx×ny)。
ier:為傳送副程式錯訊息之變數(在程式中可直接用 ier)。
◎劃地圖call mapsti(‘LA’, 0)
call mapsti(‘GR’, 30) →表每 30 個經緯度畫一條線。
call maproj(‘CE’,plat,plon,rota)→採用之投影方式及投影中心。
ex:call maproj( ‘CE’, 0. , 180. , 0. )
“CE”:Cylindrical equidistant projection。“LC”:Lambert conformal projection。“LE”:Lambert equal-area projection。“SV”:Satellite view projection。“ME”:Mercator projection。“MO”:Mollweide type projection。plat、plon:投影中心。
call mapset(‘CO’, rlat1, rlon1, rlat2 , rlon2) →地圖選取範
圍。
49
文化大學大氣系電腦使用手冊 -NCAR Graphics ex:call mapset(‘CO’, -30. , 100. , 30. , –60. ) → 熱帶太平
洋地區
call mappos(x1 , x2 , y1 , y2) →地圖放置位置(在系統座標
下)。
ex:call mappos(0.1 , 0.9 , 0.3 , 0.7)
call mapdrw → 表畫出地圖。
常用的幾種地圖
50
文化大學大氣系電腦使用手冊 -NCAR Graphics
51
文化大學大氣系電腦使用手冊 -NCAR Graphics
52
文化大學大氣系電腦使用手冊 -NCAR Graphics
◎plot color circular dots(draws filled circular dots)call ngdots(px,py,num,size,icindex)
px、py : position of circular dots
num : number of dot to be draw(=1)
size : size of circular dots
icindex : color index
◎劃封閉曲線call frstpt( x(1) , y(1) )
do j =12,pxy
call vector( x(j) , y(j) )
enddo
53
文化大學大氣系電腦使用手冊 -NCAR Graphics
◎plot polymarkers
call gsmk (type)
call gpm (num, px, py)
type=1→dot 、 type=2→plus
sign、type=3→asterissks、
type=4→circles、type=5→crosses
num = number of markers
px、py = position of x/y(可為單點或數個點同時劃)
◎plot color
call setusv('LW',2000) ==> 設定線條粗細。
call gsplci(1) ==> 設定線條之顏色。
call gstxci(1) ==> 設定線條之顏色。(可省略)
call cpsetr(‘CLL’,___) ==> 設定線條粗細。
◎劃特殊符號:call pwritx(1/1024., 1/1024., “PGL’,5,1,0,0)→X
call pwritx(px,py,”R”,1,0,0,0) →Y
54
文化大學大氣系電腦使用手冊 -NCAR Graphics
◎打點:(此非 NCAR 內建之副程式)
call dot(name,nx,ny,spv,rmin,rmax,space)
◎打斜線:(此非 NCAR 內建之副程式)
call hatch(name,nx,ny,spv,rmin,rmax,slope,space)
name :放資料之陣列名稱。
nx :X方向的資料筆數。
ny :Y方向的資料筆數。
spv :特殊值(如 999或-999)。
rmin:打點或斜線的最低值。
rmax :打點或斜線的最高值。
55
文化大學大氣系電腦使用手冊 -NCAR Graphics slope :斜線的傾斜角度。
space :打點或斜線的間隔。
◎工作站間相互 Copy Files 之方式:1.先於家目錄底下編輯一個檔案(.rhosts),並於此檔案中鍵入 hostname username
2.執行 →rcp Δ 欲拷貝之檔名 Δ 主機名:欲放目錄之路徑
ex:於 tornado 上,欲將 plot.f copy至 atmos1 之家目錄下則可打→rcp plot.f
atmos1:~/.
◎將 gmeta 轉成 gif 或 jpg 的方式:(1) ctrans –d xwd gmeta > *.xwd
(2) convert *.xwd *.gif (or *.jpg)
56