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例
主站蜘蛛池模板: 国产精品亚洲日韩AⅤ在线观看| 婷婷99视频精品全部在线观看| 亚洲高清中文字幕在线看不卡| 国产无码制服丝袜| 3p叠罗汉国产精品久久| 97国产精品视频人人做人人爱| 亚瑟天堂久久一区二区影院| 国产亚洲精品yxsp| 日韩午夜福利在线观看| 老司国产精品视频91| 久久免费精品琪琪| 欧美α片免费观看| 国产麻豆另类AV| 久久性妇女精品免费| 成年免费在线观看| 香蕉国产精品视频| 欧美性久久久久| 国产精品无码久久久久AV| 欧美色视频日本| 91无码人妻精品一区二区蜜桃| 国产精品分类视频分类一区| 久久永久免费人妻精品| 无码精品国产VA在线观看DVD| 国产农村妇女精品一二区| 99尹人香蕉国产免费天天拍| 成人毛片免费在线观看| 色噜噜中文网| 精品国产免费观看| 国产真实自在自线免费精品| AV不卡无码免费一区二区三区| 孕妇高潮太爽了在线观看免费| 夜精品a一区二区三区| 日本亚洲成高清一区二区三区| 一级毛片视频免费| 亚洲高清无码久久久| 日本在线免费网站| 国产91熟女高潮一区二区| 中文成人无码国产亚洲| 色色中文字幕| 久久精品人妻中文视频| 成人国产精品网站在线看| 欧美日韩亚洲综合在线观看| 欧美成人午夜在线全部免费| 亚洲国产欧洲精品路线久久| 久久黄色影院| 国产精品久久久久久久伊一| 无码又爽又刺激的高潮视频| 成人小视频网| 精品91在线| 精品国产成人av免费| 日本www色视频| 久久人搡人人玩人妻精品一| 国产99精品视频| 欧美激情成人网| 好吊妞欧美视频免费| 亚洲欧洲国产成人综合不卡| 欧美久久网| 久久久国产精品无码专区| 久草视频福利在线观看 | 日本一区二区三区精品国产| 国产日韩欧美视频| 亚洲h视频在线| 国产在线观看99| 亚洲国产精品一区二区高清无码久久| 91成人精品视频| 青青青国产精品国产精品美女| 亚洲天堂久久新| 一级成人欧美一区在线观看| 不卡色老大久久综合网| 日韩亚洲高清一区二区| 玖玖精品视频在线观看| 高清视频一区| 欧美一区二区三区不卡免费| 国产美女在线观看| 亚洲男人在线| 欧美亚洲网| 久久国产黑丝袜视频| 国产精品吹潮在线观看中文| 国产剧情国内精品原创| 国产精品综合色区在线观看| 99无码中文字幕视频| www.91在线播放|