• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于開源軟件的工程地質數(shù)字化開發(fā)方案研究

      2022-02-21 13:39:04劉聰元
      水利水電快報 2022年2期
      關鍵詞:軟件開發(fā)

      摘要:為提高工程地質數(shù)字化軟件開發(fā)效率,提出了基于開源軟件的工程地質數(shù)字化開發(fā)平臺解決方案,能夠在提高開發(fā)效率和標準化水平的同時,減輕勘測企業(yè)對商業(yè)軟件的依賴,快速形成獨立的、具有自主知識產權的軟件產品。測試結果表明:研究所用開源軟件和多層架構可以滿足工程地質數(shù)字化開發(fā)的要求,對于勘測企業(yè)工程地質數(shù)字化研發(fā)具有一定的參考價值。

      關鍵詞:工程地質數(shù)字化; 開源軟件; .NET; 軟件開發(fā)

      中圖法分類號:P642 文獻標志碼:A DOI:10.15974/j.cnki.slsdkb.2022.02.019

      文章編號:1006 - 0081(2022)02 - 0106 - 06

      0 引 言

      由于工程地質內、外業(yè)工作的復雜性,現(xiàn)有商業(yè)軟件并不能完全滿足企業(yè)數(shù)字化的需求,因此大多數(shù)勘測企業(yè)選擇自行開發(fā)工程地質數(shù)字化軟件[1-3]。不同企業(yè)對工程地質數(shù)字化的需求千差萬別,但對于數(shù)據庫管理、Excel數(shù)據處理、Word格式報告生成、CAD圖件生成等的基本需求是一致的。傳統(tǒng)的開發(fā)方式是通過COM技術實現(xiàn)軟件與應用程序的通訊,因此軟件運行依賴Office,AutoCAD等商業(yè)軟件的支持[4-6]。隨著計算機技術的發(fā)展,尤其是互聯(lián)網技術和相關企業(yè)的興起,開源軟件在操作系統(tǒng)、數(shù)據庫、Web服務器等多個方面的應用已經成為主流[7],通過調用Office,CAD等有關開源組件庫,可以脫離Office,AutoCAD等商業(yè)軟件的支持,直接讀寫相應格式的文件。

      因此,基于開源軟件設計了一款工程地質數(shù)字化開發(fā)平臺,對數(shù)據庫、CAD、Office文件讀寫等基礎功能進行了封裝,企業(yè)開發(fā)人員僅需通過簡單的調用,就可以實現(xiàn)較為復雜的功能,從而大幅簡化開發(fā)難度,讓開發(fā)人員把精力用在業(yè)務邏輯上,能夠在有限時間內實現(xiàn)更多的功能,最大程度滿足勘測企業(yè)的個性化需求。此外,該開發(fā)平臺的搭建基于開源軟件,有助于減輕勘測企業(yè)對商業(yè)軟件的依賴,形成獨立的、具有自主知識產權的軟件產品。

      1 開發(fā)語言及相關開源軟件

      1.1 開發(fā)語言選擇

      開發(fā)語言的選擇是平臺方案技術路線的決定性因素之一。C#為微軟公司于2000年基于.NET框架推出的一種面向對象且類型安全的現(xiàn)代編程語言。開發(fā)人員利用C#語言能夠開發(fā)出多種在.NET中運行的安全可靠的應用程序[8]。C#綜合了VB (Visual Basic) 語言的簡單可視化操作和C++語言的高運行效率,兼具Java現(xiàn)代語言的特點,是Windows平臺下的首選編程語言。C#的缺點是在Windows以外的平臺上開發(fā)能力較弱,但是近年隨著.NET Core和.NET 5.0的相繼推出,這種情況正在逐步改善。

      勘測企業(yè)開發(fā)人員通常并非專業(yè)的程序員,而C#具有的優(yōu)良性能和簡單易用的特點,使其特別適合作為工程地質數(shù)字化開發(fā)的首選開發(fā)語言。開發(fā)時可以選擇免費的Visual Studio 2019社區(qū)版作為開發(fā)環(huán)境,且其同為微軟公司出品,能夠良好地支持C#。

      1.2 相關開源軟件選擇

      開源軟件已經成為眾多企業(yè)和軟件項目的基礎配置,對于軟件領域具有重要意義,不僅有助于提升參與者的研發(fā)能力,而且能帶動國家經濟發(fā)展。中國已將軟件開源列入“十四五”規(guī)劃,并發(fā)布木蘭開源系列許可證,致力于構建開源生態(tài)[9]。

      近年來出現(xiàn)了不少優(yōu)秀的開源軟件,其中不乏基于.NET框架和C#的軟件[10-13]。經研究,篩選了一批可用于工程地質數(shù)字化開發(fā)的開源軟件,其中與本文相關的軟件見表1。

      2 開發(fā)平臺解決方案

      2.1 開發(fā)架構

      數(shù)據庫系統(tǒng)開發(fā)一般會根據“高內聚、低耦合”思想,把各個功能模塊劃分為表示層(UI)、業(yè)務邏輯層(BLL)和數(shù)據訪問層(DAL)3層架構,各層之間通過接口訪問[14-15]。雖然這種多層結構在性能上略有損失(因增加了調用處理),但它具有可復用、易維護的特點,比如程序開發(fā)完成后,需要將SQLServer數(shù)據庫更換為MySQL,僅需修改數(shù)據訪問層即可。

      考慮到工程地質數(shù)字化需求的復雜性,本開發(fā)平臺在經典3層架構上進行了拓展,增加了支撐層和基礎服務層(如圖1所示),其中支撐層主要負責提供軟件開發(fā)的軟、硬件環(huán)境及數(shù)據庫支持等。

      2.2 數(shù)據訪問層實現(xiàn)

      數(shù)據訪問層基于中國開源軟件SqlSugar 開發(fā),兼容SQLServer、MySQL、SQLite等所有SqlSugar支持的數(shù)據庫。根據工程地質數(shù)據庫的特點,數(shù)據訪問層一般采用DBFirst方式實現(xiàn),即先建立數(shù)據庫,再根據數(shù)據庫生成實體模型,實現(xiàn)數(shù)據持久化。此外,還需要針對不同的數(shù)據庫進行功能封裝,實現(xiàn)通用的增、刪、改、查功能;對于有特殊需求的表,可先用代碼生成器生成增、刪、改、查的代碼,再在此基礎上進行修改生成。事務機制可以保證所有操作正確完成,在操作過程中,一旦出錯便立即回滾到初始狀態(tài),從而保證數(shù)據的完整性。因此在對多個表進行刪除操作時,應使用事務機制進行控制,確保刪除操作正確執(zhí)行。

      2.3 基礎服務層實現(xiàn)

      雖然直接調用開源.NET組件庫可以實現(xiàn)相關功能,但代碼編寫量大,維護困難。針對工程地質數(shù)字化的具體需求,通過對開源.NET組件庫進行二次封裝、建立基礎服務層,既可以避免重復開發(fā),大幅降低開發(fā)難度,同時也可以促進標準化進程,方便以后替換為更合適的開源組件。

      (1) 平臺管理模塊。平臺管理模塊主要通過調用數(shù)據訪問層實現(xiàn)平臺通用管理,包括組織機構、人員、物資、資源的管理,字典管理,角色、權限管理及登錄、注銷等功能。

      (2) CAD讀寫模塊。基于NetDXF開發(fā),能夠實現(xiàn)新建、打開和保存dxf文件,新建和選擇圖層,設置字體、字高,繪制直線,繪制多義線,繪制文字,插入圖塊,填充花紋等功能。

      (3) Excel讀寫模塊?;贜POI開發(fā),能夠新建或打開xls,xlsx格式文件,并在該文件中指定單元格讀取或寫入內容,以及畫表格線、合并單元格等功能。

      (4) Word讀寫模塊。基于NPOI開發(fā),能夠新建或打開doc,docx格式文件,根據標簽定位并讀取或寫入內容,實現(xiàn)添加或修改表格、段落、頁眉頁腳等功能。

      (5) 三維操作模塊?;贏ctiviz實現(xiàn),能夠打開和顯示ts(受GOCAD,ItasCAD,CATIA支持)或其他格式三維地質模型,并進行分層顯示、瀏覽、縮放、視圖、面與面的求交運算等功能,其中面與面的求交運算關系到能否根據三維模型實現(xiàn)二維剖面出圖功能,Activiz 5.8版尚未提供此項功能,但在Activiz 9.0試用版中已經實現(xiàn)。

      (6) 自定義控件庫。軟件開發(fā)過程中不可避免地需要自定義一些控件或對已有控件進行改造。該庫對自定義控件進行統(tǒng)一管理,便于重復使用。

      (7) 其他開發(fā)模塊?;A服務層是可擴展的,根據需要還可以添加圖表模塊、地理模塊等。圖表模塊主要用于數(shù)據可視化,可將數(shù)據以柱狀圖、餅圖、折線圖等形式動態(tài)展現(xiàn);可基于MsChart(為Visual Studio自帶組件)或ZedGraph,ECharts.Net等進行具體開發(fā)。地理模塊主要用于地圖操作、坐標變換等;其中地圖操作選用GMap.Net開發(fā),坐標變換可基于DotSpatial開發(fā)。

      2.4 業(yè)務邏輯層實現(xiàn)

      (1) 勘測數(shù)據管理。主要實現(xiàn)鉆孔、平硐、地質點等勘測數(shù)據的增、刪、改、查等,包括數(shù)據批量導入、數(shù)據檢查與清洗等。

      (2) 地質圖自動生成。主要通過調用CAD和數(shù)據庫實現(xiàn),包括鉆孔柱狀圖、地質剖面圖、平切圖等的自動生成功能。運用模板技術和通過定制模板,可以滿足不同工程的出圖需求。

      (3) 報告自動生成。通過調用Word讀寫模塊實現(xiàn),且通過報告模板定制,可以根據數(shù)據庫中的數(shù)據生成地質報告。

      (4) 地質模型管理。通過調用3D操作模塊,可實現(xiàn)地質模型的導入、縮放、瀏覽等,以及通過三維地質模型生成剖面圖的功能。目前三維地質建模軟件價格較高,考慮到地質模型通常由少數(shù)人建立、供多數(shù)人應用的特點,通過開源軟件開發(fā)的切剖面功能可以大幅減少三維建模軟件的采購數(shù)量,節(jié)約企業(yè)資金。

      2.5 表示層實現(xiàn)

      (1) 桌面應用。基于WinForm開發(fā)。由于原生控件在功能性、美觀性上均不盡人意,因此商業(yè)軟件一般會采用DevExpress等價格昂貴的第三方商業(yè)控件;而開源控件Krypton Component Factory具有Office風格界面,在功能性和美觀性上達到了較好的平衡,開發(fā)時可以優(yōu)先選用。此外,也可選用國產的開源控件SunnyUI,該控件時尚美觀,但在功能性方面沒有增強。

      (2) Web應用。采用微軟的MVC架構開發(fā),界面可以選用國產的LayUI等開發(fā)。

      (3) 移動應用。采用微軟的Xamarin實現(xiàn),也可以用國產的Smobiler開發(fā)。二者都支持C#開發(fā)移動應用,前者的運用需要掌握一定的安卓開發(fā)知識,后者可以通過拖拽直接生成界面,但如果開發(fā)專業(yè)應用,需要支付一定費用。

      3 測試與驗證

      針對開發(fā)平臺進行了部分測試和驗證,主要包括數(shù)據庫、Excel、Word、3D、CAD等,均采用文中所述開源軟件實現(xiàn)。

      (1) 數(shù)據庫、多層結構及文檔讀寫?;赟QLite數(shù)據庫、SqlSugar框架和多層結構開發(fā)了DB Builder,界面采用Krypton控件設計(圖2),實現(xiàn)了工程地質信息數(shù)據庫的表結構的管理、數(shù)據庫自動創(chuàng)建、文檔自動生成(圖3)等功能。

      “工程地質信息系統(tǒng)”實現(xiàn)了Excel格式鉆孔數(shù)據的批量導入、數(shù)據清洗等功能,可以自動檢查并指出錯誤位置(精確到行和列);同時可以導出符合標準的鉆孔Excel格式文件并用于CATIA三維鉆孔建立。

      (2) CAD 自動成圖。開發(fā)了灌漿數(shù)據管理程序,其CAD自動成圖部分采用netDxf開發(fā),可以根據灌漿數(shù)據自動繪制CAD灌漿鉆孔展示圖(圖4)。

      (3) 3D操作。采用Activiz 9.0試用版進行試驗研究,實現(xiàn)了ts文件的解析,可以打開三維地質模型并進行分層顯示、縮放、旋轉、平移等操作(圖5)。

      根據模型獲取三維剖面線是地質切剖面開發(fā)的關鍵技術(圖6),為后續(xù)開發(fā)掃平了障礙。

      測試結果表明:基于開源軟件和多層結構的工程地質數(shù)字化開發(fā)平臺方案是可行且高效的,可以在不依賴商業(yè)軟件的情況下,較好地滿足工程地質數(shù)字化開發(fā)的需求。

      4 結 語

      隨著計算機技術特別是網絡技術的發(fā)展,開源軟件已經成為人類智慧的寶庫。在工程地質數(shù)字化研發(fā)中引入開源軟件,結合當前先進技術制定合理的開發(fā)方案,可以幫助勘測企業(yè)在投資較少的情況下,快速實現(xiàn)工程地質數(shù)字化,同時最大限度滿足企業(yè)的個性化需求,對于勘測企業(yè)數(shù)字化轉型具有重要意義。

      值得注意的是,開源軟件并不等同于免費軟件,因此企業(yè)在引用開源軟件時需充分了解并嚴格遵守開源協(xié)議,以避免法律風險。

      參考文獻:

      [1] 王國光, 李成翔, 陳鍵. GeoStation地質三維系統(tǒng)圖件自動編繪方法研究[J]. 水力發(fā)電, 2014, 40(8): 69-71,85.

      [2] 石偉明, 劉仕勇, 田華兵. GeoSmart在勘探生產管理中的應用[J]. 水電站設計, 2017, 33(2) :27-28.

      [3] 劉聰元, 張春芳, 雷磊. 水利水電工程地質數(shù)據庫系統(tǒng)初步研究與開發(fā)[J].人民長江, 2020, 51(增1): 127-131.

      [4] 陳宇龍, 張宇寧. 工程地質信息化和自動成圖技術研究[J]. 水利水電技術, 2018, 49(4): 145-153.

      [5] 張偉偉. 地質礦產鉆孔數(shù)據庫管理及成圖系統(tǒng)設計與開發(fā)[D]. 合肥:合肥工業(yè)大學, 2013.

      [6] 段建肖, 廖立兵, 肖騰, 等. GOCAD三維地質建模成果的二次開發(fā)及應用研究[J]. 人民長江, 2015, 46(14): 51-54.

      [7] OSCHINA.開源軟件及國內發(fā)展現(xiàn)狀[EB/OL]. [2021-09-16]. https://www.oschina.net/news/33260/china-opensource-status.

      [8] Microsoft. C# 語言介紹[EB/OL]. [2021-09-16]. https: // docs.microsoft.com / zh-cn / dotnet / csharp / tour-of-csharp/.

      [9] 涂林延. 開源軟件許可證的法律屬性分析[J]. 法制與社會, 2021(6): 189-190.

      [10] 果糖大數(shù)據科技. SqlSugar ORM 5.X官網文檔[EB/OL]. [2021-09-16]. https://www.donet5.com/Home/Doc.

      [11] nissl-lab.npoi[EB/OL]. [2021-09-16]. https://github.com/nissl-lab/npoi.

      [12] haplokuon.netDxf[EB/OL]. [2021-09-16]. https://github.com/haplokuon/netDxf.

      [13] kitware. 3D Visualization Library for .Net C# and Unity[EB/OL]. [2021-09-16]. https://www.kitware.eu/activiz/.

      [14] 朱玲, 薛賀. 基于.NET平臺下的ORM組件的研究與應用[J].航空計算技術, 2007, 37(6): 89-91.

      [15] 陳煥彬,淺談. NET三層架構在系統(tǒng)開發(fā)中的應用[J].電腦與信息技術, 2016, 24(5): 45-47.

      (編輯:高小雲)

      猜你喜歡
      軟件開發(fā)
      信息安全環(huán)境下的計算機軟件開發(fā)研究
      計算機軟件開發(fā)中的分層技術運用
      建模技術在軟件開發(fā)中的應用
      軟件開發(fā)中數(shù)據庫設計理論的實踐
      核電廠定期試驗管理軟件開發(fā)
      科技視界(2016年21期)2016-10-17 20:50:03
      FPGA軟件開發(fā)過程中編碼規(guī)范的作用
      科技視界(2016年20期)2016-09-29 13:35:10
      丽江市| 安阳市| 泰来县| 永康市| 阳信县| 治县。| 三河市| 沙田区| 台南县| 鹤岗市| 会泽县| 蓬安县| 定南县| 合肥市| 布拖县| 广饶县| 房山区| 福泉市| 盐亭县| 临猗县| 天峻县| 合江县| 南涧| 南京市| 隆尧县| 鄂托克旗| 锡林郭勒盟| 城口县| 兴安盟| 三原县| 安国市| 江西省| 康马县| 肇州县| 儋州市| 保定市| 类乌齐县| 垣曲县| 巴南区| 明光市| 吉林省|