溝端 浩平 / Kohei Mizobata
Ocean Remote Sensing: Practical Data Analysis 01

MODIS L2 データから RGB 画像を作る

Aqua/MODIS の Ocean Color L2 データから、複数波長のリモートセンシング反射率 Rrs を読み込み、赤・緑・青に割り当てて RGB 画像を作成します。 この解析の目的は、きれいな衛星画像を作ることだけではなく、衛星画像が「写真」ではなく、 波長別観測値を組み合わせた可視化であることを理解することです。

Aqua/MODISOcean Color L2Rrs RGB compositeSwath dataCloud maskImage interpretation

この解析の中心的な問い

衛星画像は、私たちが普段見る写真と同じなのか?

MODIS が観測した波長別の反射率を RGB に割り当てることで、雲、陸、海、沿岸水、 外洋水、水塊境界のような特徴をどこまで読み取れるかを考えます。

データと前提

項目内容注意点
使用データAqua/MODIS Level-2 Ocean Color NRT NetCDFL2 データは衛星軌道に沿った swath データであり、最初から緯度経度の等間隔格子ではない。
主な変数navigation_data/longitude, navigation_data/latitude, geophysical_data/Rrs_*各ピクセルに緯度・経度と複数波長の反射率が対応している。
RGB バンド例:Red = Rrs_667, Green = Rrs_555, Blue = Rrs_443ファイルに存在する波長に応じて、近い波長を自動選択する。
対象例2024年5月31日または2024年6月11日の日本周辺雲や陸域は海面情報を隠すため、RGB 画像の判読ではまず欠測・雲域を確認する。
RGB 画像は定量的なクロロフィル濃度そのものではありません。水色の違いは重要な手がかりですが、 定量的な議論には次の解析で扱う Rrs からの Chl-a 濃度推定が必要です。

解析フロー

Step 1

MODIS L2 Ocean Color ファイルを確認する

最初に NetCDF ファイルを指定し、ファイルに含まれる変数を確認します。MODIS L2 Ocean Color データには、 緯度・経度、品質情報、複数波長の Rrs などが含まれています。

ReadMODISL2Truecolor_improved.m
L2 swath データとは何か
添付図のように画像が斜めの帯状になるのは、MODIS が衛星軌道に沿って観測しているためです。 これは地図格子画像ではなく、衛星が通過した範囲だけを持つ観測データです。
Step 2

各ピクセルの緯度・経度を読む

衛星画像の各ピクセルには、観測値だけでなく緯度・経度が対応しています。 この緯度・経度を用いることで、swath データを地図上に重ねることができます。

lon = ncread(ncfile,'navigation_data/longitude');
lat = ncread(ncfile,'navigation_data/latitude');
確認すること緯度・経度配列のサイズ、対象海域、衛星軌道の形。
重要な見方L2 データは等間隔格子ではないため、単純な画像表示ではなく、地理座標を使った描画が必要です。
Step 3

RGB に使う Rrs バンドを選ぶ

RGB 画像では、赤・緑・青に近い波長の Rrs をそれぞれ R, G, B チャンネルに割り当てます。 改良版スクリプトでは、ファイルに存在する波長を確認しながら、近い波長を自動で選択します。

RGB チャンネル優先して使う波長代替候補
RedRrs_667Rrs_678, Rrs_645
GreenRrs_555Rrs_547, Rrs_531
BlueRrs_443Rrs_469, Rrs_488
RGB は波長の割り当てで見え方が変わる
同じ MODIS データでも、どの波長を R, G, B に割り当てるか、どのように明るさを調整するかで、 画像の印象は変わります。そのため、RGB 画像は「表示用の合成画像」として扱います。
Step 4

欠損値・異常値を処理し、見やすい明るさに調整する

Rrs をそのまま RGB に入れても、暗すぎたり、雲縁や異常値が目立ちすぎたりすることがあります。 そこで、負値や大きすぎる値を除き、0–1 の範囲に正規化し、必要に応じて明るさやガンマ補正を行います。

scaleMode = 'fixed';
brightnessFactor = 1.35;
gammaValue = 0.85;
saturationFactor = 0.90;
fixed scale複数画像を同じ基準で比較しやすい。授業・レポートではこちらが安全。
percentile scale1枚ごとの見栄えは良くなるが、日付間・画像間の比較では注意が必要。
Step 5

地図上に RGB 画像を表示する

緯度・経度を用いて、RGB 画像を日本周辺の地図上に表示します。海岸線を重ねることで、 陸域、沿岸域、外洋域の位置関係を確認できます。

MODIS L2 RGB image
Fig. 1. Aqua/MODIS L2 Ocean Color データから作成した RGB 画像。Rrs667, Rrs555, Rrs443 を RGB に割り当て、fixed scale で表示した例。
黒く見える領域は、海が黒いというより、雲、陸、品質条件、表示スケールなどにより有効な海面反射率として扱えない領域です。 まず「どこが観測できていないか」を読むことが、衛星データ解析の第一歩です。
Step 6

RGB 画像から海の特徴を読み取る

RGB 画像からは、雲、陸、沿岸水、外洋水、水塊境界、渦状構造などを直感的に読み取ることができます。 一方で、RGB だけではクロロフィル濃度や懸濁物濃度を定量的に決めることはできません。

読み取れること雲域、陸域、沿岸水と外洋水の違い、水色の空間パターン、渦状・筋状構造。
まだ言えないことChl-a 濃度の定量値、植物プランクトン種組成、SST、海流速度、海洋熱波の有無。

この解析で特に強調すること

  • RGB 画像は写真ではなく、波長別の観測値を R, G, B に割り当てた表示画像である。
  • MODIS L2 データは swath データであり、衛星軌道に沿った観測範囲だけを持つ。
  • 可視・近赤外の海色観測は雲に弱く、雲や陸域の下の海面は観測できない。
  • RGB 画像で見える水色の違いは重要な手がかりだが、定量的な Chl-a 推定には Rrs を用いたアルゴリズムが必要である。
  • 表示スケールやガンマ補正により見た目は変わるため、画像判読では処理条件を明示する。

課題

レポートでは、図を貼るだけでなく「RGB 画像から何が読めるか」「RGB 画像だけでは何が言えないか」を必ず記述すること。
  1. 作成した RGB 画像において、雲または欠測と思われる領域はどこか。なぜそう判断したか説明せよ。
  2. 沿岸水と外洋水の色の違いが見える場所を一つ選び、その特徴を説明せよ。
  3. RGB 画像は「写真」と同じと言えるか。衛星が観測している量と RGB 表示の関係を説明せよ。
  4. fixed scale と percentile scale では、画像の見え方と比較可能性がどのように変わるか考察せよ。
  5. RGB 画像だけでクロロフィル濃度が高いと断定できない理由を説明せよ。
  6. 次の解析で Chl-a 濃度を推定するとき、RGB 画像はどのような事前情報として役立つか述べよ。

次の解析へ

RGB 画像で海の色の違いを確認したら、次は Rrs の波長比を用いてクロロフィル a 濃度を推定します。
その後、赤外 SST とマイクロ波 SST の相補性を扱う MODIS + AMSR2 SST 合成 へ進みます。

戻る