跳至內容
AI Segmentation
QGIS
Tutorial

樹木普查怎麼做?QGIS 空拍影像建立樹木資料庫教學

發布於

QGIS 中的樹木普查,是一個點位圖層,每棵樹一個點,並附上一列屬性:編號、樹種、樹幹大小、健康狀況,以及上次檢查的日期。空拍影像或 LiDAR 讓你在辦公室就能取得點位、樹冠大小和樹高。樹種、樹幹和健康狀況則要靠現場調查。

多數教學都漏掉這個分工。沒有任何模型能從 20 公分解析度的正射影像讀出樹種,或看出樹幹是否腐朽,所以最快的做法是:辦公室負責計數,現場負責判斷。

簡短回答

你的起點方法辦公室能得到什麼
你的城市或客戶已經公開樹木名錄方法 1:開放樹木資料含樹種的點位,通常還有樹幹大小
一張正射影像和幾百棵樹方法 2:手動數化點位你自己標出的點位
LiDAR 表面模型和地形模型方法 3:從樹冠高度模型找樹頂每個點都有樹高
一張正射影像和數千棵樹方法 4:分割模型每棵樹一個樹冠多邊形,再轉成帶樹冠大小的點

四種方法的結尾都一樣:把圖層帶到現場,用平板讓調查人員補上影像看不到的資料。

樹木普查要記錄什麼

在標下第一個點之前,先寫好屬性表。現場調查後才改欄位,就得再跑一趟。

屬性辦公室取得現場取得
樹木編號可以,自動產生若樹上有掛牌,記錄牌號
位置可以樹冠遮住樹幹的地方需要修正
樹冠直徑或面積可以,從影像量測現場檢核
樹高有 LiDAR 就可以沒有 LiDAR 時現場量測
樹種不行可以
樹幹直徑或胸圍不行可以,依你的標準規定的高度量測
健康狀況、缺陷、下次檢查不行可以

在德國,Baumkataster(樹木名錄)記錄的是注意義務所要求的檢查,多數所有人遵循 FLL 樹木檢查準則(2020 年版)和 GALK 的樹木名錄指南。這些文件已經規定了現場欄位清單,所以請從它們出發,而不是從上面這張表開始。

網路上常見的錯誤說法

「AI 可以只靠影像建立完整的樹木普查。」 它能計數並量測樹冠。它看不到樹冠下的樹幹,無法從 RGB 照片辨識大部分樹種,也無法判斷樹枝會不會掉落。任何宣稱飛一趟就能得到完整名錄的頁面,賣的只是工作的前半段。

「樹冠圖就是樹木普查。」 樹冠圖是一個表面,回答的是「這個區有多少比例被遮蔭」。樹木普查回答的是「哪一棵樹、在哪裡、狀況如何」。如果你需要的是覆蓋率,請看在 QGIS 繪製樹冠圖這篇指南。

開始之前

  • QGIS 3.22 或更新版本。
  • 影像要夠新,能呈現今年的樹木。有葉期的影像最能顯示樹冠;落葉期的影像則更能顯示樹幹和分枝。
  • 使用以公尺為單位的投影 CRS,這樣面積和直徑才會以公尺計算。

免費影像比多數人想的更好用:

  • 波蘭: Geoportal 的全國正射影像自 2020 年 6 月 24 日起可免費用於任何用途,大部分為 25 公分解析度,城市為 10 公分或更細。免費的 "Pobieracz danych GUGiK" plugin 可以直接在 QGIS 裡下載。
  • 德國: 多個邦以開放資料公開 DOP20,也就是 20 公分的正射影像,包括巴登-符騰堡邦和下薩克森邦。聯邦機關提供的全德國服務則需付費。
  • 英格蘭: 環境署依開放政府授權(Open Government Licence)公開幾乎全國的 1 公尺 LiDAR 表面模型和地形模型。
  • 美國: NAIP 空拍影像由 USDA 免費提供。

方法 1:開放樹木資料

許多城市已經有樹木名錄並且公開。柏林公開行道樹和公園樹木,多特蒙德公開一份由自有資料和空拍影像建立的名錄,科隆在 2025 年 7 月把名錄上線,巴黎則以點位提供 219,432 棵樹。在 QGIS 載入檔案或服務,一開始就有填好的樹種。

OpenStreetMap 也以 natural=tree 點位標示單棵樹。在 QGIS 下載 OSM 資料示範如何用 QuickOSM 取得它們。

適用時機: 樹木屬於市府,而且名錄夠新。

不適用時機: 工作範圍包含私人土地、校園或新開發區。開放名錄只涵蓋公有樹木。

方法 2:手動數化點位

用 Layer > Create Layer > New GeoPackage Layer… 建立圖層,幾何類型選 Point,並加入上表中的欄位。開啟編輯,然後在正射影像上逐一點擊每個樹冠的中心。

這是辦公室方法中最準確、也最慢的一種。每個點都由你決定,所以樹籬不會變成十二棵樹,兩個相連的樹冠也不會變成一棵。

適用時機: 幾百棵樹,或每棵樹都很重要的場址,例如申請規劃許可。

不適用時機: 數量達到數千棵。

方法 3:從樹冠高度模型找樹頂

有了 LiDAR,每棵樹的樹頂就是它鄰域內最高的像元,所以不需要任何訓練就能找出樹頂。先建立樹冠高度模型,也就是表面模型減去地形模型,做法見樹冠指南;DSM 與 DTM 說明則介紹這兩種輸入資料。

找出局部最大值

對樹冠高度模型執行 r.neighbors(GRASS),方法設為 maximum,鄰域設為 5 個像元。在 1 公尺像元下,這就是 5 公尺的視窗。

保留樹頂

在 Raster > Raster Calculator… 中,保留等於局部最大值且高於 3 公尺的像元:("chm@1" = "chm_max@1") AND ("chm@1" > 3)。

把像元轉成點

用 Raster pixels to points 轉換結果,再用 Extract by attribute 保留值為 1 的點。

加入樹高

用 Sample raster values 對樹冠高度模型取樣,把樹高加到每個點上。

視窗大小是最關鍵的設定。太小的話,一棵寬大的橡樹會找出三個樹頂;太大的話,兩棵小樹會合成一個。請依你場址上常見的樹冠寬度來設定,並用目視檢查一個樣本。

適用時機: 你有 LiDAR,而且需要樹高。

不適用時機: 你只有影像,或 LiDAR 比你要計數的樹木還舊。

方法 4:分割模型

分割模型學過樹冠長什麼樣子,能從一般的 RGB 正射影像為每棵樹回傳一個多邊形。我們做了一個,AI Segmentation,這一節講的是我們自己的工具。

在 QGIS 中開啟的正射影像上畫一個範圍,輸入 tree。模型在我們的伺服器上執行,所以不需要顯示卡,每個樹冠會以多邊形回傳,採用你專案的 CRS,並帶有 area_m2 和信心分數 score。

從空中俯瞰的村莊,花園裡和街道旁的每一棵樹冠,都被填上各自的顏色,成為獨立的多邊形。
在荷蘭一座村莊上執行一次得到 893 個樹冠,每個都是獨立的多邊形。數量是從圖層數出來的,不是估計值。

把樹冠轉成普查點位的做法:

每個樹冠建立一個點

對樹冠圖層執行 Centroids。每個點都保留它所屬樹冠的屬性。

加入樹冠直徑

用欄位計算機加入樹冠直徑,欄位類型為小數:2 * sqrt("area_m2" / pi())。

替樹木編號

加入 tree_id 欄位,以 @row_number 填入,再加上屬性表中要由現場填寫的空白欄位。

適用時機: 街道、公園或花園中的數千棵樹,而且你手上已有影像。

不適用時機: 林分鬱閉。樹冠之間沒有空隙時,tree 的結果會是一個大形狀,而不是每棵樹幹一個多邊形,這時請改用方法 3。影像圖磚會傳送到我們的伺服器;如果影像不能離開你的電腦,請用方法 2 或 3。

在現場完成

用 QField 把點位圖層帶到樹旁。這是 OPENGIS.ch 為 QGIS 專案開發的免費行動 App,可離線使用,能開啟你在 QGIS 中設定好的表單,也能為每棵樹加上照片。出發前先在 QGIS 為樹種和健康狀況設定下拉選單,讓每位調查人員寫的都是同樣的用語。

如果需要有法律紀錄的定期檢查,也有專門的名錄軟體,其中一部分,例如德國的 Baumsicht,是在 QGIS 上執行的。你在這裡建立的點位圖層可以匯入其中。

重點整理

  • 樹木普查是每棵樹一個點並附上屬性,不是樹冠表面。
  • 辦公室提供位置、樹冠大小,有 LiDAR 時還有樹高。現場提供樹種、樹幹和健康狀況。
  • 先找開放名錄;幾百棵樹用手動數化;需要樹高時用 LiDAR 樹頂;影像上有數千棵樹時用分割模型。
  • 信任總數之前,每一種自動方法都要用你親手計數的樣本檢查。

常見問題

樹木普查是強制的嗎?

通常沒有法律要求必須建立名錄本身。道路和步道旁樹木的所有人有責任檢查安全,名錄就是證明檢查確實進行的方式。在德國,這項注意義務就是多數城鎮維護 Baumkataster 的原因。

AI 能從空拍影像辨識樹種嗎?

從多數人手上的 RGB 正射影像,無法可靠辨識。樹種對照需要多光譜或高光譜影像和當地的訓練資料,即使如此仍要在現場檢核。我們的 plugin 回傳的是樹冠,不是樹種。

自動偵測樹木的準確度如何?

比起工具,更取決於樹冠的狀況。獨立的行道樹和庭園樹效果很好,樹冠相連時則會合併。在你自己的影像上手動數 50 棵樹,與圖層比對,就能得到你這個場址的誤差率。

可以免費在 QGIS 建立樹木普查嗎?

可以。開放名錄、手動數化和 LiDAR 樹頂只花時間,QField 也是免費的。分割模型能在大量計數時省時間,並且可以免費開始。

延伸閱讀:什麼是正射影像說明本文每種方法背後的影像,QGIS AI plugin 頁面則列出每個 plugin 執行所需的條件。

在 QGIS 免費試用,不需信用卡