ArcGis拓撲——規則、概念與要點


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

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

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

地理數據庫拓撲的元素

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

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

聚類處理

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

拓撲容差用於整合折點。處於拓撲容差范圍內的所有折點在驗證過程中均可以輕微移動。默認拓撲容差基於為數據集定義的精度。用實際單位表示的默認拓撲容差為 0.001 米。它是 X,Y 分辨率距離(定義用於存儲坐標的數值精度)的 10 倍。

X,Y 容差用於匹配重疊的坐標(處於彼此的容差范圍內)。

兩種拓撲容差:x,y 容差和 z 容差

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

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

聚類坐標(定位於同一點)的方式

X,Y 容差應該很小,因此只有彼此非常接近(處於彼此 X,Y 容差范圍內)的折點會被指定相同的坐標位置。如果多個坐標處於容差范圍內,可認為這些坐標彼此重疊並將它們調整為共享相同位置。

這樣,X,Y 容差也定義了坐標在聚類過程中可在 x 或 y(或兩者)方向上移動的距離。因此,如果坐標在 x 維度或 y 維度上處於 X,Y 容差范圍內,則可以對其進行聚類。請參見下面的邏輯示意圖。坐標可移動圖中對角線所示的距離,這形成了一個三角形。根據幾何與勾股定理,對坐標進行聚類的最大距離等於 2 的平方根乘以 X,Y 容差。

注:

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

X,Y 容差

默認 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 兩組:

折點

驗證前

驗證后

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)

0

3.5

Z 值聚類示例

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

折點

驗證前

驗證后

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)

0

1.25

Z 值聚類示例

Z 拓撲容差值的范圍在零至 Z 屬性域范圍之間(最大 Z 值 – 最小 Z 值)。

等級是精度的相對量度。兩個要素類在等級上的差異並不相關,因此將其等級設置為 1 和 2 與設置為 1 和 3 或 1 和 10 是一樣的。

拓撲規則

拓撲規則定義了要素之間允許的空間關系。為拓撲定義的規則可控制一個要素類中各要素之間、不同要素類中各要素之間以及要素的子類型之間的關系。有關可用的拓撲規則列表,請參閱地理數據庫拓撲規則與拓撲錯誤修復

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

面和線的“不能疊置”規則。紅色區域表示驗證期間發現的錯誤。

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

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

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

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

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

拓撲驗證、錯誤與異常

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

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

編輯或更改數據時,ArcGIS 將追蹤更改的區域並將其標記為臟區。將只對拓撲中的臟區運行驗證。如果上次驗證后並未進行編輯或更新,則不會進行任何檢查。

錯誤與異常

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

在編輯期間標記為異常的拓撲錯誤

可以為拓撲中的要素類創建一份錯誤與異常報告。並將錯誤要素數目報告用作評判拓撲數據集數據質量的量度。ArcMap 中的“錯誤檢查器”允許選擇不同的錯誤類型並縮放至單獨錯誤。可通過編輯違反了拓撲規則的要素來糾正拓撲錯誤。驗證編輯之后,將從拓撲中刪除錯誤。

使用編輯工具可選擇拓撲錯誤,並從針對該錯誤類型預定義的大量修復中進行選擇。還可以使用該工具獲取有關已被違反的規則的詳細信息,或將錯誤標記為異常。

地理數據庫拓撲有足夠的靈活性來處理拓撲規則異常。還可以將錯誤標記為異常。此后將忽略異常,盡管在判定它們實際上是錯誤並應修改要素以符合拓撲規則的情況下可以將它們返回為錯誤狀態。

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

臟區與驗證

地理數據庫拓撲的一個主要目標是:對處理和驗證參與拓撲的要素數據(在可以使用該數據前)所花費的時間進行優化。一般來說:

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

臟區是已通過添加或刪除要素而被編輯、更新或影響的區域。臟區允許拓撲限制在拓撲驗證期間必須檢查拓撲錯誤的區域。臟區將追蹤已添加新要素或修改現有要素的位置。這允許只驗證拓撲的選定部分,而不是全部。

ArcGIS 為您管理臟區

在創建或刪除參與拓撲的要素、修改要素的幾何、更改要素的子類型、協調版本、修改拓撲屬性或更改地理數據庫拓撲規則時,ArcGIS 均會創建臟區。

版本協調的作用類似於對要素類進行的其他編輯和更新 - 將更改的區域標記為臟區。

模式更改(如添加新的拓撲規則)意味着必須重新驗證整個拓撲(換句話說,將整個數據集標記為臟區)。

存儲在地理數據庫拓撲中的信息

以下信息作為地理數據庫的一部分進行存儲:

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

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

  • 一個臟區表,該表包含覆蓋了已添加或編輯的要素的區域以及通過版本控制協調更新的區域。
  • 由驗證操作存儲在拓撲中的三個拓撲錯誤要素表:
    • 點錯誤
    • 線錯誤
    • 面錯誤
    拓撲錯誤的幾何將連同有關所涉及的要素類的信息以及已被違反的拓撲規則一起寫入到其中一個錯誤表中。

拓撲中的臟區與錯誤示例

標記為異常的錯誤同時記錄在錯誤要素表中。“異常”列會標記確認為異常的錯誤。換句話說,異常就是選中了“異常”列的錯誤。隨着不斷更新與維護要素數據集和拓撲,系統會相應追蹤錯誤和異常。

 

在這里抄過來的:

http://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/topologies/topology-in-arcgis.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM