王海濤,李宏偉,王振宇
(1.信息工程大學(xué) 地理空間信息學(xué)院,河南 鄭州 450001)
基于ArcGIS Objects的地下管線(xiàn)數(shù)據(jù)質(zhì)量檢查方法
王海濤1,李宏偉1,王振宇1
(1.信息工程大學(xué) 地理空間信息學(xué)院,河南 鄭州 450001)

通過(guò)對(duì)影響數(shù)據(jù)質(zhì)量因素的分析,總結(jié)出屬性質(zhì)量檢查、坐標(biāo)信息檢查、關(guān)聯(lián)信息檢查、超鏈接信息檢查、統(tǒng)計(jì)檢查等5個(gè)方面的檢查內(nèi)容;運(yùn)用GIS方法對(duì)地下管線(xiàn)成果數(shù)據(jù)進(jìn)行質(zhì)量檢查,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
質(zhì)量檢查;地下管線(xiàn);要素類(lèi);XML;信息
目前,地下管線(xiàn)數(shù)據(jù)存在的問(wèn)題有:①一個(gè)區(qū)域不同的測(cè)區(qū)可能由不同單位測(cè)量,各個(gè)單位對(duì)測(cè)量規(guī)范、數(shù)據(jù)規(guī)定的理解掌握不同,工作方法也有細(xì)微差別,可能導(dǎo)致整個(gè)區(qū)域的管線(xiàn)數(shù)據(jù)存在錯(cuò)誤[1-3];②地下管線(xiàn)種類(lèi)多、隱蔽性強(qiáng)、數(shù)據(jù)量大,在測(cè)量過(guò)程中由于測(cè)量員的測(cè)量誤差或操作失誤往往會(huì)導(dǎo)致重復(fù)測(cè)量、遺漏測(cè)量、測(cè)量不全面等錯(cuò)誤;③目前基于GIS方法進(jìn)行管線(xiàn)數(shù)據(jù)質(zhì)量檢查的方法尚不全面,為運(yùn)用GIS手段建立城市地下管網(wǎng)信息系統(tǒng)造成困難。鑒于此,本文結(jié)合某市地下管線(xiàn)外業(yè)成果數(shù)據(jù)的質(zhì)量檢查實(shí)踐,提出了運(yùn)用GIS方法進(jìn)行數(shù)據(jù)質(zhì)量檢查的思路,闡述了具體的方法,并以某市地下管線(xiàn)測(cè)量數(shù)據(jù)為例,進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
目前行業(yè)內(nèi)數(shù)據(jù)質(zhì)量檢查主要包括空間參考系、屬性精度、位置精度、完整性、時(shí)間精度、邏輯一致性、附件質(zhì)量和表征質(zhì)量8個(gè)方面的內(nèi)容[4,5]。其中,參考系、時(shí)間精度、表征質(zhì)量和附件質(zhì)量屬于外業(yè)測(cè)量檢查內(nèi)容,不能使用內(nèi)業(yè)方法進(jìn)行檢查。對(duì)于內(nèi)業(yè)來(lái)說(shuō),檢查的是其余4個(gè)方面,本文主要介紹在內(nèi)業(yè)中,如何利用GIS方法檢查數(shù)據(jù)質(zhì)量。本文將內(nèi)業(yè)數(shù)據(jù)質(zhì)量檢查的內(nèi)容劃分為屬性質(zhì)量檢查、坐標(biāo)檢查、關(guān)聯(lián)信息檢查、超鏈接信息檢查和統(tǒng)計(jì)檢查5個(gè)部分。檢查的流程圖如圖1所示。
它主要檢查數(shù)據(jù)的屬性是否符合一般測(cè)量要求,以及數(shù)據(jù)的屬性精度和部分邏輯一致性。其主要思路是設(shè)置屬性檢查規(guī)則和檢查字段,構(gòu)建初始化的檢查模板。這個(gè)模板其實(shí)就是XML語(yǔ)言寫(xiě)的文件,通過(guò)讀取該文件,在編程環(huán)境中加載文件數(shù)據(jù),針對(duì)屬性檢查的每一種檢查規(guī)則,編寫(xiě)相應(yīng)的檢查算法,檢查出錯(cuò)誤信息,并把錯(cuò)誤信息以表格形式展示出來(lái)。

圖1 質(zhì)量檢查流程圖
1.1.1 屬性值域檢查
主要檢查屬性各字段值的取值范圍和限制規(guī)則是否錯(cuò)誤,如物探點(diǎn)號(hào)在測(cè)區(qū)范圍內(nèi)不唯一、屬性為空、屬性值不在特定范圍內(nèi)、探測(cè)單位代碼字段值為空等。
1.1.2 屬性的邏輯性檢查
檢查屬性值之間的對(duì)應(yīng)關(guān)系是否正確,如排水管線(xiàn)有電壓值、電纜數(shù),排水管線(xiàn)中水從大管徑流向小管徑,非排水類(lèi)管線(xiàn)的排水流向字段值不為空,管線(xiàn)點(diǎn)的點(diǎn)符號(hào)代碼字段值與其附屬物字段值不匹配等[6]。
以上檢查方法檢查的字段屬性之間都是“與”的關(guān)系,如選擇了X字段和Y字段后,2個(gè)字段之間是“和”的關(guān)系,如果需要檢查的字段之間是“或”、“非”或其他任意關(guān)系,就需要實(shí)現(xiàn)自定義檢查。在本文設(shè)計(jì)的自定義檢查中,檢查字段之間可以是“與、或、非”或者其他任意關(guān)系,可隨意組合檢查條件,擴(kuò)展了檢查的范圍。
主要檢查數(shù)據(jù)的位置精度,即檢查要素的圖上坐標(biāo)和屬性表中坐標(biāo)是否在一個(gè)規(guī)定的容差內(nèi)。進(jìn)行坐標(biāo)檢查的主要原因是用戶(hù)對(duì)圖上坐標(biāo)進(jìn)行移動(dòng)、刪除等操作,而屬性表中坐標(biāo)未能隨之變化,從而導(dǎo)致坐標(biāo)對(duì)應(yīng)不上,出現(xiàn)錯(cuò)誤。其方法思路和屬性檢查大體相同,不同之處有2點(diǎn):①由于各種誤差的存在,圖上坐標(biāo)和實(shí)際坐標(biāo)可能會(huì)有一定的誤差,因此坐標(biāo)檢查可設(shè)置水平容差和高程容差,在容差范圍內(nèi)的都認(rèn)為沒(méi)有坐標(biāo)錯(cuò)誤;②對(duì)一般地物而言,其X、Y坐標(biāo)是必須要有的,否則地物位置無(wú)法確定,所以坐標(biāo)檢查的規(guī)則必須要有“坐標(biāo)值不可為空”這一檢查規(guī)則。
關(guān)聯(lián)信息是指2個(gè)或2個(gè)以上的某些字段有關(guān)聯(lián),包括點(diǎn)線(xiàn)屬性一對(duì)二關(guān)聯(lián)檢查、線(xiàn)線(xiàn)屬性一對(duì)一關(guān)聯(lián)檢查。它就是檢查這種關(guān)聯(lián)是否正確,如對(duì)于排水來(lái)說(shuō),排水點(diǎn)和排水線(xiàn)是2個(gè)單獨(dú)的圖層,但排水點(diǎn)坐標(biāo)必須在排水線(xiàn)上,否則與實(shí)際相悖,會(huì)出現(xiàn)錯(cuò)誤。因此,關(guān)聯(lián)檢查主要是檢查數(shù)據(jù)的邏輯一致性。
關(guān)聯(lián)檢查與屬性檢查不同之處在于:①關(guān)聯(lián)的方式可能有一對(duì)二或一對(duì)多,也就是一個(gè)圖層的某個(gè)字段和另一個(gè)圖層的2個(gè)或多個(gè)字段關(guān)聯(lián),這就增加了檢查的復(fù)雜性;②圖形關(guān)聯(lián)類(lèi)型的不同也會(huì)對(duì)檢查結(jié)果產(chǎn)生影響。例如,點(diǎn)線(xiàn)關(guān)聯(lián)中,點(diǎn)可在線(xiàn)兩端,也可在線(xiàn)中間;線(xiàn)面關(guān)聯(lián)中,線(xiàn)可在面上,也可是面的邊界。對(duì)于不同的關(guān)聯(lián)類(lèi)型,需要在具體的檢查算法中判斷是哪種類(lèi)型,編寫(xiě)不同的算法。
超鏈接信息檢查主要是檢查數(shù)據(jù)中是否存在文件路徑以及路徑下是否存在文件。例如,對(duì)于地面照片字段,其檢查的就是數(shù)據(jù)中該要素的鏈接字段是否為空,若不為空,則檢查字段值對(duì)應(yīng)的路徑下是否存在地面照片,若不存在,則出現(xiàn)錯(cuò)誤。因此,超鏈接檢查主要是檢查數(shù)據(jù)的完整性。
所謂的“超鏈接”實(shí)際上是指對(duì)于某一個(gè)Feature,如果它檢查字段中有一個(gè)字段存在錯(cuò)誤信息,那么不管其他字段值正確與否,該字段都要在表格中顯示,最關(guān)鍵的是通過(guò)正確部分的地址可直接打開(kāi)文件。例如,某個(gè)Feature的地面照片字段檢查正確、內(nèi)部照片字段檢查錯(cuò)誤,那么由于該字段中存在錯(cuò)誤信息,這條Feature也要在表格中顯示出來(lái),其中地面照片字段是正確的,那么該字段值對(duì)應(yīng)的路徑下就存在這個(gè)地面照片文件,通過(guò)雙擊該單元格可打開(kāi)這個(gè)文件。
它是對(duì)整個(gè)圖層要素屬性進(jìn)行統(tǒng)計(jì),檢查出錯(cuò)的地方,在一個(gè)FeatureClass中,由于每個(gè)Feature是不重復(fù)的,而每個(gè)Feature都有唯一的ID號(hào),用以標(biāo)志該Feature,統(tǒng)計(jì)檢查就是通過(guò)統(tǒng)計(jì)這個(gè)FeatureClass中每個(gè)Feature的ID號(hào),檢查是否有重復(fù)的Feature。具體的方法是遍歷每個(gè)Feature,得到它們的ID,檢查ID是否有重復(fù)。
首先在ArcMap環(huán)境下構(gòu)建一個(gè)工具條(Toolbar),再構(gòu)建可停靠窗口(DockableWindow),Toolbar用于顯示數(shù)據(jù)檢查工具條,DockableWindow用于顯示檢查窗口及檢查結(jié)果。這部分都是ArcGIS的基本操作,本文不再詳述。
在ArcGIS Objects中,每一個(gè)圖層的數(shù)據(jù)源都是一個(gè)要素類(lèi)(FeatureClass),要素類(lèi)是可存儲(chǔ)空間數(shù)據(jù)的對(duì)象類(lèi),也是一個(gè)空間實(shí)體的集合,這些空間實(shí)體被用于模擬離散的、具有各類(lèi)屬性的要素[7],所以要素類(lèi)可看成是由具有若干相同字段(Field)的不同要素(Feature)組成,也可看成是一張表,表的行和列分別對(duì)應(yīng)FeatureClass的Feature和Field。一個(gè)Feature就是一個(gè)要素,對(duì)應(yīng)于點(diǎn)圖層上的一個(gè)點(diǎn)、線(xiàn)圖層上的一條線(xiàn)或面圖層上的一個(gè)區(qū)域。要素的Field對(duì)應(yīng)這個(gè)要素的所有屬性字段,如X坐標(biāo)、Y坐標(biāo)、高程等,二者組合起來(lái)就是一個(gè)要素的某個(gè)屬性,如一個(gè)點(diǎn)的X坐標(biāo)。針對(duì)需要檢查的內(nèi)容,設(shè)定相應(yīng)的檢查規(guī)則,再選擇需檢查的圖層以及該圖層下要檢查的字段,如先選擇給水管線(xiàn)層,再選擇該層要檢查的字段(坐標(biāo)字段),檢查出該圖層下坐標(biāo)字段的錯(cuò)誤信息。具體檢查算法雖然不同,但大體思路是相同的,首先通過(guò)游標(biāo)(Cursor)得到所選圖層所有的Feature,針對(duì)該Feature的選擇字段,判斷該字段的值與選擇的檢查規(guī)則是否一致,若不一致,則顯示錯(cuò)誤。檢查錯(cuò)誤的核心算法實(shí)際是對(duì)Feature和Field對(duì)象的組合操作。
地下管線(xiàn)普查內(nèi)業(yè)成果數(shù)據(jù)包括:城市給水、排水、電力、通信等線(xiàn)性管線(xiàn)數(shù)據(jù),城市測(cè)控點(diǎn)、排水點(diǎn)、熱力點(diǎn)等位置數(shù)據(jù)[8]。由于每一種檢查又包括不同的檢查規(guī)則,這些規(guī)則少則1、2個(gè),多則數(shù)十個(gè),為了對(duì)它們進(jìn)行有效管理,本文通過(guò)Liquid XML Data Binder把所有檢查規(guī)則寫(xiě)成XML文件,通過(guò)讀取XML文件,加載具體的檢查規(guī)則。構(gòu)建XML檢查規(guī)則有2方面好處:①如果要對(duì)檢查規(guī)則進(jìn)行增加、修改、刪除,可直接在XML文件中修改,方便對(duì)檢查規(guī)則的管理;②當(dāng)檢查規(guī)則增加后,只需在具體的檢查代碼中再加一個(gè)判斷,在該判斷下編寫(xiě)新增規(guī)則的檢查算法就可以了,這樣也方便對(duì)檢查算法的管理。最終的檢查結(jié)果可以報(bào)表形式打印。
本文以某市的地下管線(xiàn)普查數(shù)據(jù)為實(shí)驗(yàn)數(shù)據(jù),結(jié)合ArcGIS Object平臺(tái)與C#編程實(shí)現(xiàn)了地下管線(xiàn)數(shù)據(jù)質(zhì)量檢查的實(shí)驗(yàn)驗(yàn)證。本文以屬性檢查為例進(jìn)行說(shuō)明,具體步驟如下:
1)在ArcMap中構(gòu)建質(zhì)量檢查環(huán)境,包括構(gòu)建Toolbar、Commands、Dockablewindow,加載相關(guān)組件。
2)通過(guò)Liquid XML Data Binder創(chuàng)建對(duì)應(yīng)屬性檢查的XML文件,XML文件中包含具體的檢查規(guī)則,將XML文件導(dǎo)入到工程中。
3)在DockableWindow中創(chuàng)建檢查界面,在檢查規(guī)則組中讀取XML文件。在檢查圖層中加載ArcMap中加載的地圖圖層。
4)在屬性檢查界面中,選擇檢查規(guī)則和檢查圖層,如果選擇執(zhí)行檢查,彈出屬性檢查配置對(duì)話(huà)框,該對(duì)話(huà)框中加載了XML文件中建立的所有字段,選擇要檢查的字段(見(jiàn)圖2);如果選擇自定義檢查,彈出自定義屬性規(guī)則檢查配置對(duì)話(huà)框(見(jiàn)圖3),通過(guò)組合不同的字段設(shè)置檢查條件。

圖2 屬性檢查字段配置圖

圖3 屬性檢查字段組合配置圖
5)編寫(xiě)實(shí)際的檢查算法,執(zhí)行檢查,在屬性檢查界面中顯示出錯(cuò)誤信息,并可將錯(cuò)誤信息以表格形式打印。
參照屬性檢查的設(shè)計(jì)模式,設(shè)計(jì)另外4種檢查,檢查的主界面大致相同,都是先選擇檢查規(guī)則和檢查圖層,主要的區(qū)別是字段配置界面和算法不同。
[1] 陳華.淺談城市地下管線(xiàn)普查成果數(shù)據(jù)的質(zhì)量檢查[J].四川測(cè)繪,2008(2):85-87
[2] CJJ61-2003.城市地下管線(xiàn)探測(cè)技術(shù)規(guī)程[S].
[3] 解智強(qiáng),李俊娟,郭貴州,等.地下管線(xiàn)探測(cè)成果的質(zhì)量檢查方法[J].地理空間信息,2012,10(1):129-131
[4] 夏薔哲.關(guān)于城市地下管線(xiàn)信息化數(shù)據(jù)質(zhì)量控制的探討[J].北京測(cè)繪,2010(3):57-60
[5] 楊伯剛,張保剛,陶迎春,等.城市地下管線(xiàn)數(shù)據(jù)建庫(kù)與共享應(yīng)用[M].北京:測(cè)繪出版社, 2011
[6] 張春森.管網(wǎng)信息系統(tǒng)數(shù)據(jù)質(zhì)量控制方法[J].測(cè)繪通報(bào),1998(10):22-24
[7] 李崇貴,陳崢,豐德恩,等.ArcGIS Engine組件式開(kāi)發(fā)及應(yīng)用[M].北京:科學(xué)出版社,2012
[8] CJJ8-99.城市測(cè)量規(guī)范[S].
Underground Pipeline Data Quality Check Method Based on ArcGIS Objects
byWANG Haitao
Based on the analysis of the factors aff ecting data quality, this paper summed attribute quality checks, coordinate information check related information check hyperlink information checks, statistical checks fi ve aspects of the inspection contents, checked the contents against the five proposed method using GIS results of underground pipeline data quality check method, and verifi ed this method by experiment.
quality inspection,pipeline,feature class,XML,information
P208
B
1672-4623(2014)02-0060-02
10.11709/j.issn.1672-4623.2014.02.021
2013-07-16。
項(xiàng)目來(lái)源:國(guó)家自然科學(xué)基金資助項(xiàng)目(41140012、41271392)。
王海濤,碩士,研究方向?yàn)檎Z(yǔ)義相似度計(jì)算、GIS開(kāi)發(fā)與應(yīng)用。