劉 濤,彭清山,方 鵬,張 淼
(1.武漢市勘測設計研究院,湖北武漢430022;2.武漢大學資源與環境科學學院,湖北武漢430079)
城市空間數據庫建庫軟件的設計與研究
劉 濤1,2,彭清山1,方 鵬1,張 淼1
(1.武漢市勘測設計研究院,湖北武漢430022;2.武漢大學資源與環境科學學院,湖北武漢430079)
對城市地理信息系統中空間數據的獲取、預處理、轉換、編碼、監理、入庫及更新等流程進行探討,并對當前城市空間數據庫建設中存在的一些問題進行分析,提出相應的解決方法。結合矢量數據編輯軟件AutoCAD和GIS應用軟件ArcGIS,探索一條可行的基于DLG數據的空間數據庫建庫技術路線。
城市地理信息系統;空間數據庫;空間數據引擎;數據監理
城市地理信息系統(Urban geographic information system,UGIS)是GIS應用于城市系統而產生的服務于城市規劃、管理、建設的一門可操作性極強的高新技術。隨著城市的快速發展,城市地理信息系統的應用越來越廣泛,對其需求也越來越多。UGIS建設首要解決的問題就是建立城市空間數據庫,但城市空間數據建庫任務繁重、容易出錯,而且其質量直接影響著UGIS的應用。因此,對建庫工作的研究具有非常深遠的理論和現實意義。
本文首先對UGIS中空間數據的獲取、預處理、轉換、編碼、監理、入庫及更新等過程進行了理論探討,并對當前城市空間數據庫建設中存在的一些問題進行了分析,提出了相應的解決方法。然后,在實際系統開發中,基于空間數據庫引擎ArcSDE,運用.NET、ObjectARX、Visual C++、Mapobjects2.2、ArcGIS Engine等開發工具對上述理論與技術進行了實踐,為城市空間數據庫建庫技術的進一步研究以及相關技術的研究提供了可以借鑒的經驗。
城市空間數據庫的建庫過程是一個復雜而繁瑣的過程,涉及多方面數據的組織和管理,建庫工作質量的好壞直接影響到后期UGIS的應用。本文討論了一套可行的關于空間數據獲取、組織、管理等的工作流程。
1.空間數據的獲取
空間數據的獲取是GIS建設首先進行的任務,它可以有多種實現方式,如數據轉換、遙感數據處理以及數字測量等。其中,地圖的數字化錄入是目前被廣泛采用的方式,也是最耗費人力資源的工作。在GIS中,錄入的內容包括空間信息和非空間信息,前者是錄入的主體。
2.空間數據組織
目前,城市或地區的基礎地形圖(1∶500,1∶1 000,1∶2 000等大比例基礎地形圖)已經基本完成了數字化工作,獲得了數字線劃圖(DLG),但其數據采集階段和成圖階段更多地考慮制圖的需要,因此常常無法滿足GIS應用的要求。隨著空間數據庫技術的發展,空間數據庫引擎的產生為GIS的數據組織和管理提供了很好的技術保障。
(1)空間數據預處理
目前常規的數據處理方式是先利用AutoCAD軟件完成數據的編輯工作,再轉換成相應的GIS軟件的格式,并在GIS軟件中完成屬性數據的錄入工作,但此項數據錄入工作是相當繁瑣和費時的。在實際工作中,大多數作業員對AutoCAD軟件已經非常熟悉,并且存在依賴思想,對專業GIS軟件有一定的抵觸情緒,使得屬性數據錄入工作量非常巨大。如果能夠將空間數據的屬性錄入工作放在CAD軟件環境下完成,并保持原有AutoCAD軟件的操作習慣,將會大大提高數據錄入的效率,從而提高整個GIS數據加工的效率。
在本系統中,筆者在AutoCAD環境下利用Visual C++6.0、ObjcetARX和MapObjects 2.2軟件進行了二次開發,完成了圖層標準化、屬性數據錄入(將每個要素的屬性信息存儲在擴展數據中)、數據檢查、數據轉換等工作。該部分處理流程如圖1所示。

圖1 AutoCAD下數據的預處理
(2)空間數據分類編碼
對城市基礎地理信息進行分類和編碼,是建立城市基礎地理信息數據庫的一項重要的基礎工作。通過分類編碼,可將所有地理要素組織在科學的空間定位系統中,以保證城市基礎地理信息存儲與交換的一致性,并滿足信息共享的需要。各系統可根據自己的需要進行編碼,一般編碼中的基本碼部分應參考國家標準《基礎地理信息要素分類與代碼》(GB/T 13923—2006)。
(3)空間數據的元數據管理
在地理空間數據中,元數據是說明數據內容、質量、狀況和其他有關特征的背景信息。隨著計算機技術和GIS技術的發展,特別是網絡通信技術的發展,空間數據共享日益普遍。因此,空間數據的內容、質量、狀況等元數據信息管理就變得更加重要,并成為信息資源有效管理和應用的重要手段。地理信息元數據標準和操作工具已經成為國家空間數據基礎設施的一個重要組成部分。
3.空間數據的檢查(數據監理)
(1)數據檢查的目的
數據質量的好壞直接影響著GIS應用、分析、決策的正確性和可靠性。數據檢查(數據監理)的目的就在于對入庫前的空間數據進行檢查,確保入庫前數據的準確性。在本系統中,數據監理的對象是對入庫前的GIS數據(即經過AutoCAD環境下預處理后轉換的數據)再次進行檢查,以驗證數據是否符合入庫的規范。
(2)數據監理的主要內容
數據監理的主要內容包括:
1)數學精度的檢查。主要包括圖形的坐標系統正確性檢查;圖層的投影方式正確性檢查;地形圖的精度檢查等。
2)屬性精度的檢查。主要包括圖層完備性、一致性檢查;圖層屬性結構的完備性、一致性檢查;要素編碼正確性檢查等。
3)邏輯一致性的檢查。主要包括:
a.點狀要素的邏輯性檢查。主要檢查點狀要素是否存在重點情況,即兩個和兩個以上的點完全重合。
b.線狀要素的邏輯性檢查。主要檢查圖形是否重復錄入;要求閉合多義線是否封閉(如地類界線,境界線等)懸掛線(檢查懸掛線本身的長度,檢查懸掛線與最近線要素距離);偽結點的檢查;同一要素的連續性檢查(如線狀水系、道路等);指定不可以自相交的要素類型是否存在自相交的現象(如等高線、水系、境界等)。
c.面狀要素的邏輯性檢查。主要檢查圖形是否重復錄入;面狀要素是否有自相交現象;畸變點檢查;同一要素的連續性檢查(如面狀水系、道路等);相鄰面狀要素的共邊性檢查。
數據監理的工作流程如圖2所示。

圖2 數據監理的工作流程
4.空間數據的入庫
本系統中空間數據的入庫過程,實際上就是將本機空間、非空間數據,通過空間數據庫引擎提供的應用接口(API)存儲到大型DBMS關系型數據庫的過程。空間數據的獲取及入庫流程如圖3所示。
本系統服務于城市基礎空間數據建庫及綜合應用,涵蓋數據采集、加工、質檢、驗收建庫、數據標準化、規范化及數據庫綜合管理、綜合應用的一體化建庫及應用過程。

圖3 空間數據的獲取與入庫流程
1.系統技術路線
本系統綜合利用.NET平臺、Visual C++、ObjectARX、Mapobjects2.2、ArcGIS Engine9.3等多種開發平臺進行綜合開發。其中利用Visual C++、ObjectARX、Mapobjects2.2完成AutoCAD預處理模塊的開發,利用.NET平臺和ArcGIS Engine完成獨立建庫軟件的開發。
2.系統基本框架
本系統由AutoCAD預處理模塊、數據加載、圖層控制模塊、數據監理模塊、數據入庫、更新模塊、數據編輯模塊、查詢、統計、分析模塊、數據輸出模塊和元數據管理模塊幾部分組成,系統的總體結構如圖4所示。
3.系統功能設計
(1)數據預處理子模塊
本模塊在AutoCAD環境下利用其二次開發控件ObjectARX、MapObjects 2.2完成。以實現對原始的基本地形圖矢量數據進行預處理,使其標準化、規范化,并完成相關屬性數據的錄入工作。經過預處理的數據,經檢測滿足要求后進行數據轉換,轉換成ArcGIS的SHP文件格式,初步滿足數據入庫的要求。
AutoCAD環境下本模塊數據預處理流程如圖5所示。

圖4 系統總體結構圖

圖5 AutoCAD環境下數據預處理流
(2)數據加載、圖層管理子模塊
該模塊主要完成數據接口設計及圖層規范管理控制。經過AutoCAD預處理后的空間數據可通過獨立系統加載進來。由于ArcGIS Engine支持廣泛的數據格式,如ArcInfo COVERAGE、Shape files、ArcSDE圖層、ImageLayer、DXF、DWG和大量的柵格圖像格式BMP、GRID、JPG等,實際上就解決了數據接口的大部分問題,關鍵是如何將這些數據進行分類管理起來。
在ArcGIS Engine中,對于SHP文件而言,是以CMoMapLayer的形式進行加載的;對于柵格圖像是以CMoImageLayer的形式加載的;對于DXF、DWG文件則是分為點、線、面、注記的形式分別加載的。在程序中可以自己定義一個CLayer來管理各類圖層信息,在CLayer類內部建立標識碼來標識當前加載圖層的類型,對于不同的文件類型分別調用不同的加載模塊函數。
(3)數據質檢、數據監理模塊
該模塊主要完成數據的質量檢查工作,系統針對不同比例尺同種數字產品制定了相應的質量規則和要求。對同一數據,質量檢查的規則不是一個定值,而是隨著產品的比例尺、性質、要求的改變而變化的。根據以上的情況筆者給出了“規則庫”這個概念。在本系統中規則庫以Access數據庫表的形式存儲,數據庫結構預先定義好,用戶根據不同比例尺的數字產品填寫相應的規范內容,系統在調用數據監理模塊時先調用數據庫中的規則,然后再與實際數據進行比較,進而得出檢查結果。
(4)數據入庫、更新、維護子模塊
1)數據入庫。經過數據預處理和數據監理后的空間數據,可以認定為合格的數據,可進行入庫處理。將符合要求的數據存放到已經定義好的數據庫中。一般來說,一幅圖的入庫,需要經過檢查→預入庫→修改→再入庫等幾個反復過程,才能滿足需要入庫。同時為了保證一個工程的完整性,允許建立臨時的工程進行數據的預入庫,直到最后沒有任何錯誤時再將數據正式入庫。
在UGIS中,任何空間地理數據都必須納入一個統一的空間參照系統,才能進行各種空間分析,為規劃、管理和決策提供科學依據。
2)數據更新與維護。一方面通過數據更新機制不斷獲得現勢數據對數據庫進行更新維護;另一方面必須保存歷史數據以便進行歷史查詢和數據對比等操作。數據更新的基本結構如圖6所示。

圖6 數據更新基本結構
(5)數據編輯子模塊
數據的編輯實際上就是對屬性數據和地理目標的空間位置信息進行修改。數據編輯的主要內容是對地圖數據的增加、刪除和修改。其中,增加和刪除操作的單位都是一個完整的空間目標(即一條完整的空間坐標記錄和一條完整的屬性數據記錄);而修改操作相對就要復雜一些,它不但要求對某個屬性數據字段進行修改,還應能對空間坐標數據進行修改(包括對空間目標的節點進行移動、增加、刪除等操作)。
(6)數據查詢、統計、分析子模塊
系統具備基本的GIS查詢、統計和分析功能。主要包括:
1)查詢功能。包含圖形查屬性,跨圖層進行空間要素屬性信息的查詢;屬性查圖形,對滿足屬性條件的空間要素的查詢、定位;SQL查詢,對任意圖層、任意字段進行SQL復合查詢;空間關系查詢,即落入查詢,穿越查詢,包含查詢;元數據的查詢等。
2)分析功能。包含長度、面積、坐標、角度的量算;空間緩沖區分析;拓撲疊加分析;行業、專業應用的空間分析等。
3)統計功能。包含空間分析結果的統計;查詢結果的統計;指定圖層、字段項目的統計;行業、專業應用的統計等。
(7)數據成果輸出子模塊
該模塊用于用戶對空間數據庫內的數據進行提取,可以按圖幅、任意范圍提出空間數據;制作各種地圖和專題圖。數據輸出為GIS格式(ArcGIS SHP)或CAD格式(AutoCAD DXF),可滿足相關用戶的數據交換。
(8)元數據管理子模塊
系統中對于空間數據的元數據,建立元數據庫,以Access數據庫表格進行存儲。系統模塊開發中利用ADO.NET對元數據庫進行輸入、編輯與維護管理、查詢檢索、發布等功能。
在武漢市人防地理信息系統中,該建庫軟件被用戶應用于系統空間數據的建庫工作。對武漢市8 000 km2基礎地形圖,數千項人防工程、人防警報等專題數據完成了系統的建庫任務,取得了比較好的效果,目前該系統正被應用于武漢市人民防空辦公室,為武漢市人防規劃和管理工作提供服務。圖7~圖8為系統界面截圖。

圖7 AutoCAD預處理模塊截圖

圖8 城市空間數據庫建庫軟件截圖
城市空間數據庫的建設是UGIS需要首要解決的問題,同時,空間數據庫的建設在整個GIS工作流程中所占用的人力、物力和財力也是最大的。因而,城市空間數據庫建設的好壞將直接影響到后期GIS的應用,甚至會影響到整個GIS系統的成敗。
本文分析了城市空間數據庫建庫中的數據獲取、數據編碼、數據預處理、數據轉換、數據監理、數據入庫、數據更新與維護以及數據輸出與應用等過程。針對目前應用最多的DLG數據管理平臺Auto-CAD和GIS應用平臺ArcGIS,提出了整個數據入庫的解決流程,并在Visual C++、.NET等開發平臺下,借助ObjectARX、MapObjects 2.2和ArcGIS Engine等二次開發工具和接口開發出了城市空間數據庫建庫軟件,并在實際應用中取得了較好的效果。
[1] 馬明棟,張曼莉,張春皓.城市地理信息系統的基本功能[J].阜新礦業學院報:自然科學版,1997,16(3): 328-331.
[2] 鄔倫.地理信息系統原理方法和應用[M].北京:科學出版社,2001.
[3] 李德仁,龔健雅,李京偉,等.中國空間數據基礎設施建設[J].測繪通報,2002(11):4-7.
[4] 吳立新,史文中.地理信息系統原理與算法[M].北京:科學出版社,2003.
[5] 陳述彭,魯學軍,周成虎.地理信息系統導論[M].北京:科學出版社,2000.
[6] 崔洪波,丁明柱.幾種基礎地理信息數據庫建庫方式的比較[J].東北測繪,2002,25(2):12-13,15.
[7] 黃堅,王丹,丁軍.城市公共基礎空間數據庫建設方法初探[J].測繪通報,2003(2):42-43,46.
Design and Research on Software for Urban Spacial Database
LIU Tao,PENG Qingshan,FANG Peng,ZHANG Miao
0494-0911(2011)10-0060-05
P208
B
2010-05-25
劉 濤(1979—),男,湖北石首人,博士生,工程師,主要從事地理信息系統應用與開發工作。