999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

NCL 語言中圖形繪制基本概念辨析

2021-03-23 06:37:54李玉鵬高夢竹曲驊倩

李玉鵬 李 吉* 高夢竹 曲驊倩

(1、長白山氣象與氣候變化吉林省重點實驗室,吉林 長春130062 2、吉林省氣象科學(xué)研究所,吉林 長春130062 3、伊通滿族自治縣氣象局,吉林 四平130700 4、成都信息工程大學(xué),四川 成都610200 5、黑龍江省氣象臺,黑龍江 哈爾濱150001 6、桓仁滿族自治縣氣象局,遼寧 本溪117200)

NCL 是一種專門為大氣科學(xué)專業(yè)數(shù)據(jù)處理以及圖形繪制而開發(fā)的編程語言,其在氣象領(lǐng)域的應(yīng)用在國內(nèi)外十分廣泛[1,2]。NCL 支持豐富的數(shù)據(jù)類型,如NetCDF 3/4、GRIB 1/2、HDF 4/5、HDF-EOS 2/5、shapefile、ASCII 以及二進制文件,而且對數(shù)據(jù)接口進行了封裝,使得讀取不同數(shù)據(jù)格式都十分方便。NCL有令人喜愛的數(shù)據(jù)可視化能力,默認參數(shù)下輸出的圖形質(zhì)量已經(jīng)十分出色,國內(nèi)外眾多氣象相關(guān)的期刊上的圖形很多都由NCL 繪制。除了在圖形繪制方面的優(yōu)勢外,NCL 還內(nèi)建了許多氣象專業(yè)常用的公式和函數(shù),可以方便使用者直接調(diào)用,另外,NCL 支持眾多的投影和網(wǎng)格類型,因此也可以對眾多模式結(jié)果進行后處理和可視化[3,4]。

NCL 雖然有著優(yōu)秀的數(shù)據(jù)處理和高品質(zhì)圖形繪制能力,但其語言設(shè)計方面和Matlab、Grads 等其他氣象常用編程語言有著較大的差異,其特有的以@為標志的面向?qū)ο蟮膶傩栽O(shè)置更讓眾多初學(xué)者都感到不適。

而在數(shù)據(jù)可視過程中,draw、frame、gsnDraw、gsnFrame 這幾個語句是十分重要也是十分常見的,但往往不易理解。因此本文主要對以上這些語句以及背景概念進行詳細分析。

1 理解draw 與frame 過程

下面來詳細地分析draw 和frame 的區(qū)別。首先draw(plot),括號內(nèi)還可以是數(shù)組,這個“過程”即procedure,相當(dāng)于執(zhí)行“繪制”,繪制不是直接地繪制到png、pdf 等圖形中,而是繪制在workstation 中,這一過程就像執(zhí)行了一個動作,當(dāng)然這個動作的對象必須是view object(可理解為圖形對象),view object 可以通過gsn 方式或者create 方式產(chǎn)生。frame (wks) 也是一個procedure,它的參數(shù)同樣也可以是一個數(shù)組,它所做的就是先對workstation 中的圖形對象進行更新,然后再清空。同樣workstation 對象除了通過gsn_open_wks 產(chǎn)生,也同樣可以由create 方式生成。通俗一點說就是:每調(diào)用frame(wks)一次,都會產(chǎn)生一個畫板,如果之前draw(plot)了,那么畫板上就會有plot的圖,如果前面沒有draw 任何plot,那么產(chǎn)生的畫板就是空白的,表現(xiàn)在(e)ps 或pdf 文件中就是空白頁。

所以,當(dāng)完成完整的一組繪制時再進行frame,而且如果緊接著沒有新的draw 動作,馬上再frame,新產(chǎn)生的畫板也是空白的,并不會產(chǎn)生之前圖形的副本,即frame 一次清空一次wks 中的圖形對象。如果從頭到尾一直都沒frame,那么最后也還會frame 的,因為只要生成了workstation,腳本結(jié)束時會自動有一次frame。同樣,如果沒有draw 過任何東西,這張畫板就是空白的(以上這些討論都是基于gsnDraw 和gsnFrame 屬性都是False的情形)。gsnDraw 屬性表示是否在調(diào)用gsn function 或者procedure 時順便執(zhí)行draw 命令。gsnFrame 表示是否在調(diào)用gsn function 或者procedure 時順便執(zhí)行frame 命令。如果所需繪制的圖形中包含不同場的疊加等較為復(fù)雜的操作時,這時往往要執(zhí)行不止一條gsn 命令,這兩個屬性一般都設(shè)成False。所以一般當(dāng)要產(chǎn)生和操作的圖形對象比較多時,gsnDraw 和gsnFrame 最好還是關(guān)掉,采用顯示手動的方式控制整個繪圖流程。

2 gsn 繪圖function 和procedure 的區(qū)別

function 有返回值,調(diào)用時前邊必須要有一個變量來接收這一返回值。而且其作用效果是跟隨圖形對象的。如果把gsnFrame 和gsnDraw 設(shè)成了False,那么必須執(zhí)行draw(wks),然后這個function 產(chǎn)生的圖才會被打印到畫板上。以gsn_add_text這個function 為例,draw (plot) 之后再執(zhí)行該function,然后再frame 是沒有效果的,因為附著有文字信息的plot 根本沒有被draw 過。如果一直執(zhí)行draw 動作而后面不跟隨frame,所有圖都會被放到同一個頁面中,當(dāng)frame 時會一起出現(xiàn)在畫板上,當(dāng)然如果你一直draw 的是一個圖形對象的話,你可能看不出來是多個對象,因為這些對象正好完全重疊在一起了,只能看到最上面的。

procedure 無返回值,不能賦值給變量。而且這一動作可以自行完成,不需要后續(xù)的draw 跟隨。procedure 執(zhí)行的結(jié)果不附著于其操作的圖形對象,也可以說它是和圖形對象分離的另一個過程(雖然中間可能會用到view object 對象,主要用來作為繪圖位置等信息的參考),所以當(dāng)圖形對象又經(jīng)歷了放大(gsnMaximize)、覆蓋(overlay)之類的操作后,procedure 之前的結(jié)果不會被更新,所以,就可能會出現(xiàn)procedure 的繪制結(jié)果錯位或者消失(被覆蓋)。

通過下邊這段代碼及其執(zhí)行結(jié)果可以幫助我們更準確地理解上述內(nèi)容。

圖1 代碼的執(zhí)行結(jié)果

其執(zhí)行的結(jié)果如圖1 所示,結(jié)合圖和代碼不難發(fā)現(xiàn):如果只關(guān)注大寫字母的順序,它們的圖層順序由底到頂依次為C->A->B->D,從而我們不難分析得到:與frame 不同,draw 重復(fù)使用時不會清空之前結(jié)果;procedure 生成時也需要借助于plot 對象,但draw 的時候只draw 自身圖形,與plot 相分離,本身自帶draw 功能,不帶frame 功能;function 跟隨、附著于plot 對象,但自身無draw 和frame 功能;只要生成了一個wks,即使gsnFrame 設(shè)置為False,程序結(jié)束時仍會自帶一個frame(wks)。

最后用一系列類比來加強對上面論述的理解,當(dāng)gsnDraw和gsnFrame 都設(shè)置為False 時,這時是手動控制繪圖流程,具有更大的自由度和靈活性,當(dāng)需要繪制復(fù)雜的圖形時,往往需要采用這種設(shè)置。gsn_open_wks 函數(shù)表示繪畫開始,主要作用是提供繪畫的畫本,會根據(jù)后期的繪畫需要進行紙張供給。gsn 繪圖函數(shù)的作用可以類比于篆刻圖形印章的過程,其繪制內(nèi)容最初是保存在模子上的,只有當(dāng)執(zhí)行“蓋章”(draw)這一動作時,圖形才會被印在畫紙上。而gsn 繪圖過程的作用可以類比于直接在畫紙上作畫,沒有中間過程,其繪制內(nèi)容直接出現(xiàn)在當(dāng)前的畫紙上。而frame 這個過程則相當(dāng)于將當(dāng)前作畫的畫紙從繪畫本子上取下來并放到作品集中,而這個作品集就是我們程序運行的最終輸出結(jié)果,也就是我們看到的pdf 文件(單頁或是多頁),或者png(一張或多張)等圖形。

3 結(jié)論

以上較為詳細地介紹了NCL 在圖形繪制過程中可能遇到的一些基本概念問題。

3.1 詳細介紹了draw 和frame 過程(procedure)的區(qū)別和用法。

3.2 詳細辨析了gsn 繪圖過程與函數(shù)的區(qū)別和用法。

3.3 在繪制復(fù)雜圖形時,要將gsnDraw 和gsnFrame 屬性設(shè)為False,這樣可以更自由地控制繪圖順序和顯示效果。

主站蜘蛛池模板: 激情六月丁香婷婷四房播| 欧美精品另类| JIZZ亚洲国产| 99视频国产精品| 日韩在线1| 成人第一页| 久久精品国产91久久综合麻豆自制| 国产在线精品99一区不卡| 午夜三级在线| 在线观看国产精品第一区免费 | 欧美日韩成人在线观看| 欧洲熟妇精品视频| 免费看a级毛片| 国产精品久久国产精麻豆99网站| 玖玖免费视频在线观看| 日本人又色又爽的视频| 青青久久91| 久久亚洲黄色视频| 欧美另类第一页| 精品国产成人av免费| 亚洲精品卡2卡3卡4卡5卡区| 欧美精品导航| 成人日韩欧美| 在线免费观看a视频| 亚洲三级成人| 人妻无码一区二区视频| 国产成人无码久久久久毛片| 精品国产Av电影无码久久久| 在线观看免费人成视频色快速| 国产在线麻豆波多野结衣| 亚洲—日韩aV在线| 亚洲人成网18禁| 永久免费无码成人网站| 欧美三级自拍| 秋霞一区二区三区| 欧美v在线| 波多野结衣中文字幕一区二区| 精品国产网站| 丰满少妇αⅴ无码区| 国产精品高清国产三级囯产AV| 又黄又爽视频好爽视频| 国产国产人免费视频成18| 97国产精品视频人人做人人爱| 最新精品久久精品| 91丝袜乱伦| 亚洲成A人V欧美综合| 四虎精品免费久久| 制服丝袜一区| 伊人成人在线| 国产精品吹潮在线观看中文| 亚洲色图综合在线| 亚洲大尺码专区影院| 日本欧美在线观看| 福利在线不卡| 动漫精品中文字幕无码| 亚洲成人动漫在线观看| 久久香蕉国产线看观看亚洲片| www.99在线观看| 国产精品视频导航| 精品久久久久久久久久久| 99无码中文字幕视频| 亚洲三级a| 98超碰在线观看| 久久情精品国产品免费| 高清国产va日韩亚洲免费午夜电影| 啪啪啪亚洲无码| 国产av无码日韩av无码网站 | 亚洲女人在线| av在线无码浏览| 毛片网站免费在线观看| 免费看a级毛片| 五月天香蕉视频国产亚| 99青青青精品视频在线| 99久久精品久久久久久婷婷| 2022国产无码在线| 真实国产精品vr专区| 日韩欧美中文字幕在线韩免费| 99热这里只有免费国产精品| 女人av社区男人的天堂| 亚洲欧洲日韩综合色天使| 国产成人综合亚洲欧洲色就色| 日韩乱码免费一区二区三区|