国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

礦山遙感監(jiān)測成果數(shù)據(jù)報表自動生成方法

2020-04-08 13:33:40刁明光趙元元趙丹寧王彥佐
科學技術(shù)與工程 2020年3期
關(guān)鍵詞:屬性數(shù)據(jù)矢量圖完整性

刁明光, 趙元元, 趙丹寧, 劉 芳, 王彥佐

(1.中國地質(zhì)大學(北京)信息工程學院,北京 100083;2.中國自然資源航空物探遙感中心,北京 100083)

遙感地質(zhì)調(diào)查技術(shù)涉及區(qū)域地質(zhì)遙感調(diào)查、基礎(chǔ)地質(zhì)環(huán)境遙感調(diào)查、地質(zhì)災害遙感調(diào)查、礦產(chǎn)資源遙感調(diào)查、礦山開發(fā)狀況遙感監(jiān)測和礦山環(huán)境遙感動態(tài)監(jiān)測等諸多領(lǐng)域[1]。長期以來,國土資源部門在礦山地質(zhì)環(huán)境監(jiān)測過程中,廣泛采用遙感技術(shù)[2],獲得了大量礦山遙感監(jiān)測數(shù)據(jù),并依據(jù)相關(guān)技術(shù)標準,對這些數(shù)據(jù)進行整理編制,將最終提交的成果數(shù)據(jù)按照規(guī)范進行入庫。

由于報表是對相關(guān)數(shù)據(jù)統(tǒng)計匯總的重要手段,因此管理部門多以報表的形式使用礦山遙感監(jiān)測成果數(shù)據(jù)。在提交入庫成果數(shù)據(jù)時,相關(guān)技術(shù)人員通常采用人工方式編制報表,在整理分析報表的基礎(chǔ)上,對報告中指標數(shù)據(jù)變化、數(shù)據(jù)間關(guān)系等諸多方面進行逐一核查。在編制報表過程中,技術(shù)人員常用ArcMap等GIS(geographic information system)工具對礦山遙感監(jiān)測成果數(shù)據(jù)進行數(shù)據(jù)解譯等處理工作,然后把從矢量圖層中獲取的屬性數(shù)據(jù)錄入到Excel中,進行手動計算和格式調(diào)整,進而對礦山遙感監(jiān)測成果數(shù)據(jù)進行分析、整理及存檔。在上述報表編制過程中,主要存在以下問題。

(1)圖層屬性數(shù)據(jù)關(guān)聯(lián)性強,導致報表數(shù)據(jù)計算量大,規(guī)則復雜。礦山遙感監(jiān)測成果數(shù)據(jù)種類多,涉及的計算過程煩瑣,工作重復性強,數(shù)據(jù)整理成本高。數(shù)據(jù)處理過程中,矢量圖層間的交叉導致不同報表間的屬性數(shù)據(jù)產(chǎn)生相應的關(guān)聯(lián)關(guān)系,手動填充報表的工作方式效率低,且極易出錯。

(2)入庫成果數(shù)據(jù)需求變化頻繁,導致報表類型多樣,重復率高。依據(jù)礦山遙感監(jiān)測工作流程,參照成果數(shù)據(jù)入庫技術(shù)要求[3],制定模板,完成報表制作。由于成果數(shù)據(jù)入庫技術(shù)要求變更頻繁,從而導致了報表模板需求不斷變化,引起報表類型的根本性變化,工作重復率高。

(3)統(tǒng)計計算依賴于第三方軟件導致報表維護困難,獨立性差。技術(shù)人員采用手動編制報表的方式,將要提交入庫的成果數(shù)據(jù)手動填充至報表模板中,這種工作模式要求技術(shù)人員在本地預先安裝Excel軟件,報表統(tǒng)計所依賴的第三方軟件的升級、更新都會對報表數(shù)據(jù)的準確性和可維護性造成影響。

為此,分析礦山遙感監(jiān)測成果數(shù)據(jù)報表源數(shù)據(jù)特點,規(guī)范報表生成工作流程,研究并驗證具有自動化、可視化、高效便捷特點的礦山遙感監(jiān)測成果數(shù)據(jù)報表生成方法具有重要意義。

1 報表源數(shù)據(jù)的完整性約束及生成流程

礦產(chǎn)資源遙感監(jiān)測成果數(shù)據(jù)報表源數(shù)據(jù),是基于礦山遙感監(jiān)測成果數(shù)據(jù)中矢量圖層中與空間數(shù)據(jù)相對應的屬性數(shù)據(jù)。在生成報表過程中,相關(guān)部門參照《地質(zhì)信息元數(shù)據(jù)標準》(DD 2006—05)[4],根據(jù)數(shù)據(jù)質(zhì)量信息、元數(shù)據(jù)信息、空間參照信息等約束,對成果數(shù)據(jù)入庫技術(shù)要求進行規(guī)范,然后根據(jù)入庫技術(shù)要求將涉及的矢量圖層中對應的屬性數(shù)據(jù)[5]進行統(tǒng)計并填充到對應的報表中,報表源數(shù)據(jù)完整性對報表的精確性和可靠性有著重要的影響。

1.1 報表源數(shù)據(jù)的完整性約束

實施數(shù)據(jù)完整性約束,可以避免形成不符合入庫技術(shù)要求的數(shù)據(jù),防止出現(xiàn)因錯誤的輸入或輸出而導致的無效操作和錯誤信息。礦山遙感監(jiān)測報表源數(shù)據(jù)來源于通過矢量圖層獲取的屬性數(shù)據(jù),是描述空間對象特征的數(shù)據(jù),這些屬性數(shù)據(jù)類型眾多、組織結(jié)構(gòu)復雜、存在著屬性完整性約束;同時,這些屬性數(shù)據(jù)來自于不同的矢量圖層,存在著參照完整性約束。這兩類完整性約束是提高報表統(tǒng)計的精確性和可靠性并保證報表質(zhì)量的重要手段。

1.1.1 屬性完整性約束

報表源數(shù)據(jù)類型的多樣性決定了其規(guī)范描述的復雜性。屬性完整性是指表中屬性字段的完整性。例如,數(shù)據(jù)類型、格式、值域范圍、是否允許空值等,屬性完整性約束保證在數(shù)據(jù)表中相應列輸入數(shù)據(jù)的有效性。

在編制入庫成果數(shù)據(jù)時,報表數(shù)據(jù)間存在著關(guān)聯(lián)性、唯一性、非空性、格式固定性等特殊的技術(shù)要求,從而使其數(shù)據(jù)規(guī)范描述變得復雜[6]。針對數(shù)據(jù)字段的精度、約束與條件、值域三方面,該規(guī)范明確定義了報表源數(shù)據(jù)屬性字段的約束集合。其中,數(shù)據(jù)精度規(guī)范主要包括度量單位、數(shù)據(jù)精度、數(shù)據(jù)格式等;字段約束與條件規(guī)范主要包括必選、可選、條件必選3種方式;字段值域規(guī)范主要包括屬性字段的取值范圍。

如表1所示,入庫技術(shù)要求針對報表源數(shù)據(jù)No1~No5的精度、約束與條件、值域等三方面進行了明確規(guī)范。這些描述方法的要求不盡相同,相互制約,使各字段符合屬性完整性約束。結(jié)合XSD(XML schema definition)典型機制,圖1以No 1為例,詳細描述基于的屬性約束描述方法[7]。該約束保證了報表生成過程的完整性,提高了報表統(tǒng)計的精確性。

表1 屬性完整性約束示例

圖1 No 1精度屬性完整性描述方法

1.1.2 參照完整性約束

在報表生成過程中,涉及的矢量圖層種類多、數(shù)據(jù)量大,且各矢量圖層間具有一定的屬性關(guān)聯(lián)。參照完整性約束的目的是保證多張報表間屬性數(shù)據(jù)的一致性,確保圖層間的關(guān)聯(lián)邏輯符合規(guī)范。

按照最新成果數(shù)據(jù)入庫技術(shù)要求,礦山遙感監(jiān)測成果數(shù)據(jù)類型分為矢量類型、影像類型、野外驗證、元數(shù)據(jù)文件、統(tǒng)計報表文件、文檔類型6種。其中,矢量類型數(shù)據(jù)為生成統(tǒng)計報表文件的報表源數(shù)據(jù)提供了重要基礎(chǔ)。如圖2所示,報表源數(shù)據(jù)是基于矢量類型數(shù)據(jù)中的屬性數(shù)據(jù)。其中,報表中大部分數(shù)據(jù)通過直接讀取矢量圖層對應的屬性數(shù)據(jù)獲得,少部分數(shù)據(jù)是獲取源數(shù)據(jù)后經(jīng)基本運算所得。

由圖2可知,生成報表需要的屬性數(shù)據(jù)分別從對應的矢量圖層中獲取,每張報表統(tǒng)計的數(shù)據(jù)量由一個或多個矢量圖層的屬性數(shù)據(jù)組成,統(tǒng)計數(shù)據(jù)時工作量大,數(shù)據(jù)間的關(guān)聯(lián)關(guān)系較為復雜。

圖2 參照完整性約束示意圖

以恢復治理報表為例,該報表統(tǒng)計的屬性數(shù)據(jù)需要從開發(fā)占地圖層、恢復治理圖層和塌陷區(qū)圖層中獲取。通過參照完整性約束,保證了表間數(shù)據(jù)關(guān)系的一致性,提高了報表統(tǒng)計的可靠性。

1.2 報表生成的工作流程

按照入庫技術(shù)要求,礦山遙感監(jiān)測成果數(shù)據(jù)報表的生成包括獲取矢量圖層、讀取相關(guān)圖層屬性數(shù)據(jù)、計算屬性數(shù)據(jù)、生成報表四部分,具體工作流程如圖3所示。矢量圖層獲取是結(jié)合自動導入和手動添加工程項目的方式進行的,通過對矢量圖層的屬性表中的屬性數(shù)據(jù)的讀取,進而對相關(guān)源數(shù)據(jù)進行參數(shù)運算,然后將計算結(jié)果及其他不需參數(shù)計算的報表源數(shù)據(jù)按照指定的報表模板依次填寫到對應的報表中,完成多張報表的自動生成工作。

圖3 報表生成工作流程

2 報表映射模型的建立

在報表編制過程中,建立報表映射模型可以有效地解決重復性操作問題,報表映射模型中報表模板的確立依賴于入庫技術(shù)要求。因此,在建立報表映射模型時,需從入庫技術(shù)要求中提取相關(guān)信息,制定模板,搭建映射關(guān)系。

報表映射模型采用面向?qū)ο蟮脑O計思想,實現(xiàn)從報表模板到映射類的直接轉(zhuǎn)換,如圖4所示,該模型主要由模板類型、映射規(guī)則和映射類定義三部分構(gòu)成,其中不同Excel報表模板通過一定映射規(guī)則直接轉(zhuǎn)換成對應的Report_KFZD_LYZK(礦山占地-利用狀況報表模板)、Report_HFZL(恢復治理報表模板)等映射類。礦山遙感監(jiān)測成果數(shù)據(jù)報表模板類型的多樣性決定了映射類的復雜性,針對每張工作表,映射類的屬性和方法需要單獨設計。通過結(jié)構(gòu)類型轉(zhuǎn)化和數(shù)據(jù)類型規(guī)范等映射規(guī)則,使模板類型與映射類保持緊密的關(guān)聯(lián)性和高度的一致性,從而完成整個工作簿的自動生成。

圖4 報表映射模型

3 報表數(shù)據(jù)讀寫組件的確立

依據(jù)工作要求,報表多以第三方軟件Excel格式呈現(xiàn),第三方軟件的升級會降低報表生成的效率和兼容性。因此,在系統(tǒng)設計時應盡量降低與第三方軟件的耦合度。

目前,NET平臺下對Excel文件進行操作的常用方案包括OLEDB(object linking and embedding database)數(shù)據(jù)源、COM(component object model)組件和NPOI(net poor obfuscation implementation)組件庫[8-11]。其中,OLEDB數(shù)據(jù)源方式在讀取數(shù)據(jù)的過程中缺乏靈活性,對內(nèi)存的消耗比較高;COM組件方式要求用戶本地安裝Office組件,系統(tǒng)環(huán)境依賴性較強;NPOI組件庫采用文件流方式對Excel文件進行讀寫操作,方式靈活,讀寫速度快,節(jié)省服務器資源,對第三方軟件的依賴性低。

結(jié)合礦山遙感監(jiān)測成果數(shù)據(jù)報表源數(shù)據(jù)特點、數(shù)據(jù)呈現(xiàn)方式和報表生成工作流程,參照成果數(shù)據(jù)入庫技術(shù)要求,采用NPOI組件技術(shù)實現(xiàn)對數(shù)據(jù)的讀寫操作有如下優(yōu)勢。

(1)數(shù)據(jù)讀寫速度快、穩(wěn)定性好。采用面向接口的設計架構(gòu),根據(jù)該框架提供的接口,編寫讀取模板路徑、打開操作文件、數(shù)據(jù)填充計算等相關(guān)操作的功能函數(shù),減小手動計算過程中的誤差,提高報表生成過程中數(shù)據(jù)的準確性。

(2)報表模板格式多、適應性好。組件庫中包含了大部分Excel的格式特性,可以對數(shù)據(jù)格式、公式等進行操作。提交數(shù)據(jù)類型的不斷變化,導致入庫技術(shù)要求的頻繁變更,進而影響報表模板的穩(wěn)定性,采用該框架可以適應模板樣式的不斷迭代,降低工作重復率。

(3)第三方軟件耦合度低、獨立性好。為減少用戶在礦山遙感監(jiān)測成果數(shù)據(jù)報表生成工作過程中對第三方軟件的依賴,自動生成的報表應滿足版本兼容性和獨立性。NPOI框架支持多種文件格式,如xls、xlxs、docx等。因此,NPOI既可以實現(xiàn)對Excel不同版本的兼容和相關(guān)獨立性,又增強了報表生成方法的可擴展性,減小了無第三方軟件或第三方軟件升級、更新帶來的影響。

結(jié)合礦山遙感監(jiān)測成果數(shù)據(jù)入庫技術(shù)要求,以及報表源數(shù)據(jù)的完整性約束,采用基于NPOI組件庫設計礦山遙感監(jiān)測成果數(shù)據(jù)報表自動生成方法,保證數(shù)據(jù)的準確性、增強模板的可擴展性、提高報表制作過程中系統(tǒng)的獨立性。

4 報表自動生成方法的設計與實現(xiàn)

礦山遙感監(jiān)測成果數(shù)據(jù)報表自動生成方法采用三層體系結(jié)構(gòu)[12],基于AE(ArcGIS engine)的插件技術(shù)[13],結(jié)合NPOI組件技術(shù)進行設計,并根據(jù)數(shù)據(jù)特點建立報表映射模型,通過映射模型完成數(shù)據(jù)間的交流傳遞,實現(xiàn)按照入庫技術(shù)要求、依據(jù)既定模板、自動生成報表的功能。該方法避免傳統(tǒng)方式操作報表的問題,又提高數(shù)據(jù)導出操作的靈活性和通用性。

4.1 報表自動生成方法的技術(shù)架構(gòu)

報表自動生成方法采用基于AE的插件技術(shù),調(diào)用特定接口讀取矢量圖層,并獲取圖層中的屬性數(shù)據(jù)。將數(shù)據(jù)按省、市、縣分別存到其對應的散列表(HashTable)中進行數(shù)據(jù)存儲,通過對NPOI組件調(diào)用,實現(xiàn)對Excel文件的讀寫操作,按照報表映射模型,將存儲在HashTable中的屬性數(shù)據(jù)寫入報表模板中從而實現(xiàn)生成報表,如圖5所示。

圖5 報表自動生成的整體架構(gòu)

報表自動生成方法的整體框架由AE接口、NPOI組件接口、可視化組件及報表模型組件四部分構(gòu)成。AE插件接口用來獲取來自矢量圖層的報表源數(shù)據(jù);可視化組件利用樹控件的節(jié)點展示報表生成信息,隨時顯示報表生成進度,并將錯誤信息及時反饋;NPOI接口用來靈活實現(xiàn)與報表間的數(shù)據(jù)交流;報表模型組件作為數(shù)據(jù)存儲的中間件,其中模型與不同的報表模板對應,根據(jù)不同的報表模型定義不同的屬性,方便地實現(xiàn)數(shù)據(jù)之間的傳遞。

4.2 報表自動生成方法的功能設計

在報表模板結(jié)構(gòu)的基礎(chǔ)上,在項目中添加NPOI應用,根據(jù)其提供的接口,編寫相關(guān)操作的功能函數(shù)。按照層次,報表模板包括的核心元素由上至下有:工作簿、工作表、行、單元格。與此相對應,NPOI通過Excel文件對象(HSSFWorkbook)、Excel表格對象(ISheet)、Excel行對象(IRow)、Excel單元格對象(ICell)這4個類分別來定義上述報表的核心要素,從而完成Excel文件的創(chuàng)建過程。通過對文件流(FileStream)等類的操作,將從矢量圖層獲取的屬性數(shù)據(jù)以HashTable的形式存入內(nèi)存,通過對HashTable進行操作,將數(shù)據(jù)寫入報表中。具體的操作數(shù)據(jù)流程如圖6 所示。

基于事件驅(qū)動的異步機制。如果在報表生成操作完成前操作用戶界面,會在單線程上執(zhí)行耗時操作,導致用戶界面停止響應。通過調(diào)用基于事件驅(qū)動的后臺線程組件(BackgroundWork),可以實現(xiàn)程序的異步操作。當主線程調(diào)用異步運行線程方法(RunWorkerAsny)時,則會觸發(fā)運行線程方法(DoWork),新建一個后臺線程,把耗時的操作放到后臺線程中執(zhí)行,從而實現(xiàn)多線程操作。同時,為了顯示后臺操作的執(zhí)行進度,通過調(diào)用控制報表進度條方法(ReportProgress)傳遞操作進度值,以實現(xiàn)與報表生成界面之間的交互操作。操作完成后,觸發(fā)后臺線程完成事件(RunWorkerCompleted),將后臺操作的完成結(jié)果反饋給用戶?;谑录?qū)動的異步機制的操作原理如圖7所示。

圖6 基于NPOI的數(shù)據(jù)讀取流程

圖7 基于事件驅(qū)動的異步機制

采用基于事件驅(qū)動的異步機制,避免因報表生成時間過長而導致的資源浪費,實時查看報表生成進度,報表生成過程中的基本信息得以實時反饋。

4.3 報表自動生成方法的實現(xiàn)

報表自動生成方法主要實現(xiàn)三大功能:報表生成、查看報表、導出日志。報表生成是主要功能,負責多張報表的自動生成;查看報表是報表生成成功后,按照指定目錄打開已經(jīng)生成的Excel文件進行查看;導出日志將程序執(zhí)行的日志信息以文本形式輸出,便于追蹤記錄在報表生成過程中存在的問題。

4.3.1 報表生成

報表生成功能的使用過程如圖8所示。在礦山遙感監(jiān)測成果編制系統(tǒng)[14]中,打開50萬的工程文件,手動導入本底5萬的矢量圖層,結(jié)合當前50萬項目中的矢量圖層,獲取生成報表中的屬性數(shù)據(jù),按照報表模板自動填充計算,生成多張報表。軟件根據(jù)用戶實際導入的矢量圖層,在工作目錄下準備相應屬性數(shù)據(jù),依據(jù)報表自動生成方法自動生成相應報表。報表生成過程中,在生成界面提示用戶生成成功的報表以及失敗的報表。生成成功的報表,如圖8中的礦山占地-礦種、廢棄礦山、恢復治理、復綠工程、地質(zhì)災害數(shù)量、年恢復治理占地、采空沉陷、滑坡、崩塌、泥石流、污染、尾礦等12張報表,可直接進行查看;生成失敗的報表,如圖8中的礦山占地-利用狀況報表,可點擊折疊符號,瀏覽詳細的錯誤信息。

圖8 報表生成

4.3.2 查看報表

查看報表功能實現(xiàn)了報表批量生成成功后,在生成界面提示生成成功,同時指出明確的生成路徑。用戶可以到指定路徑的文件夾下查看,在該文件夾中會出現(xiàn)按照省份進行劃分的Excel文件,每個文件中包含13張規(guī)定命名的工作表。由報表生成功能自動生成的恢復治理報表如圖9所示。

圖9 查看報表

4.3.3 導出日志

導出日志功能是將軟件運行時的事件以文本形式記錄導出,同時顯示程序運行狀態(tài),并以此為依據(jù)對程序執(zhí)行過程中存在的問題進行追蹤。導出結(jié)果如圖10所示。

圖10 導出日志

5 結(jié)論

在對礦山遙感監(jiān)測報表源數(shù)據(jù)特點和報表生成工作流程詳細分析的基礎(chǔ)上,設計并實現(xiàn)了礦山遙感監(jiān)測成果數(shù)據(jù)報表自動生成方法。

(1)將ArcGIS和Office兩大通用技術(shù)進行有機結(jié)合,實現(xiàn)了數(shù)據(jù)的有效交換。采用基于AE的插件式開發(fā)技術(shù),對報表源數(shù)據(jù)進行了完整性約束,減少了重復性操作,保證了數(shù)據(jù)準確性和報表間的關(guān)聯(lián)性,解決了報表計算數(shù)據(jù)量大的問題。

(2)采用對象關(guān)系(object/relationship,O/R)映射技術(shù),實現(xiàn)了矢量數(shù)據(jù)的面向?qū)ο蟛僮?。建立了報表映射模型,適應多類型、多變化的報表需求,降低了因報表模板變更而增加的工作成本,解決了報表需求類型多樣的問題。

(3)采用獨立于第三方的NPOI組件庫技術(shù),實現(xiàn)了報表自動生成功能,大大地提高了軟件的獨立性。運用NPOI組件式技術(shù)降低了各模塊間的耦合度,減低了對第三方軟件的依賴性,解決了報表統(tǒng)計依賴性強的問題。

實踐證明,利用NPOI技術(shù)實現(xiàn)的報表自動生成方法具有簡易、高效、易于升級維護等特點。該方法解決了在報表生成工作中遇到的實際問題,提高了報表編制的工作效率,為解決生產(chǎn)實踐中數(shù)據(jù)批量生成問題提供了新的設計思路和技術(shù)支持。

猜你喜歡
屬性數(shù)據(jù)矢量圖完整性
Analysis of the line current differential protection considering inverter-interfaced generation station and countermeasures
稠油熱采水泥環(huán)完整性研究
云南化工(2021年9期)2021-12-21 07:44:00
基于GIS的房產(chǎn)測繪管理信息系統(tǒng)架構(gòu)研究
科技資訊(2019年18期)2019-09-17 11:03:28
無源多傳感器綜合數(shù)據(jù)關(guān)聯(lián)算法研究
屬性數(shù)據(jù)分析教學改革初探
利用矢量圖對小物體從光滑斜面下滑運動探討
莫斷音動聽 且惜意傳情——論音樂作品“完整性欣賞”的意義
精子DNA完整性損傷的發(fā)生機制及診斷治療
樁身完整性檢測中缺陷的綜合判別
河南科技(2014年18期)2014-02-27 14:14:46
網(wǎng)絡中多敏感屬性數(shù)據(jù)發(fā)布隱私保護研究
舒城县| 平定县| 聂荣县| 和硕县| 东海县| 北票市| 墨竹工卡县| 梁山县| 长阳| 恩平市| 太谷县| 都江堰市| 浦城县| 黔江区| 甘南县| 钦州市| 陇川县| 西藏| 双江| 黑河市| 黔西县| 洱源县| 类乌齐县| 久治县| 土默特右旗| 荥阳市| 佳木斯市| 兴城市| 隆化县| 太白县| 赣州市| 门头沟区| 湖南省| 涡阳县| 合作市| 驻马店市| 油尖旺区| 禹州市| 壤塘县| 日土县| 千阳县|