Geodatabase中基于规则的拓扑关系管理机制
?[ 作者:蔡曉兵 | 來源:GIS空間站 | 時間:2005-11-13 20:06:58 ]
1、問題的提出
????空間數據的拓撲關系及其處理方法在高級的空間分析處理和空間數據庫數據質量保證方面具有相當重要的作用。在ArcInfo的經典數據格式COVERAGE中,拓撲關系被完整地保存,并有一組檢查工具(命令和函數)供使用者對空間數據進行拓撲關系檢查并給出錯誤定位標識和相應的統計數據。這曾經是ArcInfo有別于其它GIS或圖形處理軟件的最重要的標志之一,為全球GIS界所廣泛推崇。隨著ArcInfo升級到8版本后,全新的空間數據模型Geodatabase被引入,其中對拓撲關系的管理和處理方法發生了重大的改變。筆者在《中國用戶通訊》第十期中曾專門撰文(參見“什么是Geodatabase”)對COVERAGE到Geodatabase的演變進行了闡述,其中有較多的筆墨談及拓撲關系的處理。直至ArcGIS 8.2版,Geodatabase對拓撲關系的處理都相對薄弱,ArcGIS Desktop在處理類似公共點公共邊等空間拓撲關系時,所提供的動態編輯工具相對而言也較為簡化和單一。Geodatabase中數據的空間拓撲關系的正確性靠數據入庫前的工序來保證,ArcGIS Desktop和Geodatabase本身對此并不提供太多的幫助。時隔一年,情形又一次發生了深刻的變化,在ESRI即將發布的最新版本:ArcGIS 8.3中,Geodatabase對拓撲關系的處理較之以往,由于引入了一些全新的概念和技術,其能力產生了本質的飛躍。
2、Geodatabase中的數據存儲和建模
????在切入正題之前,讓我們對Geodatabase的空間數據存貯機制作一個簡要的說明。Geodatabase是ESRI在其新一代GIS平臺軟件ArcGIS 8中引入的一種全新的空間數據模型。Geodatabase采用一種開放的結構將空間數據(包括:矢量、柵格、影像、三維地形等)及其相關的屬性數據統一存放在工業標準的數據庫管理系統DBMS中。空間要素類(Feature Class),如:河流、國界、宗地、電桿等,對應了DBMS中的表,而具體的一個要素(Feature)則是表中的一條記錄。具有共同空間參考的一組空間要素類又可以組成更大的結構,稱為要素數據集合(Feature Data Set)。除了空間要素類以外,Geodatabase中還可以建立關系類、幾何網絡、定義要素子類型、值域及規則等。所有的要素類均可以借助通用的CASE工具(如:Visio、Rational Rose等)進行模型定義和擴展。
3、Geodatabase中拓撲關系的實現
????在ArcGIS 8.3版中,Geodatabase引入了拓撲關系規則。如前所述,在Geodatabase中可以定義關系和規則。拓撲關系規則即是新增加的一類。拓撲關系規則可作用于同一要素數據集中的不同要素類或者同一要素類中的不同要素。用戶可以指定空間數據必須滿足的拓撲關系約束,譬如:要素之間的相鄰關系、連接關系、覆蓋關系、相交關系、重疊關系等。所有這些關系都對應相應的規則。在城市規劃應用中,兩個相鄰的地塊之間不能有“飛地”,我們可以有一條對應的規則:“相鄰多邊形間不能存在間隙”。再如,當以河流作為國界時,河流(線狀)與國界線必須一致,可用規則:“線必須被多邊形邊線覆蓋”。用戶通過選擇若干規則的組合構成對空間數據必須滿足的拓撲關系的靈活指定。為了檢查和維護空間數據的拓撲關系正確性,在ArcGIS Desktop中給出了一組(編輯)工具,用于對空間數據根據用戶指定的拓撲關系規則進行編輯,并幫助用戶及時發現可能存在的拓撲關系錯誤。
????Geodatabase中并不實際保存拓撲關系。不同要素類之間的公共點、公共邊等要素是在拓撲編輯過程中動態地檢測到的。例如,我們選擇一條線并對其進行編輯,此時Geodatabase將自動檢測到與此線要素具有公共幾何元素的所有其它要素,當我們修改該線要素時,系統自動對所有的公共邊和公共點進行維護,以保持其應有的拓撲關系。這種實現方式的好處在于,可以局部、有選擇的維護拓撲關系,效率很高。
4、拓撲規則
????拓撲規則可以定義在要素類的不同要素之間,也可以定義在兩個或多個要素類之間。比較典型的拓撲規則例子是:多邊形不能相互重疊(兩個建設用地地塊間不可相互重疊);點必須被多邊形邊線覆蓋(建設用地的界址點必須在用地紅線上);不能有懸掛結點(用地紅線不能有多余的出頭線段);兩個線層不能相交(地下管線和道路中心線不能有交叉點),等等。在ArcGIS 8.3版中,將給出總共25條可供選用的拓撲規則。在以后發布的版本中,還會給出更多的規則。對一個要素數據集,我們可以定義一個拓撲關系類,在拓撲關系類中,指定若干我們希望數據滿足的拓撲關系規則。當然,通過修改拓撲關系類的定義,就能夠方便地改變對拓撲關系約束的要求。這給我們管理空間數據帶來了很大的靈活性。
5、拓撲屬性
????如上所述,通過定義拓撲關系類,我們就能按特定的要求規定要素本身及其間必須遵守的空間拓撲約束。在拓撲關系類中,除了拓撲關系規則外,還要指定:參與拓撲約束的各要素類,容限值(cluster tolerance),精度等級(coordinate accuracy rank)。其中:
&容限值:指落在以此值為半徑的圓形區域內的所有點被看成是一致的,會被捕捉(snap)到一起。
&精度級別:每個參與拓撲約束的要素類都可以人為地賦予一個精度級別,精度級別越高,在容限值范圍內需要移動時就越穩定,即:級別低的要向級別高的靠攏。當不同的要素類數據精度不一致時,通常應將精度較高者設定為較高級別。
6、拓撲關系正確性檢查
????在ArcGIS 8.3 Desktop中提供了一組工具用于對空間數據的拓撲關系正確性進行檢查。檢查結果會作為一個特殊的圖層加載到地圖文檔中供顯示,所有存在拓撲關系錯誤的地方都會在該層中以特定(可自定義)的顏色和符號明顯地顯示出來。同時,我們還可以打開錯誤查看器(Error Inspector)以列表方式查看所有拓撲關系出錯記錄。
????在ArcMap中,錯誤查看器中的錯誤記錄與地圖上的要素是相關聯的,點取任一記錄都可在地圖上看到其所在位置被高亮顯示。
7、拓撲關系錯誤處理
????對于被檢查出來的拓撲關系錯誤,用戶可有三種選擇:
???? &用編輯工具改正這個錯誤
???? &對該錯誤暫不處理
???? &將該錯誤置為例外
????后面兩種處理方式是有本質不同的。暫不處理的錯誤仍然是錯誤,只要不改正永遠都會被記錄和標識出來。而當我們將錯誤置為例外時,就等于指定該處為一個特殊情況,可以不受我們定義的拓撲關系規則的約束,不再將其視為錯誤。這種處理方式是頗具特色和智慧的。其實在實際應用中,我們常會遇到需要視為“例外”的情形。我們在整理宗地數據時,根據歷史資料錄入系統的宗地地塊就有重疊的情況,這在理論上是不允許的,但因為地塊的界址點坐標已經作為法律文件存在,不可以隨便“改正”。因此,最好的辦法就是將其置為“例外”。
8、Geodatabase拓撲關系處理方法的優勢
????一直以來,基于COVERAGE數據模型的拓撲關系處理是Arc/Info“標簽式”的著名功能,即將正式發布的ArcGIS 8.3在Geodatabase中引入了全新的拓撲關系管理機制,新的機制除了能夠完全覆蓋老的功能以外,在如下幾個方面具有明顯的優勢:
&用戶可自行定義哪些要素類將受拓撲關系規則約束。
&多個點、線、面要素類(層)可以同時受同一組拓撲關系規則約束。
&提供了大量的拓撲關系規則(8.3版提供25個,以后將提供更多)。
&用戶為自己的數據可以自行指定必要的拓撲關系規則。
&拓撲關系及規則在工業標準的DBMS中進行管理,可支持多用戶并發處理。
&用戶可以局部建立或檢查拓撲關系以提高效率。
9、小結
????COVERAGE數據模型中,數據的拓撲關系是嚴格地被存儲下來的,當數據編輯修改時,局部的變動必須對全局的拓撲關系重新建立(BUILD),所謂“牽一發而動全身”。當數據量很大時,這是一個十分耗時費力的工作。另外,COVERAGE數據模型中,我們無法指定不同的COVERAGE之間必須遵守的拓撲關系約束,一些類似“河流與國界”、“人井與管道”等需要不同要素類之間滿足一定的幾何一致性的問題就會十分棘手。COVERAGE中定義的拓撲關系十分嚴格,而且是在一種缺省的環境下被預先設定的,不允許有任何例外的情形存在,這種不靈活性在實際工作中有時會讓我們感到十分不便。因為是文件結構,基于COVERAGE的數據在修改編輯時就不能支持多用戶并發操作。現在,所有這些問題,在Geodatabase中都已經迎刃而解。事物的發展正如馬克思所說,是“螺旋式上升”的。從Arc/Info COVERAGE到ArcGIS 8.0-8.2 Geodatabase再到ArcGIS 8.3 Geodatabase,對空間拓撲關系的處理,完成了一個“否定之否定”的循環躍進。這種全新的基于規則的拓撲關系管理機制,把效率、功能、靈活性和可擴展性結合得恰到好處。由此,我們也可以進一步感受到Geodatabase的強大生命力
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1117578
轉載于:https://www.cnblogs.com/googlegis/archive/2008/11/28/2979203.html
總結
以上是生活随笔為你收集整理的Geodatabase中基于规则的拓扑关系管理机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.Net收集
- 下一篇: word菜单删除,小常识,删除word菜