賈 斌,李鵬輝,李 蕾*,周自翔,李 昱,劉文濤
(1.西安市勘察測繪院,陜西 西安 710054;2.西安坐標原點地理空間研究院有限公司,陜西 西安 710054;3.西安科技大學測繪科學與技術學院,陜西 西安 710600;4.中國建筑西南勘察設計研究院有限公司,四川 成都 610052)
隨著社會的不斷發展與變革,人們對地理數據的要求也在不斷提高,如國土資源“一張圖”工程便是將多種應用的功能疊加,以構建統一的綜合管理平臺[1-2],因此,對于地理空間數據庫的質檢平臺設計顯得十分必要。而只有建立高質量的數據庫,才能更好地為后續規劃與建設服務[3-4]。
數據質檢系統保證了數據的質量檢查,很好地提高了地理信息數據入庫的效率[5-7]。質量檢查是地理數據質量控制中不可缺少的環節,現有數據庫質檢軟件通常為某一特定項目設計,缺乏靈活性[8-14]。不僅如此,數據庫設計也是一個不斷優化的過程[15],需要多方面的支持和配合才能完成[16-17]。
論文針對數據庫的一般操作人員設計地理空間數據庫質檢平臺,以關聯屬性字段、提示屬性字段及空間關系為考量依據,對程序集結構合理性再構思,期望設計出方便解析、易于移植、易于表達、主次分明的對象序列化平臺。
地理空間數據庫質檢平臺的設計主要包括空間屬性質量檢查、空間圖形質量檢查以及關聯檢查。對于空間屬性質量檢查主要是對數據表的檢查,首先是對接mdb、gdb以及shp數據,在獲取數據實例后應區分路徑、區別特征以及子內容特征;其次是自定義關系規則(長度規則、唯一性規則、空規則、身份證規則、包含性規則、單字段值規則、多字段值規則、多表多字段關系等);最后是對數據表再進行進一步檢查??臻g圖形質量檢查主要是針對圖形的拓撲檢查,是基于九交模型對圖形與圖形相互之間的內部、邊界與外部關系模擬分析(包含、覆蓋、交叉、分離、封套相交、相等、內部、相交、重疊、接觸及包含于等關系),逐一篩檢,檢查圖形拓撲關系的合理性與正確性。而關聯檢查是檢查圖形與屬性之間的一致性與完整性,主要有邏輯一致性檢查和完整性檢查等。其質檢平臺總體設計流程圖,如圖1所示。

圖1 質檢平臺設計流程圖
基于Data Table進行數據檢查,是對非空性質(無值或非空)、唯一性(單子段或多字段)、長度、范圍多字段關系、包含性、連接字符串等內容進行全字段的字典檢查。其中,多字段關系檢查主要包括文本字段關系檢查與數字字段關系檢查;包含性檢查主要是檢查字段的起始包含、結束包含及任意包含;連接字符串檢查即根據條件提取信息,如不動產單元號的檢查與提取,就需先獲取區域內所有戶號為00001的不動產單元號信息,再逐一獲取剩余戶號信息,而論文將空間屬性質量檢查主要分為單屬性表檢查與多屬性表檢查進行設計。
2.1.1 單屬性表檢查
單屬性表檢查包括單表單字段檢查和單表多字段檢查,以唯一值即唯一指定值與組合字段唯一值為檢查規則,分別對數字類型與文本類型進行檢查。數字類型檢查包括介于與未介于,等于與不等于,大于、小于、不大于且不小于等內容檢查;文本類型檢查包括包含與不包含,始于與止于,等于,長度,效率等內容檢查。而主要檢查關系有字段唯一性檢查、字段內容長度檢查、字段信息包含檢查、字段內容字典檢查、多字段關系檢查、字段內容等于檢查及字段內容范圍檢查。其中,字段唯一性檢查又包括單字段檢查和多字段檢查;字段信息包含檢查又包括字段內容起始檢查、字段內容結束檢查及字段內容包含檢查;字段內容字典檢查又包括字段全內容字典檢查和字段部分(指定位置)字典檢查;多字段關系檢查又包括文本字段組合檢查和數字字段計算關系檢查。
2.1.2 多屬性表檢查
多屬性表檢查主要是指多表關聯檢查,包括多表單向關聯檢查和多表雙向關聯檢查,分別是對數字類型與文本類型進行檢查。數字類型檢查是指對數字求和判斷檢查、數字差檢查、數字均值檢查、數字方差檢查、數字有效個數檢查等;文本類型檢查是指對文本組合檢查,文本拼接檢查等。
圖形檢查與屬性檢查不同,常規的拓撲檢查首先需要加載默認的檢查規則;其次需要在創建的地理數據庫中添加要素數據集,并根據相應的規則循環創建所需拓撲規則,添加規則要素集并添加拓撲規則信息;最后需要獲取并設置拓撲檢查范圍(默認全庫、全范圍檢查),或可根據其數據空間參考關系靈活設置所對應的范圍。
論文對其平臺設計的圖形檢查主要分為一般拓撲規則檢查和定制拓撲規則檢查。一般拓撲規則檢查包括圖斑檢查,自相交檢查及點線面關系檢查;定制拓撲規則檢查主要包括節點距離檢查與角度檢查,將統一分為點關系檢查,線關系檢查,面關系檢查以及點、線、面關系檢查進行分述。
2.2.1 點關系檢查
方法二:將a,b看成一元二次方程x2=3x-1的兩根,用根與系數的關系分別求出a+b,ab的值代入式子得到18.
點關系檢查主要包括點懸掛檢查、鄰近距或區域檢查及點線距檢查,其過程包括三步:第一步,獲取總圖點集幾何數據;第二步,分點單項檢查指定范圍內的點集;第三步,并行分治檢查輸出結果。
2.2.2 線關系檢查
線關系檢查主要包括夾角檢查、閉合檢查、相交檢查、自相交檢查、重疊檢查、線懸掛檢查、偽節點檢查及縫隙檢查等,主要以構線去重、距離控制為原則。其具體過程包括三步:第一步,獲取鄰近點線距及總圖邊線集等幾何數據;第二步,分析以一點圓心構成的圓與多段線形成的切割關系,描述最小位置,命令線段中節點個數逐點返回,構造結果集;第三步,對開始(臨界值)位置進行描述,求交點并進行多線細化操作。
2.2.3 面關系檢查
面面關系錯綜復雜,不僅需要分析同一圖層面面關系,而且需要分析不同圖層之間的面面關系。因此,基于九交模型,分析面關系檢查類型,面A的內部、邊界、外部和面B的內部、邊界、外部分別對應不同的關系類型,可得出以下幾種關系:面重疊關系、面相等關系、面相交關系、面交叉關系、面包含關系、面包含于關系、內部關系、封套相交關系、接觸關系以及分離關系等。面重疊關系與面相等關系即是兩個面的邊界和內部相交或具有相同的邊界和內部;面相交與面交叉關系即是兩個面沒有分離,一個面的內部和另一個面的邊界和內部相交,但是它們的邊界不相交;面包含關系即是一個面的內部完全包含了另一個面的內部和邊界;面包含于關系是指一個面的內部和邊界完全在另一個面的內部;內部關系是指一個面在另一個面的內部,但是與其邊界不接觸;封套相交關系是指兩個面的外邊界圖形相交;接觸關系是指兩個面的邊界相交,但是內部不相交;分離關系是指兩個面的邊界和內部不相交,其具體檢查類型如表1所示。

表1 面關系檢查類型
2.2.4 點、線、面關系檢查
2.3.1 邏輯一致性檢查
地理空間數據的邏輯一致性檢查是指地理數據關系上的可靠性,包括數據結構、數據內容和拓撲性質上的內在一致性。而對地理空間數據庫的邏輯一致性檢查主要是檢查數據屬性與相應的幾何屬性是否一一對應,是否存在數據結構、數據格式和屬性編碼混亂,以及是否有遺漏等問題。
2.3.2 完整性檢查
數據庫中的數據是由外界輸入,而數據的輸入往往由于種種原因,會造成輸入無效或錯誤,使數據喪失完整性。而對于地理空間數據庫的完整性檢查主要是檢查數據屬性與相應的幾何屬性是否有缺失或多余,以及是否缺少圖層信息或其他信息。
基于文章設計,加載了5個地理數據表,共7 215條屬性數據,對此進行多線程優化速率測試。比較可知,開啟4線程比非多線程耗時縮短了16.5 s,CPU使用率降低了1%,運行率提升了13%;開啟8線程比非多線程耗時縮短了17.5 s,CPU使用率降低了1%,運行率提升了19%;總體速率提升了58.6%,如表2所示。

表2 多線程優化速率測試表
地理空間數據庫應用廣泛,使其質量檢查的要求更全面、具體。論文針對不同質檢內容與屬性,提出地理空間數據質量檢查的設計思路,將地理空間數據庫質檢平臺的設計分為空間屬性質量檢查、空間圖形質量檢查以及關聯檢查三部分??臻g屬性質量檢查主要是字段檢查,主要有文本檢查和數字檢查兩部分;空間圖形質量檢查有點關系檢查、線關系檢查、面關系檢查以及點線面相互關系檢查;關聯檢查包括邏輯一致性檢查和完整性檢查,三部分檢查設計相輔相成、互為補充,且具有較高的應用價值。