NCL中文使用說(shuō)明解讀_第1頁(yè)
NCL中文使用說(shuō)明解讀_第2頁(yè)
NCL中文使用說(shuō)明解讀_第3頁(yè)
NCL中文使用說(shuō)明解讀_第4頁(yè)
NCL中文使用說(shuō)明解讀_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

NCARCommandLanguage

(NCL)1一、簡(jiǎn)介1.1正確安裝NCL,windows下的安裝可以參考如下地址。1.2運(yùn)行方式ncl文件名.nclNCL的函數(shù)可以通過(guò)以下方式連接load

“myfoo.ncl”2二、語(yǔ)法2.1符號(hào);

后面用以添加注釋@ 創(chuàng)建或引用“屬性”!

創(chuàng)建或引用“命名的維”& 創(chuàng)建或引用“坐標(biāo)變量”{…} 表示坐標(biāo)的下標(biāo)$ 用與封裝字符串,當(dāng)需要輸入輸出通過(guò)“addfile”引用

文件的變量時(shí)。(/…/) 構(gòu)造數(shù)組:

用于選擇截取的數(shù)組的范圍| 用作“命名的維(nameddimensions)”

的分隔符。\ 放在句尾,說(shuō)明下一行和本行是同一個(gè)

語(yǔ)句。:: 用做調(diào)用外部代碼時(shí)的分隔符。-> 用于向外部文件輸入輸出數(shù)據(jù)時(shí)指定外部文件中的變量。32.2數(shù)據(jù)類型 數(shù)值型:double(64位)、float(32位)、long(32或 64位),integer(32位),short(16位)、byte(8位)。 非數(shù)值型:string、character、graphic、file、 logical、list。2.3運(yùn)算符代數(shù)運(yùn)算符+ 加- 減* 乘^ 指數(shù)% 取余# 矩陣相乘>,< 大于,小于4邏輯運(yùn)算符.lt. 小于.le. 小于等于.gt. 大于.ne. 不等于.eq. 等于.and. 并且.or. 或者.xor. 異或.not. 非

52.4循環(huán)do n=start,end,optional_stride

語(yǔ)句。。。enddo

或者dowhile(邏輯表達(dá)式)

語(yǔ)句。。。enddoBreak:跳出循環(huán)Continue:直接進(jìn)入下次循環(huán)62.5聲明語(yǔ)句在代碼的開始和結(jié)尾要添加“begin”和“end”。If語(yǔ)句If(邏輯表達(dá)式)then語(yǔ)句endif另:If(邏輯表達(dá)式)then

語(yǔ)句else

語(yǔ)句endif72.6坐標(biāo)變量變量除了有指定值,還可以有附屬的信息叫元數(shù)據(jù),有三種元數(shù)據(jù),分別為coordinatevariables(坐標(biāo)變量)、nameddimensions、attributes(屬性)。

坐標(biāo)必須是單調(diào)遞增的或遞減的一維數(shù)組。坐標(biāo)變量的名稱必須

和對(duì)應(yīng)維的名稱相同。&運(yùn)算符用來(lái)引用和分配坐標(biāo)變量。

例: T!0="lat" T!1="lon" T&lat=(/-90.,-85.,...,85.,90./) T&lon=fspan(0.,355.,72)

“iscoord”可以檢測(cè)一個(gè)給定的string是否是這個(gè)變量的坐標(biāo)變量。8大家有疑問(wèn)的,可以詢問(wèn)和交流可以互相討論下,但要小聲點(diǎn)9大家有疑問(wèn)的,可以詢問(wèn)和交流可以互相討論下,但要小聲點(diǎn)102.7維數(shù)和下標(biāo)在NCL中數(shù)組的下標(biāo)有兩種:”標(biāo)準(zhǔn)下標(biāo)”和”坐標(biāo)下標(biāo)”。下標(biāo)值的范圍為”0”到”n-1”?!皹?biāo)準(zhǔn)下標(biāo)”有以下的格式開始值:結(jié)束值:步進(jìn)值(可選項(xiàng))若不寫開始值默認(rèn)為”0”,若不寫結(jié)束值默認(rèn)為”n-1”,步進(jìn)值默認(rèn)為1。例如:T(:1,45,10,20);T為三維數(shù)組(time,lat,lon),則T(:1,45,10,20)代表開始的兩個(gè)時(shí)間坐標(biāo),第46個(gè)lat,和11-21個(gè)lon坐標(biāo),為一個(gè)(2X1X11)維數(shù)組?!白鴺?biāo)下標(biāo)”例子:pressure!0="lat"

pressure!1="lon"11lat_points=(/-80,-60,-40,-20,0,20,40,60,80/)

lon_points=(/-180,-120,-60,0,60,120,180/)

pressure&lat=lat_points

pressure&lon=lon_points調(diào)用:Pressure({-40:40}:{-180:120})選擇的是lat為(-40到40),lon為(-180到120)的坐標(biāo)對(duì)應(yīng)的pressure值組成的數(shù)組。{}表明你用的是”坐標(biāo)下標(biāo)”。122.8nameddimensions

可以為數(shù)組的各個(gè)維賦予名字,格式如下 pressure!0="time"

pressure!1="latitude"

pressure!2="longitude"

分別為pressure的1,2,3維起名字"time","latitude","longitude". “isdim”可以檢測(cè)給定的一個(gè)string是否是這個(gè)變量的一個(gè)維的名字。 命名的維只有在對(duì)維進(jìn)行重排序時(shí)會(huì)用到:

reordered_pressure=pressure(longitude|:,latitude|:,time|:)

上面將”time”和”longitude”的位置進(jìn)行了交換。 “isdim”可以檢測(cè)給定的一個(gè)string是否是這個(gè)變量的一個(gè)維的名字。132.9屬性

Attributes:變量的”屬性”就是變量的信息。變量的屬性用”@“符

號(hào)創(chuàng)建和調(diào)用。屬性只能為已存在的變量創(chuàng)建。

例: x@min=-50

x@max=50.0d;d表示double型數(shù)值 x@units="meters" x@long_time="Avariablefortemporarystorage"142.10_FillValue在NCL或一個(gè)netCDF文件中,屬性_FillValue代表缺失值。如果你的數(shù)據(jù)有”missing_value”屬性而沒(méi)有”_FillValue”屬性,你可以這樣做:X@_FillValue=X@missing_value2.11變量和元數(shù)據(jù)如果y不存在,y=x會(huì)將x完整的復(fù)制給y(包括x的元數(shù)據(jù)),如果y已經(jīng)定義了,則x必須和y是同一類型的(或者可以強(qiáng)制轉(zhuǎn)換)。y=(/x/)表示只將x的值賦給y,不包括x的元數(shù)據(jù)。15三、NCL文件輸入/輸出3.1支持的格式

netCDF3/4,HDF4(ScientificDataSetonly),HDF4-EOS,GRIB-1, GRIB-2andCCM創(chuàng)建文件引用,用”addfile”方法。f=addfile(文件名,status)Statue包括”r”[讀,適用所有NCL支持的格式],”c”[創(chuàng)建,僅適用與netCDF和HDF4格式],”w”[讀/寫,僅適用與netCDF和HDF4格式].例子:f=addfile("foo.nc","r")grb=addfile("/my/grib/foo.grb","r")hdf=addfile("/your/hdf/foo.hdf","c")h=addfile("foo.hdfeos","r")ccm=addfile("foo.ccm","r")16如果X是f引用的文件中的變量,則y=f->X表示將X賦予y,包括其元數(shù)據(jù)。在下面的兩種情況下,變量名兩端必須加”$”符號(hào),1、文件中的變量名含有非字母數(shù)字的符號(hào)(例如:空格,”+”或”-”).2、在->右邊的那一項(xiàng)是表示一個(gè)變量的變量。輸出“print”命令可以輸出所有NCL支持格式的數(shù)據(jù)。例如:x=1print(x)“ncl_”命令可以查看GRIB和netCDF文件的詳細(xì)信息。將short和byte轉(zhuǎn)換為float類型的函數(shù)有x=short2flt(f->X)x=byte2flt(f->X)以上函數(shù)使用時(shí)需要加載“contributed.ncl”,load"$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"17讀取多個(gè)文件“addfiles”用來(lái)從多個(gè)文件獲得數(shù)據(jù)。例:fils=systemfunc("lsann*.nc")f=addfiles(fils,"r")T=f[:]->T在結(jié)果T中包含了多個(gè)文件的數(shù)據(jù)?!皊ystemfunc(“l(fā)sann*.nc”)”命令表示得到所有以ann為開頭的netCDF文件。3.2二進(jìn)制數(shù)據(jù)文件IEEE二進(jìn)制數(shù)據(jù)有兩種不同的格式:bigendian(高位在前)和littleendian(低位在前).NCL允許通過(guò)”set”函數(shù)進(jìn)行動(dòng)態(tài)的轉(zhuǎn)換。18讀二進(jìn)制數(shù)據(jù)fbinrecread(path:string,recnum:integer,dims[*]:integer,type:string) 用來(lái)讀取Fortranunformattedsequential文件fbindirread(path:string,rnum:integer,dims[*]:integer,type:string) 用來(lái)讀取固定紀(jì)錄長(zhǎng)度的二進(jìn)制數(shù)據(jù)其它讀取二進(jìn)制文件的函數(shù)有cbinread,fbinread和craybinrecread寫二進(jìn)制數(shù)據(jù)fbinrecwrite(path:string,recnum:integer,value)用來(lái)寫Fortranunformattedsequential文件例:假設(shè)你有下面五個(gè)變量,time,lat,lon,y,z.

recnum為-1表示value放在文件尾,不為零則作為文件的記錄號(hào)。fbinrecwrite("f.ieee",-1,time)fbinrecwrite("f.ieee",0,lat)fbinrecwrite("f.ieee",1,lon)fbinrecwrite("f.ieee",2,y)fbinrecwrite("f.ieee",3,z)19其它寫IEEE二進(jìn)制文件的方法有fbindirwrite、cbinwrite和fbinwrite.3.3ASCII讀ASCII文件asciiread([*]:integer,datatype:string)復(fù)雜的ASCII文件應(yīng)該用C語(yǔ)言或Fortran來(lái)讀取。例:z=asciiread("data.asc",(/100,13/),"float“寫ASCII文件asciiwrite()只能寫一列且沒(méi)有格式控制。例:asciiwrite("foo.ascii",x)write_matrix(data[*][*]:numeric,fmtf:string,option)可以寫多列,并且可以控制格式。例:fmtf=“15f7.2”;fortran字符格式字符串opt=Trueopt@fout="foo.ascii"write_matrix(x,fmtf,opt)203.4寫netCDF/HDF文件有兩種方法來(lái)創(chuàng)建netCDF/HDF文件,一種為”簡(jiǎn)單方法”,一種為”傳統(tǒng)途徑”:在寫入任何值之前需要明確的定義文件的內(nèi)容。簡(jiǎn)單方法fo=addfile(“foo.nc”,”c”)要想創(chuàng)建一個(gè)沒(méi)有上限的維(一般是時(shí)間),必須在寫入值之前添加如下代碼(fo,"time",-1,True)傳統(tǒng)途徑NCL預(yù)定義netCDF文件:為一個(gè)或多個(gè)變量定義名字:從一個(gè)變量復(fù)制屬性到一個(gè)或多個(gè)文件變量:定義維數(shù),包括無(wú)限制維:從一個(gè)變量復(fù)制屬性到一個(gè)文件作全局變量set:一些選項(xiàng)可以提高性能21例:假設(shè)變量time、lat、lon、T在內(nèi)存中。當(dāng)寫入到netCDF文件中時(shí),T被命名為TMP。fout=addfile("out.nc","c");創(chuàng)建一個(gè)全局變量=True="Sample"="None"=systemfunc("date")set(fout,“DefineMode”,True);optional(fout,);預(yù)定義坐標(biāo)變量dimNames=(/"time","lat","lon"/)dimSizes=(/-1,nlat,nlon/);-1meansunspecifieddimUnlim=(/True,False,False/)22;預(yù)定義名字、類型、維數(shù);確切的維名字或用”getvardims”(fout,dimNames,dimSizes,dimUnlim)(fout,"time",typeof(time),getvardims(time))(fout,"lat",typeof(lat),"lat")(fout,"lon","float","lon")(fout,"TMP",typeof(T),getvardims(T));預(yù)定義每個(gè)變量的屬性(fout,"time",time)(fout,"lat",lat)(fout,"lon",lon)(fout,"TMP",T)set(fout,”SuppressDefineMode”,False);optional;僅輸出數(shù)值可用(/…/)過(guò)濾掉元數(shù)據(jù)fout->time=(/time/)fout->lat=(/lat/)fout->lon=(/lon/)fout->TMP=(/T/);Tinscript;TMPonfile23向netCDF中寫入標(biāo)量簡(jiǎn)單方法fo=addfile("simple.nc","c")con=5con!0="ncl_scalar"fo->constant=con傳統(tǒng)方法 re=6.37122e06re@long_name="radiusofearth"re@units="m"fout=addfile("traditional.nc","c")(fout,"re",typeof(re),"ncl_scalar")(fout,"re",re)fout->re=(/re/)ncl_convert2nc可以將任何支持的格式轉(zhuǎn)換為netCDF格式24四、輸出到窗口有效的printing函數(shù)有:printVarSummary:輸出變量的概述(包括元數(shù)據(jù))print:和printVarSummary相同,輸出每個(gè)元素的值sprinti,sprintf:提供許多格式控制write_matrix:以格表格式輸出數(shù)據(jù)25例:printVarSummary輸入:printVarSummary(u)結(jié)果:Variable:uType:doubleTotalSize:bytes147456valuesNumberofDimensions:4Dimensions/Sizes:[time|1]x[lev|18]x[lat|64]x[lon|128]Coordinates:time:[4046..4046]lev:[4.809..992.5282]lat:[-87.86379..87.86379]lon:[0.0..357.1875]NumberofAttributes:2long_name:zonalwindcomponentunits:m/s26例:print輸入:print(u)結(jié)果:(0,0,0,0)31.7(0,0,0,1)31.4(0,0,0,2)32.3…例:sprintf,sprinti min(u)=-53.8125 print("min(u)="+sprintf("%5.2f",min(u)))

結(jié)果:min(u)=-53.81 ii=(/-47,3579,24680/) print(sprinti("%+7.5i",ii))

結(jié)果:-00047,+03579,+24680

27例:write_matrix輸入:write_matrix(T,“5f7.2”,False);T為3行5列的數(shù)組結(jié)果:4.364.663.77-1.664.069.73-5.840.898.4610.394.914.59-3.097.554.56“5f7.2”表示生成5列,沒(méi)個(gè)元素以f7.2的格式輸出,可以通過(guò)將第三個(gè)元素設(shè)置為True為輸出添加額外的內(nèi)容。如:opt=Trueopt@title="Normal"write_matrix(T,“5f7.2",opt)更多信息請(qǐng)查看官網(wǎng)提供的函數(shù)列表。28五、數(shù)據(jù)分析NCL提供了多種分析數(shù)據(jù)的方法1、通過(guò)數(shù)組的處理來(lái)分析數(shù)據(jù)2、NCL提供了內(nèi)置的幾百個(gè)函數(shù)3、許多用戶貢獻(xiàn)的函數(shù)4、調(diào)用Fortran或C語(yǔ)言函數(shù)5.1、通過(guò)數(shù)組分析對(duì)于大多數(shù)運(yùn)算符,它的操作數(shù)必須具有相同的維數(shù),且每一維的大小應(yīng)該是相同的。另外,操作數(shù)的數(shù)據(jù)類型也應(yīng)該是等價(jià)的。29當(dāng)標(biāo)量出現(xiàn)在關(guān)于數(shù)組的方程式中時(shí),它會(huì)作用在每一個(gè)數(shù)組元素上。如:F=2*E+5 ;這里每一個(gè)E的元素都將乘以2并加上5.5.2數(shù)組的一致性conform或conform_dims可用來(lái)擴(kuò)充數(shù)組。例:theta=T*(1000/conform(T,P,1))^0.286Conform會(huì)擴(kuò)充P,使其與T的維數(shù)和每個(gè)維的大小相同,1表示P將作為擴(kuò)充后數(shù)組的第二個(gè)維。5.3數(shù)組內(nèi)存管理有兩種方法可以創(chuàng)建一個(gè)數(shù)組或?yàn)槠滟x值。1、使用數(shù)組的構(gòu)造符(/…/)如:a=(/1,2,3/)a=(/(/1,2,3/),(/4,5,6/)/) ;3行2列302、使用new(數(shù)組大小,數(shù)據(jù)類型,_FillValue)方法如:b=new(10,float,-9999)c=new((/5,6,7/),integer)5.4函數(shù)和程序函數(shù)會(huì)返回一個(gè)或多個(gè)值,所以他們可以作為表達(dá)式的一部分。例如max、sin和exp是標(biāo)準(zhǔn)的數(shù)學(xué)函數(shù):z=exp(sin(max(q)))+12.345程序是不能作為表達(dá)式的一部分的,因?yàn)樗⒉环祷刂?。它用于?zhí)行指定的代碼,或修改它的參數(shù)值。參數(shù)是以引用的形式調(diào)用的,只意味著它會(huì)被程序修改(包括它的元數(shù)據(jù))。31在NCL中你可以設(shè)置函數(shù)和程序的參數(shù)的類型、維數(shù)、維的大小。你也可以不加限制。例:限制的:procedureex(x[*][*]:float,y[2]:byte,res:logical,text:string)X為二維的,y為長(zhǎng)度為2的一維數(shù)組,res為logical類型,text為string類型一般寫法:只限制類型functionxy_interp(x:numeric,y:numeric)Numeric表示任何支持的數(shù)值類型。簡(jiǎn)單寫法procedurefoo(a,b,c)5.5內(nèi)置的函數(shù)和程序NCL提供了幾百個(gè)內(nèi)置函數(shù)??蓞⒖家幌骆溄樱?25.6contributed.nclcontributed.ncl中包含了用戶貢獻(xiàn)的函數(shù)。你需要在文件頭加入一下代碼:load"$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl“5.6.1封裝器Contributed.ncl提供了一些和內(nèi)置函數(shù)相似的函數(shù)。如:dim_avg_Wrap其與內(nèi)置函數(shù)dim_avg的不同是:dim_avg會(huì)導(dǎo)致元數(shù)據(jù)的丟失,而dim_avg_Wrap則不會(huì)。更多信息參見(jiàn):335.6.2類型轉(zhuǎn)換contributed.ncl中包含的將一個(gè)類型轉(zhuǎn)換為另一類型的函數(shù)包括:short2flt、byte2flt、short2flt_hdf、numeric2int和dble2flt.5.6.3氣候?qū)W函數(shù)contributed.ncl中包含了一些處理氣象的函數(shù)。例如:clmMon*(),stdMon*()和month_to_month等。5.7用戶自定義函數(shù)例如undef("function_name")functionfunction_name(declaration_list)locallocal_variable_listbegin [statement(s)] return(return_value)end34undef("procedure_name")procedureprocedure_name(declaration_list)locallocal_variable_listbegin [statement(s)]endundef將以前定義的這個(gè)函數(shù)刪除掉。local用于列出本函數(shù)中的變量undef和local不是必須的,但是推薦的。355.8與系統(tǒng)交互可以通過(guò)systemfunc和system與系統(tǒng)進(jìn)行交互?;旧嫌脩粢獙nix命令放在一個(gè)字符串中,可以用”;”來(lái)分隔多行Unix命令。Unix命令中的選項(xiàng)用單引號(hào)括起來(lái)。例:=systemfunc("cd/my/data;ls*.nc")此命令將先轉(zhuǎn)到/my/data目錄下,然后得到此目錄下所有的.nc文件,并將其列表賦予變量。x=stringtofloat(systemfunc("cut–c14-19sample.txt"))此命令將從”sample.txt”中截取第14到19列,然后返回一個(gè)一維字符串類型的數(shù)組給x。system與systemfunc的不同是:system只是執(zhí)行一個(gè)Unix命令而不會(huì)返回任何值。例:system(“cp10.nc/ptmp/user/”);復(fù)制10.nc到/ptmp/user36六、命令行選項(xiàng)6.1 調(diào)用NCL的選項(xiàng)-h 顯示命令行選項(xiàng)的用法。-n 不在print()中顯示值-x 在主窗口中執(zhí)行NCL代碼-V 輸出NCL的版本信息并退出6.2在命令行中為變量賦值nclnyrStrt=1800nyrLast=2005foo.ncl以上代碼將為foo.ncl中的變量nyrStrt和nyrLast分別賦值1800和2005.可以在.ncl文件中通過(guò)”isvar”函數(shù)檢測(cè)是否在命令中為變量賦過(guò)值。376.3ncl_可以顯示出支持格式數(shù)據(jù)文件的概述。支持的格式有:netCDF、GRIB-1,GRIB-2,HDF或HDF-EOS.用法:ncl_[選項(xiàng)]數(shù)據(jù)文件具體的選項(xiàng)可以通過(guò)輸入ncl_–h來(lái)查看。6.4ncl_convert2nc可以將任何GRIB-1,GRIB-2,HDF,HDF-EOS文件轉(zhuǎn)換為netCDF格式。用法:ncl_convert2nc文件名[選項(xiàng)]選項(xiàng)可以通過(guò)輸入ncl_convert2nc–h來(lái)查看38七、使用外部代碼7.1NCL/Fortran接口若使用Fortran子程序,”WRAPIT”函數(shù)會(huì)是你輕松很多。WRAPIT編譯外部Fortran代碼,并生成一個(gè).so文件。WRAPIT需要的唯一參數(shù)是Fortran和NCL之間的接口,接口中包括子程序說(shuō)明語(yǔ)句和參數(shù)列表,確切的參數(shù)說(shuō)明是不需要的,因?yàn)閃RAPIT知道Fortran的默認(rèn)類型。NCL使用接口定界符CNCLFORTSTARTCNCLEND來(lái)指定接口部分。39接口定界符之間只允許包含:程序聲明和描述它的參數(shù)的聲明。任何其他的聲明都將導(dǎo)致從WRAPIT退出。除非特別的定義,所有的變量都將遵從Fortran的默認(rèn)類型。7.2f77子程序調(diào)用外部程序有五步1、用CNCLFORTSTART和CNCLEND說(shuō)明描述Fortran程序和它的參數(shù)。將其放入.wib文件中,如foo.wib。2、調(diào)用wrapit77創(chuàng)建一個(gè)NCLwrapperfunction,wrapit77使用第一步的代碼塊作為輸入。 wrapit77<foo.wib>!foo_W.c3、為第二步中產(chǎn)生的NCLwrapperfunction創(chuàng)建object模塊和Fortran代碼原型。40 cc-I${NCARG_ROOT}/include-cwrapper_W.cf77-cex01.f執(zhí)行以上語(yǔ)句會(huì)為wrapper_W.c創(chuàng)建wrapper_W.o4、用UNIX的Id命令為第三步中的object文件創(chuàng)建一個(gè)動(dòng)態(tài)的共享object(.so文件)。在不同的Unix系統(tǒng)上需要執(zhí)行的代碼是不同的。DECAlpharunningDigitalUNIX: cc-I${NCARG_ROOT}/include-cfcode_W.c f77-cfcode.f ld-shared-ofcode.sofcode_W.ofcode.oHP700seriesrunningHPUX: cc-I${NCARG_ROOT}/include+z-cfcode_W.c f77+z-cfcode.f ld-b-ofcode.sofcode_W.ofcode.oPentiumPCrunningLinuxRedHat(GNUcompilers):

gcc-I${NCARG_ROOT}/include-cfcode_W.c

g77-cfcode.f

ld-shared-ofcode.sofcode_W.ofcode.o41PentiumPCrunningLinuxRedHat(PortlandGroupcompilers): pgcc-cfcode_W.c-I${NCARG_ROOT}/include pgf90-cfcode.f pgf90-shared-ofcode.sofcode_W.ofcode.o-lpgf90SGIrunningIRIX(-64): cc-64-I${NCARG_ROOT}/include-cfcode_W.c f77-64-cfcode.f ld-64-shared-ofcode.sofcode_W.ofcode.oSGIrunningIRIX(-n32): cc-n32-I${NCARG_ROOT}/include-cfcode_W.c f77-n32-cfcode.f ld-n32-shared-ofcode.sofcode_W.ofcode.oSunrunningSolaris:

cc$NCARG_ROOT/include-cfcode_W.c

f77-cfcode.f

ld-ofcode.sofcode_W.ofcode.o-G425、通知NCL如何去定位第四步中創(chuàng)建的動(dòng)態(tài)共享object。external調(diào)用名字.so文件如”externalFOO./foo.so”這樣就可以通過(guò)”FOO::函數(shù)1“來(lái)調(diào)用原文件中的函數(shù)了。

WRAPIT可以指出你在使用的系統(tǒng)類型,并為你做steps2-4。這時(shí)你只需要這樣做:1、用CNCLFORTSTART和CNCLEND說(shuō)明描述Fortran程序和它的參數(shù)。2、WRAPITfoo.f3、externalFOO"./foo.so“然后就可以調(diào)用了437.3調(diào)用C函數(shù)需要你自己寫wrapper函數(shù),然后按照f(shuō)77的步驟中的3-5步進(jìn)行。參見(jiàn)下面連接中的例六:447.4f90子程序7.5使用商業(yè)函數(shù)庫(kù)7.6在UNIXshell腳本中使用NCL和Fortran(或C)45八、實(shí)例NCL的官網(wǎng)提供了大量的實(shí)例,其鏈接為:列表如下:datasets(數(shù)據(jù)集)

ARM(大氣輻射測(cè)量) AVHRR(高級(jí)甚高分辨率輻射儀) Classificationdata:vegetation/cloud(分類數(shù)據(jù):

(植被、云層))

COAMPS(風(fēng)場(chǎng)) COADS(綜合的海洋大氣數(shù)據(jù)集) CRU(氣象研究單元) EASE(等積的可擴(kuò)展的地球)46ERA40(歐洲中期天氣預(yù)報(bào)中心在分析的數(shù)據(jù)交互)GODAS(全球海洋數(shù)據(jù)分析系統(tǒng))HDF/HDF-EOS(分層的數(shù)據(jù)格式、地球觀測(cè)系統(tǒng))HighResProcipitation(高分辨率降水分布)MCSST(多通道海平面溫度)NARR(北美地區(qū)再分析)NOGAPS(大氣氣壓)seaWiFs(廣視角海洋傳感器)Shapefiles(形狀文件)Stationdata(引用數(shù)據(jù)集代表宇宙空間中的觀察點(diǎn)處的物理特性。)47Mapprojections(地圖投影) Mapsonly(只是地圖) General(一般的投影)

Coastlines(海岸線)

Cylindricalequidistant(圓柱等距投影)

Lambertconformal(masked)(伯朗正形投影--掩

蔽的)

Lambertconformal(native)(伯朗正形投影--針

對(duì)一個(gè)特定的地區(qū))

Nativegrid(在一個(gè)特定地區(qū)的投影)

Polarstereographic(極地球面投影)

Satellite(衛(wèi)星投影)

Tickmarks:map(刻度標(biāo)記地圖)48Models(模型)COAMPS(風(fēng)場(chǎng))CCCMA:CRCM(加拿大氣候中心:加拿大局部氣候模型)CCSM:Ice(CCSM冰模型)CCSM:Land(組件模型:LSM)CCSM:POP(POP海洋模型)HOMMEgrids(高階多尺度模擬環(huán)境模型網(wǎng)格)ICON(討論了可視化ICON模型數(shù)據(jù))NOGAPS(NOGAPS(WindForcing))Ocean:HYCOM(混合坐標(biāo)海洋模型)Ocean:NCOM(美國(guó)海軍操作的全球海洋模型)Ocean:NLOM(海軍研究實(shí)驗(yàn)室(NRL)分層海洋模式)Ocean:ORCA(ORCA網(wǎng)格)Ocean:ROMS(局部海洋模型系統(tǒng))Paleoclimatology(老的氣候?qū)W)PIPS(美國(guó)海軍極地冰投影)RegionalClimateModel(局部氣候模型)TIGGEProject(THORPEX的可交互的重要的全球效果)WRF(天氣研究與預(yù)測(cè)模型)49Dataanalysis(數(shù)據(jù)分析)Anomalies(平均偏差)Binning(融合多個(gè)衛(wèi)星的數(shù)據(jù))Climatology(氣候?qū)W)COADS(綜合的海洋大氣數(shù)據(jù)集)Correlations(相關(guān)統(tǒng)計(jì))Divergentandrotationalwindcomponents(發(fā)散、旋轉(zhuǎn)風(fēng)組件)EOFs(驗(yàn)證正交函數(shù))Filters(濾波器)GrADSCTLfiles(操作GrADS數(shù)據(jù))Grid_filling

(網(wǎng)格的填充)Isentropiclevels(等觴水平)Localminimaandmaxima(局部最小值、最大值)Meridionaloverturning(縱向翻轉(zhuǎn))MJOClivar

(julian震蕩氣候變化性)NCLsysteminteractionsandscripting(NCL系統(tǒng)交互)Omega

(Ω數(shù)據(jù)分析)One-dimensional

(一維差值)50PDF:ProbalilityDistributions

(概率分布函數(shù))RandomDatatoGrid

(用函數(shù)在一維平面上用隨機(jī)數(shù)字gridxyz)Regression

(復(fù)原)Regridding

Sigmacoordinateinterpolation

(σ坐標(biāo)插值)SpaceTimeSpectra

(時(shí)空光譜)Spectralanalysis

(光譜分析)Timecoordinates

(時(shí)間坐標(biāo))Transects

(橫切面)Two-pointCorrelation(兩點(diǎn)相關(guān))Verticalinterpolation

(垂直調(diào)變)Vorticity

(漩渦)Wavelets

(微波)Weightedaverages

(加權(quán)平均數(shù))Zonal

(帶狀平均)51plotTypesBarcharts直方圖Boxplots(箱線圖)Contours:nomaps(不帶地圖的輪廓圖)Contours:cylindricalequidistant(圓柱等距投影)Contours:nativegrid(本地網(wǎng)格投影)Contours:polarstereographic(極地立體投影)Contours:satellite(衛(wèi)星投影)Latitudevs.time(維度vs.時(shí)間)Overlayplots

(覆蓋圖)Panelplots

(平面圖)Press/heightvs.latitude(壓力/高度vs.維度)Press/heightvs.logitude(壓力/高度vs.經(jīng)度)Press/heightvs.time

(壓力/高度vs.時(shí)間)Radar(r,theta)plots

(繪圖、θ(雷達(dá))數(shù)據(jù))Scatterplots

(散點(diǎn)圖)Slices

(切片)52 Streamlines (流線)

Timevs.logitude (時(shí)間和經(jīng)度)

Timevs.latitude (時(shí)間和維度)

Trajectories (軌跡)

Tropicalstripplots (熱帶帶狀圖)

Vectors (向量)

WRF-VAPOR(3D) (使用水蒸氣NCL分析WRF-ARM數(shù)

據(jù)3D) XYplots(XY坐標(biāo)圖)PlotTypes:generic(一般的畫圖類型)

Contours(等高線(通用的高水平畫圖接口)) Streamlines(流線(高水平通用接口))

Vectors(向量(通用高水平畫圖接口))

Vector/scalar(vectoroverscalars(通用高水平畫圖接口))

XYplots(XY坐標(biāo)圖(通用高水平畫圖接口))53PlotTechniques 2-dimensionalverticalcoordinates(二維垂直坐標(biāo)) Animations(動(dòng)畫(本例產(chǎn)生了31天的氣象圖))

Annotations(為圖像添加注釋)

Axes(坐標(biāo)軸)

Coastlines(海岸線)

Colorfill(填充顏色)

Contourlevels(等高水平)

Contouroncontour(在等高線上覆蓋等高線)

Contoureffects(等高線效果)

Contourlabels(等高線標(biāo)簽)

Colormaps(顏色圖)

Draworder(畫圖命令)

Equations(方程式)

Fontheights(字體高度)

Functioncodes(功能碼(用來(lái)產(chǎn)生方程式))

Labelbars(顏色條)

Layouttricks(出版布局的技巧)

Legends(說(shuō)明)54 Logo,NCAR(添加NCAR的Logo)

Masking(遮隱(不顯示你不感興趣的部分))

Opacity(創(chuàng)建包含不透明(透明)元素的圖形)

Polygons(多邊形)

Polylines(折線)

Polymarkers() Raster(光柵模型)

Resizing(改變一個(gè)postscript文件的大?。?/p>

Tables(表格)

Text(添加文字)

Tickmarks(刻度線)

Timeaxislabels(時(shí)間軸標(biāo)簽)

Titles(標(biāo)題)

Vectoreffects(矢量作用)

Viewport(定位圖形和設(shè)置圖形的大?。?/p>

Weathersymbols(氣象符號(hào))55SpecialPlots(特殊圖形) Evansplots(Evans圖形) Histograms(直方圖)

Isolevels(國(guó)際標(biāo)準(zhǔn)化水平)

Meteograms() Piecharts(餅圖)

Skew-T(斜體)

Taylordiagram(泰勒?qǐng)D)

T-Ssiagram(【熱力學(xué)】溫鹽圖解)

3Dplots(三維圖形)

Unique(獨(dú)特的可視化)

Windbarbs(風(fēng)向)

Windrose(風(fēng)力圖)56Non-uniformgrids/randomdata(不均勻的網(wǎng)格/隨機(jī)數(shù)據(jù)) Adaptivegrids(自適應(yīng)網(wǎng)格)

ARPEGEgrids(ARPEGE網(wǎng)格)

Contouring1Ddata(一維的等高線數(shù)據(jù))

Equivalentlatitudes()

Geodesicgrids(測(cè)地線網(wǎng)格)

HOMMEgrids(高階多尺度模擬環(huán)境模型)

ISCCPgrids(國(guó)際衛(wèi)星云層氣象工程網(wǎng)格)

ORCAgrids()

Triangularmeshes(三角網(wǎng)格)57NCL的官方也提供了一部分?jǐn)?shù)據(jù),其鏈接為:例一:中國(guó)地圖58load"$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"load"$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"load"$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ;加載ncl文件begin wks=gsn_open_wks(“ps”,“china”) ;創(chuàng)建一個(gè)ps的工作空 ;間,并取名為china gsn_define_colormap(wks,"WhViBlGrYeOrRe") ;為wks定義默認(rèn)的colormap,在畫地圖的時(shí)候使用 cmap=gsn_retrieve_colormap(wks) ;為wks檢索colormap返回float類型的RGB數(shù)據(jù)。 ;colormap的更多信息請(qǐng)參見(jiàn):;59data=(/84.7,59.2,94.6,54.7,48.2,58.0,81.0,69.4,\ 66.2,67.1,100.7,90.5,77.0,73.6,84.6,70.6,\ 62.6,69.0,68.6,64.5,46.4,61.1,84.9,54.8,\ 94.7,81.7,61.3,93.5,73.0,39.8,64.6,77.4,44.4/) ;在后面設(shè)置各個(gè)省份的顏色值時(shí)使用states=(/“Anhui”,“BeijingShi”,“ChongqingShi”,“Fujian”,“Gansu“,\ "Guandong","Guangxi","Guizhou","Hainan","Hebei","Heilongjiang",\ "Henan","HongKong","Hubei","Hunan","Jiangsu","Jiangxi","Jilin",\ "Liaoning","NeiMongol","NingxiaHuizu","Qinghai","Shaanxi",\ "Shandong","ShanghaiShi","Shanxi","Sichuan","TianjinShi"

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論