如何在 QGIS 中下載 Sentinel-2 影像
Published

若要把 Sentinel-2 影像放進 QGIS 3.42 或更新版本,請開啟 Layer > Data Source Manager,選擇 STAC 分頁,並新增一個連線到 Earth Search,https://earth-search.aws.element84.com/v1。依範圍、日期與 Sentinel-2 Level-2A 集合篩選,然後對某個景按右鍵,選擇 Add Layer > True color image。影像會直接串流進來,不需要帳號,也不需要下載。
當你真的想要檔案本身,也就是 .SAFE 格式的完整產品時,Copernicus Browser 是官方來源,並要求一個免費帳號。我於 2026 年 9 月 23 日在 QGIS 3.44.7 中,在巴西 Goiás 州 Cristalina 一帶的中心樞紐農場上,跑過以下每一種方法,並逐一計時。
簡短答案
| 你想要 | 方法 | 在 Cristalina 實測 |
|---|---|---|
| 完整產品存在磁碟上,每一個波段與中繼資料 | 方法 1:Copernicus Browser | 每個景約 1.1 GB,免費帳號 |
| 用一則訊息取得雲量最少的景與 NDVI layer | 方法 2:QGIS 中的 AI agent | 2 分 47 秒,35 個動作 |
| 圖片立刻顯示在地圖上,然後是真彩色與 NDVI | 方法 3:Data Source Manager 中的 STAC | 5.4 秒繪出 10 m 的 133 km²,無需帳號 |
| 供 SCP 分類使用的景 | 方法 4:Semi-Automatic Classification Plugin | 搜尋 26 秒,需額外安裝 Python 套件 |
我的預設是方法 3。到了 2026 年,你很少需要為了看一個 Sentinel-2 景,或在幾塊田上計算一個指數而下載它。當你需要離線取得全部 13 個波段,或需要一個你可掌控的檔案庫時,才下載產品。
開始之前
Sentinel-2 是歐洲 Copernicus 的光學任務。2026 年 7 月,三顆衛星 Sentinel-2A、2B 與 2C 都在取像:目錄中那個月 Cristalina 上空有 9 個日期。每個景在 UTM 中被切成 109.8 km x 109.8 km 的圖幅,命名像 22KHG,而靠近圖幅邊緣的地點會落在兩張圖幅上。Cristalina 就落在 22KHG 與 23KKB。
有兩個處理級別很重要。Level-1C 是大氣頂反射率。Level-2A 經過大氣校正成地表反射率,並附帶一個標示雲與陰影的景分類波段(SCL)。凡是要跨日期比較的,包括 NDVI,都選 L2A。
你最常使用的波段是 10 m:B2 藍、B3 綠、B4 紅與 B8 近紅外。真彩色是 B4、B3、B2 作為紅、綠、藍,NDVI 是 (B8 − B4) / (B8 + B4),這兩種定義 Copernicus Browser 會印在它自己的 layer 底下。多光譜 vs 高光譜文章說明了其他波段測量什麼。
依 3.40 與 3.42 changelog,Browser 面板中的 STAC 需要 QGIS 3.40 或更新版本,Data Source Manager 中的搜尋需要 3.42 或更新版本。
網路上常見的錯誤說法
「你必須先下載產品。」 大多數教學仍然從一個 1 GB 的 zip 開始。Earth Search 與其他 STAC 目錄會把每個 Sentinel-2 L2A 波段以 Cloud-Optimized GeoTIFF 提供,而 QGIS 只讀取它實際繪製的那部分檔案。Cristalina 圖幅的真彩色檔案是 297 MB。QGIS 在完全冷啟動的情況下,以全解析度從中繪出我那個 133 km² 的視窗,耗時 5.4 秒,且沒有儲存任何東西。
「NDVI 就是對原始值做 (B8 − B4) / (B8 + B4)。」 自 2022 年 1 月 25 日上線的 processing baseline 04.00 起,L2A 值帶有一個偏移量:反射率是 (value − 1000) / 10000,而 MTD_MSIL2A.xml 以 BOA_ADD_OFFSET -1000 說明了這件事。對原始值套用這個公式是錯的。在同一個樞紐的一塊視窗上,我用原始數字得到 0.517,移除偏移量後得到 0.768。
問題在於,有些來源會替你修正這個偏移量。.SAFE 裡的 JP2 波段不會,QGIS 會把它們讀成原始數字。Earth Search Collection 1 的 COG 帶有 scale 與 offset,QGIS 會在載入時套用,所以在那裡直接用單純的公式是對的。先用 Identify 工具點一個像素:數千代表原始數字,介於 0 與約 1 之間的值代表反射率。
「雲量百分比就是你這塊田上方的雲。」 它是整個圖幅上方的雲。2026 年 7 月 29 日,同一條衛星軌道經過 Cristalina 時,22KHG 圖幅讀到 22% 雲量,23KKB 圖幅則是 2.6%。一個 20% 的景可能在你農場上方萬里無雲,而一個 3% 的景可能唯一的雲就落在你頭上。請看你自家區域上方的影像,或 SCL 波段。
方法 1:從 Copernicus Browser 下載 L2A 產品
Copernicus Browser 是這個檔案庫的官方入口。你不必註冊就能搜尋。下載時會要求你登入,而註冊是免費的。
搜尋
開啟 Search 分頁。勾選 SENTINEL-2,再勾 L2A,並把雲量滑桿拉到 10%。設定時間範圍,標記一個興趣點或在地圖上畫一個區域。點擊 Search。挑選一個景
對 2026 年 7 月的 Cristalina,Browser 在 10% 雲量以下列出了 9 個 L2A 產品,而那個月總共有 18 個。每一個都是約 1,090 MB 的.SAFE 產品,每個圖幅與日期各一個。用小小的縮圖來判斷你區域上方的雲量。下載
點擊下載箭頭。以匿名身分,Browser 會回答「You need to log in to use this function.」。登入後 zip 就會開始下載。在 QGIS 中載入波段
解壓縮。10 m 波段位於GRANULE/<granule>/IMG_DATA/R10m/,是 JPEG 2000 檔案,每個波段一個,各約 105 到 130 MB。TCI_10m.jp2 是現成的 8-bit 真彩色影像:把它拖到地圖上。組出自己的合成影像
若要自訂 stretch,對B04、B03 與 B02 依序執行 Raster > Miscellaneous > Build Virtual Raster…,並勾選「Place each input file into a separate band」。若要算 NDVI,在 Raster Calculator 中套用偏移量:("B08" - "B04") / ("B08" + "B04" - 2000)。
適用時機: 你需要離線取得每個波段、中繼資料與品質遮罩,或需要一個不依賴他人伺服器的檔案庫。
略過時機: 你只需要看看某個地方,或在幾塊田上計算一個指數。不然你會下載 1.1 GB,卻只用掉其中幾 MB。
方法 2:在 QGIS 中詢問 AI agent
我們打造了這類工具中的一個,AI Agent,一個位於 QGIS 內、會在你開啟的專案中執行各步驟的聊天面板。這一節談的是我們自己的工具。
在一個空專案中,我輸入了:
幫我找巴西 Cristalina 一帶中心樞紐 2026 年 7 月雲量最少的 Sentinel-2 影像,用真彩色顯示,然後加入一個 NDVI layer。
2:47min
從送出到回答
35
一則訊息中的動作數
0.00068%
它挑選的景的雲量
133km²
10 m NDVI
它對 Cristalina 做地理編碼,在 Earth Search 搜尋 2026 年 7 月,挑出 Sentinel-2C 於 22KHG 圖幅、7 月 7 日、雲量 0.00068% 的景。那是該城鎮上空 18 個 7 月景中最低的,與方法 1 與方法 3 手動得到的答案相同。它串流了 true colour、red 與 NIR 的 COG,在加入前詢問了一次,在樞紐周圍 133 km² 的方框上以 10 m 計算 NDVI,並把它以紅到綠配色。

NDVI 是磁碟上的 GeoTIFF,而影像維持串流,如同方法 3。限制在於範圍:它是在自己挑選的樞紐周圍方框上計算 NDVI,而不是整個 110 km 的圖幅,所以當你需要更大範圍時要明確講出來。
使用者緊接著會問的,是有什麼改變。在同一個對話中我送出:
現在把它跟同一區域 2025 年 7 月雲量最少的影像比較,顯示哪些田地植被增加或減少了。
在 2 分 43 秒內,它取得 Sentinel-2B 2025 年 7 月 17 日的景(雲量 0.0006%),在同一個 10 m 網格上計算 NDVI,並以 0.10 為閾值繪出差異。在 133 km² 中,39.14 km² 植被增加,14.52 km² 減少。它自己加了一個但書:這兩張影像在季節上相差十天,所以作物的生長階段解釋了部分變化。它的 checkpoint 能用一次點擊復原任一則訊息。

適用時機: 你想一步就完成景的挑選、串流,並轉成一個指數或一項比較,或者你不想去查波段名稱與偏移量。
略過時機: 你需要離線保存完整產品。那就是方法 1。免費方案每月 10 則訊息,而這兩次執行用掉了兩則。
方法 3:在 QGIS 中用 STAC 串流
STAC 是多數衛星檔案庫現在採用的目錄標準。QGIS 原生就能讀取它,而 Element 84 的 Earth Search 從 AWS 開放資料 bucket 提供 Sentinel-2 L2A,不需要金鑰。
Microsoft Planetary Computer 有同樣的檔案庫,但它的檔案需要簽章 token:對 7 月 7 日影像的未簽章請求回傳 HTTP 409,而我的 QGIS 3.44.7 版本沒有對應的驗證方法。所以我用了 Earth Search。
新增連線
Layer > Data Source Manager,STAC 分頁,New。命名,貼上 https://earth-search.aws.element84.com/v1,確定,然後 Connect。
設定篩選條件
點擊Filters…。勾選 Spatial Extent,並從 map canvas 或某個 layer 取得範圍;勾選 Temporal Extent 並設定日期;然後在集合清單中只保留「Sentinel-2 Collection 1 Level-2A」。確定後就會執行搜尋。
這次搜尋回傳了與 Copernicus 目錄相同的 18 個景。每一列都帶有縮圖,而縮圖就是你的雲量篩選器:第一列,7 月 29 日的 22KHG 圖幅,在你打開它之前就展示了它的雲。在某一列上按兩下可看 Details…,其中的 eo:cloud_cover 會給出圖幅的雲量百分比。

只加入你需要的波段
對該景按右鍵,Add Layer,然後選 True color image。如果你要 NDVI,對 Red - 10m 與 NIR 1 - 10m 重複這個動作。底部的 Add 按鈕會一次載入該景所有可串流的 asset,但這很少是你想要的。
這些 layer 會以 /vsicurl/ 連結載入 COG 檔案。平移與縮放時,QGIS 會依所需的細節層級抓取它需要的圖磚。圖例告訴你第二件值得知道的事:紅色波段讀值約從 0 到 1.6,而不是數千,因為 QGIS 套用了檔案的 scale 與 offset。

計算 NDVI
Raster > Raster Calculator…,expression 為 ("NIR 1 - 10m@1" - "Red - 10m@1") / ("NIR 1 - 10m@1" + "Red - 10m@1")。把範圍設在你的區域,而不是整張圖幅:我用了樞紐周圍 11.4 x 11.6 km、10 m 解析度下 1,140 x 1,163 像素。它在不到一秒內寫出 GeoTIFF。
我的 NDVI 從農場池塘上方的 −0.65 到灌溉圓圈上的 0.94,平均值為 0.48。它與方法 2 中 AI Agent 的 layer 逐像素吻合。七月是這個高原的乾季:正在生長的樞紐落在 0.85 到 0.93,裸露的田地在 0.2 到 0.3。在真彩色中,正在生長的樞紐與溪流旁深色的廊道林看起來很像。NDVI 能把它們分開,也能分出正在休耕的樞紐。


若要保留一份副本,對該 layer 按右鍵,Export > Save As…,寫出裁剪到你範圍的 GeoTIFF。你會得到你區域的 10 m 像素,別的都沒有。
適用時機: 你想在某個日期看看一個地方、建立合成影像或計算一個指數,而且 QGIS 是 3.42 或更新版本。
略過時機: 你離線工作,或需要數百個景來做時間序列。對同一個 STAC API 寫腳本才是適合的工具。
方法 4:Semi-Automatic Classification Plugin
Semi-Automatic Classification Plugin(SCP)有一個 Download products 分頁,在 2026 年仍適用於 Sentinel-2。SCP 8.5 是給 QGIS 3 的版本,而 plugin 儲存庫上的 9.0 系列是給 QGIS 4。它建立在 Remotior Sensus 函式庫上,而該 plugin 頁面說它「requires the installation of additional dependencies」。
我在同一區域測試了它的搜尋引擎,Remotior Sensus 0.7.7。「Sentinel-2」來源會查詢 Copernicus 目錄,並在 26 秒內列出 7 月 7 日與 17 日的景。沒有 Copernicus 憑證時,SCP 會從 Google Cloud 的公開 Sentinel-2 bucket 下載產品,而該 bucket 存有 7 月 7 日的 L2A 產品。「Sentinel-2_MPC」來源則詢問 Planetary Computer,並在 0.2 秒內回答。
花掉我最多時間的部分是安裝。SCP 需要 QGIS 自帶的 Python 中有 Remotior Sensus 與 SciPy。在 macOS 的 QGIS 3.44.7 應用程式上,用 pip 安裝的 SciPy 無法載入,所以我是在 plugin 之外執行搜尋。在 Windows 與 Linux 上,請依照 SCP 手冊的安裝章節操作。
適用時機: 你反正都會在 SCP 中對影像做分類。它會在同一個地方下載、轉成反射率並建立波段組合。
略過時機: 你只需要一張影像或一個指數。方法 3 沒有東西要安裝。
重點整理
- 多數工作都透過 STAC 串流 Sentinel-2:
Layer > Data Source Manager、STAC 分頁、Earth Search,然後對某個景按右鍵,Add Layer。不需要帳號,也不用下載 1.1 GB。 - 當你需要離線取得每個波段時,用免費帳號從 Copernicus Browser 下載 L2A
.SAFE產品。 - 真彩色是 B4、B3、B2,NDVI 是 (B8 − B4) / (B8 + B4),兩者都是 10 m;凡是要跨日期比較的,都用 Level-2A。
- 自 processing baseline 04.00(2022 年 1 月)起,原始 L2A 值帶有 1,000 的偏移量:除非你的來源已經處理過,否則在算 NDVI 前要先移除,並先用 Identify 檢查一個像素。
- 一個景的雲量百分比涵蓋它 110 km 的圖幅,不是你的田地。同一條軌道經過 Cristalina 時,一個圖幅讀到 22%,另一個讀到 2.6%。
常見問題
取得 Sentinel-2 影像需要 Copernicus 帳號嗎?
若只是串流,不需要。AI Agent、透過 STAC 的 Earth Search 與 SCP 的 Google Cloud 路徑都能在沒有帳號的情況下運作。若要從 Copernicus Browser 下載產品,以及使用 Sentinel Hub plugin,則需要一個免費的 Copernicus Data Space Ecosystem 帳號。
L1C 還是 L2A:我該下載哪一個?
幾乎所有情況都用 L2A。它經過大氣校正,所以同一塊田在有霾的日子與晴朗的日子讀值相同,而且它帶有標示雲與陰影的 SCL 波段。L1C 是大氣頂反射率,較小(同一條經過 Cristalina 的軌道約 760 MB,對比 1,090 MB),適合你自己執行大氣校正時使用。
哪些 Sentinel-2 波段給出真彩色,哪些給出 NDVI?
真彩色是 B4 紅、B3 綠、B2 藍,而每個 L2A 產品也以 TCI 現成附上。NDVI 使用近紅外的 B8 與 B4:(B8 − B4) / (B8 + B4)。這四個波段都是 10 m。對 processing baseline 04.00 起的原始 L2A 值,要先把每個波段減去 1,000。
我要如何依雲量篩選 Sentinel-2 影像?
在 Copernicus Browser 中,Search 分頁裡 Sentinel-2 下方的雲量滑桿。QGIS 3.44 的 STAC 搜尋沒有雲量篩選器,所以請看縮圖,或看 Details… 下的 eo:cloud_cover。無論哪一種,這個數字都涵蓋整張圖幅。至於你田地的像素,L2A 的 SCL 波段把雲陰影標為 3、雲標為 8 與 9。
我可以把 Sentinel-2 串流進 QGIS,而不用下載嗎?
可以,從 QGIS 3.40 起可在 Browser 面板做到,從 3.42 起可在 Data Source Manager 中搜尋。這些波段是 Cloud-Optimized GeoTIFF,QGIS 只讀取它繪製的圖磚:在我的測試中,10 m 的 133 km² 視圖花了 5.4 秒。需要離線使用時,用 Export > Save As… 存一份裁剪副本。
Sentinel Hub plugin 還能用嗎?
它仍有在維護:2.0.8 版於 2026 年 6 月 9 日在 QGIS plugin 儲存庫發布。它需要 Copernicus Data Space 或 Sentinel Hub 帳號,外加一個 OAuth client,而它的頁面警告 Copernicus endpoint 在 macOS 上可能無法使用。Copernicus 自己的文件把它描述成一個檢視器,並把單筆下載導向 Copernicus Browser。我沒有為這篇文章測試它。
想更了解聊天面板在 QGIS 中能做什麼,AI Agent 指南還有十個真實案例,而 QGIS AI hub 匯集了其餘的。若要把上面的 NDVI 變成田地的多邊形,raster 轉向量文章從這裡接著講。另外兩篇配套教學涵蓋下載 OpenStreetMap 資料與掃描地圖的地理參照。
3.42 或更新版本,請開啟 

