2021年6月23日 星期三

加速QGIS處理速度-批次程序介紹

 同樣的步驟要一直重複操作,有沒有辦法能夠讓不同資料都重複執行步驟?

QGIS提供了批次程序處理的功能,基本上每個演算法(plugin)都可以使用批次處理。除了批次程序處理以外,分割向量檔案與循環執行也可以節省時間。

以下解釋三種功能以及實際操作示範

第一部分:批次程序介紹

以批次程序來執行


點開任一演算法的視窗,左下角有個「以批次程序來執行」


點進去後演算法視窗會切換成這樣

使用批次程序前,建議要先對使用的演算法功能有基本的認識,知道需要輸入哪些設定以及輸入的圖層


第二部分:分割向量圖層介紹

分割向量圖層可以指定shp檔中一個屬性欄位,作為依據分割向量檔。例如:使用花蓮縣村里界行政圖,可以指定使用「鄉鎮」或者「村里」作為向量檔的分割依據。

QGIS分割向量圖層
「唯一值欄位」即選定要分割向量圖層的屬性依據,圖片中選擇「VILLNAME」,以村里界作為輸出分類。
分割向量圖層輸出結果




第三部分:進行批次處理

接下來將使用shp向量圖層進行dem裁切。shp檔使用上個步驟的隨意10個村里,dem使用內政部20mdem。

使用功能「按遮照圖層剪裁影像」,並切換成「以批次程序來執行」
自動填滿選擇「dem_20m」,分析遮照選擇各村里界圖層,這裡選擇的對象每個皆要不一樣。

拉到最後面,會看到最後的輸出區域「已裁剪(遮罩)」點選「...」圖式



接著輸入輸出檔案名稱


跳出「自動填滿設定」對話框,自動填滿模式選擇「使用參數填滿」,參數使用選擇「分析遮照」。參數使用選擇意思是檔案的輸出命名要依照那個欄位進行命名,自動填滿模式意思是檔案名稱的命名方式要按照哪種方法,QGIS可支援使用公式命名,或者是圖層中的某個屬性欄位。


輸出後會發現各村里界的tif檔已經順利裁切並匯出,檔案名稱的命名方式也是按照各村里名稱進行命名。

第四部分:循環執行介紹

這個名字是我自己取的,QGIS中這個功能的說明解釋很長,取這個名字是方便我解釋。

點及分析遮罩欄位最右邊長的像回收標誌的按鈕,點及後按鈕會出現橘色框框。

開啟這個功能後,QGIS會偵測輸入圖層的向量檔中,是由多少個獨立的多邊形組成,接著會按照每個多邊行的範圍執行。


使用花蓮縣鄉鎮界shp檔與全臺灣20mdem檔案。開啟循環功能並設定好投影座標後,進行執行。


所有的圖層接按照花蓮縣鄉鎮界進行裁切並輸出。

第五部分:整理比較

此文中共使用了三種方式,分別是分割向量圖層、批次處理、循環執行,這三種方式皆可以節省重複動作執行,但也都有各自不同的使用時機。

批次處理是所有的演算法(plugin)都可使用的,分割向量圖層在單獨匯出shp檔時相當好用,但也僅限於此,循環執行能做到類似批次處理的功能,但可調整度相比批次處理還是要來的少很多。

如果你覺得這樣的方式還不夠快,之後我會發一篇關於自動化模組(model)使用介紹。model能夠更自由的調整功能,甚至可做到一鍵就完成所有步驟。




沒有留言:

張貼留言