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で、ブラジル・ゴイアス州のクリスタリナ周辺のセンターピボット農場で実行し、それぞれ時間を計測しました。
手短な答え
| やりたいこと | 方法 | クリスタリナでの計測値 |
|---|---|---|
| ディスク上の完全なプロダクト、全バンドとメタデータ | 方法1: Copernicus Browser | シーンあたり約1.1 GB、無料アカウント |
| 最も雲の少ないシーンとNDVI layerを1つのメッセージで | 方法2: QGIS内のAIエージェント | 2分47秒、35アクション |
| 今すぐ地図に画像、その後トゥルーカラーとNDVI | 方法3: Data Source ManagerのSTAC | 10 mで133 km²を描画するのに5.4秒、アカウント不要 |
| SCPで実行する分類用のシーン | 方法4: Semi-Automatic Classification Plugin | 検索に26秒、追加のPythonパッケージのインストールが必要 |
私の既定は方法3です。2026年には、Sentinel-2シーンを眺めたり、いくつかの圃場でインデックスを計算したりするためにダウンロードする必要はほとんどありません。13バンドすべてをオフラインで必要とする場合や、自分で管理するアーカイブが必要な場合にプロダクトをダウンロードしてください。
始める前に
Sentinel-2はヨーロッパのCopernicus光学ミッションです。2026年7月には3機の衛星Sentinel-2A、2B、2Cがすべて観測を行っており、カタログにはその月のクリスタリナ上空の9つの日付が収録されています。各シーンはUTMで109.8 km×109.8 kmのタイルに分割され、22KHGのような名前が付き、タイル境界付近の場所は2つのタイルにまたがります。クリスタリナは22KHGと23KKBにまたがっています。
重要な処理レベルは2つあります。Level-1Cは大気上端での反射率です。Level-2Aは大気補正が施されて地表反射率となり、雲と影を示すシーン分類バンド(SCL)が付属します。日付をまたいで比較するもの、NDVIを含め、すべてにはL2Aを使ってください。
最もよく使うバンドは10 mのもので、B2が青、B3が緑、B4が赤、B8が近赤外です。トゥルーカラーはB4、B3、B2を赤、緑、青に割り当てたもので、NDVIは(B8 − B4) / (B8 + B4)です。これはCopernicus Browserが自身のlayerの下に表示する2つの定義です。マルチスペクトルとハイパースペクトルの記事では、他のバンドが何を測定するかを説明しています。
BrowserパネルでのSTACにはQGIS 3.40以降、Data Source Managerでの検索には3.42以降が必要です(3.40と3.42の変更履歴より)。
ウェブが間違えているところ
「まずプロダクトをダウンロードしなければならない。」 ほとんどのチュートリアルは今でも1 GBのzipから始まります。Earth SearchなどのSTACカタログは、Sentinel-2 L2AのすべてのバンドをCloud-Optimized GeoTIFFとして配信しており、QGISは描画する部分だけを読み取ります。クリスタリナのタイルのトゥルーカラーファイルは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はスケールとオフセットを持ち、QGISが読み込み時に適用するので、そこでは単純な式が正しくなります。まずIdentifyツールで1ピクセルをクリックしてください。数千の値なら生の数値、0から約1の値なら反射率です。
「雲の割合はあなたの圃場上の雲だ。」 それはタイル全体の雲です。2026年7月29日、クリスタリナ上空の同じ衛星パスは、タイル22KHGで22%、タイル23KKBで2.6%の雲を示しました。雲20%のシーンがあなたの農場上空では晴れていることもあり、3%のシーンの唯一の雲がそこに乗っていることもあります。自分のエリアの画像、またはSCLバンドを見てください。
方法1: Copernicus BrowserからL2Aプロダクトをダウンロードする
Copernicus Browserはアーカイブへの公式の入り口です。アカウントなしで検索できます。ダウンロードにはログインが必要で、登録は無料です。
検索
検索タブを開きます。SENTINEL-2、次にL2Aにチェックを入れ、雲のスライダーを10%まで下げます。期間を設定し、関心地点をマークするか地図上にエリアを描きます。検索をクリックします。シーンを選ぶ
2026年7月のクリスタリナ上空について、Browserはその月の18件のうち、雲10%未満のL2Aプロダクトを9件リストしました。それぞれ約1,090 MBの.SAFEプロダクトで、タイルと日付ごとに1件です。小さなサムネイルを使って、自分のエリア上の雲を判断してください。ダウンロード
ダウンロードの矢印をクリックします。匿名では、Browserは「You need to log in to use this function.」と答えます。ログインするとzipがダウンロードされます。QGISでバンドを読み込む
解凍します。10 mバンドはGRANULE/<granule>/IMG_DATA/R10m/にJPEG 2000ファイルとして入っており、バンドごとに1ファイル、それぞれ約105〜130 MBです。TCI_10m.jp2はすぐに使える8ビットのトゥルーカラー画像です。地図にドラッグしてください。自分でコンポジットを作る
独自のストレッチを行うには、Raster > Miscellaneous > Build Virtual Raster…をB04、B03、B02の順に実行し、「Place each input file into a separate band」にチェックを入れます。NDVIには、Raster Calculatorでオフセットを適用します: ("B08" - "B04") / ("B08" + "B04" - 2000)。
使うとき: すべてのバンドをオフラインで必要とする場合、メタデータと品質マスクが必要な場合、または他人のサーバーに依存しないアーカイブが必要な場合。
使わないとき: ある場所を見たり、いくつかの圃場でインデックスを計算したりするだけの場合。1.1 GBをダウンロードして、そのうち数メガバイトしか使わないことになります。
方法2: QGISでAIエージェントに尋ねる
私たちはこうしたツールの1つ、AI Agentを作っています。QGIS内のチャットパネルで、開いているプロジェクト内で手順を実行します。このセクションは私たち自身のツールについてです。
空のプロジェクトで、私は次のように入力しました:
2026年7月のブラジル・クリスタリナ周辺のセンターピボットについて、最も雲の少ないSentinel-2画像を探して、トゥルーカラーで表示し、その後NDVI layerを追加して。
2:47min
送信から回答まで
35
1つのメッセージでのアクション数
0.00068%
選んだシーンの雲
133km²
10 m NDVIの範囲
クリスタリナをジオコーディングし、2026年7月についてEarth Searchを検索し、タイル22KHGのSentinel-2Cによる7月7日のシーンを、雲0.00068%で選びました。これは町上空の7月の18シーンの中で最も少なく、方法1と3が手作業で得たのと同じ答えです。トゥルーカラー、赤、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²が失いました。AI Agentは自ら注意点を添えました。2つの画像は季節の中で10日離れているため、作付け段階が変化の一部を説明します。そのチェックポイントはどちらのメッセージもワンクリックで元に戻します。

使うとき: シーンの選択、ストリーミング、インデックスや比較への変換を1ステップで行いたい場合、またはバンド名やオフセットを調べたくない場合。
使わないとき: 完全なプロダクトをオフラインでアーカイブする必要がある場合。それは方法1です。無料プランは月10メッセージで、この2回の実行で2つ使いました。
方法3: QGISのSTACでストリーミングする
STACは、現在ほとんどの衛星アーカイブが公開しているカタログ標準です。QGISはそれをネイティブに読み取り、Element 84のEarth SearchはAWSのオープンデータバケットから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を貼り付け、OK、次にConnect。
フィルタを設定する
Filters…をクリックします。Spatial Extentにチェックを入れ、map canvasまたはlayerから取得し、Temporal Extentにチェックを入れて日付を設定し、コレクション一覧では「Sentinel-2 Collection 1 Level-2A」だけを残します。OKで検索が実行されます。
検索はCopernicusカタログと同じ18シーンを返しました。各行にはサムネイルがあり、そのサムネイルがあなたの雲フィルタになります。最初の行、タイル22KHGの7月29日は、開く前に雲を示しています。行をダブルクリックするとDetails…が開き、eo:cloud_coverがタイルの割合を示します。

必要なバンドだけを追加する
シーンを右クリックし、Add Layer、次にTrue color imageを選びます。NDVIが欲しい場合はRed - 10mとNIR 1 - 10mについても繰り返します。下部のAddボタンはシーンのストリーミング可能なすべてのアセットを一度に読み込みますが、それはめったに望むものではありません。
layerはCOGファイルへの/vsicurl/リンクとして読み込まれます。パンやズームをすると、QGISは必要なタイルを必要な詳細レベルで取得します。凡例は2つ目の重要なことを教えてくれます。赤バンドは約0から1.6の範囲で、数千ではなく、QGISがファイルのスケールとオフセットを適用したためです。

NDVIを計算する
Raster > Raster Calculator…、式は("NIR 1 - 10m@1" - "Red - 10m@1") / ("NIR 1 - 10m@1" + "Red - 10m@1")。範囲はタイル全体ではなく自分のエリアに設定します。私はピボット周辺の11.4×11.6 km、10 mで1,140×1,163ピクセルを使いました。GeoTIFFは1秒未満で書き出されました。
私のNDVIは農場の池の上の−0.65から、灌漑された円の0.94までで、平均は0.48でした。方法2のAI Agentのlayerとピクセル単位で一致しました。7月はこの台地の乾季です。生育中のピボットは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カタログに問い合わせ、7月7日と17日のシーンを26秒でリストしました。Copernicusの認証情報がない場合、SCPはGoogle Cloudの公開Sentinel-2バケットからプロダクトをダウンロードし、そのバケットには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で画像を分類する場合。ダウンロード、反射率への変換、バンドセットの構築を1か所で行えます。
使わないとき: 画像かインデックスだけが必要な場合。方法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で1ピクセルを確認してください。
- シーンの雲の割合は、あなたの圃場ではなく、その110 kmタイルを対象としています。クリスタリナ上空の同じパスは、一方のタイルで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は大気上端反射率で、より小さく(クリスタリナ上空の同じパスで1,090 MBに対して約760 MB)、独自の大気補正を行う場合に適しています。
どのSentinel-2バンドがトゥルーカラーで、どれがNDVIですか?
トゥルーカラーはB4が赤、B3が緑、B2が青で、すべてのL2AプロダクトはTCIとしてすぐに使える形でも提供しています。NDVIは近赤外のB8とB4を使います: (B8 − B4) / (B8 + B4)。4つのバンドはすべて10 mです。processing baseline 04.00以降の生のL2A値では、まず各バンドから1,000を引いてください。
Sentinel-2画像を雲量でフィルタするには?
Copernicus Browserでは、検索タブの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クライアントが必要で、そのページはCopernicusのendpointがmacOSで動作しない可能性があると警告しています。Copernicus自身のドキュメントはそれをビューアとして説明し、単体のダウンロードはCopernicus Browserに誘導しています。この記事ではテストしていません。
QGISでチャットパネルが何をできるかの詳細については、AI Agentガイドにさらに10の実際の実行例があり、QGIS AIハブが残りをまとめています。上記のNDVIを圃場ポリゴンに変換するには、raster to vectorの記事がここから続きます。2つの関連チュートリアルでは、OpenStreetMapデータのダウンロードとスキャンした地図のジオレファレンスを扱っています。
3.42以降に取り込むには、

