Geodatabase中基於規則的拓撲關係管理機制

2021-04-02 10:09:14 字數 4113 閱讀 2610

geodatabase中基於規則的拓撲關係管理機制

發表:2004-11-27 22:28:17 出處:

你的部落格網(yourblog.org)

(富融公司 蔡曉兵)

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的強大生命力

Geodatabase中的子類(Subtypes)

原創 geodatabase中的子類 subtypes 資料庫組織中關心的兩件事就是完整性和效率的高低。域和子類為組織資料提供了一種方法,便於確保這些操作,如編輯,在保持屬性完整性的前提下更加高效。下面就子類問題進一步闡述。設計geodatabase的乙個重要決策就是確定是要組成一組要素類還是建立有...

nginx中server name的匹配規則

在開始學nginx的時候server name明明沒有匹配上,但竟然訪問到了,還以為server name不起作用,後來發現server name的匹配規則是 先遍歷所有配置的server name,如果找到了,則執行對應的server,如果沒有找到,則預設執行第乙個server。例如 server...

中普 合規穩健,中普金服理財兼顧合規安全與使用者體驗

網際網路金融行業在中國發展已有十餘年,金融市場幾經波折後進入合規發展階段,2018 年可謂是監管最為嚴格的一年,優勝劣汰,有實力的平台紛紛積極擁抱監管,合規運營。中普金服作為普惠金融的倡導者和重要踐行者,一直堅持 合規 運營這一核心宗旨,自成立程式設計客棧起就堅持依法合規,誠信為本,全心全意為使用者...