跳至內容
AI Segmentation
QGIS
教學

QGIS 太陽能板偵測教學:5 種方法比較

發布於 更新於

同一郊區屋頂的三格對比:原始航照影像、繪有 OpenStreetMap 太陽能發電設施稀疏外框的屋頂,以及每個陣列都被偵測為獨立多邊形的屋頂。

要在 QGIS 裡繪製屋頂太陽能,先從別人已繪好的開始。開啟 Vector > QuickOSM > QuickOSM…,在 key 欄填入 generator:source,value 欄填入 solar,對您的範圍執行。OpenStreetMap 帶有 6,143,024 個該標籤物件,2026 年 9 月 3 日讀取,因此在調查完善的城鎮兩分鐘即完成。覆蓋稀疏處則自行偵測陣列,方法取決於您的波段與像素尺寸。

您的輸入方法費用
OpenStreetMap 已調查完善的區域方法 1,QuickOSM免費
畫布顯示的任何網格圖層,在任何電腦上方法 2,雲端分割模型每月免費 1.5 km²,之後 €39
具近紅外波段的多光譜影像方法 3,Raster > Raster Calculator…免費,QGIS 內建
四個波段以上,且有時間繪製訓練區方法 4,Semi-Automatic Classification Plugin免費外掛
接近 20 cm 的 RGB 正射影像,且有 GPU 或耐心方法 5,Deepness 加其 Solar PV 模型免費

價格、外掛版本與標籤數量均於 2026 年 9 月 3 日讀取。

方法 1:使用已繪製的資料

QGIS 在 3.0 移除自帶的 OSM 下載器,改指向 QuickOSM,所以先安裝它。

查詢發電設施

Vector > QuickOSM > QuickOSM…,key 填 generator:source,value 填 solar,對您的範圍或命名區域執行。屋頂陣列帶有 power=generator,常帶有 generator:method=photovoltaic。

另外查詢電站

地面型電站標為 power=plant 加 plant:source=solar,是不同的查詢。漏掉它,您的圖層就會缺掉所有電站。

到登記資料查瓩數

德國的 Marktstammdatenregister 以 XML 每日發布,但 30 kW 以下機組隱去座標,所以屋頂只落到郵遞區號。法國的登記資料止於 IRIS 區,36 kW 以下全部併入彙總列。

QGIS 中的 QuickOSM 對話框,key 為 generator:source、value 為 solar,以及疊在小鎮航照影像上、查詢得到的太陽能發電設施多邊形。
一次 QuickOSM 查詢,key 為 generator:source,value 為 solar。只要當地圖客繪製過,這就是全部的工作。

三個開放資料集可用作訓練資料或基準。Bradbury 等人,加州四城 19,863 個已標註 PV 多邊形,30 cm,CC0。BDAPPV,28,807 個法國案場含遮罩,CC BY 4.0。DeepSolar 數出美國本土 147 萬套系統,但發布的是普查區計數,而非多邊形。

適用時機: 有人已調查過您的區域,或您要的是容量而非形狀。

略過時機: 覆蓋零散,而這只有看了才知道。

方法 2:雲端分割模型

分割模型已學會陣列的外觀,因此能在方法 3 與方法 4 無法區分之處,把陣列與深色屋頂分開。我們打造其中一種,即 AI Segmentation。本節談的是我們自己的工具。

在畫布顯示的任何網格圖層上框出區域,輸入 solar panel,每個陣列即以專案 CRS 的多邊形回傳,附面積與信心分數。模型跑在我們位於歐洲的伺服器上,不需顯示卡,也不需 Python 環境。

QGIS 航照影像上的一棟農舍屋頂,五組獨立的太陽能板各自以不同顏色的多邊形框出,組與組之間裸露的屋頂未被標示。
在農舍屋頂上執行一次。五組陣列各成一個多邊形,中間裸露的屋頂不受影響。

2026 年 7 月 5 日至 9 月 1 日期間,團隊外的 47 人執行 solar panel 104 次,15.6% 圖磚回傳空白。在 96 次匯出中,模型找到 40,088 個候選,他們保留 14,245 個,即 35.5%,共 496,931 m² 面板。

輸入 solar panel,而非 solar farm。後者問的是整個案場,模型會回一個均勻面或空白。就我們少數幾次執行,它讓 24 個圖磚空了 21 個。

適合: 在任何電腦上,跨街區的屋頂陣列。

不適合: 數模組。密集陣列會回成一整面,所以在 QGIS 切開,或除以您已知的模組尺寸。住宅模組約 1.7 m x 1.1 m。

價格: 每月免費 1.5 km²,不需信用卡。Pro 每月 €39,未稅。免費試用 Pro 7 天:綁定信用卡,到期前取消就不收費。

執行環境: 我們在歐洲的伺服器。

安裝: 經外掛管理員,QGIS 3.22 或更新,再從面板登入。

方法 3:用網格計算器取門檻

使用投影 CRS 作業,因為下面有兩個步驟以圖層單位計算面積。

四張航照影像裁切圖並排,並標示:屋頂光伏陣列、佈滿方形天窗網格的倉庫屋頂、溫室屋頂,以及田野中成排的太陽能集熱器。
四張裁切圖,每張寬度均為 90 m。只有第一張會發電。前三張位於 Freiburg,最後一張是丹麥 Braedstrup 的區域供熱廠。

Raster > Raster Calculator…,演算法 ID 為 native:rastercalc。面板偏暗,在近紅外比深色屋頂暗得多,因此紅光與 NIR 波段間的正規化指數在多數場景可分開兩者。接著以 gdal:sieve 去除碎斑,再以 gdal:polygonize 轉成多邊形。

在 RGB 三波段上這會失敗,因為深色屋頂與面板數值重疊。質地是常用解法。grass:r.texture 計算十三種 GLCM 量測,陣列在對比度高分、在逆差矩低分。GRASS 隨 Windows 安裝包提供,macOS 包則無。

適用時機: 您有近紅外波段,且是單一乾淨場景。

略過時機: 影像是 RGB,或門檻須跨多日拍攝的鑲嵌圖成立。

方法 4:用 SCP 做監督式分類

Semi-Automatic Classification Plugin 會加入 SCP 選單與 SCP Dock。建立 Band set,在面板與每種易混物上繪製 ROIs,再以 Maximum Likelihood、Minimum Distance、Spectral Angle Mapping、Random Forest、Support Vector Machine 或 Multi-layer Perceptron 分類。QGIS 3.x 安裝的是 8.5.0 版,GPL v3,已下載 2,644,482 次。

它自己的 FAQ 排除了多數人手上的輸入。「You cannot use orthophotos with less than 4 bands」,因為低於四個波段演算法無法分開類別。

適用時機: 您有四個波段以上,且想要可重複、有記錄的分類。

略過時機: 輸入是 RGB 正射影像或底圖。

方法 5:在 Deepness 跑本機模型

地面解析度決定一切。Bradbury 等人以 30 cm 建立參考 PV 資料集,因為「太陽能板通常長 1 到 2 公尺」,讓每塊板上有數個像素。這能解出陣列,而非其中的模組。Clark 與 Pacifici 發現單一面板「即使在 15.5 cm 解析度下仍難以區分」。已發表的屋頂 PV 研究介於 10 cm 到 31 cm 之間。10 m 的 Sentinel-2 只適用電站,永遠不適用屋頂。

Deepness 在 QGIS 內跑 ONNX 模型,免費且 Apache 2.0,其 model zoo 內建 Solar PV Segmentation 模型,20 cm/px,由 Kleebauer 等人訓練、Fraunhofer 託管。指向您的正射影像即得面板遮罩,不需帳戶,資料不離開您的電腦。

速度是代價。有使用者在 CPU 上實測該模型「80+ minutes for a digital Orthophoto tile (20 cm resultion, 5000 points in each direction)」,該 issue 仍未關閉。除此之外,沒有維護良好的開放屋頂 PV 模型。

適用時機: 資料不得離開電腦,且正射影像接近 20 cm。

略過時機: 沒有 NVIDIA 卡,卻要覆蓋一整個區域。

五種方法並排比較

QuickOSMAI Segmentation網格計算器SCPDeepness
所需波段無三個需 NIR四個以上三個
影像是否留在本機是否是是是
GPU否否否否建議
輸出OSM 多邊形每個陣列一個多邊形網格遮罩分類網格面板遮罩
費用免費免費額度,之後 €39免費免費免費

重點回顧

先查 OpenStreetMap,因為調查完善的城鎮兩分鐘即完成,沒有任何偵測勝過到過現場的圖客。

若影像不得離開電腦,Deepness 及其本機 Solar PV 模型能讓一切留在您的電腦上。

在 RGB 底圖上,網格計算器與 SCP 出局,因為兩者都無法僅以數值區分面板與深色屋頂。

約 30 cm 可解出陣列,但解不出其中模組,所以只圖面積,永不從影像數面板。

瓩數來自公用事業登記資料,永不來自圖片,而法國與德國登記資料都會模糊小型屋頂機組的位置。

免費在 QGIS 中試用,無需信用卡

常見問題

QGIS 能自己偵測太陽能板嗎?

不行。核心 QGIS 只有門檻與多邊形化,需要光譜差異,所以 RGB 底圖給不了您東西。偵測來自外掛,本機用 Deepness,雲端用我們的。

需要什麼影像解析度?

約 30 cm 可解出陣列,依 Bradbury 等人。單一模組即使在 15.5 cm 下仍難分辨,所以規劃上圖陣列與面積,而非數面板。

如何區分太陽能板與深色屋頂?

在三波段上,僅以數值無法區分。使用近紅外波段、如 grass:r.texture 的質地量測,或已學會陣列外觀的模型。

地面型太陽能電站也找得到嗎?

可以,在 OpenStreetMap 中它們是獨立查詢,power=plant 加 plant:source=solar。用模型時,電站也輸入 solar panel,因為它偵測每塊面板,而非整個場址。

能算出裝了幾塊面板嗎?

不能從影像。偵測給的是外框與面積。模組數量與瓩數來自登記資料,在法國止於 IRIS 區。

想走完整過濾步驟,見建築足跡指南,SAM in QGIS 文章說明這些模型擅長找哪些物件。若想把偵測與面積計算合成一道指令,而不必一步步手動操作外掛,AI Agent 能在同一個 QGIS 專案中完成。QGIS AI 中心比較各外掛,產品頁見 AI Segmentation。