版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年紀(jì)念日與節(jié)日?qǐng)鼍岸ㄖ祈?xiàng)目營(yíng)銷方案
- 傳統(tǒng)節(jié)日傳統(tǒng)節(jié)日中的科學(xué)思維培養(yǎng)模式創(chuàng)新研究課題報(bào)告教學(xué)研究課題報(bào)告
- 《EJT 1231.4-2008 重鈾酸鹽中雜質(zhì)分析方法 第4部分:氟和氯的測(cè)定 離子選擇性電極法》專題研究報(bào)告
- 2026年傳統(tǒng)民俗禮儀知識(shí)競(jìng)賽測(cè)試題及參考答案
- 中華中學(xué)2026年1月公開招聘編制內(nèi)教師備考題庫(kù)及答案詳解參考
- 2026年西藏自治區(qū)第二人民醫(yī)院社會(huì)招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 地鐵運(yùn)營(yíng)管理與服務(wù)指南(標(biāo)準(zhǔn)版)
- 2025年肉羊養(yǎng)殖金融創(chuàng)新與投資報(bào)告
- 飲食習(xí)慣與健康生活
- 基于生成式AI的高校創(chuàng)新創(chuàng)業(yè)教育評(píng)價(jià)體系優(yōu)化研究教學(xué)研究課題報(bào)告
- 新三體系培訓(xùn)教材
- 現(xiàn)代無(wú)人機(jī)航拍技術(shù)應(yīng)用講義
- 北師大簡(jiǎn)介課件
- 語(yǔ)文五上:期末總復(fù)習(xí)(按單元復(fù)習(xí))【課件】
- 養(yǎng)殖場(chǎng)安全培訓(xùn)課件
- 房地產(chǎn)機(jī)電設(shè)計(jì)注意事項(xiàng)匯編
- 針刺傷預(yù)防處理標(biāo)準(zhǔn)解讀
- 移風(fēng)易俗文明殯葬課件
- 2025年高考語(yǔ)文二卷詩(shī)歌鑒賞解析
- 《現(xiàn)代物流設(shè)施與規(guī)劃》課件(共十四章)
- 醫(yī)院主任年終工作總結(jié)與計(jì)劃
評(píng)論
0/150
提交評(píng)論