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

DotSpatial開源GIS軟件擴展研究

2013-01-22 11:44:28華東師范大學地理信息系統教育部重點實驗室吳健平
電子世界 2013年19期
關鍵詞:功能方法

華東師范大學地理信息系統教育部重點實驗室 張 弟 吳健平

1.引言

近年來GIS開源軟件發展很快,DotSpatial是眾多GIS開源軟件中功能比較全面、擴展性比較好的一款,它提供空間數據的處理、分析、投影等功能。目前已有很多其他開源GIS軟件使用DotSpatial提供的功能,但是DotSpatial存在著與其它開源軟件相同的不足之處,比如官方開發文檔及幫助資料少,對GIS數據格式的支持不夠全面等。而傳統的GIS商業軟件雖然開發文檔齊全,支持多種GIS數據格式,但是授權昂貴,并且安裝占用大量的磁盤空間。由于商業因素,商業GIS軟件源代碼和關鍵算法受到嚴格保護,不利于學術研究。因此研究和完善開源GIS軟件在學術和商業方面都有著重要意義,而DotSpatial是一個比較新的開源類庫,目前對其研究的文章還很少。綜合上述因素,本文介紹了DotSpatial的架構,深入研究了其提供的擴展機制,最后利用官方提供的模版擴展實現了DotSpatial對NetCDF數據的讀取與渲染。這種擴展方法具有一定的通用性,可以用來實現讓DotSpatial支持更多種類的GIS數據。

2.DotSpatial軟件介紹

2.1 DotSpatial構成

DotSpatial是一套基于.Net Framework 4.0平臺開發的開源GIS類庫,整套類庫是使用C#語言編寫完成,以GNU LGPL授權(GNU Library General Public License)形式開放源代碼,目前整個項目由幾十個開發者共同維護,并且不斷地有新的開發人員參其中。DotSpatial官方網址為http://dotspatial.codeplex.com,網站主要包括源代碼、類庫、說明文檔、討論區、主要開發者、授權文檔等幾個部分。

DotSpatial的類庫可供其他程序直接調用,Mapwindow 6、Hydrodesktop、Mad、Area of Review、Marine Life等開源GIS軟件使用了DotSpatial的類庫提供的功能。為了讓開發者迅速熟悉這套類庫,官網提供了一個已經編譯好的簡易示例程序。該程序支持Shapefile文件,實現了縮放、平移等常見GIS操作,并且支持擴展。

2.2 DotSpatial整個類庫實現的功能

目前DotSpatial整個類庫實現的功能包括:

①顯示地圖;②支持Shapefile,Bgd,以及其它常用的柵格數據和遙感影像數據;③渲染符號和標簽;④支持動態投影和投影變換,WGS84為默認投影方式;⑤支持屬性數據的編輯和顯示;⑥支持空間分析,包括疊加分析、緩沖區分析、差值分析、空間統計等。⑦支持GPS格式數據。

DotSpatial很好的實現了功能模塊化設計思想,方便開發者靈活定制程序。Dot-Spatial架構在設計時主要考慮了兩個要素。首先是將用戶界面部分與業務邏輯部分分離,其次是將各個模塊編譯到不同的DLL中,提高代碼的利用率,并且做到無需加載整個類庫就可使用部分功能。

3.DotSpatial擴展機制

DotSpatial提供了完善的擴展機制,允許開發者對其功能進行擴展。DotSpatial啟動時會對根目錄下的Application Extensions子目錄進行掃描,該目錄下任何實現IExtension接口的DLL都會被加載到主程序中,加載完成后就可以使用DLL中的擴展功能。IExtension主要包含Activate和Deactivate和方法。DotSpatial啟動時調用Activate方法,完成模版的初始化任務。方法Decative在卸載模版時被調用,實現卸載模版及資源清理功能。

為了方便開發人員進行擴展,DotSpatial提供了一個可以安裝的插件模版(template),下載地址為:http://visualstudiogallery.msdn.microsoft.com/92919cee-a2b0-43c6-8993-aeac965bc4b5,安裝模版后,用Visual Studio新建項目時可以選擇該模版,并在此基礎上進行擴展開發。

模版提供了實現IExtension所需的基礎代碼,其中包含一個Extension基類和一個MyPlugin子類。Extension類實現了IExtension接口中的Activate和Deactivate方法,Plugin子類繼承Extension父類,并且還有一個ButtonClick方法,可以。模版加載后會在DotSpatial的Extensions菜單中生成對應的菜單項,點擊菜單會執行ButtonClick方法,主要的擴展功能可以在該方法中實現或由該方法調用其它方法實現。

4.DotSpatial擴展實例

4.1 NetCDF簡介

NetCDF(Network Common Data Form)網絡通用數據格式是由UCAR(University Corporation for Atmospheric Research)針對于科學數據的特點專門進行開發的一種開放的編碼標準。由于其開放性、自描述性、平臺獨立性、高可用性等特點,目前已廣泛應用于氣象學、水文學、海洋學以及地理信息系統等諸多領域。已經有很多文章在NetCDF的實際應用方面做了深入研究,但是在擴展GIS軟件實現支持NetCDF數據渲染方面的研究還不是很多。DotSpatial本身不支持NetCDF數據,我們通過前面介紹的模版編程實現DotSpatial渲染NetCDF數據。DotSpatial原生支持ESRI的Bgd柵格數據,因此可以通過在內存中將NetCDF數據轉換為Bgd的方式實現NetCDF數據的渲染。

NetCDF文件包含維(dimensions)、變量(variables)和屬性(attributes)三種描述類型,每種類型都會被分配一個名字和一個ID,這些類型共同描述了一個數據集。NetCDF庫可以同時訪問多個數據集,用ID來識別不同數據集。維表示變量維度信息,變量存儲實際數據,屬性表示變量或數據集本身的輔助信息,根據作用域可分為適用于整個文件的全局屬性和適用于特定變量的局部屬性,全局屬性則描述了數據集的基本屬性以及數據集的來源。NetCDF可在某一維進行追加,無需重新定義數據格式并復制原有數據,圖1是一個NetCDF在Time維的增長示例,圖2所示為轉換NetCDF格式。

圖1 NetCDF維增長比例

圖2 轉換NetCDF格式

4.2 NetCDF庫

UCAR提供了一系列操作NetCDF文件的庫,通過這些庫可以讀寫NetCDF文件數據或元數據信息。核心庫由C語言編寫,在此基礎上提供了C、C++、Java、Python、Perl等多種主流編程語言的API,但是還不支持C#,可以通過C#封裝NetCDF核心C庫函數的方式間接讀取NetCDF數據。

4.3 實現DotSpatial對NetCDF數據的讀取與渲染

DotSpatial本身支持ESRI的Bgd柵格數據,通過實現IExtension接口,在內存中將NetCDF數據轉換為Bgd格式,DotSpatial可以顯示轉換后的數據,轉換過程如圖2所示,最終的渲染效果和其它支持NetCDF數據的軟件是一致的,這說明前面的擴展方式是可行的。

5.總結

本文介紹了開源GIS軟件DotSpatial及其擴展機制,利用其官方提供的模版實現了DotSpatial對NetCDF數據的讀取與渲染,可以充分的利用DotSpatial已有的平移、縮放等功能對NetCDF數據進行常見GIS操作。這種擴展方法具有一定的通用性,可以很好的擴展DotSpatial原有功能,用來實現支持多種GIS數據格式。

[1]Li J,Liao W,Choudhary A,et al.Parallel NetCDF:A high-performance scientif ic I/O interface[C].2003 ACM/IEEE Conference.IEEE,2003:39-39.

[2]孫建偉,孫昭晨,陳軒,等.NetCDF格式數據的創建及應用[J].交通標準化,2010(226):31-34.

猜你喜歡
功能方法
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
學習方法
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 精品视频一区在线观看| 国产日本欧美亚洲精品视| 日韩经典精品无码一区二区| www.精品国产| 91色在线观看| 男女性午夜福利网站| 国产手机在线ΑⅤ片无码观看| 欧美成人手机在线观看网址| 超清无码熟妇人妻AV在线绿巨人| 成人精品午夜福利在线播放| 谁有在线观看日韩亚洲最新视频| 欧美成人综合在线| 国产永久在线观看| 97视频免费在线观看| 午夜激情婷婷| 亚洲一本大道在线| 一级片免费网站| 久久大香香蕉国产免费网站| 午夜精品福利影院| 亚洲免费福利视频| 91精品aⅴ无码中文字字幕蜜桃| 亚洲一级毛片| 国产手机在线小视频免费观看| 呦系列视频一区二区三区| 青青极品在线| 最新精品久久精品| 伊人成人在线| 精久久久久无码区中文字幕| 日本人妻丰满熟妇区| 亚洲另类国产欧美一区二区| 人妻中文久热无码丝袜| 久久一本日韩精品中文字幕屁孩| 欧亚日韩Av| 无码乱人伦一区二区亚洲一| 国产成人精品18| 国产成人综合在线视频| 99视频国产精品| 亚洲成人一区二区| 国产精品无码翘臀在线看纯欲| 免费又爽又刺激高潮网址 | 91蜜芽尤物福利在线观看| 先锋资源久久| 永久免费无码成人网站| 无码不卡的中文字幕视频| 伊人色综合久久天天| 婷婷综合在线观看丁香| 精品国产香蕉在线播出| 欧美成人综合视频| 色综合手机在线| 国产Av无码精品色午夜| 国产欧美日韩视频一区二区三区| 亚洲Aⅴ无码专区在线观看q| 亚洲精品欧美日本中文字幕| 极品尤物av美乳在线观看| 日韩在线第三页| 91毛片网| 超清无码一区二区三区| 国产一区三区二区中文在线| 亚洲日韩高清无码| 永久免费无码日韩视频| 亚洲精品片911| 国产亚洲视频播放9000| 久久精品国产999大香线焦| 久久久久国产精品嫩草影院| 国产大片喷水在线在线视频 | 欧美在线观看不卡| 久久精品66| 人妻精品久久无码区| 亚洲资源站av无码网址| 亚洲欧洲综合| 亚洲中文字幕23页在线| 91网红精品在线观看| 欧美精品亚洲日韩a| a级毛片免费看| 欧美日韩国产成人在线观看| 国产精品一区二区国产主播| 日韩在线视频网站| 国产精品私拍99pans大尺度| 成人国产精品视频频| 日本欧美视频在线观看| 91探花在线观看国产最新| 久爱午夜精品免费视频|