




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章簡(jiǎn)單的圖形顯示本章概述科學(xué)分析最基本的能力就是以簡(jiǎn)單的線畫圖、等值線圖和曲面圖來顯示所研究的數(shù)據(jù)。在這一章中,將知道用這些方式來顯示數(shù)據(jù)是多么容易。也將學(xué)會(huì)用系統(tǒng)變量和關(guān)鍵字來定位和標(biāo)注簡(jiǎn)單的圖形顯示。將學(xué)會(huì)如下幾點(diǎn):.如何用Plot命令將數(shù)據(jù)顯示為線畫圖。.如何用Surface和Shade_Surf命令將數(shù)據(jù)顯示為曲面圖。.如何用Contour命令將數(shù)據(jù)顯示為等值線圖。.如何在顯示窗口上定位顯示圖形。.如何用公共關(guān)鍵字來標(biāo)注和自定義圖形顯示。IDL中簡(jiǎn)單的圖形顯示IDL中一個(gè)簡(jiǎn)單的圖形顯示可認(rèn)為是柵格圖形的一個(gè)實(shí)例。也就是說,可用Plot,Contour或者Surface命令通過一種算法來點(diǎn)亮顯示窗口內(nèi)相應(yīng)的像素點(diǎn)而形成柵格圖形。這種柵格圖形沒有永久性。換言之,一旦IDL顯示圖形和點(diǎn)亮相應(yīng)的像素點(diǎn)后,IDL就不知道自己做了些什么。這意味著,在用戶重置圖形窗口大小時(shí),IDL無法進(jìn)行相應(yīng)的響應(yīng)??傊谶@種模式下圖形顯示不能被刷新,除非再次輸入圖形命令。但是,柵格圖形命令在IDL中被廣泛應(yīng)用,因?yàn)樗鼈兒?jiǎn)單快捷。而且,將看到,如果仔細(xì)地用柵格圖形命令編寫IDL程序時(shí),可以克服許多與柵格圖形命令相關(guān)的限制。本章將介紹一些關(guān)于如何用柵格圖形命令寫出可調(diào)節(jié)尺寸的IDL圖形窗口或進(jìn)行直接硬拷貝輸出的必備概念。本章的圖形命令都是ResearchSystems公司所說的直接圖形。另外一種被ResearchSystems公司稱為對(duì)象圖形的圖形方式在IDL5.0中被引入。對(duì)象圖形使用時(shí)相對(duì)難一點(diǎn),但它在IDL編程方面更強(qiáng)大更靈活。對(duì)象圖形不是為了在命令行使用而開發(fā)的,而是用在IDL的程序中,特別是用于帶有界面的程序中(帶有圖形用戶界面的程序)。本書對(duì)對(duì)象圖形不做介紹。創(chuàng)建線畫圖生成線畫圖最簡(jiǎn)單的方法是繪出一個(gè)矢量。可以用LoadData命令打開時(shí)序數(shù)據(jù)集。LoadData命令是本書所帶的一個(gè)IDL程序(詳細(xì)細(xì)節(jié)參考第5頁(yè)的“本書中所用的IDL程序和數(shù)據(jù)文件”)。它用來裝載本書的編程例子中所需的數(shù)據(jù)。鍵入如下語(yǔ)句以查看所能使用的數(shù)據(jù)集:IDL>curve=LoadData()如果輸入LoadData命令時(shí)忘掉了括號(hào),需要在它正常工作前重新編譯LoadData程序。原因是,IDL在命令行會(huì)認(rèn)為它是一個(gè)變量并進(jìn)行相應(yīng)地處理。重新編譯后,“l(fā)oaddata”這個(gè)函數(shù)名在IDL的函數(shù)名列表中。鍵入:1/20IDL>.CompileLoadData時(shí)序數(shù)據(jù)是在LoadData數(shù)據(jù)列表上的第一個(gè)數(shù)據(jù)集。點(diǎn)擊它,數(shù)據(jù)就被裝入到curve變量中。另外一種選擇第一個(gè)數(shù)據(jù)集的方法是,按如下方法使用LoadData:IDL>curve=LoadData(1)要查看curve變量如何被定義,鍵入:IDL>Help,curveCURVEFLOAT=Array[101]將發(fā)現(xiàn)curve是一個(gè)具有101個(gè)元素的浮點(diǎn)矢量(或一維數(shù)組)。要繪出該矢量,可鍵入:IDL>Plot,curveIDL試圖用少量的信息盡可能地繪出漂亮的線畫圖。在這種情況下,x軸或水平軸被標(biāo)識(shí)為從0到100,這與矢量中的元素個(gè)數(shù)相對(duì)應(yīng)。而y軸或垂直軸則是用數(shù)據(jù)坐標(biāo)來標(biāo)識(shí)(它是取決于數(shù)據(jù)的坐標(biāo)軸)。但大多數(shù)情況下,線畫圖用于顯示一組數(shù)據(jù)(獨(dú)立數(shù)據(jù))相對(duì)另外一組數(shù)據(jù)(非獨(dú)立數(shù)據(jù))的關(guān)系。例如,上面的曲線可能代表在某段時(shí)間內(nèi)采集數(shù)據(jù)的信號(hào)??赡苄枰L制某個(gè)時(shí)刻的信號(hào)值。在這種情況下,需要一條與該曲線矢量具有相同元素個(gè)數(shù)的矢量(這樣可以獲得一一對(duì)應(yīng)的相關(guān)性),并將該矢量轉(zhuǎn)換為實(shí)驗(yàn)中所用的時(shí)間單位。例如,可以創(chuàng)建一個(gè)時(shí)間矢量,并繪出它與上述曲線矢量的關(guān)系圖:IDL>time=FIndGen(101)*(6.0/100)IDL>Plot,time,curveFIndGen命令創(chuàng)建一個(gè)元素值為0到100的共101個(gè)元素的矢量。乘法因子按比例縮圖1:獨(dú)立數(shù)據(jù)(時(shí)間)與非獨(dú)立數(shù)據(jù)(曲線)關(guān)系圖。小每個(gè)元素的大小,最后的結(jié)果是一個(gè)元素值為0到6之間的共101個(gè)元素的矢量。圖形輸出結(jié)果應(yīng)與圖1相似。注意,在此圖中的坐標(biāo)軸上沒有相應(yīng)的標(biāo)題。在圖上設(shè)置標(biāo)題是很容易的,只要用XTitle和YTitle關(guān)鍵字既可實(shí)現(xiàn)。例如,為此曲線圖加標(biāo)題,可鍵入:2/20IDL>Plot,time,curve,XTitle='TimeAxis',$YTitle='SignalStrength'甚至可以用Title關(guān)鍵字對(duì)整個(gè)圖形設(shè)置標(biāo)題,鍵入:IDL>Plot,time,curve,XTitle='TimeAxis',$YTitle='SignalStrengh',Title='Experiment35M輸出結(jié)果應(yīng)與圖2一樣。圖2:簡(jiǎn)單的帶坐標(biāo)軸標(biāo)題和圖形標(biāo)題的線畫圖注意圖形顯示應(yīng)該為在黑色背景下的白線圖,而上圖顯示為在白色背景下的黑線。這些插圖包含在用IDL生成的PostScript文件中。一般情況下Postscript文件把圖形顏色和背景顏色反過來。(參考189頁(yè)的“問題:PostScript設(shè)備對(duì)背景顏色和圖形顏色的不同處理”。)注意,圖形標(biāo)題稍微大于坐標(biāo)軸的標(biāo)題。事實(shí)上,是1.25倍的關(guān)系??梢杂肅harSize關(guān)鍵字改變所有圖形注記的大小。例如,可以將坐標(biāo)軸標(biāo)題的字符放大50%:IDL>Plot,time,curve,XTitle='TimeAxis',$YTitle='SignalStrength',Title='Experiment35M',$CharSize=1.5如果希望所有的圖形顯示的字符比正常情況下大,可以通過繪圖系統(tǒng)變量上設(shè)置CharSize的大小,如下:IDL>!P.CharSize=1.5現(xiàn)在,所有后續(xù)的圖形顯示都將用較大的字符,除非用CharSize關(guān)鍵字在圖形輸出命令中特別地控制。甚至可以用[XYZ]CharSize關(guān)鍵字單獨(dú)改變每個(gè)軸的標(biāo)識(shí)字符的大小。例如,如果想使Y軸的注記比X軸的大兩倍,則可鍵入:IDL>Plot,time,curve,XTitle='TimeAxis',XCharSize=1.0,$3/20YTitle='SignalStrength,,YCharSize=2.0記住,[XYZ]Charsize關(guān)鍵字使用當(dāng)前字符的大小作為基礎(chǔ)計(jì)算出各自的大小。當(dāng)前字符的大小一般儲(chǔ)存在!P.CharSize系統(tǒng)變量中。這意味著,如果設(shè)置XCharSize關(guān)鍵字為2,當(dāng)!P.CharSize系統(tǒng)變量也被設(shè)置為2時(shí),字符將比平常大四倍。定制線畫圖上面是簡(jiǎn)單的線畫圖,除了數(shù)據(jù)本身外,沒有多少其它信息。然而,有許多方法可用來定制和標(biāo)注線畫圖。Plot函數(shù)可以被50多種不同的關(guān)鍵字修飾。下面的事情也許想做一做:.改變線型或粗細(xì)。.使用符號(hào),符號(hào)之間可以有線條和沒有線條存在。.創(chuàng)建自己的繪圖符號(hào)。.給線圖加入顏色提示重要特性。.改變刻度標(biāo)記的長(zhǎng)度或刻度標(biāo)記之間的間隔。.使用對(duì)數(shù)來標(biāo)度圖形坐標(biāo)軸。.改變繪圖范圍來繪出感興趣的數(shù)據(jù)段。.刪除坐標(biāo)軸或改變繪圖方式。改變線條的線型和粗細(xì)例如,想用不同的線型畫出數(shù)據(jù)。如畫一條線型為長(zhǎng)虛線的線條,可以這樣實(shí)現(xiàn):IDL>Plot,time,curve,LineStyle=5對(duì)于線畫圖來說,可通過LineStyle關(guān)鍵字選用表3中列出的索引號(hào)確定不同的線型。表3:可以通過賦予LineStyle這個(gè)關(guān)鍵字不同索引號(hào)來改變線型線畫圖中線的粗細(xì)同樣能夠被改變。例如,如果想使用比正常值粗3倍的虛線來顯示圖形,可鍵入:IDL>Plot,time,LineStyle=2,Thick=3用符號(hào)代替線條顯示數(shù)據(jù)假如想用符號(hào)代替線條顯示數(shù)據(jù),就象LineStyle關(guān)鍵字一樣,也存在類似的索引號(hào)供選擇,以確定不同的線畫圖符號(hào)。表4給出了能通過PSym(繪圖符號(hào))關(guān)鍵字來選擇的索4/20
引號(hào)。例如,可以通過設(shè)置PSym為2,用星號(hào)來繪圖,如下:IDL>plot,time,curve,Psym=2輸出的圖形應(yīng)與圖3中的圖形相似。圖3:用符號(hào)而不是線條來顯示線畫圖。索引號(hào)繪圖符號(hào)0無符號(hào),通過線條連接點(diǎn)1加號(hào)2星號(hào)3占八、、4菱形5三角形6方形7X8用戶自定義符號(hào)(用UserSym過程來定義)9未用10直方圖-PSym負(fù)值表示用線條連接相應(yīng)的符號(hào)表4:這些符號(hào)索引號(hào)可以通過PSym關(guān)鍵字來引用以便在繪圖中使用不同的符號(hào)。注意繪圖符號(hào)為負(fù)值時(shí)表示用線條來連接相應(yīng)的符號(hào)。5/20用線條和符號(hào)來顯示數(shù)據(jù)賦予PSym關(guān)鍵字一個(gè)負(fù)值就可以用線條將圖形符號(hào)連接起來。例如,可用實(shí)線與三角形符號(hào)繪出數(shù)據(jù),鍵入:IDL>Plot,time,curve,PSym=-5為創(chuàng)建一個(gè)更大的符號(hào),可用SymSize關(guān)鍵字。下面的語(yǔ)句畫出的符號(hào)為正常的兩倍。符號(hào)值為4時(shí)符號(hào)的大小為正常值的4倍,依此類推。IDL>Plot,time,curve,PSym=-5,SymSize=2.0創(chuàng)建自己的圖形符號(hào)如果富有創(chuàng)造力,甚至可以創(chuàng)建自己的圖形符號(hào)。UserSym命令就用于此目的。在創(chuàng)建了一個(gè)特殊的圖形符號(hào)之后,可通過設(shè)置PSym關(guān)鍵字為8來選擇它。以下是一個(gè)創(chuàng)建五角星符號(hào)的例子。x,y矢量定義五角星的頂點(diǎn),它們的值為偏離原點(diǎn)(0,0)的位置??梢杂肬serSym命令通過設(shè)置關(guān)鍵字Fill創(chuàng)建一個(gè)填充的圖形符號(hào):IDL>x=[0.0,0.5,-0.8,0.8,-0.5,0.0]IDL>丫=[1.0,-0.8,0.3,0.3,-0.8,1.0]IDL>TvLCT,255,255,0,150IDL>UserSym,x,y,Color=150,/FillIDL>Plot,time,curve,PSym=-8,SymSize=2.0輸出結(jié)果應(yīng)與圖4相似。圖4:用UserSym程序創(chuàng)建的符號(hào)來繪制的圖。6/20用不同的顏色繪制線畫圖可以用不同的顏色繪制線畫圖(顏色將在第83頁(yè)的“IDL的顏色運(yùn)用”中詳細(xì)討論?,F(xiàn)在,只須按如下鍵入TvLCT命令即可,以后將學(xué)到這個(gè)命令意味著什么。實(shí)質(zhì)上,裝載了三個(gè)顏色矢量,每個(gè)矢量的三個(gè)分量分別代表顏色的三個(gè)組成部分紅,綠,藍(lán)。這三種顏色矢量為碳灰,黃,綠色。)例如將顏色索引號(hào)1、2和3分別設(shè)置為碳灰,黃,綠色,鍵入:IDL>TvLCT,[70,255,0],[70,255,255],[70,0,0],1在碳灰背景下繪黃色圖,鍵入:IDL>Plot,time,curve,Color=2,Background=1如果只是想使線條成為不同的顏色,首先必須將NoData關(guān)鍵字打開來繪圖,然后用OPlot命令(下面要討論的)覆蓋該圖。例如在碳灰色背景上繪制黃色外框,數(shù)據(jù)用綠色顯示,鍵入:IDL>Plot,time,curve,Color=2,Background=1,/NoDataIDL>OPlot,time,curve,Color=3限定線畫圖的范圍并非所有的數(shù)據(jù)都必須在一個(gè)線畫圖中繪出,可以用關(guān)鍵字限定繪圖的數(shù)據(jù)量。例如可僅繪出位于X軸上2至4之間的數(shù)據(jù),鍵入:IDL>Plot,time,curve,XRange=[2,4]或者僅繪出Y值在10至20之間,X值在2至4之間的部分?jǐn)?shù)據(jù)圖形,鍵入:IDL>Plot,time,curve,YRange=[10,20],XRange=[2,4]也可以通過給定關(guān)鍵字?jǐn)?shù)據(jù)范圍來反轉(zhuǎn)數(shù)據(jù)的方向。例如,可將Y軸的0點(diǎn)設(shè)置為圖形的頂端,如下:IDL>Plot,time,curve,YRange=[30,0]輸出結(jié)果應(yīng)與圖5相似。如果所選擇的軸的范圍不適合IDL關(guān)于坐標(biāo)軸美觀標(biāo)記的規(guī)定,IDL將忽略所要求的范圍。試一試如下的命令:IDL>Plot,time,curve,XRange=[2.45,5.64]X軸上顯示的范圍將是從2至6,這并不是對(duì)IDL所要求的精度。為確保軸上顯示的范圍正如所要求的那樣,可將XStyle關(guān)鍵字設(shè)置為1,如下:IDL>Plot,time,curve,XRange=[2.45,5.64],XStyle=1下一節(jié)將學(xué)到更多關(guān)于[XYZ]Style關(guān)鍵字的知識(shí)。7/20
圖5:將丫軸0點(diǎn)設(shè)置為圖形頂端的圖形改變線畫圖的風(fēng)格可以方便地改變線畫圖的許多特性,包括它們的外觀形式。例如,可能不在意線畫圖的方框。如果是這樣,可以用[XYZ]Style這些關(guān)鍵字改變線畫圖的特性。表5給出了可通過這些關(guān)鍵字來改變線畫圖風(fēng)格的值。例如,為除去方框線,只留下X軸或Y軸,可鍵入:IDL>Plot,time,curve,XStyle=8,YStyle=8值對(duì)坐標(biāo)軸的影響1精確的坐標(biāo)軸范圍2擴(kuò)展坐標(biāo)軸范圍4不顯示整個(gè)坐標(biāo)軸8不顯示外框(只畫坐標(biāo)軸)16屏蔽Y軸起始值為0的設(shè)置(只有Y軸有此屬性)表5:[XYZ]Style關(guān)鍵字參數(shù)表,用于設(shè)置坐標(biāo)軸的屬性。注意:這些值可以累加從而設(shè)置坐標(biāo)軸的多個(gè)而非單個(gè)屬性??梢酝耆[藏一個(gè)軸。例如,僅用Y軸顯示圖形,可鍵入:IDL>Plot,time,curve,XStyle=4,YStyle=88/20
輸出結(jié)果應(yīng)與圖6相似:圖6:關(guān)閉X軸和方框只剩丫軸的線畫圖可以用丫軸和丫方向的網(wǎng)格線來顯示同一幅圖:IDL>Plot,time,curve,XStyle=4,YTickLen=1,YGridStyle=1[XYZ]Style關(guān)鍵字可以一次設(shè)置坐標(biāo)軸的多個(gè)特性??梢酝ㄟ^累加適當(dāng)?shù)闹祦韺?shí)現(xiàn)。例如,可以從表5中看出,強(qiáng)制使用精確的坐標(biāo)軸范圍的參數(shù)值為1,而用來刪除方框線的參數(shù)值為8。為實(shí)現(xiàn)上述兩項(xiàng)功能,即讓X軸顯示精確的范圍又隱藏方框線,可將兩個(gè)參數(shù)值相加:IDL>plot,time,curve,xstyle=8+1,xrange=[2,5]在線畫圖上創(chuàng)建網(wǎng)格線,通??捎肨ickLen關(guān)鍵字來完成。如下:IDL>Plot,time,curve,TickLen=1將[XYZ]TickLen關(guān)鍵字設(shè)置為一個(gè)負(fù)值可以創(chuàng)建向外的刻度標(biāo)記。例如,為創(chuàng)建向外的刻度標(biāo)記,可鍵入:IDL>Plot,time,curve,TickLen=-0.03在某個(gè)軸上創(chuàng)建向外的刻度標(biāo)記,可將[XYZ]TickLen關(guān)鍵字設(shè)置為一個(gè)負(fù)值。例如,只在X軸上創(chuàng)建向外的刻度標(biāo)記,鍵入:IDL>Plot,time,curve,XTickLen=-0.03可以用[XYZ]Ticks和[XYZ]Minor關(guān)鍵字,在一個(gè)軸上選擇主要的和次要的刻度標(biāo)記的個(gè)數(shù)。例如,在X軸上創(chuàng)建兩個(gè)主要的刻度間隔,每個(gè)主要的刻度間隔內(nèi)設(shè)置10個(gè)次要的刻度標(biāo)記,鍵入:IDL>Plot,time,curve,XTicks=2,XMinor=10,XStyle=19/20在線畫圖上繪出多種數(shù)據(jù)集沒有必要限制自己僅僅用一組數(shù)據(jù)繪制線畫圖。IDL程序允許在同一套坐標(biāo)軸內(nèi)顯示任意多套數(shù)據(jù)。OPlot命令就用于此目的。鍵入以下命令,輸出結(jié)果應(yīng)與圖7相似:IDL>Plot,curveIDL>OPlot,curve/2.0,LineStyle=1IDL>OPlot,curve/5.0,LineStyle=2初始的Plot命令為以后的繪圖建立數(shù)據(jù)比例(!X.S和!丫刀是比例參數(shù))。或者說,!X.S和!Y.S系統(tǒng)變量告訴IDL如何在數(shù)據(jù)范圍內(nèi)取點(diǎn)以及如何將該點(diǎn)顯示在設(shè)備坐標(biāo)空間上。要確保初始圖形有足夠的軸長(zhǎng),以便包容以后繪制的所有圖形,否則數(shù)據(jù)將被裁剪掉??稍诘谝粋€(gè)Plot命令中用XRange和YRange關(guān)鍵字來創(chuàng)建一個(gè)足夠大的數(shù)據(jù)范圍。為區(qū)別不同的數(shù)據(jù)集,可用不同的線型,不同的顏色,不同的圖形符號(hào)等。Oplot命令接受很多被Plot命令接受的關(guān)鍵字。IDL>TvLCT,[255,255,0],[0,255,255],[0,0,0],1IDL>Plot,curve,/NoDataIDL>OPlot,curve,Color=1IDL>OPlot,curve/2.0,Color=2IDL>OPlot,curve/5.0,Color=3圖7:在同一個(gè)線畫圖上可以繪制無限多套數(shù)據(jù)集10/20
:IDL0圖8:具有兩個(gè)丫軸的線畫圖。第二軸是用Axis命令來定位的。一定要用Save關(guān)鍵字來將
數(shù)據(jù)比例保存起來在多個(gè)軸的圖上顯示數(shù)據(jù)有時(shí),希望在同一個(gè)線畫圖上顯示兩個(gè)或多個(gè)數(shù)據(jù)集,并用不同的y軸表示不同的數(shù)據(jù)集。使用Axis命令很容易建立所需數(shù)量的坐標(biāo)軸。使用Axis命令的關(guān)鍵是使用save關(guān)鍵字來存儲(chǔ)正確的繪圖比例參數(shù)(即存儲(chǔ)在!X.S和!Y.S系統(tǒng)變量中的比例參數(shù)),以便后續(xù)圖形的調(diào)用。下面的例子在已繪出一幅圖后,用帶Save關(guān)鍵字的Axis命令建立第二個(gè)Y軸。OPlot命令中的曲線將調(diào)用通過Axis命令保存的比例因子,以確定其在圖形中的位置。正確的命令是如下:IDL>Plot,curve,YStyle=8,YTitle:'SolidLine',$Position=[0.15,0.15,0.85,0.95]IDL>Axis,YAxis=1,YRange=[0,Max(curve*5+1)],/Save,$YTitle='DashedLine'IDL>OPlot,curve*5,LineStyle=2Position關(guān)鍵字用來確定第一個(gè)圖形在頁(yè)面內(nèi)的位置。為了解更多關(guān)于Position關(guān)鍵字的知識(shí),可參閱第48頁(yè)的“在圖形顯示窗口中確定圖形輸出位置”章節(jié)。輸出圖形應(yīng)與圖8相似。11/20創(chuàng)建曲面圖在IDL程序中,任何二維的數(shù)據(jù)組都可以用Surface命令生成一個(gè)曲面圖(經(jīng)過自動(dòng)消隱)。首先,必須打開數(shù)據(jù)文件,用LoadData命令打開ElevationData數(shù)據(jù)集。鍵入:IDL>peak=LoadData(2)通過鍵入Help命令,可以發(fā)現(xiàn)這是一個(gè)41*41的浮點(diǎn)數(shù)組。鍵入:IDL>Help,peak這個(gè)數(shù)組可以用一個(gè)命令使之視面圖:IDL>Surface,peak,CharSize=1.5輸出結(jié)果應(yīng)與圖9相似。圖9:利用高程數(shù)據(jù)生成簡(jiǎn)單的曲面圖。注意,如果僅用單個(gè)數(shù)組作為變量調(diào)用Surface命令,它將把該數(shù)組作為其元素個(gè)數(shù)(此例在X和Y方向都為41)的函數(shù)來繪圖。(可以使用CharSize關(guān)鍵字來改變字符的大小,以便更容易看清楚)。但是,正如前面使用Plot命令一樣,可以規(guī)定X和Y軸的數(shù)值,以便顯示的圖形具有實(shí)際意義。例如,X和Y軸的數(shù)值可以是經(jīng)緯度坐標(biāo)。這里,使緯度范圍為從24度到48度,經(jīng)度范圍為-122度到-72度:IDL>lat=FIndGen(41)*(24./40)+24IDL>LON=FIndGen(41)*50.0/41-122IDL>Surface,peak,lon,lat,XTitle='Longitude',$YTitle='Latitude',ZTitle='Elevation',CharSize=1.5輸出結(jié)果應(yīng)與圖10相似。12/20
圖10:一個(gè)具有實(shí)際意義坐標(biāo)值的曲面圖。以上命令中的lon和lat參數(shù)是單調(diào)遞增并且是規(guī)則的。它們描述了曲面網(wǎng)格線的位置。但網(wǎng)格沒有必要是規(guī)則的。試想一下,如果使經(jīng)度數(shù)據(jù)點(diǎn)不規(guī)則分布會(huì)出現(xiàn)什么情況。例如,可以鍵入以下命令模擬隨機(jī)分布的經(jīng)度點(diǎn):IDL>seed=-1LIDL>newlon=RandomU(seed,41)*41IDL>newlon=newlon[Sort(newlon)]*(24./40)+24IDL>Surface,peak,newlon,lat,XTitle='Longitude',$YTitle='Latitude’,ZTitle='Elevation',CharSize=1.5現(xiàn)在發(fā)現(xiàn)經(jīng)度X值是沒有規(guī)則分布的。盡管看起來數(shù)據(jù)被重新取樣了,然而卻不是。能很容易地在經(jīng)度和緯度數(shù)據(jù)點(diǎn)指定的位置處畫出曲面圖的網(wǎng)格線。輸出結(jié)果應(yīng)與圖11相似。13/20
圖11:同樣的曲面圖,但其X矢量具有不規(guī)則的空間分布定制曲面圖有70多個(gè)不同的關(guān)鍵字可以用來修飾曲面圖。實(shí)際上,許多關(guān)鍵字在Plot命令中已經(jīng)學(xué)過。例如在上面的代碼中,就使用了相同的標(biāo)題關(guān)鍵字對(duì)曲面圖的軸進(jìn)行標(biāo)記。然而要注意,當(dāng)用Title關(guān)鍵字時(shí),所添加的標(biāo)題被旋轉(zhuǎn)了,從而保證標(biāo)題總是位于曲面圖的XY平面內(nèi)。鍵入:IDL>surface,peak,lon,lat,XTitle='Longitude',$YTitle='Latitude',Title='Mt.Elbert',Charsize=1.5這并非總是所希望的。如果想使圖形標(biāo)題位于與顯示面平行的平面內(nèi),就必須用Surface命令繪制曲面圖,而用XYOutS命令顯示標(biāo)題(第55頁(yè)有關(guān)于XYOutS命令的詳細(xì)信息)。比如,鍵入:IDL>Surface,peak,lon,lat,Xtitle=’Longitude’,$Ytitle=’Latitude’,Charsize=1.5IDL>XYOutS,0.5,0.90,/Normal,Size=2.0,Align=0.5,$‘Mt.Elbert’旋轉(zhuǎn)曲面圖在觀察曲面圖時(shí)可能希望能旋轉(zhuǎn)一個(gè)角度。曲面圖可以用Ax關(guān)鍵字使其繞X軸或用Az關(guān)鍵字使其繞X軸旋轉(zhuǎn)。當(dāng)從軸上的正值向原點(diǎn)觀察時(shí),曲面圖以逆時(shí)針方向,按某個(gè)角度值旋轉(zhuǎn)。當(dāng)Az和Ax關(guān)鍵字被忽略時(shí)其缺省值是30度。例如,使曲面圖繞Z軸旋轉(zhuǎn)60度,14/20
繞X軸旋轉(zhuǎn)35度,則可鍵入:IDL>Surface,peak,lon,lat,Az=60,Ax=35,Charsize=1.5輸出結(jié)果應(yīng)與圖12相似。圖12:用Az和Ax關(guān)鍵字使曲面圖旋轉(zhuǎn)為曲面賦色有時(shí),可能想為曲面圖上賦上顏色以強(qiáng)調(diào)某種特性。給曲面圖著色是很簡(jiǎn)單的,只需使用在線畫圖中用過的賦色關(guān)鍵字即可。(顏色將在第83頁(yè)的“IDL的顏色運(yùn)用”中詳細(xì)討論?,F(xiàn)在,只須按如下鍵入TvLCT命令即可,以后將學(xué)到這個(gè)命令意味著什么。實(shí)質(zhì)上,裝載了三個(gè)顏色矢量,每個(gè)矢量的三個(gè)分量分別代表顏色的三個(gè)組成部分紅,綠,藍(lán)。這三種顏色矢量為碳灰,黃,綠色)。例如,在碳灰色背景上創(chuàng)建一個(gè)黃色的曲面圖,可鍵入:IDL>TvLCT,[70,255,0], [70,255,255], [70,0,0], 1IDL>Surface,peak,Color=2,Background=1如果想使曲面圖的底面的顏色不同于頂面,比如說綠色,可以使用Bottom關(guān)鍵字來實(shí)現(xiàn):IDL>Surface,peak,Color=2,Background=1,Bottom=3如果想將軸以不同的顏色顯示,比如綠色,而不是曲面,必須鍵入兩個(gè)命令。第一個(gè)命令使用NoData關(guān)鍵字,只將軸繪出。第二個(gè)命令是在關(guān)閉軸線后繪出曲面本身。查看第31頁(yè)的表5,了解[XYZ]Style關(guān)鍵字的參數(shù)值及其含意:IDL>Surface,peak,Color=3,/NoDataIDL>Surface,peak,/NoErase,Color=2,Bottom=1,XStyle=4,YStyle=4,ZStyle=4用不同的顏色畫出曲面的格網(wǎng)線也是有可能的,而不同的顏色代表不同的數(shù)據(jù)。比如,15/20可用第二個(gè)數(shù)據(jù)集覆蓋第一個(gè),第二個(gè)數(shù)據(jù)集含有對(duì)第一個(gè)數(shù)據(jù)集的格網(wǎng)進(jìn)行著色后的信息。為了說明如何工作,可打開一個(gè)名為SnowPack的數(shù)據(jù)集,并用以下這些命令將此數(shù)據(jù)作為一個(gè)曲面顯示。注意,SnowPack數(shù)據(jù)集的大小與peak數(shù)據(jù)集一樣,都是41*41浮點(diǎn)數(shù)組:IDL>snow=LoadData(3)IDL>Help,snowIDL>Surface,snow現(xiàn)在,通過用snow的變量值對(duì)peak變量的格網(wǎng)著色,將snow變量中的數(shù)據(jù)覆蓋到peak變量中數(shù)據(jù)的上面。首先,用LoadCT命令裝載色彩表內(nèi)的一些顏色。實(shí)際的陰影處理是通過shades關(guān)鍵字完成的,如下:IDL>LoadCT,5IDL>Surface,peak,Shades=BytScl(snow,Top=!D.Table_Size-1)注意,必須用BytScl命令將snow數(shù)據(jù)集調(diào)整為所使用IDL時(shí)的色彩數(shù)。如果調(diào)整失敗,只能看到一套坐標(biāo)軸,而看不到曲面顯示。這是因?yàn)?,?shù)據(jù)必須調(diào)整到曲面陰影處理時(shí)所需的0到255的范圍。修改曲面圖外觀有很多關(guān)鍵字可以用來修改曲面圖的外觀或形式。例如,可以顯示一個(gè)帶邊緣的曲面圖。使用Skirt關(guān)鍵字來指定邊緣該畫到何處。試試下面命令:IDL>Surface,peak,Skirt=0IDL>Surface,peak,Skirt=500,Az=60圖13:帶邊緣的曲面圖16/20上面第一個(gè)命令的輸出結(jié)果應(yīng)與圖13相似。如果僅繪出水平線,獲得一種層疊線形圖,比如,鍵入:IDL>Surface,peak,/Horizontal如果愿意,可以通過關(guān)鍵字來只顯示曲面的底面或頂面,而不是兩者都顯示(缺省是兩者都顯示)。鍵入:IDL>Surface,peak,/Upper_OnlyIDL>Surface,peak,/Lower_Only有時(shí)可能只想顯示曲面本身,而不需要軸線??涉I入:IDL>Surface,peak,XStyle=4,YStyle=4,ZStyle=4創(chuàng)建陰影曲面圖創(chuàng)建陰影曲面圖同樣很簡(jiǎn)單,可使用Gouraud光源陰影算法創(chuàng)建陰影曲面圖,鍵入:IDL>Shade_Surf,peakShade_Surf命令接受大多數(shù)被Surface命令接受的關(guān)鍵字。例如,如果想旋轉(zhuǎn)陰影曲面,可以鍵入:IDL>Shade_Surf,peak,lon,lat,Az=45,Ax=30輸出圖形應(yīng)與圖14相似。圖14:用Gouraud光源陰影算法生成的陰影曲面圖改變陰影處理參數(shù)用Set_Shading命令可以改變Shade_Surf命令所使用的陰影處理參數(shù)。例如,要將光17/20源的光線的方向從平行Z軸的默認(rèn)值[0,0,1]改變?yōu)槠叫蠿軸的方向[1,0,0],可鍵入:IDL>Set_Shading,Light=[1,0,0]IDL>Shade_Surf,peak也可以從色彩表中挑選哪種顏色索引號(hào)用作陰影處理。例如,當(dāng)想把紅色色普表(色普表3)裝載到顏色索引號(hào)100到199之中,并將之用于陰影處理,可鍵入:IDL>LoadCT,3,NColors=100,Bottom=100IDL>Set_Shading,Values=[100,199]IDL>Shade_Surf,peak注意將光源位置和顏色參數(shù)恢復(fù)原值,否則練習(xí)的繼續(xù),可能會(huì)造成混亂。IDL>LoadCT,5IDL>Set_Shading,Light=[0,0,1],Value=[0,!D,Table_Size-1]用其它數(shù)據(jù)集為陰影處理提供參數(shù)首先,就象Surface命令一樣,其它數(shù)據(jù)集也可以為陰影處理時(shí)的各數(shù)據(jù)點(diǎn)提供顏色值。正如前述,可以用Shades關(guān)鍵字為曲面上各點(diǎn)指定顏色索引號(hào)。每個(gè)像素點(diǎn)的陰影處理都是根據(jù)該點(diǎn)周圍數(shù)據(jù)值通過插值求出。例如,下面是一個(gè)用snow變量生成的陰影曲面圖:IDL>Shade_Surf,snow現(xiàn)在用這個(gè)數(shù)據(jù)集來對(duì)最初的高程數(shù)據(jù)集進(jìn)行陰影處理,鍵入:IDL>Shade_Surf,peak,lon,lat,Shades=BytScl(snow,Top=!D.Table_Size)輸出結(jié)果應(yīng)如圖15所示:圖15:用snow數(shù)據(jù)集對(duì)peak數(shù)據(jù)進(jìn)行陰影處理如果要求根據(jù)數(shù)據(jù)點(diǎn)的高程值來對(duì)曲面進(jìn)行陰影處理,可簡(jiǎn)單地對(duì)數(shù)據(jù)集本身進(jìn)行字節(jié)18/20比例縮放即可,鍵入:IDL>Shade_Surf,peak,Shades=BytScl(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村家庭農(nóng)場(chǎng)租賃協(xié)議
- 廠房出售居間服務(wù)費(fèi)協(xié)伐協(xié)議
- 臨川區(qū)城市發(fā)展投資集團(tuán)有限公司等3家區(qū)屬國(guó)企2025年公開招聘員工【15人】筆試參考題庫(kù)附帶答案詳解
- 2025福建省泉州鳳棲實(shí)業(yè)有限責(zé)任公司社會(huì)招聘17人筆試參考題庫(kù)附帶答案詳解
- 紡織工程師技術(shù)創(chuàng)新的重要性試題及答案
- 藥物銷售考試題及答案
- 出機(jī)票合同協(xié)議書
- 合同協(xié)議書圖片
- 雙人合同協(xié)議書
- 情侶合同協(xié)議書
- 工會(huì)乒乓球比賽競(jìng)賽規(guī)程
- qpq處理工藝流程
- 經(jīng)典美味的手抓飯
- 體育產(chǎn)業(yè)與生態(tài)環(huán)境的共同保護(hù)
- 讀后續(xù)寫制作稻草人(T8聯(lián)考)講義-高考英語(yǔ)作文復(fù)習(xí)專項(xiàng)
- 食堂員工培訓(xùn)內(nèi)容-食堂從業(yè)人員培訓(xùn)資料
- 基于文化創(chuàng)意視角的媽祖文化旅游地產(chǎn)發(fā)展研究莆田媽祖文化旅游地產(chǎn)發(fā)展條件及思路研究
- 七年級(jí)上冊(cè)語(yǔ)文人教版全冊(cè)文言文全文詳解及翻譯
- 北師大小學(xué)數(shù)學(xué)小升初《簡(jiǎn)便運(yùn)算》復(fù)習(xí)課件
- 三相異步電動(dòng)機(jī)的電力拖動(dòng)課件
- 中央新疆稅收政策解讀
評(píng)論
0/150
提交評(píng)論