亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2021-03-23 06:37:54李玉鵬高夢竹曲驊倩
        科學技術(shù)創(chuàng)新 2021年7期
        關(guān)鍵詞:畫紙畫板調(diào)用

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

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

        NCL 是一種專門為大氣科學專業(yè)數(shù)據(jù)處理以及圖形繪制而開發(fā)的編程語言,其在氣象領(lǐ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è)置更讓眾多初學者都感到不適。

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

        1 理解draw 與frame 過程

        下面來詳細地分析draw 和frame 的區(qū)別。首先draw(plot),括號內(nèi)還可以是數(shù)組,這個“過程”即procedure,相當于執(zhí)行“繪制”,繪制不是直接地繪制到png、pdf 等圖形中,而是繪制在workstation 中,這一過程就像執(zhí)行了一個動作,當然這個動作的對象必須是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 文件中就是空白頁。

        所以,當完成完整的一組繪制時再進行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 命令。如果所需繪制的圖形中包含不同場的疊加等較為復雜的操作時,這時往往要執(zhí)行不止一條gsn 命令,這兩個屬性一般都設(shè)成False。所以一般當要產(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,所有圖都會被放到同一個頁面中,當frame 時會一起出現(xiàn)在畫板上,當然如果你一直draw 的是一個圖形對象的話,你可能看不出來是多個對象,因為這些對象正好完全重疊在一起了,只能看到最上面的。

        procedure 無返回值,不能賦值給變量。而且這一動作可以自行完成,不需要后續(xù)的draw 跟隨。procedure 執(zhí)行的結(jié)果不附著于其操作的圖形對象,也可以說它是和圖形對象分離的另一個過程(雖然中間可能會用到view object 對象,主要用來作為繪圖位置等信息的參考),所以當圖形對象又經(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 重復使用時不會清空之前結(jié)果;procedure 生成時也需要借助于plot 對象,但draw 的時候只draw 自身圖形,與plot 相分離,本身自帶draw 功能,不帶frame 功能;function 跟隨、附著于plot 對象,但自身無draw 和frame 功能;只要生成了一個wks,即使gsnFrame 設(shè)置為False,程序結(jié)束時仍會自帶一個frame(wks)。

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

        3 結(jié)論

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

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

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

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

        猜你喜歡
        畫紙畫板調(diào)用
        核電項目物項調(diào)用管理的應用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        畫紙上的家
        把手掌放在畫紙上描一描,畫出一只幽靈吧
        把手掌放在畫紙上描一描,畫出一只企鵝吧
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        七彩畫板
        七彩畫板
        七彩畫板
        一條線畫到底
        美国少妇性xxxx另类| 亚洲精品中文有码字幕| 在线观看一区二区三区国产| 亚洲 小说区 图片区 都市| 国产激情电影综合在线看| 国产AV边打电话边出轨| 妇女自拍偷自拍亚洲精品| 不卡一本av天堂专区| 亚洲va国产va天堂va久久| 亚洲精品无码av片| 亚洲国产剧情一区在线观看| 在线观看免费不卡网站| 欧美日韩一区二区三区在线观看视频 | 东京热加勒比视频一区| 久热re这里精品视频在线6| 国产精品户露av在线户外直播| 久久婷婷国产综合精品| 中文字幕一区二区av| 中文字幕在线日亚洲9| 无码中文字幕在线DVD| 亚洲妇女av一区二区| 国内自拍速发福利免费在线观看| 老司机亚洲精品影院| av超碰在线免费观看| 久久国产女同一区二区| 2019nv天堂香蕉在线观看| 亚洲国产另类久久久精品黑人| 福利网在线| 最新天堂一区二区三区| 亚洲成av人的天堂在线观看| 亚洲无码专区无码| 在线日本高清日本免费| 最近免费中文字幕中文高清6| 亚洲欧美一区二区三区| 福利网在线| 国产精品成人自拍在线观看| 久久久无码精品亚洲日韩按摩| 久久综合网天天 | 麻豆三级视频网站在线观看| 久久99精品久久久久久噜噜| 亚洲日韩欧美国产另类综合|