天天看點

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

一、拓撲是什麼?

如果有重疊且共享相同坐标位置、邊界或結點的要素,則地理資料庫拓撲可幫助更好地管理地理資料。

地理資料庫拓撲幫助您確定資料完整性。拓撲的使用提供了一種對資料執行完整性檢查的機制,幫助您在地理資料庫中驗證和保持更好的要素表示。

此外,還可以使用拓撲為要素之間的多種空間關系模組化。這為多種分析操作(如查找相鄰要素、處理要素之間的重疊邊界以及沿連接配接要素進行導航)提供了支援。

拓撲關系

拓撲是點、線和多邊形要素共享幾何的方式的排列布置。拓撲用于以下操作:

  • 限制要素共享幾何的方式。例如,相鄰多邊形(如宗地)具有共享邊、街道中心線和人口普查區塊共享幾何以及相鄰的土壤多邊形共享邊。
  • 定義并強制實施資料完整性規則:兩個面之間不應存在間隙,不應存在重疊的要素等等。
  • 支援拓撲關系查詢和導航,如确定要素鄰接性和連通性。
  • 支援可強制執行資料模型拓撲限制的複雜編輯工具。
  • 根據非結構化的幾何構造要素,如根據線建立多邊形。

根據現有資料建構拓撲的過程可總結為以下步驟:

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

二、拓撲基礎知識

拓撲是結合了一組編輯工具和技術的規則集合,它使地理資料庫能夠更準确地建構幾何關系模型。 ArcGIS 通過一組用來定義要素共享地理空間方式的規則和一組用來處理在內建方式下共享幾何的要素的編輯工具來實施拓撲。拓撲以一種或多種關系的形式儲存在地理資料庫中,這些關系定義一個或多個要素類中的要素共享幾何的方式。參與建構拓撲的要素仍是簡單要素類,拓撲不會修改要素類的定義,而是用于描述要素的空間關聯方式。

為什麼進行拓撲?

拓撲一直是 GIS 在資料管理和完整性方面的關鍵要求。通常,拓撲資料模型通過将空間對象(點、線和面要素)表示為拓撲原始資料(節點、面和邊)的基礎圖表來管理空間關系。這些原始資料(連同它們彼此之間及其所表示的要素邊界之間的關系)通過在拓撲元素的平面圖表中表示要素幾何進行定義。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

拓撲基本用于確定空間關系的資料品質并幫助進行資料編譯。在很多情況下拓撲也用于分析空間關系,如融合帶有相同屬性值的相鄰多邊形之間的邊界或周遊拓撲圖中元素的網絡。

拓撲也可用于為幾何(來自多個要素類)的內建方式構模組化型。有些人将其稱為要素類的垂直內建。

拓撲中要素共享幾何的方式

要素可在拓撲範圍内共享幾何。以下是相鄰要素中的一些示例:

  • 區域要素可共享邊界(面拓撲)。
  • 線要素可以共享端點(邊結點拓撲)。

此外,可通過地理資料庫拓撲在要素類之間管理共享幾何,例如:

  • 線要素可以與其他線要素共享線段。
  • 面要素可以與其他面要素重疊。例如,宗地可以嵌套在塊中。
  • 線要素可以與其他點要素共享端點折點(結點拓撲)。
  • 點要素可以與線要素重疊(點事件)。

兩個視圖:要素和拓撲元素

可通過以下方式描述和使用面的圖層:

  • 作為地理要素(點、線和面)的集合
  • 作為拓撲元素(節點、邊、面及其關系)的圖表

這意味着有兩種處理要素的方法,一種方法是其中的要素由它們的坐标定義,另一種方法是其中的要素表示為其拓撲元素的有序圖表。

三、ArcGIS 中的拓撲

在地理資料庫中,拓撲是定義點要素、線要素以及多邊形要素共享重疊幾何的方式的排列布置。例如,街道中心線與人口普查區塊共享公共幾何,相鄰的土壤多邊形共享公共邊界。

處理拓撲不僅僅是提供一個資料存儲機制。在 ArcGIS 中,拓撲包括以下所有方面:

  1. 地理資料庫包括一個拓撲資料模型,該模型對簡單要素(點、線及多邊形要素類)、拓撲規則以及具有共享幾何的要素之間的拓撲內建坐标使用開放式存儲格式。該資料模型能夠為參與拓撲的要素類定義完整性規則和拓撲行為。
  2. ArcGIS 在地圖中包括了用于顯示拓撲關系、錯誤和異常的拓撲圖層。ArcGIS 還包括一組用于拓撲查詢、編輯、驗證以及糾錯的工具。
  3. ArcGIS 包括用于建構、分析、管理以及驗證拓撲的地理處理工具。
  4. ArcGIS 包括用于分析和發現點、線以及多邊形要素類中拓撲元素的進階軟體邏輯。
  5. ArcGIS 包括一個編輯和資料自動化架構,用于建立、維護和驗證拓撲完整性以及執行共享要素編輯。
  6. 在能夠導航拓撲關系、處理鄰接和連通性以及通過這些元素組裝要素的 ArcGIS Desktop、ArcGIS Server 和 ArcGIS Pro 産品中均包含 ArcGIS 軟體邏輯。例如,辨別共享特定公用邊的多邊形;列出在某個節點連接配接的邊;從目前位置起沿連接配接邊導航;添加一條新線并将其嵌入拓撲圖;在交叉點分割線;以及建立生成的邊、面和節點等。

地理資料庫拓撲的元素

在地理資料庫中,為各個拓撲定義以下屬性:

  • 要建立的拓撲的名稱。
  • 在拓撲處理操作中使用的拓撲容差。拓撲容差是一條術語,通常用于表示兩種容差:X,Y 容差和 Z 容差。拓撲容差的預設值是坐标分辨率的 10 倍。
  • 要素類清單。首先,需要一份将參與拓撲的要素類的清單。所有要素類必須使用同一個坐标系并組織成同一個要素資料集。
  • 每個要素類中坐标的相對精度等級。如果某些要素類比其他要素類精确,您會希望指定更高的坐标等級。這将用于拓撲驗證與內建。當精度較低的坐标落入其他拓撲容差範圍内時,這些坐标将被移動到更高精度坐标的位置。精度最高的要素應收到值 1,精度其次的要素類收到值 2,精度再次的要素類收到值 3,依此類推。
  • 有關要素共享幾何的方式的拓撲規則清單。

聚類處理

建立拓撲關系包括分析同一個要素類中(以及參與拓撲的多個要素類之間)的各要素間的要素折點的坐标位置。彼此間距離在指定範圍内的折點被認為表示同一個位置,并被指定一個共有坐标值(換句話說,将它們定位于同一點)。

拓撲容差用于整合折點。處于拓撲容差範圍内的所有折點在驗證過程中均可以輕微移動。預設拓撲容差基于為資料集定義的精度。用實際機關表示的預設拓撲容差為 0.001 米。它是 X,Y 分辨率距離(定義用于存儲坐标的數值精度)的 10 倍。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

兩種拓撲容差:X,Y 容差和 Z 容差

在 ArcGIS 中,使用一對拓撲容差整合折點:

  • X,Y 容差用于查找處于彼此水準距離範圍内的折點
  • Z 容差用于區分折點的 Z 高度或高程是否處于彼此容差範圍内,以及是否應進行聚類

聚類坐标(定位于同一點)的方式

X,Y 容差應該很小,是以隻有彼此非常接近(處于彼此 X,Y 容差範圍内)的折點會被指定相同的坐标位置。如果多個坐标處于容差範圍内,可認為這些坐标彼此重疊并将它們調整為共享相同位置。

這樣,X,Y 容差也定義了坐标在聚類過程中可在 x 或 y(或兩者)方向上移動的距離。是以,如果坐标在 x 次元或 y 次元上處于 X,Y 容差範圍内,則可以對其進行聚類。請參見下面的邏輯示意圖。坐标可移動圖中對角線所示的距離,這形成了一個三角形。根據勾股定理,對坐标進行聚類的最大距離等于 2 的平方根 (SQRT) 乘以 X,Y 容差。

注:

勾股定理認為,在直角三角形中,斜邊(最長邊)的平方等于其他兩條邊(直角邊)的平方和。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

預設 X,Y 容差

預設 X,Y 容差設定為 0.001 米,或以資料集的坐标系機關表示的等效值。例如,如果坐标系以英尺為機關,則此預設值是 0.003281 英尺(0.03937 英寸)。預設值是預設 X,Y 分辨率的 10 倍,且在大多數情況下均推薦此設定。如果坐标以經緯度表示,則預設 X,Y 容差為 0.0000000556 度。

用于驗證和聚類的算法

如果拓撲中某個要素的折點位于該拓撲中任何其他要素的邊的 X,Y 容差範圍内,則拓撲引擎會在這條邊上建立一個新折點以允許在聚類過程中對要素進行幾何整合。

在拓撲驗證過程中聚類要素折點時,了解要素幾何的調整方式十分重要。參與拓撲的任何要素類的所有折點均有可能移動,隻要這些折點位于其他折點的 X,Y 容差範圍内。坐标等級較高的要素的折點移動較少,并對等級較低的坐标産生更大引力。同等級要素的折點将從幾何上進行平均。

需要注意的是,x,y 容差并非用于概化幾何形狀。相反,它用于在拓撲操作過程中整合線作業和邊界,也就是幫助發現重疊且折點處于同一位置的要素。這将整合(定位于同一點)處于彼此 X,Y 容差範圍内的坐标。由于坐标在 x 和 y 方向上可以移動與拓撲容差相同的距離,是以憑借使用拓撲容差的指令來處理資料集,可以解決許多潛在問題。這包括極小的過失或未及的處理、重複線段的自動分離删除以及沿邊界線的坐标細化。

折點的最大移動距離

聚類過程的工作原理為在地圖上移動并辨別處于彼此 X,Y 容差範圍内的坐标聚類。ArcGIS 使用此算法來發現、清除和管理要素間的重疊幾何。這意味着重疊幾何元素的坐标被定位于同一點(捕捉到同一位置)。這對許多 GIS 操作和概念都非常重要。

作為聚類過程的結果,要素折點可以兩種方式移動大于拓撲容差的距離。

  1. 使用容差計算水準距離和垂直距離,以通過容差找到坐标。在此操作期間,坐标移動到新位置可以經過的最大距離是 2 的平方根乘以 X,Y 容差。
  2. 聚類算法是疊代算法。是以在某些情況下,折點在移動後處于其他折點的容差範圍内,但平移的距離可能大于 2 的平方根乘以 X,Y 容差。這種情況非常少,并且僅在折點之間十分接近彼此容差範圍,但沒有完全處于該範圍内(例如,距彼此容差範圍在 0.001 米内)時發生。由于每次疊代坐标折點都會輕微地移動,是以它們可與其他坐标進行聚類并随後在地圖中平移大于容差的距離。

實用提示

以下是一些有關拓撲容差的實用提示:

  1. 通常,使用 10 倍于 X,Y 分辨率的 X,Y 容差,即可獲得非常好的結果。
  2. 典型 X,Y 容差的數量級小于資料采集的真實精度。例如,盡管要素坐标可能會精确到 2 米,但預設 X,Y 容差為 0.001 米。
  3. 為了使移動距離較小,也應使 X,Y 容差較小。但是,過小的 X,Y 容差(例如 X,Y 分辨率的 2 倍或更小)可能無法正确整合重疊邊界的線作業。
  4. 相反,如果 x、y 容差過大,要素坐标則可能彼此重疊。這會影響要素邊界制圖表達的精度。
  5. X,Y 容差不應接近于資料采集精度(有時稱為地圖精度标準)。例如,在比例為 1:12,000 的地圖上,1 英寸等于地面上的 1,000 英尺,即使 1/50 英寸仍等于 20 英尺 - 在數字化與掃描轉換過程中很難達到這種資料采集精度。在使用這些數字的情況下,您會希望通過 x,y 容差進行的坐标移動保持正常。請記住,在這種情況下預設 X,Y 容差為 0.003281 英尺,它在幾乎任何情況下都會正常工作。
  6. 在拓撲中,可以設定每個要素類的坐标精度等級。您會希望将最精确要素(如測量所得的要素)的坐标等級設定為 1,将精度較低要素的坐标等級設定為 2、3 等等(按精度等級降序)。這将使等級數較高(是以精度較低)的其他要素坐标被調整為等級數較低而精度較高的要素。
  7. 通常,您會希望在聚類過程中能夠控制更有可能移動哪些要素類。例如,如果已知某個要素類中的要素具有比另外一組要素更可靠的位置,則可能想要将可靠性較低的要素捕捉到可靠性較高的要素。在拓撲中為要素類指定了等級以适應這種常見情況。拓撲容差範圍内低等級要素的折點将被捕捉到鄰近的高等級要素的折點。對處于拓撲容差範圍内的同級要素折點的位置将進行幾何平均。

拓撲與要素資料集

拓撲建立在公用要素資料集中儲存的一組要素類的基礎上。每個新拓撲都會添加到儲存這些要素類和其他資料元素的要素資料集中。

建立拓撲時,可以按照以下約定指定要從要素資料集中參與拓撲的任意要素類子集:

  • 一個拓撲可以引用同一個要素資料集中的一個或多個要素類。
  • 一個要素資料集可具有多個拓撲。
  • 但是,一個要素類隻能屬于一個拓撲。
  • 一個要素類不能同時屬于一個拓撲和一個幾何網絡。
  • 但是,一個要素類可以同時屬于一個拓撲和一個網絡資料集或地形資料集。

坐标等級

在地理資料庫拓撲中為要素類指定的坐标精度等級控制着要素折點在驗證過程中的移動。等級有助于控制折點在處于彼此拓撲容差範圍内時的移動方式。處于彼此拓撲容差範圍内的折點被認為位置相同且定位于同一點(為處于拓撲容差範圍内的坐标指定相同坐标值)。

如果不同的要素類具有不同的坐标精度,例如,通過測量或差分全球定位系統 (GPS) 得到一個精度,而從精度較低的源通過數字化得到另一個精度時,坐标等級可確定可靠放置的折點就是可靠性較低的折點要向其移動的定位點位置。

通常,将精度較低的坐标移動到精度較高的坐标位置,或按照聚類中各坐标間的權重平均距離計算一個新位置。在此種情況下,權重平均距離基于聚類坐标的精度等級。

當同級折點處于彼此拓撲容差範圍内時,對這些折點的位置從幾何上進行平均。

確定以正确的順序指定等級。精度最高的要素獲得等級 1,精度次高的要素獲得等級 2,依此類推。

Z 拓撲容差與等級

建構三維地形或建築物模型的要素類具有表示各個折點高程的 Z 值。與使用 X,Y 拓撲容差和等級來控制水準捕捉要素的方式相同,如果拓撲具有建構高程模型的要素類,則可以使用 Z 拓撲容差和等級控制垂直捕捉重合折點的方式。

Z 拓撲容差定義了重合折點間的高程或 Z 值的最小差異。“拓撲檢查”期間,Z 值處于 Z 拓撲容差内的折點被捕捉到一起。

建構城市建築物的模型時,兩個建築物可能彼此相鄰,并在 X,Y 屬性域方向共享同一條公用邊。如果建築物拐角的高程值是以攝影測量方式采集的,則使用者應關注該如何在拓撲驗證期間保持每棟建築物結構的相對高度。通過将 Z 拓撲容內插補點設定為零,可在拓撲檢查時防止聚類 Z 值。

建構地形模型時,可能會以不同的 X,Y 和 Z 精度來采集資料集。在這種情況下,可能要設定一個大于零的 Z 拓撲容差以進行捕捉。為避免采集到的高精度 Z 值被捕捉到低精度 Z 值中,可以為每個要素類指定一個等級。如果低等級要素的 Z 值處于拓撲容差範圍内,将被捕捉到高等級折點的高程中。屬于同等級要素類的折點的 Z 值如果處于拓撲容差範圍内,将求均值。

拓撲檢查過程用以下方式求平均值和捕捉 Z 值:每個 Z 值均通過不大于 Z 拓撲容差的總量進行調整。這會使具有相同 X,Y 的折點的 Z 值被平均或捕捉到組中。

例如,如果 Z 拓撲容差為 5,則以下六個重合折點的 Z 值将被平均為 11.25 和 3.5 兩組:

Z 值聚類示例

折點 驗證前 驗證後
z0(等級 = 1) 12.5 11.25
z1(等級 = 1) 10 11.25
z2(等級 = 1) 7.5 3.5
z3(等級 = 1) 5 3.5
z4(等級 = 1) 2.5 3.5
z5(等級 = 1) 3.5

在以下示例中,重合折點具有不同的等級,拓撲容差為 5。Z 值被平均并捕捉為三組,22.5、7.5 和 1.25:

Z 值聚類示例

折點 驗證前 驗證後
z0(等級 = 1) 25 22.5
z1(等級 = 1) 20 22.5
z2(等級 = 1) 7.5 7.5
z3(等級 = 2) 5 7.5
z4(等級 = 2) 2.5 1.25
z5(等級 = 2) 1.25

Z 拓撲容內插補點的範圍在零至 Z 屬性域範圍之間(最大 Z 值 – 最小 Z 值)。

等級是精度的相對量度。兩個要素類在等級上的差異并不相關,是以将其等級設定為 1 和 2 與設定為 1 和 3 或 1 和 10 是一樣的。

拓撲規則

拓撲規則定義了要素之間允許的空間關系。為拓撲定義的規則可控制一個要素類中各要素之間、不同要素類中各要素之間以及要素的子類型之間的關系。有關可用拓撲規則的清單,請參閱适用于點、線和面的地理資料庫拓撲規則與拓撲錯誤修複。

例如,規則“不能疊置”用于管理同一個要素類中要素的完整性。如果兩個要素疊置,則疊置幾何将以紅色顯示(例如下圖中相鄰多邊形之間的疊置紅色區域以及兩條線的紅色線性段部分)。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

在要素類的子類型之間也可以定義拓撲規則。例如,假設有兩個街道線要素的子類型 - 正常街道(在兩個結點處與其他街道相連)與死胡同街道(在一個結點處為死角)。拓撲規則便可以要求街道要素在兩端與其他街道要素相連,除非遇到街道屬于死胡同子類型的情況。

使用要素的空間關系和行為定義拓撲規則

空間關系明确表達了要素按照其空間制圖表達行為的規則共享重疊幾何的方式。例如,某些公共空間關系與規則包含以下内容:

  • 宗地不能疊置。相鄰宗地具有共享邊界。
  • 河流線不能疊置且必須在其端點處與其他河流線連接配接。
  • 相鄰縣具有共享邊。縣必須完全覆寫和嵌套在州中。
  • 相鄰人口普查區塊具有共享邊。人口普查區塊不能疊置,且人口普查區塊必須完全覆寫和嵌套在街區組中。
  • 道路中心線必須在其端點處連接配接。
  • 道路中心線和人口普查區塊共享重疊幾何(邊和結點)。

上述情形中的每一條都為使用拓撲規則維護資料完整性定義了一種可能情況。

拓撲驗證、錯誤與異常

建立新拓撲或對參與拓撲的要素進行編輯後,下一步是驗證拓撲。驗證拓撲包含以下四個過程:

  1. 對要素折點進行裂化和聚類以查找共享同一位置(具有通用坐标)的重合要素
  2. 将共有坐标折點插入到共享幾何的重合要素中
  3. 運作一系列完整性檢查以确定是否違反了為拓撲定義的規則
  4. 在要素資料集中建立潛在拓撲錯誤的錯誤日志

編輯或更改資料時,ArcGIS 将追蹤更改的區域并将其标記為髒區。 将隻對拓撲中的髒區運作驗證。如果上次驗證後并未進行編輯或更新,則不會進行任何檢查。

錯誤與異常

在拓撲中最初以錯誤的形式存儲對拓撲規則的違反。錯誤要素會在驗證期間記錄發現拓撲錯誤的位置。某些錯誤是可以接受的,這種情況下可将該錯誤要素标記為異常。錯誤與異常會以要素形式存儲在拓撲圖層中,可用于呈現和管理要素不需要符合拓撲規則的情況。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

可以為拓撲中的要素類建立一份錯誤與異常報告。并将錯誤要素數目報告用作評判拓撲資料集資料品質的量度。ArcGIS Pro 中的“錯誤檢查器”允許選擇不同的錯誤類型并縮放至單獨錯誤。可通過編輯違反了拓撲規則的要素來糾正拓撲錯誤。驗證編輯之後,将從拓撲中删除錯誤。

使用編輯工具可選擇拓撲錯誤,并從針對該錯誤類型預定義的大量修複中進行選擇。還可以使用該工具擷取有關已被違反的規則的詳細資訊,或将錯誤标記為異常。

地理資料庫拓撲有足夠的靈活性來處理拓撲規則異常。還可以将錯誤标記為異常。此後将忽略異常,盡管在判定它們實際上是錯誤并應修改要素以符合拓撲規則的情況下可以将它們傳回為錯誤狀态。

異常是資料建立與更新過程中的正常部分。例如,某個城市的街道資料庫可能有一條規定中心線必須在兩個端點處與其他中心線連接配接的規則。此規則通常可確定在編輯街道線段時将其正确地捕捉到其他街道線段。但是,在城市的邊界處,可能沒有街道資料。此時街道的外部端點可能無法捕捉到其他中心線。這些執行個體會被标記為異常,您仍然能夠使用該規則查找未正确進行數字化或編輯的執行個體。

髒區與驗證

地理資料庫拓撲的一個主要目标是:對處理和驗證參與拓撲的要素資料(在可以使用該資料前)所花費的時間進行優化。一般來說,以下表述均為真:

  • 不論拓撲的狀态如何,參與拓撲的要素類始終可供使用。
  • 拓撲驗證由使用者驅動。使用者決定想要驗證拓撲的時間和頻率(例如,在每次編輯操作之後或更低頻率,如在每次編輯會話結束時)。
  • 對每個要素類進行的所有編輯均會被追蹤,以便隻有進行過更改的區域需要重新驗證。

髒區是已認證添加或删除要素而被編輯、更新或影響的區域。髒區允許拓撲限制在拓撲驗證期間必須檢查拓撲錯誤的區域。髒區将追蹤已添加新要素或修改現有要素的位置。這允許隻驗證拓撲的標明部分,而不是全部。

ArcGIS 為您管理髒區

在建立或删除參與拓撲的要素、修改要素的幾何、更改要素的子類型、協調版本、修改拓撲屬性或更改地理資料庫拓撲規則時,ArcGIS 均會建立髒區。

版本協調的作用類似于對要素類進行的其他編輯和更新 - 将更改的區域标記為髒區。

模式更改(如添加新的拓撲規則)意味着必須重新驗證整個拓撲(換句話說,将整個資料集标記為髒區)。

存儲在地理資料庫拓撲中的資訊

以下資訊作為地理資料庫的一部分進行存儲:

  • 拓撲定義。這包括在建立拓撲時指定的所有屬性的模式記錄。
  • 共享重疊幾何的所有要素的共有坐标折點。驗證操作使用聚類來整合坐标以辨別要素和要素類中的共有折點。在所有情況下,辨別為具有相同位置的折點在所有要素類中均以它們所屬的所有要素的坐标形式寫出。這些要素是共享幾何的要素,它們通過其共有坐标來完成此操作。

    注:

    地理資料庫拓撲使用這些共享坐标為 ArcGIS 中的各種操作發現和查詢邊、結點、拓撲面及其要素關系的拓撲圖。

  • 一個髒區表,該表包含覆寫了已添加或編輯的要素的區域以及通過版本控制協調更新的區域。
  • 通過驗證操作将拓撲錯誤要素的三個表儲存于拓撲中:
    • 點錯誤
    • 線錯誤
    • 面錯誤
    拓撲錯誤的幾何将寫入其中一個錯誤表中,一同寫入的還有涉及的要素類以及違反的拓撲規則相關資訊。
GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

标記為異常的錯誤同時記錄在錯誤要素表中。異常列會标記确認為異常的錯誤。換句話說,異常就是選中了異常列的錯誤。随着不斷更新與維護要素資料集和拓撲,系統會相應追蹤錯誤和異常。

四、設計地理資料庫拓撲

使用 ArcGIS 在地理資料庫中建立拓撲前,可以先執行幾個設計步驟再開發拓撲設計。

  1. 建立一個将共享幾何的所需要素類的清單。
  2. 指定各要素類(點、線或多邊形)的空間制圖表達。
  3. 列出将共享幾何并将被一起編輯和維護的要素類。例如,如果對某個要素的幾何執行編輯,則其他要素也将随之更新。

    通常在共享拓撲中管理的一些要素類

    參與拓撲的要素類示例
    資料專題 要素類 拓撲規則的子樣本
    宗地 宗地多邊形、宗地邊界(線)、宗地拐角(點) 宗地多邊形不能疊置。宗地多邊形邊界必須被宗地邊界線覆寫。宗地邊界端點必須被宗地拐角點覆寫。
    街道中心線和人口普查單元 街道中心線、人口普查區塊、人口普查區塊組、人口普查區域 街道線不能相交或内部接觸。人口普查區塊不能疊置。人口普查區塊組必須被人口普查區塊覆寫。人口普查區塊組不能疊置。人口普查區域必須被人口普查區塊組覆寫。人口普查區域不能疊置。
    土壤 土壤類型多邊形 土壤多邊形不能疊置。土壤多邊形不能有空隙。
    水文分析 水文線、水文點、流域(多邊形) 水文線不能自疊置。水文點必須被水文線覆寫。流域不能疊置。流域不能有間距。
  4. 将這些要素類組織成要素資料集。
  5. 指定每個要素類中元素間的拓撲規則。例如,宗地可以是單部件或多部件多邊形。相鄰宗地共享幾何。宗地不能疊置。
  6. 指定要素類間的拓撲規則。例如,定義宗地多邊形的線必須被宗地邊界線覆寫。
  7. 辨別每個要素類中坐标的精度等級。最精确的要素類應接受等級 1,較低精度必須從最高等級開始按順序降低(次精确的要素類應接受等級 2,依此類推)。多個要素類可以具有相同的精度等級。如果感覺不到精度有差異,則将所有要素類的等級都設定為 1(也就是說,使精度相同)。
  8. 建構一個具有要素副本的測試地理資料庫(使用檔案或個人地理資料庫)以測試計劃的拓撲設計。使用原型地理資料庫進行練習。例如,根據計劃的設計添加拓撲、驗證拓撲并編輯其中一些要素。這樣可使您更好地了解行為并有助于優化設計。
  9. 優化并調整設計,直至獲得可行的實作。

五、使用“建立拓撲”向導建立拓撲

1、要使用建立拓撲向導建立拓撲,請完成以下步驟:

  1. 在目錄窗格中,右鍵單擊要向其中添加拓撲的要素資料集,然後單擊建立 > 建立拓撲。
  2. 為新拓撲命名并指定拓撲容差。預設值被設定為要素資料集的 X,Y 容差。理想的預設值是 0.001 米或以空間參考機關表示的等效值(例如,機關是英尺時為 0.003281 英尺,機關是以十進制度數表示的經緯度時為 0.0000000556 度)。
  3. 選中要參與拓撲的要素類複選框。系統将顯示要素資料集中所有要素類的清單。
  4. 為拓撲中的各要素類設定坐标精度等級。

    如果一個或多個要素類包含坐标 Z 值,則單擊 Z 屬性設定 Z 等級。Z 容差用于區分彼此容差範圍内折點的 Z 高度或高程。例如,兩個高度不同的相鄰要素之間可能共享一條公用邊。但是,隻有各自的 X,Y 折點會定位于同一點,Z 值或高度則不然。Z 容差可在驗證和聚類操作期間幫助正确處理此資訊。Z 容差預設值與 X,Y 容差預設值相同(以實際機關表示為 0.001 米)。

  5. 單擊下一步。
  6. 現在,您需要在參與要素類及其子類型之間建立拓撲規則。在要素類 1 下拉菜單中,選擇一個要素類。如果要建立與子類型相關聯的規則,請使用子類型 1 下拉菜單選擇一個子類型。
  7. 在下一列中,選擇相應的規則。規則可幫助您構造要素間的空間關系以控制和驗證要素共享幾何的方式。
  8. 如果适用于您選擇的規則,請從要素類 2 和子類型 2 下拉菜單中選擇第二個要素類和子類型,以完成規則。
  9. 請重複步驟 6、7 和 8,以視需要建立規則。完成操作後,請單擊下一步。
  10. 檢視之前所有配置的摘要資訊,然後單擊完成。現在已将新拓撲添加到要素資料集。随即顯示提示消息,詢問您是否要驗證要素資料集中的拓撲。如果要素類中已有資料,請單擊是。使用地理處理工具建立拓撲
  11. ArcToolbox 包含一系列用于拓撲的地理處理工具。拓撲工具集位于“資料管理”工具箱中。

    使用這些工具可建構用于建立和修改地理資料庫拓撲的腳本。腳本可用于自動執行一系列任務和建構可重複工作流。

    要使用建立拓撲工具建立拓撲,請完成以下步驟:

  12. 選擇将參與拓撲的要素類。使用向拓撲中添加要素類地理處理工具将這些要素類添加到拓撲當中。

    多次運作此工具,直到添加了您希望參與拓撲的所有要素類為止。

  13. 現在,您已建立拓撲并向其中添加了一些要素類,随後可以使用向拓撲中添加規則地理處理工具添加一系列規則。拓撲規則可幫助您構造要素間的空間關系以控制和驗證要素共享幾何的方式。

    您可能還需要多次運作此工具,直到向拓撲中添加完所有所需的拓撲規則為止。

  14. 現在,您已在要素資料集中設定一個新拓撲,其中包含參與的要素類和拓撲規則。如果要素類中含有資料,則可以使用驗證拓撲地理處理工具來驗證拓撲。
  15. 以下為獨立 Python 腳本示例,您可使用該腳本建立拓撲并向拓撲中添加多個要素類和規則:

    可使用此獨立 Python 腳本建立拓撲、添加多個要素類和規則以及驗證拓撲。

  16. import arcpy
    import os
    # Input variables
    input_dataset = r"C:\MyProjects\MyProject.gdb\fds"
    topo_name = "Topology"
    cluster_tol = 0.001
    input_fc = r"C:\MyProjects\MyProject.gdb\fds\fc1 1 1;C:\MyProjects\MyProject.gdb\fds\fc2 1 1"
    rules = r"'Must Not Overlap (Area)' C:\MyProjects\MyProject.gdb\fds\fc1 # C:\MyProjects\MyProject.gdb\fds\fc1 #;'Must Be Covered By Feature Class Of (Area-Area)' C:\MyProjects\MyProject.gdb\fds\fc1 # C:\MyProjects\MyProject.gdb\fds\fc2 #"
    validate = "true"
    # Create the topology
    out_topo = arcpy.CreateTopology_management(input_dataset, topo_name, cluster_tol)
    print("Created topology.")
    # Loop through the list of feature classes and add them to the topology
    input_fcL = input_fc.split(";")
    for fc in input_fcL:
        param = fc.rsplit(" ", 2)
        in_fc = param[0]
        xy_rank = param[1]
        z_rank = param[2]
        arcpy.AddFeatureClassToTopology_management(out_topo, in_fc, xy_rank, z_rank)
        print(arcpy.GetMessages())
        
    # Loop through the list of rules and add rules to the topology
    rulesL = rules.split(";")
    for rule in rulesL:
        r = rule.rsplit(" ", 4)
        rule_type = r[0].replace("'","")
        in_fc1 = r[1]
        subtype1 = r[2]
        in_fc2 = r[3]
        subtype2 = r[4]
        arcpy.AddRuleToTopology_management(out_topo, rule_type, in_fc1, subtype1, in_fc2, subtype2)
        print(arcpy.GetMessages())
        
    # Validate the topology
    if validate == "true":
        try:
            arcpy.ValidateTopology_management(out_topo)
        except:
            print(arcpy.GetMessages())
    print("Finished.")
               

六、驗證拓撲

建立拓撲并加載資料後,可以随時對拓撲的要素類内容運作驗證。驗證執行以下處理任務:

  • 對要素折點進行裂化和聚類以查找共享幾何(具有通用坐标)的要素
  • 将通用坐标折點插入到共享幾何的要素中
  • 運作一系列完整性檢查以确定是否違反了為拓撲定義的規則

驗證新拓撲後,後續編輯将标注為用于辨別需要重新驗證的要素資料集子集的髒區。這将節省時間并提高性能,因為将隻處理需要重新驗證的區域。

驗證拓撲

驗證拓撲地理處理工具可用于在地圖中驗證拓撲,或作為自動化工作流的一部分。腳本對于自動執行一系列任務和建構可重複工作流很有用。

拓撲驗證的提示

  • 可以自由選擇驗證拓撲的時間和頻率。通常,僅須對每個拓撲整體驗證一次。所有其他驗證僅重新驗證發生更改的髒區。
  • 當編輯資料和更改拓撲定義時,ArcGIS 将自動追蹤髒區。驗證拓撲時,ArcGIS 将自動識别必須驗證的髒區。
  • 應該多久驗證一次拓撲? 最好在編輯要素資料集後重新驗證拓撲。還可以選擇在編輯期間驗證部分資料集,以便可以在編輯過程中找到并修複錯誤。
  • 如果更改拓撲定義,則可能需要重新驗證拓撲。例如,如果更改拓撲規則集或坐标等級,則會将整個拓撲标記為髒區并且将在下次運作驗證時對其重新驗證。
  • 重新驗證拓撲并不意味着聚類處理在每次後續驗證都會使坐标移動更多。在初次驗證中對坐标進行聚類後,它們在後續驗證中不會移動,除非添加了屬于現有要素的 X,Y 容差範圍内的新幾何(例如,将新道路與街道網連接配接、分割宗地時等等)。在這些情況下,将僅對折點處于其他要素的拓撲容差範圍内的已更改區域進行聚類,并可能對其進行調整。
  • 參與拓撲的要素類始終可供在 ArcGIS 中使用,與最近是否已驗證該拓撲無關。如果拓撲尚未驗證,某些要素可能不符合完整性規則。但無論是否有錯誤,它們都可供使用。

 七、拓撲屬性

可通過拓撲屬性對話框檢視與拓撲相關的狀态,并更新與拓撲相關的要素類和規則。

要通路拓撲屬性,請右鍵單擊目錄窗格中的拓撲,然後選擇屬性。

拓撲屬性對話框具有四個頁籤:正常、要素類、規則和錯誤。多個頁籤可供您更新拓撲和編輯屬性。單擊确定按鈕後,将送出對拓撲進行的所有編輯内容。如果要放棄編輯内容,請關閉拓撲屬性對話框,或單擊取消按鈕。

注:

有關所有拓撲概念和屬性的更多詳細資訊,請參閱 ArcGIS 中的拓撲。

正常頁籤

拓撲屬性對話框的正常頁籤包含以下資訊:

  • 名稱 - 拓撲的名稱。可以通過在文本框中單擊并進行相應更改來更新拓撲的名稱。
  • XY 拓撲容差 - 假定處于拓撲容差水準距離範圍内的任意兩個折點位于同一位置。在執行拓撲驗證期間,系統将為位于拓撲容差範圍内的折點提供相同的 x,y 坐标。要更新 XY 拓撲容差,請單擊文本框并輸入相應更改。

    注:

    預設拓撲容內插補點是預設 x,y 分辨率的 10 倍,且在大多數情況下均建議使用此設定。

  • Z 拓撲容差 - 假定處于 Z 拓撲容差垂直距離範圍内的任意兩個折點位于同一位置。在執行拓撲驗證期間,系統将為它們提供相同的 z 坐标。
  • 狀态 - 本部分顯示是否已驗證拓撲以及是否存在要檢查的髒區。

要素類頁籤

要素類頁籤顯示拓撲中的坐标精度等級數和 Z 等級數以及為每個涉及的要素類配置設定的等級。

定義拓撲時,需要對拓撲中的要素類進行等級劃分,如果折點位于彼此拓撲容差範圍内,以便控制折點的移動方式。等級為 1 的要素類被視為具有最高精度。坐标等級可確定在執行拓撲驗證期間,可靠放置的折點即可靠性較低的折點要移向的定位點位置。

可以通過單擊相應的文本框并輸入新的數值來編輯 XY 等級和 Z 等級的總數。

要編輯與要素類相關聯的 XY 或 Z 等級,請單擊要素類旁邊的列,然後輸入新數值。您輸入的數值不得大于 XY 等級數或 Z 等級數文本框中顯示的數量。

添加或移除要素類

要素類頁籤還可用于在拓撲中添加或移除要素類。格網會顯示包含拓撲的要素資料集中所有要素類。可通過選中要素類名稱旁邊的複選框來選擇要添加到拓撲的要素類。取消選中複選框将從拓撲中移除該要素類。可通過單擊全選來選擇要素資料集中所有可用的要素類。單擊全部清除可取消選擇所有目前標明的要素類。

單擊确定可将標明的要素類添加到拓撲中。或者,可以單擊取消退出拓撲屬性,而不向拓撲添加任何要素類。

規則頁籤

拓撲規則定義了要素之間允許的空間關系。規則頁籤可顯示參與拓撲的要素類和子類型上定義的拓撲規則。

要向拓撲添加規則,請單擊添加,或單擊格網的最後一行,其中顯示了單擊此處添加新規則。随即建立一個空行。可以在要素類及其子類型之間建構新規則,方法為使用每列中的下拉菜單,然後從左到右填充每個像元以定義規則。

要從拓撲中移除規則,請在格網中選擇一行,然後單擊移除。

将拓撲規則儲存到規則集檔案

  1. 右鍵單擊拓撲,然後單擊屬性。
  2. 單擊規則頁籤。
  3. 單擊儲存規則。
  4. 浏覽至想要儲存為拓撲所定義的規則的位置。
  5. 輸入名稱。
  6. 單擊儲存以将拓撲的所有規則儲存到檔案。
  7. 單擊确定。

從規則集檔案中加載拓撲規則

  1. 右鍵單擊拓撲,然後單擊屬性。
  2. 單擊規則頁籤。
  3. 單擊加載規則。
  4. 浏覽至要加載的規則集的儲存位置。
  5. 單擊規則集。
  6. 單擊打開。

    如果建立規則集所依據的拓撲與要定義的新拓撲具有相同的要素類名稱,則規則集中命名的要素類應與新拓撲中的要素類正确比對。如果名稱不同,則需要将規則集中提到的要素類與新拓撲中相應的要素類比對。

  7. 對于每個未映射的源要素類,在目标列中單擊,然後單擊新拓撲中其對應的要素類。
  8. 在所有對話框中均單擊确定。

注:

  • 将規則集加載到具有之前指定規則的拓撲中會将規則集中的規則附加到現有規則。
  • 加載規則集将需要重新驗證拓撲。
  • 如果在規則集中有指定的要素類無法與新拓撲中的要素類相比對,則涉及不比對要素類的規則不會被加載。

錯誤頁籤

錯誤頁籤可彙總拓撲中發現的錯誤和異常。與規則頁籤類似,格網顯示了拓撲規則及其涉及的要素類和子類型。與每個拓撲規則相關聯的錯誤和異常會顯示在格網右側。驗證拓撲時,如果違反拓撲規則,則會産生錯誤。可以單擊“導出至檔案”按鈕将彙總資訊另存為文本檔案來建立指定時間拓撲狀态的記錄。這對于較大的拓撲編輯工程來說,是記錄和監控進度的有效方式。有關更多詳細資訊,請參閱驗證和修複地理資料庫拓撲。

八、拓撲容差選項

在地圖拓撲選項對話框中,拓撲容差是一個距離範圍,當邊與折點處于此範圍内時,确定它們重合。預設情況下,ArcGIS Pro 會自動計算最小的可能值。您可以指定自定義容差。對于大多數使用情況,自動設定是最佳做法。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

警告:

增大拓撲容差可能會降低資料的空間準确性,并導緻要素折疊或變形。這發生在多個要素元素被捕捉到一起并确定為重合時。

地理資料庫拓撲

地理資料庫拓撲用于定義相同要素類、不同要素類或子類型中的要素之間的關系。例如,您可以定義一個拓撲規則,用于指定在所有道路高速公路交叉點處都必須存在的重疊點要素。

有關詳細資訊,請參閱建立拓撲。

驗證參與拓撲規則的要素會在單獨的拓撲圖層組上符号化和記錄錯誤。您可以将錯誤标記為異常或使用預定義修複或常用編輯工具修複錯誤。

有關詳細資訊,請參閱驗證和修複地理資料庫拓撲。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

網絡拓撲

網絡拓撲僅适用于公共設施網絡。可将其用于存儲和管理網絡相關資訊,以及維護可周遊和不可周遊要素之間的連通性。公共設施網絡不參與地圖拓撲。

有關詳細資訊,請參閱關于網絡拓撲。

公共設施網絡的所有者可以啟用或禁用網絡拓撲。無論該拓撲是在啟用還是禁用狀态下,您都可以執行大多數編輯操作,例如建立或編輯要素、要素模闆、要素和關聯。

要了解詳細資訊,請參閱網絡拓撲操作。

當啟用了網絡拓撲時,編輯網絡會在名為 Dirty Areas 的子圖層上的修改區域周圍生成符号化緩沖區。驗證拓撲會包含您的更改并删除髒區。如果網絡拓撲被禁用,會在整個網絡上建立一個髒區。

要了解詳細資訊,請參閱公共設施網絡中的髒區。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

九、已版本化要素類中的髒區

多個編輯人員可以同時編輯一個要素資料集及其拓撲。

  • 每個編輯人員都将按照一定的工作流程來驗證已編輯的拓撲以及查找和修複各個編輯版本的錯誤(或将其設定為異常)。
  • 通常,多個編輯版本被合并為一個公共主版本(通常稱為“預設版本”)。
  • 值得注意的是,協調版本和出現潛在沖突時可能會發生新拓撲錯誤,即使各編輯版本已進行驗證且沒有錯誤。
  • 為了管理此類錯誤,版本化拓撲具有可影響協調過程的特殊錯誤處理和沖突檢測規則。

以下部分介紹了協調髒區、錯誤、異常和潛在沖突的結果。在每種情況下,結果都基于在建立子版本後父版本和子版本均已更新的協調過程。如果在協調子版本前沒有編輯父版本,協調結果将是子版本的内容。在各示例中,将版本 2 建立為版本 1 的子版本。然後以示例中所述的方式編輯這兩個版本;随後依據版本 1 協調版本 2。下面示例中的插圖使用以下圖例:

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

示例 1

  • 對于在父版本和子版本建立之前不存在,但後來出現在父版本或子版本中的任何髒區,在協調過程後仍然為髒區。
    GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲
  • 對于在父版本中出現且已在子版本中進行驗證的任何髒區,将由于協調而變髒。
    GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲
  • 對于父版本中已引入且已驗證的任何髒區,無論其是否出現在子版本中,都将在協調過程後保持已驗證狀态。
    GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

如上所示,父版本的原始狀态(無髒區)在協調後保持不變。但是,可能會由于針對子版本執行了更新而建立其他髒區。

下面的示例 2 和 3 說明了在父版本中引入和驗證的任何髒區在協調後保持驗證狀态的其他情況。

示例 2

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

示例 3

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

在子版本中對拓撲要素進行的任何編輯都會在協調後産生髒區,即使在子版本中已驗證由于編輯而産生的髒區。當原始編輯不産生髒區(例如屬性更新)時也是如此。以下示例對此進行了說明:

注:

在下例中,版本 1 和版本 2 均已編輯;但僅在版本 2 中修改了示例中的多邊形形狀。

示例 4

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

示例 5

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

十、常見拓撲任務

在 Standard 或 Advanced 許可等級下可用。

可對拓撲進行多種修改。在某些情況下(如重命名拓撲時),更改不會對拓撲狀态産生任何影響。但在其他情況下,更改可能需要重新驗證拓撲。例如,更改(如添加新要素類或規則,或者更改拓撲容差)可能會建立新的髒區和錯誤要素,這就需要重新驗證拓撲。無論企業級地理資料庫中的拓撲是否已版本化,均可對其執行本主題中所列出的方案編輯。

可使用拓撲屬性對話框來管理很多共同的拓撲任務。在拓撲屬性中可以執行以下操作:

  • 重命名拓撲
  • 更改拓撲容差
  • 更改坐标等級
  • 添加和移除要素類
  • 建立、修改和删除規則
  • 儲存并加載規則

向拓撲添加新要素類

使用地理處理

以下是使用向拓撲中添加要素類工具向現有拓撲添加新要素類的步驟。

  1. 在分析功能區中,單擊 Python 按鈕以打開 Python 視窗。
  2. 輸入以下内容,運作向拓撲中添加要素類工具:arcpy.AddFeatureClassToTopology_management()
  3. 第一個需要輸入的參數是您希望添加要素類的拓撲位置路徑,例如 "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo"。
  4. 對于輸入要素類參數,請輸入您希望添加到拓撲的要素類的位置。

    隻能添加處于要素資料集内且目前未參與拓撲或幾何網絡的要素類。

  5. 輸入要素類的 XY 坐标等級,或輸入 "" 以使用預設值。
  6. 輸入要素類的 Z 坐标等級,或輸入 "" 以使用預設值。
  7. 按 Enter 鍵運作此指令。
  8. 重複步驟 2-7 以添加多個要素類到拓撲。
  9. 使用驗證拓撲工具驗證拓撲。

以下是在 Python 視窗中執行 AddFeatureClassToTopology 工具的示例:

arcpy.AddFeatureClassToTopology_management(r"C:\MyProject\MyProject.gdb\Streets\Street_Topo", r"C:\MyProject\MyProject.gdb\Streets\StreetNetwork", 1, 0.1)
           

在拓撲中使用子類型

設計地理資料庫時,應了解用于在拓撲中使用要素類子類型的選項。

關于子類型

子類型允許通過在要素類内建構要素的子類,以更有效地對真實世界對象進行模組化。例如,在宗地要素類中,可能有标準宗地(不能疊置)和共管較高價的電梯大廈宗地(允許疊置)的子類。此外,各個宗地子類型(例如,單戶住宅與多戶住宅)的分區預設值可能不同。

要了解有關子類型和地理資料庫的詳細資訊,請參閱子類型概述。

拓撲内的子類型

拓撲中的各個子類型可應用不同的規則以及不同的坐标等級。這樣便可建立隻應用到特定子類型(例如建立細分之前建構的結構)的規則。

以考慮建築物覆寫區為例,通過建立建築物的子類型并且僅為無法跨過宗地邊界的子類型建立“必須被其他要素覆寫”規則,可以針對一小部分建築物合理地跨越宗地邊界的情況進行模組化。

GIS入門進階 0005一、拓撲是什麼?二、拓撲基礎知識四、設計地理資料庫拓撲六、驗證拓撲

還可以對各個子類型應用不同的坐标等級。例如,通過 COGO 工具輸入邊界的宗地可能比不同子類型中通過數字化輸入邊界的其他宗地具有更高的坐标等級。

移除要素類

您可以使用從拓撲中移除要素類地理處理工具從拓撲中移除要素類。

  1. 在分析功能區中,單擊 Python 按鈕以打開 Python 視窗。
  2. 輸入以下内容,運作從拓撲中移除要素類工具:arcpy.RemoveFeatureClassFromTopology_management()
  3. 第一個需要輸入的參數是含有您希望移除的要素類的拓撲位置路徑,例如 "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo"。
  4. 對于要移除的要素類參數,請輸入您希望從拓撲中移除的要素類的位置。
  5. 按 Enter 鍵運作此指令。

    現在即已從拓撲中移除要素類。要移除多個要素類,請針對您希望移除的每個要素類運作此工具。

以下是在 Python 視窗中執行 RemoveFeatureClassFromTopology 工具的示例:

重命名拓撲

在目錄窗格中進行以下操作:

  1. 右鍵單擊拓撲,然後單擊重命名。
  2. 輸入新名稱。
  3. 按 Enter 鍵。

注:

重命名拓撲不會影響其狀态,也不需要重新驗證該拓撲。

提示:

要素類參與地理資料庫拓撲時,無法對其重命名。

更改拓撲容差

您可以使用設定拓撲容差地理處理工具來更改拓撲容差。

  1. 在分析功能區中,單擊 Python 按鈕以打開 Python 視窗。
  2. 輸入以下内容,運作設定拓撲容差工具:arcpy.SetClusterTolerance_management()
  3. 第一個需要輸入的參數是含有您希望更改拓撲容差的拓撲的位置路徑,例如 "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo"。
  4. 針對第二個參數,輸入新的拓撲容內插補點,例如 0.00015。
  5. 按 Enter 鍵運作此指令。

注:更改拓撲的拓撲容差需要重新驗證該拓撲。拓撲容差越大,将資料中的要素從其目前位置移動的可能性越大。如果拓撲容差過大,形狀将發生變化。

以下是在 Python 視窗中執行 SetClusterTolerance 工具的示例:

arcpy.SetClusterTolerance_management(r"C:\MyProject\MyProject.gdb\Streets\Street_Topo", 0.00015)
           

處理拓撲規則

您可以通過使用地理處理工具向現有拓撲中添加或從中移除規則。

向拓撲添加規則

您可以使用向拓撲中添加規則地理處理工具向拓撲添加規則。

  1. 在分析功能區中,單擊 Python 按鈕以打開 Python 視窗。
  2. 輸入以下内容,運作向拓撲中添加規則工具:arcpy.AddRuleToTopology_management()
  3. 第一個需要輸入的參數是您希望添加規則的拓撲位置路徑,例如 "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo"。
  4. 輸入您希望添加的規則,例如“邊界必須被其他要素的邊界覆寫(面 - 面)”。
  5. 輸入源要素類的路徑。
  6. 輸入輸入要素類或源要素類的子類型。輸入子類型的描述(而不是代碼)。如果源要素上不存在子類型,或者要将規則應用于要素類中的所有子類型,則将此留白 ""。
  7. 輸入目标要素類的路徑。
  8. 要将規則應用到目标類中的子類型,請輸入子類型描述。
  9. 按 Enter 鍵執行此指令。

    新規則現已添加到拓撲。在多個規則的情況下,您需要多次運作此工具。

注:添加新規則後,必須重新驗證拓撲。

以下是在 Python 視窗中執行 AddRuleToTopology 工具的示例:

arcpy.AddRuleToTopology_management("C:\\MyProject\\MyProject.gdb\\Streets\\Street_Topo",
                                                 "Boundary Must Be Covered By Boundary Of (Area-Area)",
                                                 "C:\\MyProject\\MyProject.gdb\\Streets\\Subdivision",
                                                 "",
                                                 "C:\\MyProject\\MyProject.gdb\\Streets\\Parcels",
                                                 "")
           

從拓撲中移除規則

您可以使用移除拓撲規則地理處理工具從拓撲中移除規則。

  1. 在分析功能區中,單擊 Python 按鈕以打開 Python 視窗。
  2. 輸入以下内容,運作移除拓撲規則工具:arcpy.RemoveRuleFromTopology_management()
  3. 第一個需要輸入的參數是含有您希望移除的規則的拓撲位置路徑,例如 "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo"。
  4. 輸入您希望從拓撲中移除的規則,例如“不能有懸挂點 (21)”。

    當使用腳本運作此工具時,必須在規則名稱後面的括号中指定待移除拓撲規則中涉及的要素類 ObjectClassID。了解有關查找 ObjectClassID 的詳細資訊。

  5. 按 Enter 鍵執行此指令。

    新規則随即從拓撲中移除。要移除多個規則,您需要多次運作此工具。

注:移除規則需要重新驗證拓撲。

以下是在 Python 視窗中執行 RemoveRuleFromTopology 工具的示例:

arcpy.RemoveRuleFromTopology_management("C:\\MyProject\\MyProject.gdb\\Streets\\Street_Topo",
                                                      "Must Not Have Dangles (21)")
           

更改坐标等級

有多種方法可更改拓撲中的等級設定。

更改等級數

  1. 右鍵單擊拓撲,然後單擊屬性。
  2. 單擊要素類頁籤。
  3. 輸入等級數。
  4. 單擊确定。

拓撲可支援最多 50 個可指定給要素類的等級。

注:

更改等級數并不需要重新驗證拓撲。

更改要素類的等級

  1. 右鍵單擊拓撲,然後單擊屬性。
  2. 單擊要素類頁籤。
  3. 單擊添加類,然後選中要素類旁邊您想進行排名的框。單擊确定。
  4. 為每個要素類輸入等級。
  5. 單擊确定。

注:

更改任何要素類的等級均需要重新驗證拓撲。

處理拓撲規則

有多個任務可處理拓撲内的規則。可進行以下操作:

  • 将規則另存為可共享和重複使用的規則集檔案。
  • 檢視規則描述和示意圖。

将拓撲規則儲存到規則集檔案

  1. 右鍵單擊拓撲,然後單擊屬性。
  2. 單擊規則頁籤。
  3. 單擊添加。
  4. 從要素類 1 下拉菜單中選擇想要應用規則的要素類。
  5. 如果要素類有子類型,請在子類型下拉菜單中選擇一個合适的内容。
  6. 從規則下拉菜單中選擇要應用到要素類的規則。
  7. 單擊确定。

從規則集檔案中加載拓撲規則

  1. 右鍵單擊拓撲,然後單擊屬性。
  2. 單擊規則頁籤。
  3. 單擊儲存規則。
  4. 單擊加載規則。
  5. 浏覽至要加載的規則集的儲存位置。
  6. 單擊規則集。
  7. 單擊打開。

    如果建立規則集所依據的拓撲與要定義的新拓撲具有相同的要素類名稱,則規則集中命名的要素類應與新拓撲中的要素類正确比對。如果名稱不同,則需要将規則集中提到的要素類與新拓撲中相應的要素類比對。

  8. 對于每個未映射的源要素類,在目标列中單擊,然後單擊新拓撲中其對應的要素類。
  9. 在所有對話框中均單擊确定。

注:将規則集加載到具有之前指定規則的拓撲中會将規則集中的規則附加到現有規則。

注:加載規則集将需要重新驗證拓撲。

注:如果在規則集中有指定的要素類無法與新拓撲中的要素類相比對,則涉及不比對要素類的規則不會被加載。

彙總拓撲錯誤

可從拓撲屬性對話框中檢視拓撲中的錯誤數彙總資訊。該彙總資訊顯示每個拓撲規則存在的錯誤數和異常數。

可将彙總資訊另存為文本檔案來建立指定時間拓撲狀态的記錄。這對于較大的拓撲編輯工程來說,是記錄和監控進度的有效方式。

查詢和導航拓撲圖

ArcGIS 開發者工具為程式員提供了通路拓撲圖的方法,拓撲圖是參與拓撲的要素類中的幾何的平面制圖表達。有關使用拓撲圖的詳細資訊,請參閱“适用于 .NET 的 ArcObjects 幫助”

繼續閱讀