李 超 滕德貴 胡 波
(1. 重慶市勘測院, 重慶 401121; 2. 重慶市智能感知大數據產業技術協同創新中心, 重慶 401121)
隨著城市基礎設施建設加速,在自動化安全監測系統逐漸普及的背景下,多數建設工程的安全監測項目數據和成果在進行處理時,需要生成各類數據成果報表[1-2]。在對這些數據進行報表生成時,格式要求差異較大,多數行業用戶常用方式是使用Office辦公軟件進行數據組織和拖拽報表,不能滿足不同用戶對海量監測數據的智能管理和對報表樣式自定義配置的個性化要求,報表生成的自動化程度低、出錯概率較高[3-4],少部分監測系統軟件采用模板定制及web自動生成的報表[5-7],針對性強,未考慮通用性及兼容性,適用面窄,難以推廣使用,國內外針對通用監測報表的研究較少。
本文研究實現了一種城市基礎設施安全監測數據的報表自動生成方法,以解決現有技術中存在的在處理安全監測數據生成報表時,生成報表不能智能化的滿足不同用戶對海量監測數據的入庫管理和對報表樣式進行自定義配置的個性化要求,報表生成的自動化程度低、可靠性低的技術問題。
一套完整的監測數據成果報表解決方案包括數據入庫、數據整理、變形計算、報表組織輸出等步驟[9-11],為實現靈活度、可靠性、自動化程度高的安全監測通用智能報表生成系統與方法,本文結合城市基礎設施安全監測專業相關標準與技術規范,廣泛且深入地調研了國內監測行業對數據報表的共性和個性化需求。
(1)數據入庫要靈活高效:基礎性的原始監測數據具有多源和異構的特征,例如傳統人工監測數據、手機App采集數據、自動化傳感器采集數據等,針對安全監測數據的入庫需要實現標準化處理及批量化入庫;
(2)數據預處理要智能化:原始監測數據不可避免會存在粗差,智能化的進行數據預處理,需對數據進行粗差自動探測、清洗和實時計算預警;
(3)報表數據的分類組織要靈活:不同建設單位或不同類型的監測項目,甚至同一個項目中,相同類型的監測輸出的報表分類不盡相同,例如幾何水準監測點,在不同場景下可分別對應拱頂沉降、豎向位移、道床下沉等分類名稱,需要根據項目要求靈活組織;
(4)報表支持的類型要全面:一般來說,報表類型包括原始數據報表、監測日報、監測期報以及在特殊時段的自定義報表,用戶在使用時要能方便地選擇報表時段和報表類型;
(5)監測維度和特征值的輸出要支持配置:一種監測類型通常會有多個監測維度,不同的監測維度需支持選擇性輸出;同一監測維度需支持初始值、本次測值、本次變化量、累計變化量、變化速率、控制閾值等特征值的選擇性輸出;
(6)報表風格樣式要靈活可定制:不同地域或不同行業用戶對報表成果格式的要求不盡相同,需要有選擇性地輸出監測統計分析表、監測詳細數據表、監測過程曲線圖和對比分析圖表等;在細節方面對數據取位、時間格式、文本字體、曲線類型也有要求,這就需要能夠提供靈活多樣的報表形式定制功能。
基礎設施建設施工及運營過程中的采集的各種安全監測數據,例如位移、應力、振動、環境變量等,可通過不同方式獲取,如圖1所示,包括傳統人工測量、手機APP半自動化測量、智能傳感器的全自動化監測和第三方異構數據庫的同步抓取等;而對于智能傳感器的自動化監測方式,同一數據類型也會因為用到的設備廠商或型號不一樣,使得監測數據具有不同的格式[8]。設計各種監測類型的標準數據表,利用ICE、Mqtt等通信協議,通過Excel/Xml/Json/Http短報文等形式,將多源異構的安全監測數據標準化處理,并批量化并行入庫。表1是平面位移監測的標準數據表結構設計,設計完成后提交數據庫引擎生成相應數據庫表,即可進一步接收各種來源的原始監測數據,表結構可根據業務需要動態調整設計并更新。
數據在入庫的同時對數據的基本屬性、測點名稱、監測時間、新舊點名沖突、粗差等進行校驗預處理,并根據差分運算規則進行自動計算,自動計算的方式支持實時或定時觸發,計算可得到本次變形量、累計變形量、變形速率等數據形成平面計算成果數據管理表。

表1 平面位移監測的標準數據表結構設計
對于不同用戶,報表輸出的數據維度不確定,數據項對應的名稱也不固定。為實現報表的靈活分類,設計可配置的數據維度管理表,用來批處理分類查詢標準化處理后入庫的安全監測數據,智能生成監測結果分類數據表,完成安全監測數據的多層級分組。
如圖2所示,以平面位移監測數據分類舉例說明:先定義平面位移監測的數據維度,具體有5個維度,其中“X方向位移、Y方向位移、Z方向位移”是用戶需要導出的維度,通過在點位信息表中將各維度的自定義描述信息“基坑坑頂X位移、基坑坑頂Y位移、基坑坑頂豎向位移”按點配好后批量導入并更新到數據維度管理表,再通過選擇web界面的工點下拉菜單和時間控件,即可查詢出以自定義分類命名的三張數據表,如圖4所示,數據記錄按點名排序,完成安全監測數據的自定義分類組織。用戶還可根據需要設置“數據取位”和“是否導出”等選項。
針對不同用戶的個性化報表要求,首先進行報表模板的結構化解析,通過多類別的智能書簽對報表模板中所包含標準組件進行編輯處理;其次結合待生成報表的內容和風格,設計報表模板的參數配置表,在項目數據庫中對文字、圖表內容及格式進行參數詳細定制,通過模板配置與數據庫聯動配置的雙向定制化,實現不同格式的報表成果輸出。
(1)基于書簽的報表模板的結構化解析
首先結合行業多個用戶提供的報表成果,梳理具有較好普適性的標準模板。根據報表所包含的內容,分成各個標準定義的模塊,例如封面、目錄、監測概況、綜述分析、數據表、曲線可視表達、數字簽章等模塊,并通過Word書簽編輯器對這些標準模塊增加書簽,模板結構的組成支持調整與拓展。通過規范命名的書簽形式,可對后續內容的自動編輯進行定位。比如:對“綜述分析”模塊部分,新增書簽“tag_0_綜述分析”,后續如需整體填充或修改“綜述分析”的內容,自動定位到該書簽執行相關操作如圖3所示。
同時可進行顆粒度更精細的文字類、表格類、圖形類詳細條目屬性的模板解析。例如:對于文字條目屬性,報表的封面構件包含:報表編號、項目名稱、工點名稱、報告日期、報表出具單位等文字類屬性,針對每個屬性點,新增相應的文字類書簽,如:新增書簽“tag_1_報告日期”、“tag_1_項目名稱”等。上述條目屬性書簽的數量不受限制,支持嵌套,例如標準組件類書簽中可含有文字類書簽,只需保證條目屬性書簽的唯一性即可。
(2)基于數據庫的雙向聯動配置
上述包含各類書簽的報表模板配置完成后,通過與數據庫聯動配置的雙向定制,設計報表模板的參數配置表,對標準組件、文字、表格、圖形的內容及風格進行參數詳細定制,參數主要包括以下方面:報表類型、數據塊名稱、屬性名稱、書簽標識、操作參數、內容參數、風格參數,等等。在配置好這些參數后,根據字段“書簽標識”與模板中的書簽對應關聯,從而形成模板設計與數據庫配置的雙向聯動機制。
在配置模板文字類詳細條目的內容與風格時,以某用戶監測日報封面的合同編號的處理為例,如表2所示。

表2 某用戶監測日報封面的參數配置示例
在報表生成并輸出時,程序自動搜索和定位封面書簽“tag_1_合同編號”,并執行合同編號內容“2018-KC-0272”替換操作,同時賦予“黑體、四號、加粗”的字體風格,形成符合參數配置表的文字內容與風格。
在配置模板表格類詳細條目的內容與風格時,首先定義數據表的字段構成與排序,再設置圖表的搭配表達方式。例如:針對“深層水平位移”的數據表格,定義其字段組成及排序為“深度、初始測值、本次測值、上次累計值、本次累計值、本次變化、變化速率、地質土層”,設置其圖表搭配方式為“圖形表格嵌套”,后續程序會根據上述參數自動預覽生成相應數據表和圖形并進行填充。
(3)不同風格的監測報表在線輸出
基于上述雙向配置的設計,針對不同的用戶的個性化需求,只需針對模板進行簡要梳理配置,即可實現成果報告的快速在線生產輸出。其中最主要的差異之處體現在報告的組成結構、圖表的配合方式和曲線輸出位置等。
本文對多源異構數據的標準化入庫、數據自定義分類組織、報表模板的雙向配置三方面進行研究,基本實現了滿足不同用戶的安全監測數據報表的自動生成方法。實踐表明,通過將多源異構的安全監測數據標準化處理,采用監測維度管理表實現數據靈活分類的機制,再針對不同的用戶單位的監測報告模板進行Word書簽和報表參數配置,就能實現報表的自動敏捷生成,兼容性好,效率較高,出錯概率低,為解決生產應用中報表自動化批量輸出提供了新的技術思路,后期還將針對提升模板配置的精細化程度和大數據量項目報表的輸出效率做進一步研究。