這是一個重磅工具,建議先看視頻。
提取中心線
一、需求背景
????????說真的,當小編第一次使用ArcGIS中的Polygon To Centerline工具提取面要素中心線時,激動得無以言表,畢竟,以前要提取面中心線,是一件非常麻煩的事。
????????但,還是存在一些問題增加了后期數據處理的工作量。
……
????????第一,Polygon To Centerline工具?需要?Production Mapping許可;
????????第二,該工具通過使用發現,對“狹長”的河流面、道路面提取中心線效果很好,但對“形狀指數”較大的面反而表現較差;
????????第三,該工具支持連接要素,但不能很好地處理自身面要素間共享邊處的連接問題,以及面要素與其他連接線處的問題;
????????有沒有其他好的解決方案,能兼顧性能、效果、更能正確解決連接處中心線的正確連接呢?
????????后來,小編使用QGIS、FME,以及Centerline包測試了提取多邊形的中心線,整體來說,各有優缺點,但是從性能、效果、使用便捷等方面,ArcGIS Pro中的Polygon To Centerline工具更勝一籌。感興趣的同學可以自己嘗試多種技術路線下實現多邊形中心線的提取。
????????是不是只能使用ArcGIS Pro中的面轉中心線工具了呢?
……
????????于是,自力更生的時候到了。
二、為什么要提取面中心線?
????????在GIS(地理信息系統)數據中提取面中心線有多種重要用途,這些用途包括:
????????1. 簡化地理數據:面中心線提取可以將復雜的多邊形要素簡化為更簡單的線要素,適用于小比例地圖或地理信息系統中,這有助于提高地圖的可讀性和性能。
????????2. 道路網絡分析:面中心線通常用于道路網絡分析,如路徑規劃、導航和交通模擬。它們幫助確定道路的核心線,以便更容易找到最佳路徑和進行交通管理。
????????3. 水文網絡分析:提取水體多邊形的中心線對水文網絡分析非常有用。它們用于洪水模擬、水體流向分析和水文資源管理。
????????4. 資源管理:面中心線提取可用于管理自然資源,如森林管理中的道路和河流,以及礦業資源中的采礦區域。
????????5. 環境研究:在生態學和野生動物學中,提取面中心線有助于分析動物遷徙路徑、棲息地邊界和生態系統的連通性。
????????6. 土地規劃:在城市和區域土地規劃中,面中心線可以用于確定道路和交通基礎設施的位置,以更有效地規劃土地用途和城市發展。
????????7. 基礎設施管理:面中心線可以用于公共事業管理,例如管理管道、電纜和電力線路,以及城市基礎設施的維護。
????????8. 地理數據可視化:提取面中心線有助于制作地圖和地理數據可視化,使復雜地理信息更易于理解。
????????9. 地理分析:面中心線提取可用于各種地理分析任務,如地理數據分析、地理統計和地理信息系統建模。
????????總之,提取面中心線有助于簡化地理數據、提高數據的可讀性,同時為各種應用提供了更有用的地理信息,包括規劃、導航、資源管理、環境研究和基礎設施管理等。這使面中心線提取成為GIS數據處理中的重要步驟。
三、面中心線提取,有何難點?
????????提取面中心線雖然在許多情況下非常有用,但也面臨一些挑戰和難點,這些難點包括:
????????1. 復雜多邊形形狀:面可以具有各種形狀,包括不規則多邊形、凹凸多邊形、多個內部環等。提取中心線時需要考慮處理這種多樣性。
????????2. 多邊形拓撲關系:當面具有拓撲關系,例如重疊或交叉時,提取中心線變得更加復雜。解決這些情況需要確保準確的幾何拓撲操作。
????????3. 數據質量:面數據的質量對中心線提取過程至關重要。不完整、有錯誤或不精確的數據可能導致不準確的中心線。
????????4. 內部多邊形和島嶼:如果面內部包含多個內部多邊形或島嶼,提取中心線時需要處理這些內部邊界,以確保正確的中心線。
????????5. 非線性線段:面可能包含Bézier曲線、圓弧和橢圓弧線段,這些非線性線段可能增加提取中心線的復雜性。
????????6. 交叉點:面中的交叉點(節點)需要正確處理,以避免在中心線中引入錯誤。
????????7. 性能問題:處理大量面數據時,提取中心線可能會變得非常耗時,需要考慮性能優化和計算效率。
????????8. 地理屬性的保留:中心線提取通常不包括面的地理屬性。如果需要將中心線與原始面的屬性相關聯,可能需要進行額外的數據處理。
????????面中心線提取通常需要考慮這些難點,并根據具體的應用需求和數據質量采取相應的方法和工具,以確保準確性和可靠性。不同的GIS軟件和算法也提供不同的解決方案,以滿足不同情況下的需求。
????????小編不說使了九牛二虎之力,但至少了花了一大把力氣,證實了,自力更生才是實現數據處理工具自由的可靠途徑。
四、面中心線提取工具
????????面中心線提取工具,用于解決面要素圖層中任意多邊形的中心線提取,正確處理面要素圖層中面要素之間,面要素圖層與其他連接要素(點、線、面)圖層間的連接,并對提取的中心線進行平滑和簡化處理。
4.1 工具概述
????????“面中心線提取”工具,支持的功能如下:
????????1)對面要素提取中心線,面要素形狀可以是任意多邊形,能很好的處理狹長多邊形,非狹長多邊形,有孔洞多邊形。
?????????2)當面要素有其他連接要素圖層,如點、線、面圖層,將按照輸入面要素與與之相交的其他要素的公共點(共享邊中點)進行有效連接;
???????? 3)對提取的中心線進行了平滑和簡化處理;
?????????4)輸出的中心線記錄了原始多邊形的ID,可用于源數據字段的連接和傳遞;并在每一個連接點處記錄構成連接點的源圖層名稱和要素ID,用于區分連接點類型,和解決匯入段屬性值的連續性問題。
4.2 功能流程
????????(1)工具打開界面如下圖所示:
????????(2)工具測試數據執行結果如下圖所示:
????????小編工具提取結果 VS ArcGIS Pro工具提取結果1:
????????小編工具提取結果 VS ArcGIS Pro工具提取結果2:
????????小編工具提取結果 VS ArcGIS Pro工具提取結果3:
? ? ? ? (3)工具參數介紹如下:
? ? ? ? (4)工具輸出:
????????要素類(FeatureClass),輸出兩個要素類,要素類1名稱使用“要素類名稱+_centerline”組成,用于存放提取的中心線數據;要素2名為“keep_con_points”,用于記錄每個與中心線連接的連接要素圖層的圖層名。輸出的要素類存放在輸出目錄中的scratch.gdb中。若scratch.gdb不存在,則自動創建,若已存在,不會覆蓋其中已有的要素。
????????輸出的兩個要素類,介紹如下圖:
? ? ? ? (5)注意事項:
????????連接要素與輸入的面要素需保持相同的坐標系。