楊 歌,汪 維,陶 濤,信昆侖,李樹平,顏合想
(同濟(jì)大學(xué)環(huán)境科學(xué)與工程學(xué)院,上海 200092)
防治城市內(nèi)澇、保障城市水環(huán)境健康、維持城市正常運(yùn)行等都離不開城市排水系統(tǒng)良好的運(yùn)營管理[1]。將地理信息系統(tǒng)(GIS)技術(shù)與給排水專業(yè)知識相結(jié)合,建立城市排水管網(wǎng)GIS系統(tǒng),可以極大地提高管網(wǎng)基礎(chǔ)信息的更新維護(hù)效率,加快相關(guān)部門對管網(wǎng)事故的反應(yīng)速度并豐富其應(yīng)對措施。排水管網(wǎng)GIS數(shù)據(jù)庫建立和運(yùn)行的各個階段均可能產(chǎn)生數(shù)據(jù)異常,如測量、繪圖或施工過程中的誤差導(dǎo)致采集到的數(shù)據(jù)本身存在異常;人工錄入、編輯處理和數(shù)據(jù)修復(fù)操作引入的數(shù)據(jù)異常;使用過程中用戶的理解不當(dāng)或錯誤使用帶來的數(shù)據(jù)異常[2]。數(shù)據(jù)是貫穿于GIS系統(tǒng)各開發(fā)階段與組成部分的重要要素,低質(zhì)量的排水管網(wǎng)數(shù)據(jù)可能會對排水管網(wǎng)的建模、運(yùn)行分析及管理方案的決策等多個方面造成不良影響[3]。因此,如何精準(zhǔn)、高效地維護(hù)和管理城市排水管網(wǎng)GIS數(shù)據(jù)庫,保證數(shù)據(jù)信息的完整性、準(zhǔn)確性與系統(tǒng)性,是一項重要的研究課題。
國外對GIS用于排水系統(tǒng)的研究范圍很廣,如將GIS應(yīng)用于計算排水管道的故障概率[4]、估算污水處理廠服務(wù)人口[5]、計算城市污廢水的熱量[6]等,但目前尚未有針對排水管網(wǎng)GIS數(shù)據(jù)異常檢測與修復(fù)的研究。國內(nèi)學(xué)者則在排水管網(wǎng)GIS數(shù)據(jù)質(zhì)量方面進(jìn)行了一定的有益探索,如秦立為[3]梳理了排水管網(wǎng)GIS系統(tǒng)的常見數(shù)據(jù)異常形式和原因等,據(jù)此提出了相應(yīng)的數(shù)據(jù)質(zhì)量評價指標(biāo)及方法。孔彥虎[7]提出了對拓?fù)洚惓!傩匀笔АD層合并等問題的檢測和修復(fù)方法,但僅針對單個案例提出該方法,未進(jìn)行系統(tǒng)性研究。王騰龍[8]結(jié)合案例分析了管網(wǎng)中的拓?fù)洚惓#诳臻g數(shù)據(jù)庫中編寫規(guī)則來檢測和修復(fù)數(shù)據(jù),對人工判斷的依賴性較強(qiáng)。以上研究方法一般僅能識別和修正管網(wǎng)拓?fù)溴e誤和部分屬性錯誤,而針對文本屬性、管徑和高程等重要數(shù)值屬性的研究甚少,尚缺乏高效可靠的檢測與修復(fù)策略。本文提出了系統(tǒng)性解決排水管網(wǎng)各類主要數(shù)據(jù)異常問題的方法,具有一定的普適性,并采用人機(jī)結(jié)合的處理方式大大降低了人工成本,為排水管網(wǎng)GIS數(shù)據(jù)的智能化維護(hù)與管理提供了有效的技術(shù)支撐。
排水管網(wǎng)的拓?fù)洚惓0ㄅ潘?jié)點與排水管渠的缺失和重復(fù)、管段端點或節(jié)點的位置不準(zhǔn)確、排水管渠方向錯誤、管網(wǎng)始端節(jié)點與終端節(jié)點標(biāo)注錯誤等。針對管段和節(jié)點的重復(fù)、孤立、缺失或位置錯誤等問題,可借助ArcGIS軟件的“拓?fù)洹惫ぞ呦洌瑸榕潘芫W(wǎng)中的點、線、面要素建立合理的空間規(guī)則,并在錯誤檢查器中進(jìn)行相應(yīng)的拓?fù)湫迯?fù)[9]。而針對部分特殊的拓?fù)鋯栴},可進(jìn)一步采用結(jié)構(gòu)化查詢語言(structured query language, SQL)在SQL Server或其他軟件中編寫查詢與修正的規(guī)則來進(jìn)行檢測與修復(fù):判斷排放口或出水口,即查詢某個管段的下游節(jié)點不為任意管段的上游節(jié)點;判斷反向管段,即判斷某個管段的起點只為其他一根或多根管段的起點,不是任意管段的終點,且它的終點只為其他一根或多根管段的終點,不是任意管段的起點。
排水管網(wǎng)數(shù)據(jù)庫的文本屬性項主要包括排水體制、管渠材料、管理歸屬部門3類。屬性項的表述不應(yīng)出現(xiàn)存在空值、同種類型表述方式不同、表述方式存在包含關(guān)系等錯誤。本研究基于Jaccard相似系數(shù)(Jaccard similarity coefficient)矩陣進(jìn)行排水管網(wǎng)文本屬性項的歸類與修復(fù)。Jaccard相似系數(shù)的數(shù)學(xué)定義是集合A與集合B的交、并集大小的比值,Jaccard相似系數(shù)越大,說明兩文本間的相似度越高,從而實現(xiàn)文本分類[10]。基于Jaccard相似系數(shù)矩陣的排水管網(wǎng)屬性項半自動分類方法包括如下5個步驟。
(1) 剔除某一屬性項中的重復(fù)值,形成一組新的數(shù)據(jù)TA={da1,da2,da3,…,daN},計算dai在原始數(shù)據(jù)TAraw中出現(xiàn)的概率pi,按照文本出現(xiàn)的概率從大到小排序,得到兩組相互對應(yīng)的數(shù)據(jù){p1,p2,p3,…,pN}和{da1,da2,da3,…,daN}。
(2) 根據(jù)Jaccard相似系數(shù)的相反數(shù)計算TA不同文本之間的1-gram距離Ji,j,如式(1)。
(1)
其中:Li——文本dai的字符個數(shù);
Lj——文本daj的字符個數(shù);

(3)Ji,j形成距離矩陣J,如圖1所示,Ji,j表示dai跟daj的1-gram距離。為避免重復(fù)計算,只需計算距離矩陣J的上三角數(shù)據(jù),距離矩陣J的對角線數(shù)值全部為0。

圖1 距離矩陣
(4) 根據(jù)距離矩陣J,從da1遍歷到daN,將1-gram距離小于某一閾值的兩文本劃分為同一類別,形成分類矩陣C。對分類矩陣C進(jìn)行人工調(diào)整形成C′,以確保分類準(zhǔn)確。如圖2所示,處于矩陣C′同一行的文本為同一類別,排在前面的文本出現(xiàn)的頻率較大,分類矩陣的行數(shù)等于類別數(shù)目。

注:NULL為原數(shù)據(jù)中的空值;[]為矩陣長度不夠的占位空值

文本屬性項問題的處理流程如圖3所示,異常的屬性值將被修改為其可能正確的表述中與其距離“最近”的修正值,而距離“最近”通過比較1-gram距離確定。被歸為同一類的所有屬性值,將被修改為“最常見”的正確屬性值,而“最常見”通過統(tǒng)計各屬性項在數(shù)據(jù)集中出現(xiàn)的次數(shù)確定。這種方法具有無需挑選訓(xùn)練集對其進(jìn)行標(biāo)記、人工操作簡單、維護(hù)成本低等優(yōu)點。

圖3 屬性項半自動分類方法流程圖
本文提出基于規(guī)則的異常管徑修復(fù)方法,排水管網(wǎng)的管徑問題包括錯誤值和缺失值,處理流程如圖4所示。將明顯不在取值范圍內(nèi)的錯誤管徑值修改為0,針對管徑值為0的管段進(jìn)行逐個判斷填充,根據(jù)用戶自定義的一系列參數(shù)取值,結(jié)合上下游管段的實際存在情況填充缺失管徑。在程序編寫中,函數(shù)如式(2)。

圖4 管徑問題的處理流程圖
[H, ifup, tick] = GetH(t, H0set, FL_Q, ifupprior, ifdel, Nmax)
(2)
其中:t——臨時變量,表示第t根缺失管徑的管段;
H0set——缺失管徑的管段集合;
FL_Q——管段數(shù)據(jù);
ifupprior——確定非管網(wǎng)始端管段管徑按上游或下游管段管徑填充的參數(shù);
ifdel——確定管網(wǎng)始端管段管徑按下游管段管徑填充或直接刪除的參數(shù);
Nmax——單根孤立管段管徑的填充值;
H——管徑填充值;
ifup——記錄返回管徑值是上游還是下游管徑的參數(shù);
tick——記錄管段的上游或下游管段的總數(shù)。
具體輸入?yún)?shù)說明如表1所示,輸出參數(shù)說明如表2所示。

表1 輸入?yún)?shù)說明

表2 輸出參數(shù)說明
若返回的管徑值為0,說明此時管網(wǎng)中至少存在兩條連續(xù)的缺失管徑管道,這種情況可以通過兩次或多次填充解決。但考慮到多次填充可能帶來較大誤差,重復(fù)填充的次數(shù)不宜過多,關(guān)于管段孤立或連續(xù)管徑缺失的情況還需結(jié)合外部信息才能更好地進(jìn)行填充。
在一個管段分支中,排水管道的高程一般遵循從上游到下游逐漸下降且無突變的規(guī)律,基于這種規(guī)律可以識別出異常的高程值。首先對管段高程進(jìn)行預(yù)處理,將明顯異常的高程值以“埋深0.7 m”為標(biāo)準(zhǔn)進(jìn)行修正,以降低后續(xù)不合理檢測或修復(fù)情況的發(fā)生概率。然后整理排水管網(wǎng)GIS數(shù)據(jù),構(gòu)造節(jié)點索引的管段分支集合。每個分支用一個數(shù)組來表示,按從下游往上游追溯排列,分支branch[i]=[分支終端節(jié)點編號, 管段1編號, 管段2編號, …, 管段n-1編號, 管段n編號, 分支始端節(jié)點編號],分支集合topology={branch[1], branch[2], …, branch[m-1], branch[m]}。構(gòu)造這個管段分支集合的函數(shù)流程如圖5和圖6所示。

圖5 構(gòu)造管段分支集合的主函數(shù)流程圖

圖6 構(gòu)造管段分支的迭代函數(shù)流程圖
根據(jù)構(gòu)造出的全部管段的分支集合,基于最小二乘法進(jìn)行分支管段高程異常值的檢測。對每個分支上各根管段的下游(或上游)高程做直線擬合(分支管段數(shù)為兩根)或二次曲線擬合(分支管段數(shù)≥3根),并做出曲線的50%置信區(qū)間,超出置信區(qū)間的管段上游和下游高程被認(rèn)為可能是錯誤的,需要進(jìn)行標(biāo)記并結(jié)合外部信息具體判斷。分支管段高程處理方法實現(xiàn)的流程如圖7所示。

圖7 分支高程異常檢測流程圖
分支高程修復(fù)結(jié)束后,還需要對各分支連接處的高程進(jìn)行檢測。若多通節(jié)點處有上游管段下游管底標(biāo)高≤(下游管段上游管底最小標(biāo)高-上游管段直徑),則認(rèn)為管段高程可能有誤。若檢查井處不滿足井底標(biāo)高≤下游管段上游管底標(biāo)高或井底標(biāo)高≤上游管段下游管底標(biāo)高,則認(rèn)為檢查井井底標(biāo)高可能有誤。
Matlab具有強(qiáng)大的數(shù)據(jù)處理能力,適應(yīng)于排水管網(wǎng)數(shù)據(jù)量大且復(fù)雜的特點,因此,本研究根據(jù)上述方法,在Matlab的GUIDE中編寫交互界面,開發(fā)排水管網(wǎng)異常數(shù)據(jù)檢測與修復(fù)程序,從而實現(xiàn)人機(jī)結(jié)合的數(shù)據(jù)異常處理策略。該程序包括4個界面,如圖8所示。界面一是主界面,用于讀取GIS數(shù)據(jù)、保存GIS數(shù)據(jù)中的列信息、將修改后的GIS數(shù)據(jù)寫入新的GIS文件中,由用戶輸入管段編號等數(shù)據(jù)的所在列,方便程序讀取。界面二是排水管網(wǎng)屬性項歸類與分析界面,由用戶輸入屬性數(shù)據(jù)表名及待分析屬性所在列,程序可計算并展示出該屬性所有獨立文本出現(xiàn)的次數(shù)及分類矩陣,用戶可根據(jù)經(jīng)驗進(jìn)行人工調(diào)整并據(jù)此進(jìn)行修復(fù)。界面三是管徑異常值檢測與修復(fù)界面,由用戶輸入管徑所在列,程序可計算并展示出管徑所有值出現(xiàn)的次數(shù),用戶可將明顯異常的管徑修改為0,程序可根據(jù)用戶設(shè)定的參數(shù)返回相應(yīng)的管徑修正參考值。界面四是檢測和修復(fù)管段高程界面,由用戶輸入相應(yīng)高程所在列,將高出地面的管段高程和埋深過大的高程修改為埋深0.7 m,接下來可以對所有分支進(jìn)行曲線擬合,識別異常高程,并將曲線上的點作為異常高程的推薦修改值。程序可以將異常的上下游高程及推薦值在界面的表格中展示,用戶可根據(jù)經(jīng)驗判斷修正表格中的高程推薦值,據(jù)此修復(fù)GIS數(shù)據(jù)。

圖8 排水管網(wǎng)異常數(shù)據(jù)檢測與修復(fù)的程序界面
以ZH市部分區(qū)域的排水管網(wǎng)GIS數(shù)據(jù)作為工程案例的研究對象。評估范圍內(nèi)有排水管道共1 969.77 km,排水溝渠共505.01 km。對原始數(shù)據(jù)進(jìn)行預(yù)處理,用節(jié)點索引的分支管段拓?fù)浣Y(jié)構(gòu)表示法構(gòu)造管網(wǎng)的管段分支集合和特殊節(jié)點集合,簡化后得到排水管道共6 805個分支。異常數(shù)據(jù)檢測與修復(fù)結(jié)果如表3所示。

表3 ZH市排水管網(wǎng)GIS數(shù)據(jù)異常數(shù)據(jù)檢測與修復(fù)結(jié)果
將所有異常管段和節(jié)點寫入新的GIS文件,檢測與修復(fù)的結(jié)果可在ArcGIS中與原始GIS數(shù)據(jù)對比展示。如圖9所示,左側(cè)是不同類型異常的圖層列表,將異常數(shù)據(jù)分為“拓?fù)洹薄肮芮叽纭薄案叱獭焙汀捌渌?大類,此外可能正確的修正值也被寫入GIS文件的屬性數(shù)據(jù)庫中以供參考。

圖9 在ArcGIS中查看異常數(shù)據(jù)
目前,我國絕大部分城市都已經(jīng)建成或正在建立城市排水管網(wǎng)GIS數(shù)據(jù)庫,但這些數(shù)據(jù)庫往往存在著不同程度的數(shù)據(jù)質(zhì)量問題。只有保證高質(zhì)量的數(shù)據(jù),才能使GIS系統(tǒng)真正發(fā)揮出在排水管網(wǎng)信息化管理和建模分析等方面的作用。本文著重研究和實現(xiàn)了具有一定普適性的解決排水管網(wǎng)各類主要數(shù)據(jù)異常問題的方法:總結(jié)了拓?fù)錂z測的兩種實現(xiàn);提出了文本屬性項的半自動分類與修復(fù)方法;實現(xiàn)了基于規(guī)則的上下游管徑填充法;構(gòu)造了一種節(jié)點索引的分支管段拓?fù)浣Y(jié)構(gòu)表示法,在此基礎(chǔ)上實現(xiàn)了基于最小二乘法的分支管段高程異常檢測與修復(fù);基于上述策略開發(fā)了具有屬性項歸類、管徑修復(fù)和高程修復(fù)功能的排水管網(wǎng)異常數(shù)據(jù)檢測與修復(fù)程序,實現(xiàn)了人機(jī)交互式的異常數(shù)據(jù)檢測與修復(fù);最后將該方法應(yīng)用到ZH市某區(qū)域排水管網(wǎng)GIS數(shù)據(jù)的異常檢測與修復(fù)中,驗證了方法的可行性與實用性。