用 Grass 的 v.clean 修正幾何錯誤、重疊區與填補空隙

QGIS-GRASS

 

專業生草空間地理分析工具

 

雖然說現在 Grass 已經整合入 QGIS 的 Processing Toolbox 中,但畢竟是第三方工具的關係,有時候會出現一些小 Bug 導致無法正常運作。例如流浪貓的前輩想在 QGIS 中用 v.clean 來清除向量地圖的一些拓撲錯誤時,就常發生無法運作或執行後錯誤依然存在、但獨立運作時卻又完全正常的奇怪狀況。習維尼

 

但無論如何,Grass 依然是個免費、開源又好用的地理資訊系統 (GIS),常被用來處理點陣 (Raster) 和向量 (Vector) 圖型資料。

 

安裝 Grass

於軟體管理員搜尋並安裝 Grass 即可。

 

Grass 文字界面操作 (command line)

打開終端機,以輸入以下指令啟動 Grass 新專案

grass78 -c EPSG:3857 /home/user/grass

 


 

或打開現有專案

grass78 "/home/user/grass/island/PERMANENT" -gtext

匯入向量圖

輸入以下指令,將 test_1.gpkg 匯入 Grass

v.in.ogr input=test_1.gpkg

將 test_1 進行幾何錯誤清理後,輸出成 test_1_clean

v.clean input=test_1 output=test_1_clean tool=break,snap,bpol threshold=1


參數說明

break: 斷開交叉的線段。

bpol: 打破重疊多邊形的邊界。

snap: 將線連結到頂點上。

threshold: 臨界值,處理所有小於此距離的點,以地圖單位為準。

因為 Grass 出現無法用 rmdupl 去除重疊區的奇怪問題,因此換回 QGIS 的 Delete duplicate geometries 來替代。習病毒

若過程沒出現錯誤訊息,則可將其輸出成 test_1_clean.gpkg

v.out.ogr -c input=test_1_clean type=area output=test_1_clean.gpkg

   

成功切割重疊區並自動填補間隙 (黃色區域)


Grass 圖形界面操作 (GUI)

由於不明原因,Linux 系統無法啟動 GRASS GIS 的 GUI,以下操作過程是在 Windows10 系統中示範。



付費以解鎖更多 QGIS 實戰技巧



將重疊區切割成獨立的 Polygon

 

 

延伸閱讀

Grass manuals - v.clean

Grass - wiki Vector topology cleaning

更多 QGIS

  

 

 

 

 

 

留言

這個網誌中的熱門文章