章群英,張耀允,戴 瑋
(安徽省交通規(guī)劃設(shè)計(jì)研究總院股份有限公司,安徽 合肥 230088)
橋梁工程建設(shè)是交通系統(tǒng)中重要的組成部分,現(xiàn)階段我國橋梁基礎(chǔ)建設(shè)逐漸完備[1],但是橋梁養(yǎng)護(hù)工作成為現(xiàn)階段一項(xiàng)重要的任務(wù)[2]。由于施工、氣象、日照、以及承載力等因素日積月累的影響,橋梁不可避免發(fā)生裂縫、混凝土剝落、鋼筋銹蝕和支座伸縮裝置破損等病害[3]。隨著橋梁養(yǎng)護(hù)數(shù)據(jù)量的日益增多和BIM+GIS信息化技術(shù)的興起[4],傳統(tǒng)橋梁養(yǎng)護(hù)手段已不能滿足當(dāng)前的需求,人工處理方法明顯滯后[5,6],容易發(fā)生橋梁養(yǎng)護(hù)不及時(shí)甚至是交通事故,損害駕駛員及乘車人的生命和財(cái)產(chǎn)安全。
Web Service技術(shù)是當(dāng)前數(shù)據(jù)分享的主流技術(shù),該方法不受計(jì)算機(jī)軟、硬件的約束,可以直接獲取海量數(shù)據(jù),速度快、安全性高、成本低、操作簡單[7,8]。結(jié)合Web Service技術(shù)提供的第三方j(luò)son養(yǎng)護(hù)數(shù)據(jù)開發(fā)一種信息化融合工具,根據(jù)不同用戶需求,簡單、高效的完成復(fù)雜橋梁養(yǎng)管數(shù)據(jù)的篩選、處理和輸出,以便橋梁的及時(shí)維修和保養(yǎng),有效的保障橋梁正常安全運(yùn)營。
數(shù)據(jù)源主要包括Web Service技術(shù)通過URL地址分享的第三方j(luò)son數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)[9]。Web端的第三方j(luò)son數(shù)據(jù)包含大量字段信息,需要根據(jù)設(shè)計(jì)需求進(jìn)行篩選和處理。第三方j(luò)son數(shù)據(jù)運(yùn)用橋梁病害id作為關(guān)聯(lián)id識別不同時(shí)間同一構(gòu)件的相同病害。具體形式如下圖1所示。檢測時(shí)間由遠(yuǎn)及近,形式(a):從第二次檢測開始,其關(guān)聯(lián)id依次繼承上一次檢測的病害id。形式(b):從第二次檢測開始,后續(xù)所有檢測均繼承第一次檢測的病害id。形式(c):從第二次檢測開始,后續(xù)所有檢測隨意繼承之前檢測的任意病害id。利用橋梁病害的關(guān)聯(lián)id可以在工具開發(fā)時(shí),高效的去除冗余數(shù)據(jù)。
圖1 (a)~(c)分別為三種不同的構(gòu)件病害關(guān)聯(lián)形式
為了方便描述,根據(jù)數(shù)據(jù)內(nèi)容和結(jié)構(gòu)分別定義若干個(gè)表格。MySQL數(shù)據(jù)庫內(nèi)包含了病害基礎(chǔ)表、病害記錄表、病害編碼表、構(gòu)件編碼表、檢測任務(wù)表等。表1分別給出了主要表格即病害記錄表和病害基礎(chǔ)表的表結(jié)構(gòu),病害記錄表按病害種類劃分為多個(gè)表格,每個(gè)表格內(nèi)記錄了發(fā)生該病害的所有構(gòu)件的檢測和維修狀態(tài)包括檢測或維修時(shí)間、構(gòu)件id、維修狀態(tài)和病害描述等。病害基礎(chǔ)表記錄了所有構(gòu)件已維修或未維修或新產(chǎn)生的病害,只記錄當(dāng)前的三種病害處理狀態(tài)。病害編碼表和構(gòu)件編碼表利用數(shù)字編碼分別標(biāo)記病害類型和橋梁構(gòu)件類型。構(gòu)建編碼表用guid編碼識別不同的構(gòu)件。
表1 病害記錄表和病害基礎(chǔ)表的表結(jié)構(gòu)
病害記錄表更新和完善的目的是為了獲取發(fā)生某種病害的構(gòu)件,其病害從發(fā)生到未維修再到已維修的時(shí)間、狀態(tài)、檢測批次以及損壞面積、長度、寬度等信息,以便相關(guān)人員及時(shí)檢修。與病害記錄表不同的是,病害基礎(chǔ)表更新的目的是獲取不同構(gòu)件發(fā)生病害的當(dāng)前狀態(tài)。
根據(jù)以上需求,橋梁養(yǎng)管數(shù)據(jù)融合工具的設(shè)計(jì)主要包含三個(gè)模塊:病害記錄表的更新、病害基礎(chǔ)表的更新和病害記錄表的完善,設(shè)計(jì)框架如圖2所示。首先通過URL地址獲取web端第三方j(luò)son養(yǎng)護(hù)數(shù)據(jù),對數(shù)據(jù)進(jìn)行預(yù)處理后存入數(shù)據(jù)庫。用戶可通過養(yǎng)護(hù)工具打開數(shù)據(jù)庫數(shù)據(jù),根據(jù)實(shí)際需求更新或完善病害記錄表和病害基礎(chǔ)表。最后根據(jù)不同實(shí)際需求,下載更新結(jié)果。
圖2 設(shè)計(jì)流程圖
為了簡化用戶操作,增強(qiáng)數(shù)據(jù)的安全性和可靠性,保證數(shù)據(jù)入庫質(zhì)量,本課題引入一個(gè)病害預(yù)存表,后續(xù)更新也主要基于該表的操作。根據(jù)用戶需求并結(jié)合圖2的設(shè)計(jì)流程圖,病害記錄表的更新應(yīng)放在首位。
病害預(yù)存表是來自于web端接口的第三方養(yǎng)護(hù)數(shù)據(jù),由于該數(shù)據(jù)信息維度多,格式不規(guī)范,不易操作。因此在數(shù)據(jù)加載前,系統(tǒng)內(nèi)部應(yīng)提前對數(shù)據(jù)進(jìn)行預(yù)處理操作包括篩選、字段名稱修改、字段拆分、增加guid列、構(gòu)件id的匹配等。數(shù)據(jù)經(jīng)過預(yù)處理后,病害預(yù)存表內(nèi)僅留下所需的字段信息。
數(shù)據(jù)預(yù)處理階段是后續(xù)工具設(shè)計(jì)和開發(fā)的關(guān)鍵,由于數(shù)據(jù)源的不規(guī)范性,代碼處理較復(fù)雜,因此前期工作的可靠性十分重要。基于清洗的數(shù)據(jù),根據(jù)項(xiàng)目軟件開發(fā)需求,設(shè)計(jì)關(guān)鍵修改功能,這些功能為用戶的多樣需求提供保障,設(shè)計(jì)如下:
(1)為了方便用戶根據(jù)實(shí)際情況選擇或者修改橋梁工程故障檢測的開始時(shí)間和結(jié)束時(shí)間,除數(shù)據(jù)的增、刪、改功能外,應(yīng)給“開始時(shí)間”、“結(jié)束時(shí)間”設(shè)置時(shí)間列表。
(2)“狀態(tài)”列描述了橋梁病害的當(dāng)前狀態(tài)包括新病害、舊病害和已修復(fù),由于橋梁故障檢測人員不可避免存在錯(cuò)填、漏填現(xiàn)象,以及橋梁病害狀態(tài)的更新需求,設(shè)置下拉框供用戶選擇。
(3)病害id根據(jù)橋梁的構(gòu)件類型劃分病害,由于不同的構(gòu)件可能會發(fā)生多種病害,利用構(gòu)件樹和映射方法構(gòu)建病害分類體系樹結(jié)構(gòu),供用戶選填。
(4)構(gòu)件id與病害id不同,構(gòu)件類型的劃分更加詳細(xì),要求定位到具體的某個(gè)構(gòu)件上,因此種類繁多。這也是功能設(shè)計(jì)的一個(gè)難點(diǎn)和要點(diǎn)。確定后的構(gòu)件id是一串guid字符,除了提供樹結(jié)構(gòu)供用戶選填外,還要求通過定位guid字符直接找到該構(gòu)件,因此需要設(shè)置構(gòu)件實(shí)體分解系統(tǒng)EBS[10](Entity Breakdown System)。另外,應(yīng)設(shè)置時(shí)間段查詢工具,以實(shí)現(xiàn)優(yōu)先對某段時(shí)間的數(shù)據(jù)進(jìn)行更新。
節(jié)已完成對數(shù)據(jù)預(yù)處理和病害預(yù)存表修改功能的設(shè)計(jì)。在此基礎(chǔ)上,病害基礎(chǔ)表的更新設(shè)計(jì)還應(yīng)提供數(shù)據(jù)庫中已存在的舊病害基礎(chǔ)表,表中包含的構(gòu)件id、開始時(shí)間、結(jié)束時(shí)間等字段可以作為參考信息,以便用戶刪除重復(fù)或者錯(cuò)誤記錄如圖3所示。
圖3 舊病害基礎(chǔ)表的修改
本節(jié)設(shè)計(jì)主要包括兩個(gè)部分:橋梁病害記錄表批次id的完善和橋梁病害面積、長度和寬度的完善。
由于批次id需要軟件使用者橋梁檢測的先驗(yàn)知識,擁有橋梁構(gòu)件檢測的批次資料,因此,該模塊設(shè)計(jì)較為靈活。提供包含guid字段的檢測任務(wù)表,并設(shè)置復(fù)制粘貼和批量復(fù)制粘貼功能,以便高效完成病害記錄表批次id的更新。最后,將包含構(gòu)件id、缺損情況描述和缺損范圍字段的原始病害預(yù)存表通過底層篩選后提供給用戶,方便用戶根據(jù)構(gòu)件id找到其中對構(gòu)件損害面積、長度和寬度的詳細(xì)描述如圖4所示。
圖4 病害記錄表的完善
按照設(shè)計(jì)框架和思路,首先進(jìn)行病害記錄表和病害基礎(chǔ)表更新的開發(fā),在此基礎(chǔ)上進(jìn)行病害記錄表的完善。
開發(fā)基于MySQL數(shù)據(jù)庫,采用C#編程語言并結(jié)合Visual Studio 2017的Microsoft .NET Framework 4.6.1框架,與之前版本的框架相比,Microsoft .NET Framework 4.6.1包括了大量與可靠性、穩(wěn)定性、安全性和性能相關(guān)的修復(fù)。利用URL地址接收Web Service技術(shù)分享的第三方j(luò)son數(shù)據(jù),該數(shù)據(jù)需要經(jīng)過清理、修改和導(dǎo)出,實(shí)現(xiàn)桌面端養(yǎng)護(hù)數(shù)據(jù)的查閱、處理和下載等功能。具體操作包括數(shù)據(jù)讀入、數(shù)據(jù)加工、數(shù)據(jù)下載三個(gè)步驟,通過用戶與軟件的協(xié)同操作,對數(shù)據(jù)庫表格進(jìn)行特定的添加、刪除、保存、匹配等操作,獲取所需養(yǎng)護(hù)數(shù)據(jù),實(shí)現(xiàn)了Web端第三方數(shù)據(jù)的加工和融合。
以馬鞍山長江大橋左汊懸索橋項(xiàng)目的數(shù)據(jù)為例,在實(shí)際項(xiàng)目運(yùn)用中,該橋梁養(yǎng)管數(shù)據(jù)融合工具具有以下特點(diǎn):(一)對于橋梁病害數(shù)據(jù)數(shù)據(jù)源的清理、入庫后的加工處理較為完備,通用性強(qiáng),可應(yīng)用于其他橋梁公路項(xiàng)目;(二)可以在入庫前和入庫后分別檢查數(shù)據(jù)源即第三方j(luò)son數(shù)據(jù)的錯(cuò)誤,因此數(shù)據(jù)質(zhì)量明顯提高;(三)該工具界面相對簡潔、對復(fù)雜數(shù)據(jù)處理簡單化、提高了數(shù)據(jù)加工的總體效率。
本文基于馬鞍山長江大橋左汊懸索橋項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)和web端第三方數(shù)據(jù),利用.net框架和MySQL數(shù)據(jù)庫,根據(jù)用戶需求開發(fā)了橋梁養(yǎng)管第三方養(yǎng)護(hù)數(shù)據(jù)融合工具,該工具可為橋梁BIM技術(shù)中的養(yǎng)護(hù)模塊提供數(shù)據(jù)支撐,幫助檢查員及時(shí)發(fā)現(xiàn)和維修橋梁,盡可能的阻止交通事故的發(fā)生,更好的保障人民的生命和財(cái)產(chǎn)安全。