QGIS 太陽能板辨識:5 種方法

要在
裡繪製屋頂太陽能,先從別人已繪好的開始。開啟 Vector > QuickOSM > QuickOSM…,在 key 欄填入 generator:source,value 欄填入 solar,對你的範圍執行。OpenStreetMap 帶有 6,143,024 個該標籤物件,2026 年 9 月 3 日讀取,因此在調查完善的城鎮兩分鐘即完成。覆蓋稀疏處則自行偵測陣列,方法取決於你的波段與像素尺寸。
網路常見的三個錯誤
以下三種說法一再出現,每一種都會讓你浪費一天才發現不對。
"用 Sentinel-2。" 它的像素是 10 m,一塊面板長 1 到 2 m,所以整個屋頂都落在一個像素裡。Sentinel-2 找得到地面型電站,找不到屋頂。
"用 SCP 分類你的正射影像。" 這個 plugin 自己的 FAQ 已排除這點:"You cannot use orthophotos with less than 4 bands"。多數人手上是 RGB 正射影像或底圖,而這正是 SCP 無法處理的唯一輸入。
"偵測完再數面板數量。" Clark and Pacifici 發現單一模組"即使在 15.5 cm 解析度下仍難以區分"。影像給你的是陣列與面積。模組數量與瓩數來自登記資料。
簡短答案
| 你的輸入 | 方法 | 費用 |
|---|---|---|
| OpenStreetMap 已調查完善的區域 | Method 1, QuickOSM | Free |
| 具近紅外波段的多光譜影像 | Method 2, Raster > Raster Calculator… | Free, core QGIS |
| 四個波段以上,且有時間繪製訓練區 | Method 3, Semi-Automatic Classification Plugin | Free plugin |
| 接近 20 cm 的 RGB 正射影像,且有 GPU 或耐心 | Method 4, Deepness plus its Solar PV model | Free |
| 畫布顯示的任何 raster,在任何電腦上 | Method 5, a cloud segmentation model | Free 3 km² a month, then €39 |
我如何比較這五種方法
五個標準:所需波段、方法失效的解析度下限、影像是否離開你的電腦、產出第一個多邊形前的費用,以及輸出是多邊形還是像素。價格、plugin 版本與標籤數量均於 2026 年 9 月 3 日讀取。五種之中我們打造其中一種,即 Method 5。
有一件事我交給別處。針對全國裝置容量,公用事業登記資料勝過這裡每種方法,因為它知道瓩數,而影像永遠不會知道。
開始之前
地面解析度決定一切。Bradbury 等人以 30 cm 建立參考 PV 資料集,因為"太陽能板通常長 1 到 2 公尺",讓每塊板上有數個像素。這能解出陣列,而非其中的模組。Clark and Pacifici 發現單一面板"即使在 15.5 cm 解析度下仍難以區分"。已發表的屋頂 PV 研究介於 10 cm 到 31 cm 之間。10 m 的 Sentinel-2 只適用電站,永遠不適用屋頂。
使用投影 CRS 作業,因為下面有兩個步驟以 layer units 計算面積。

Method 1:使用已繪製的資料
QGIS 在 3.0 移除自帶的 OSM 下載器,改指向 QuickOSM,所以先安裝它。
Query the generators
Vector > QuickOSM > QuickOSM…,key 填 generator:source,value 填 solar,對你的範圍或命名區域執行。屋頂陣列帶有 power=generator,常帶有 generator:method=photovoltaic。
Query the plants separately
地面型電站標為 power=plant 加 plant:source=solar,是不同的查詢。漏掉它,你的 layer 就會缺掉所有電站。
Go to the registry for kilowatts
德國的 Marktstammdatenregister 以 XML 每日發布,但 30 kW 以下機組隱去座標,所以屋頂只落到郵遞區號。法國的登記資料止於 IRIS 區,36 kW 以下全部併入彙總列。

三個開放資料集可用作訓練資料或基準。Bradbury 等人,加州四城 19,863 個已標註 PV 多邊形,30 cm,CC0。BDAPPV,28,807 個法國案場含遮罩,CC BY 4.0。DeepSolar 數出美國本土 147 萬套系統,但發布的是普查區計數,而非多邊形。
適用時機: 有人已調查過你的區域,或你要的是容量而非形狀。
略過時機: 覆蓋零散,而這只有看了才知道。
Method 2:用 raster 計算器取門檻
Raster > Raster Calculator…,algorithm id native:rastercalc。面板偏暗,在近紅外比深色屋頂暗得多,因此紅光與 NIR 波段間的正規化指數在多數場景可分開兩者。接著以 gdal:sieve 去除碎斑,再以 gdal:polygonize 轉成多邊形。
在 RGB 三波段上這會失敗,因為深色屋頂與面板數值重疊。質地是常用解法。grass:r.texture 計算十三種 GLCM 量測,陣列在對比度高分、在逆差矩低分。GRASS 隨 Windows 安裝包提供,macOS 包則無。
適用時機: 你有近紅外波段,且是單一乾淨場景。
略過時機: 影像是 RGB,或門檻須跨多日拍攝的鑲嵌圖成立。
Method 3:用 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 正射影像或底圖。
Method 4:在 Deepness 跑本機模型
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 卡,卻要覆蓋一整個區域。
Method 5:雲端分割模型
分割模型已學會陣列的外觀,因此能在 Method 2 與 Method 3 無法區分之處,把陣列與深色屋頂分開。我們打造其中一種,即 AI Segmentation。本節談的是我們自己的工具。
在畫布顯示的任何 raster 上框出區域,輸入 solar panel,每個陣列即以專案 CRS 的多邊形返回,附面積與信心分數。模型跑在我們位於歐洲的伺服器上,不需顯卡,也不需 Python 環境。

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 by 1.1 m。
價格: 每月免費 3 km²,不需卡。Pro 每月 €39,未稅。
執行環境: 我們在歐洲的伺服器。
安裝: 經 plugin manager,QGIS 3.22 或更新,再從面板登入。
五種方法並排比較
| QuickOSM | Raster calculator | SCP | Deepness | AI Segmentation | |
|---|---|---|---|---|---|
| 所需波段 | 無 | 需 NIR | 四個以上 | 三個 | 三個 |
| 影像是否留在本機 | 是 | 是 | 是 | 是 | 否 |
| GPU | 否 | 否 | 否 | 建議 | 否 |
| 輸出 | OSM polygons | Raster mask | Class raster | Panel mask | Polygon per array |
| 費用 | 免費 | 免費 | 免費 | 免費 | 免費額度,之後 €39 |
重點回顧
先查 OpenStreetMap,因為調查完善的城鎮兩分鐘即完成,沒有任何偵測勝過到過現場的圖客。
若影像不得離開電腦,你只剩 Deepness 及其本機 Solar PV 模型可用。
在 RGB 底圖上,raster calculator 與 SCP 出局,因為兩者都無法僅以數值區分面板與深色屋頂。
約 30 cm 可解出陣列,但解不出其中模組,所以只圖面積,永不從影像數面板。
瓩數來自公用事業登記資料,永不來自圖片,而法國與德國登記資料都會模糊小型屋頂機組的位置。
Try it free in QGIS, no card needed
常見問題
QGIS 能自己偵測太陽能板嗎?
不行。核心 QGIS 只有門檻與多邊形化,需要光譜差異,所以 RGB 底圖給不了你東西。偵測來自 plugin,本機用 Deepness,雲端用我們的。
需要什麼影像解析度?
約 30 cm 可解出陣列,依 Bradbury 等人。單一模組即使在 15.5 cm 下仍難分辨,所以規劃上圖陣列與面積,而非數面板。
如何區分太陽能板與深色屋頂?
在三波段上,僅以數值無法區分。使用近紅外波段、如 grass:r.texture 的質地量測,或已學會陣列外觀的模型。
地面型太陽能電站也找得到嗎?
可以,在 OpenStreetMap 中它們是獨立查詢,power=plant 加 plant:source=solar。用模型時,電站也輸入 solar panel,因為它偵測每塊面板,而非整個場址。
能算出裝了幾塊面板嗎?
不能從影像。偵測給的是外框與面積。模組數量與瓩數來自登記資料,在法國止於 IRIS 區。
想走完整過濾步驟,見建築足跡指南,SAM in QGIS 文章說明這些模型擅長找哪些物件。QGIS AI 中心比較各 plugin,產品頁見 AI Segmentation。


