NDVIとは?意味・値の見方・計算式をQGISで解説
公開日
NDVI(正規化植生指数、Normalized Difference Vegetation Index)とは、衛星画像の1ピクセルに健全な緑の植生がどれだけ含まれているかを、−1から+1の数値で表す指標です。地表が反射する2種類の光、目に見えない近赤外光と赤色光を比べて求めます。NDVI = (NIR − Red) / (NIR + Red)。密な作物や森林はおよそ0.6〜0.9、裸地は0.1前後、水域は0未満になります。


NDVIが最もよく使われる植生指数なのは、ほぼすべての衛星と多くのドローンカメラがこの2種類の光を記録していて、ピクセルごとの1つの数値なら地図にしやすく、時間を追った比較も簡単だからです。農家は畑の生育が弱い場所を見つけるために、林業の担当者は干ばつの推移を追うために、都市計画の担当者は街の緑の量を測るために使います。QGISなら数分で無料で計算できます(手順は下記)。私たちが開発しているQGISプラグインAI Agentに、1文で頼むこともできます。
NDVIの仕組み
植物は赤色光を使い、近赤外光を跳ね返します。健全な葉は成長のために赤色光の大半を吸収し、近赤外光の大半を反射します。NASA Earthdataによると、植物が干ばつや病気で弱ると、赤色光の反射が増えて近赤外光の反射が減り、両者の差が縮まります。

NDVIは、この差を1つの数値にします。
NDVI = (NIR − Red) / (NIR + Red)
近赤外光を40%、赤色光を4%反射する健全な小麦畑なら、(0.40 − 0.04) / (0.40 + 0.04) = 0.82です。裸地が28%と20%を反射する場合は、(0.28 − 0.20) / (0.28 + 0.20) = 0.17になります。和で割ることで指数が「正規化」されるため、日陰の畑と日なたの同じ畑でも近い値になります。
研究者がこの指数を衛星画像に初めて使ったのは1974年で、最初のLandsat衛星からアメリカのグレートプレーンズの作物を観測するためでした。
NDVIの値の見方
米国地質調査所(USGS)が示す範囲が、多くの資料で使われています。目安として捉えてください。
| NDVI | 主な対象 |
|---|---|
| 0未満 | 水域、雲、雪 |
| 0〜0.1 | 露岩、砂地、裸地、市街地 |
| 0.2〜0.5 | まばらな植生:草地、低木、若い作物や成熟期の作物 |
| 0.6〜0.9 | 密な植生:森林、生育のピークにある作物 |
USGSの表現では、不毛地は「0.1以下」、まばらな植生は「およそ0.2〜0.5」、密な植生は「およそ0.6〜0.9」です。同じ畑が1年のうちにこの3段階をすべて通ることを、次の節で示します。
1年間のNDVIの変化を実測する
NDVIの値は、日付とセットで見て初めて意味を持ちます。それを示すため、インド・パンジャーブ州の農地1枚を、1年分のSentinel-2衛星画像で追跡しました。同じ畑が6月上旬は0.06、9月上旬は0.92でした。同じ場所が、裸地から密な作物へ変わったことになります。

曲線は農作業の暦をなぞります。小麦は冬に育って2月ごろにピークを迎え、4月の収穫後に畑は裸地になり、稲は6月下旬に植えられて8〜9月にピークを迎えます。近くの町は、1年を通して0.05〜0.17にとどまります。つまり「0.2」は、月によって若い作物にも、収穫後の畑にも、集落にもなります。
測定方法。 2025年9月26日から2026年9月26日までの、この地域のSentinel-2画像87枚をすべて使い、サンプル地点は値を見る前に決めました。各地点は10mのピクセル3×3個の平均で、雲や影がかかっていない日付だけを数えています。この畑では60日分です。

衛星ごとのバンドの選び方
式は変わりませんが、衛星ごとにバンド(記録する光の色)の番号が違います。取り違えるのは、最初によくあるミスです。
| データ | 赤のバンド | 近赤外のバンド | ピクセルサイズ | 観測頻度 |
|---|---|---|---|---|
| Sentinel-2(ESA) | B4、665nm | B8、842nm | 10m | 5日以内 |
| Landsat 8・9(USGS) | バンド4 | バンド5 | 30m | 2機合わせて8日 |
| Landsat 4〜7 | バンド3 | バンド4 | 30m | 1982年までさかのぼるアーカイブ |
| MODIS(NASA) | NDVIプロダクトが提供済み、MOD13Q1 | 250m | 16日コンポジット | |
| マルチスペクトルのドローンカメラ | 赤のバンド | NIRバンド | 数cm | 飛ばしたとき |
畑や農場にはSentinel-2が標準です。無料で、ピクセルは10m、数日ごとに新しい画像が届きます。2015年より前にさかのぼるならLandsat、国全体を2週間ごとに見るならMODISを使います。通常のドローンカメラは近赤外を記録しないため、NDVIを計算できません。シーンの探し方とストリーミングはQGISでSentinel-2をダウンロードする方法を参照してください。
NDVIを黙って下げるSentinel-2のオフセット
2022年1月25日以降のSentinel-2ファイルは、すべての値に1,000が加算されています。ESAのデータ品質レポートは、これを引くように指示しています。反射率(反射された光の割合)=(値 − 1000)/ 10000です。生の値にそのまま (B8 − B4) / (B8 + B4) を当てはめる定番チュートリアルの式はこの手順を飛ばしており、結果が低く出ます。
誤差は、最も重要な健全な作物で最大になります。
| 対象 | 正しいNDVI | 1,000を忘れた場合のNDVI | 誤差 |
|---|---|---|---|
| 密な作物 | 0.82 | 0.56 | −0.26 |
| 裸地 | 0.17 | 0.12 | −0.05 |
健全な作物が「密」の区分から「まばら」の区分に落ちてしまいます。ハリケの画像では、0.6を超える面積の割合が、オフセットを忘れると73%から14%に下がります。確認したQGISのNDVIチュートリアル9本のどれにも、この点の記載はありませんでした。
ソースによっては、すでにオフセットを取り除いてあります。引く前に確認してください。「地物情報を表示」ツールでピクセルをクリックし、数千の値なら生の値、0から約1の値なら反射率です。
NDVIの限界
NDVIが測るのは緑の濃さであって、緑の濃さは健康状態と同じではありません。実際のプロジェクトでは、次の4つの限界に当たります。
- 頭打ちになる。 非常に密な植生ではNDVIが0.85〜0.9前後にとどまり、緑豊かな畑と非常に緑豊かな畑を区別できません。
- 土壌の色が混ざる。 植物がまばらな場所では、暗い土と明るい土で、同じ植物でも値が変わります。
- 雲で値が偽装される。 薄い雲でもNDVIが下がるため、平均する前に雲のかかったピクセルを除いてください。
- 衛星ごとに少し違う。 Sentinel-2とLandsatは、同じ畑で近い値を出しますが、完全には一致しません。
こうした限界が効いてくる場面では、別の指数のほうが向いています。
| 指数 | 使う場面 |
|---|---|
| EVI | 熱帯林のように植生が非常に密で、NDVIが上がらなくなる場合 |
| SAVI | 若い作物や乾燥地のように植物がまばらで、土壌が多く見える場合 |
| NDRE | シーズン後半に作物の窒素を追う場合(レッドエッジバンドが必要で、Sentinel-2にはある) |
| NDWI | 植物ではなく水域を地図にしたい場合 |
QGISでNDVIを計算する方法
赤と近赤外のバンドを読み込む
Sentinel-2では、バンド B04(赤)と B08(近赤外)を読み込みます。入手とストリーミングはSentinel-2のガイドの手順に従ってください。「地物情報を表示」ツールでピクセルをクリックし、数千の値なら生の値、0〜1の値なら補正済みです。
ラスタ計算機を開く
「ラスタ」→「ラスタ計算機」を開きます。レイヤ名を使って式を入力します。反射率の場合は ("B08@1" - "B04@1") / ("B08@1" + "B04@1") です。2022年以降の生の値では、先に各バンドから1,000を引きます。(("B08@1" - 1000) - ("B04@1" - 1000)) / (("B08@1" - 1000) + ("B04@1" - 1000))。範囲はタイル全体ではなく、対象のエリアに設定します。
結果にスタイルを付ける
レイヤのプロパティの「シンボロジ」を開き、描画タイプを「単バンド疑似カラー」にして、−0.2から0.9までの赤・黄・緑のカラーランプを選びます。水域は赤茶色、畑は緑になります。
畑ごとに集計する
プロセシングツールボックスの「ゾーン統計量」に畑のポリゴンを指定して実行すると、畑ごとのNDVI平均が属性として得られます。
次の画面は、各バンドから先に1,000を引く、生のSentinel-2の値向けの式を入れたラスタ計算機です。

そして、赤から緑にスタイルを付けた結果です。凡例はレイヤパネルに表示されています。

1つのメッセージで
私たちはAI Agentを開発しているので、ここは自社のプラグインの話です。上の手順は、慣れれば10分ほどです。プラグインなら、作業を文章で入力するだけです。新しいプロジェクトを既定の設定で開き、次のように送りました。「パンジャーブ州ハリケ周辺の畑について、雲のない最新のSentinel-2画像からNDVIを計算し、赤から緑にスタイルを付けて、0.6を超えるエリアの割合を教えてください。」
プラグインは9月の画像5枚を確認し、雲のある2枚を除外して9月8日の画像を使い、オフセットを取り除いて、約3分30秒で答えました。17km²のエリアの75%が0.6を超えていました。NDVIは、私が手作業で出したものとピクセル単位で一致しました。

作業用のレイヤもプロジェクトに残り、エリアを「4km×4km」と呼んでいましたが、実際は3.8×4.5kmです。細かな点ですが、引用する数値は確認してください。
要点
NDVI = (NIR − Red) / (NIR + Red)で、値は−1から+1です。密な作物や森林はおよそ0.6〜0.9、裸地は約0.1、水域は0未満になります。
同じ畑が1年のうちに全範囲を通るため、NDVIの値は日付とセットでなければ意味を持ちません。パンジャーブ州の畑は、6月上旬に0.06、9月上旬に0.92でした。
Sentinel-2のNDVIには、10mのB8とB4を使います。2022年1月25日以降の生のレベル2Aの値には−1000のオフセットが付いていて、無視すると密な作物のNDVIが0.82から0.56に下がります。
NDVIは密な林冠で頭打ちになり、土壌と雲の影響を受けます。こうした場面では、EVI、SAVI、NDREのほうが向いています。
よくある質問
作物のNDVIは、どのくらいなら良い値ですか?
生育のピークにある健全な作物は、通常0.6〜0.9です。シーズン初めで植物が土壌をあまり覆っていない時期は、0.2〜0.4が普通です。固定のしきい値と比べるのではなく、同じ畑のシーズン内の推移や、同じ日付の同じ作物の隣の畑と比べてください。
NDVIがマイナスになるのは何を意味しますか?
ほぼ必ず、水域、雲、雪です。これらは近赤外光より赤色光を多く反射します。澄んだ開水面は通常0未満になりますが、濁った水や浅い水は0のすぐ上になることがあるため、NDVIだけで水域を検出するのは向いていません。
NDVIにはSentinel-2のどのバンドを使いますか?
B8(近赤外、842nm)とB4(赤、665nm)で、どちらも10mです。反射率に対して、NDVI = (B8 − B4) / (B8 + B4)とします。2022年1月25日以降に処理された生のレベル2Aの値では、先に各バンドから1,000のオフセットを引きます。
NDVIとNDREの違いは何ですか?
NDREは、赤のバンドの代わりにレッドエッジバンドを使います。NDVIが頭打ちになる密な林冠でも反応し続けるため、窒素やシーズン後半の作物の活力を見るのに向いています。Sentinel-2やマルチスペクトルのドローンカメラなど、レッドエッジバンドを持つセンサーが必要です。
普通のドローン写真からNDVIは計算できますか?
できません。NDVIには近赤外バンドが必要ですが、通常のRGBカメラが記録するのは赤・緑・青だけです。VARIのような可視光の指数もありますが、代替としては精度が劣ります。ドローンでNDVIを得るには、マルチスペクトルカメラが必要です。
QGISでNDVIを自動で計算できますか?
QGISにワンクリックのNDVIボタンはありませんが、上に示したとおり、ラスタ計算機で式を1つ入れれば計算できます。手順を省くには、AIエージェント系のプラグインを使うと、1文で画像を探し、NDVIを計算し、スタイルまで付けられます。当社のAI Agentは、パンジャーブ州の農業地帯でこれを約3分30秒で行いました。
NDVIのデータは、どこで無料で入手できますか?
Sentinel-2(10m)またはLandsat(30m)から自分で計算できます。どちらも無料です。NASAが提供済みのMODIS NDVI(MOD13Q1、250m、16日ごと)をダウンロードする方法もあります。QGISなら、ラスタ計算機で2つのバンドから1分ほどで計算できます。
画像の入手には、QGISでSentinel-2をダウンロードする方法が4つの方法を比較し、シーンの選択とストリーミングまで説明しています。マルチスペクトルとハイパースペクトルの違いは指数の元になるバンドを解説し、QGISでの樹冠マッピングは、植生を指数からポリゴンへ進めます。AI Agentは、QGISでNDVIの作業全体を1文で実行し、QGIS AIハブは、ほかのAIプラグインを用途別に一覧にしています。
なら数分で無料で計算できます(手順は下記)。私たちが開発しているQGISプラグイン

