使用處理框架進行批次處理 (QGIS2)

警告

本教學已有新的版本,請前往 使用處理框架進行批次處理 (QGIS3)

QGIS 2.0 引進了一個稱為處理框架(Processing Framework)的新概念。它的前身是 Sextante,旨在為 QGIS 提供可以用來執行原生或第三方提供的演算法來處理資料的環境。此概念包含一個很棒的批次處理介面,讓使用者可以簡單地對許多圖層執行程式計算。這個批次處理工具可以自動處理重複的工作,為你省去許多時間精力。

內容說明

我們要只使用一個批次指令,來裁切幾個全球的向量圖層的非洲大陸區域資料。

你還會學到這些

  • 融合 (Dissolve) 圖層中具有相同屬性的多邊形圖徵

取得資料

Natural Earth 可以載到以下幾個向量圖層:

下載後,把所有的 shapefile 都解壓縮到同一個資料夾。

資料來源 [NATURALEARTH]

操作流程

  1. 選擇 圖層 ‣ 加入向量圖層

../_images/1166.png
  1. 選擇剛下載的 Admin 0 - Countries ne_10m_admin_0_countries.shp 並按下 確定

../_images/2137.png
  1. 由於我們的任務是裁切全球圖層到非洲大陸的範圍,因此需要先準備一個多邊形圖層,描繪出非洲大陸的外框。本圖層具有一個稱為 CONTINENT 的屬性,我們可以利用一個稱為「融合(Dissolve)」的地理運算工具,來融合所有具有相同屬性的非洲國家(多邊形)成為一個大的多邊形。

../_images/378.png
  1. 選擇 向量 ‣ 地理運算工具 ‣ 融合,開啟 融合 工具。

../_images/446.png
  1. 輸入向量圖層 中輸入 ne_10m_admin_0_countries融合欄位 選擇 CONTINENT,輸出檔命名為 continents.shp,然後勾選 加入結果至 QGIS 地圖中

備註

如果你想要不管屬性、融合所有的多邊形的話,可以在 融合欄位 中選擇 – 全部融合 –,這樣的話所有的多邊形就會融合成一個。

../_images/540.png
  1. 融合的處理需要一些時間。當處理完畢後,名為 continent 的新圖層會加到 QGIS 中,使用工具列上的 選取圖徵 工具,點選非洲大陸,把大陸外框的多邊形選取起來。

../_images/639.png
  1. continents 圖層上按右鍵選擇 存檔為…,勾選 儲存僅選取的圖徵。(譯按:舊一點的 QGIS 版本可以直接選擇 儲存選取範圍為…

../_images/739.png
  1. 輸出檔案命名為 africa.shp,由於我們只需要大陸的形狀,不在乎其屬性值,因此 忽略屬性建立 的框框也可以勾選起來。順便確認 加入儲存檔案至地圖中 有勾選後,按下 確定

../_images/838.png
  1. 現在 QGIS 已載入了 africa 圖層,圖層內只有一個非洲的多邊形。現在我們可以開始批次剪下檔案了。開啟 地理運算 ‣ 工具箱

../_images/939.png
  1. 在所有可用的運算法中搜尋並找到 裁切(Clip)工具。它可能會放在 geoalgorithms ‣ 向量 ‣ 疊層 目錄底下,或是舊版的 QGIS geoalgorithms ‣ Vector overlay tools 底下。你也可以使用 搜尋 框簡單查詢此運算法的位置。

../_images/1046.png
  1. 右鍵點選 裁切 運算法然後選擇 以批次方式執行

../_images/1167.png
  1. 批次處理中 的視窗中,第一個分頁「參數」就是我們給定輸入檔案的地方。請點選第一行的 輸入圖層 框旁邊的 按鈕。

../_images/1249.png
  1. 切換至你剛下載的有關全球交通的 shapefile 的資料夾,按住 Ctrl 鍵然後選擇所有你想要裁切的圖層。你也可以使用 ShiftCtrl-A 進行多重選取。接著按下 開啟舊檔

../_images/1347.png
  1. 你會看到 輸入圖層 欄位現在已經自動填上我們剛才選擇的檔案。你可以使用 加入一列資料 的按鈕增加更多欄位,一次處理更多資料。接下來,我們要選擇含有裁切邊界的圖層,因此請點選 裁切圖層 旁邊的 鈕,選擇 africa.shp。由於我們要用同一個圖層裁切所有的輸入檔,因此可以在 裁切圖層 的標題地方點兩下,此圖層就會自動填到所有的空白行中。接下來我們要設定輸出檔案,請點選在 剪下 一欄旁邊的 鈕。

../_images/1444.png
  1. 瀏覽到你想要儲存輸出檔的資料夾內,檔名輸入為 clipped_,然後按下 存檔

../_images/1540.png
  1. 你會看到有個 自動填滿選項 的視窗出現。自動填滿模式 選擇 填上參數值使用的參數 選擇 輸入圖層。此設定會讓所有的輸出檔檔名為輸入檔檔名之前再加上 output_ 文字。此步驟非常重要,務必確認出各個輸出檔檔名都是獨一無二的,才不會發生互相覆蓋的情況。

../_images/1638.png
  1. 現在批次處理已經準備就緒,請按下 Run

../_images/1736.png
  1. 裁切運算將執行在你剛剛指定的輸入檔上,然後製作成為輸出檔。批次處理完成後,產生的圖層會載入到 QGIS 中,你會發現這些全球的圖層都被裁切到只剩下非洲大陸的區域了。

../_images/1833.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)