(更新: ) 読了 約16分

衛星データ×機械学習入門 — Pythonで衛星画像を解析する基礎知識


はじめに

衛星画像の解析は、かつては専門のGISソフトウェアと高価なデータを必要とする分野だった。2026年現在、Pythonのオープンソースライブラリとクラウドプラットフォーム、無料公開の衛星データを組み合わせることで、個人のノートPCからでも衛星画像の機械学習解析が可能になっている。

本記事では、衛星データ×機械学習をPythonで始めるための基礎知識を整理する。

主要Pythonライブラリ

ラスター・ベクター操作

ライブラリ用途
RasterioGeoTIFFの読み書き。バンドデータをNumPy配列として取得
GeoPandasベクターデータ(Shapefile, GeoJSON)の操作。空間結合・座標変換
Xarray + rioxarray多次元配列(時系列衛星データ)の操作。時系列スタック処理に最適
GDAL/OGR地理空間データ変換の基盤。Rasterio等の内部で使用

衛星データAPI

ライブラリ用途
sentinelhub-pySentinel Hub APIの公式Python SDK。Sentinel・Landsat・MODISのダウンロード・処理
eo-learnSentinel Hub開発のEOワークフローフレームワーク。クラウドマスキング・特徴抽出・分類のパイプライン構築
Google Earth Engine Python APIペタバイト規模の衛星データをクラウドで処理。import ee; ee.Initialize() で利用開始

深層学習

ライブラリ用途
TorchGeoPyTorch公式の地理空間ライブラリ。30以上のデータローダー、120以上のベンチマークデータセット、110以上の事前学習済みモデル。マルチスペクトル画像の事前学習モデルを提供する初のDLライブラリ
spyndex数百のスペクトル指数を一括計算。NumPy・Pandas・Xarray・Earth Engineオブジェクトに対応

出典: TorchGeo公式 / Rasterio公式 / eo-learn公式

衛星画像×MLの主要タスク

タスク説明代表的アーキテクチャ
土地利用分類(LULC)ピクセルごとに「都市」「森林」「農地」「水域」等を分類U-Net, DeepLabV3+, ViT
物体検出船舶、建物、航空機、車両を検出Faster R-CNN, YOLO
変化検出2時点の画像比較で都市拡大・森林伐採・洪水被害等を検出Siamese Network, UNet-LSTM
作物分類農地の作物種類を分類。精密農業や食料安全保障に活用CNN + LSTM(時系列), Random Forest
雲除去光学衛星画像から雲を除去・補完GAN, Autoencoder
超解像低解像度画像を高解像度に変換SRCNN, ESRGAN

出典: satellite-image-deep-learning/techniques(GitHub)

スペクトル指数 — NDVI・NDWI・NDBI

衛星のマルチスペクトル画像から、特定の現象を数値化する「スペクトル指数」が広く使われる。

NDVI(正規化植生指数)

植生の量・健康状態を測定する最も基本的な指数。

NDVI = (NIR - Red) / (NIR + Red)

値は-1.0〜+1.0。0.2〜0.8が健全な植生。Sentinel-2では (B8 - B4) / (B8 + B4)

NDWI(正規化水指数)

水域の検出(湖・川・湿地)に使用。

NDWI = (Green - NIR) / (Green + NIR)

Sentinel-2では (B3 - B8) / (B3 + B8)

NDBI(正規化建築指数)

市街地・建築物の検出に使用。

NDBI = (SWIR - NIR) / (SWIR + NIR)

Sentinel-2では (B11 - B8) / (B11 + B8)

Pythonでの計算例

import rasterio
import numpy as np

with rasterio.open("sentinel2.tif") as src:
    nir = src.read(8).astype(float)  # B8 (NIR)
    red = src.read(4).astype(float)  # B4 (Red)

np.seterr(divide='ignore', invalid='ignore')
ndvi = (nir - red) / (nir + red)

# spyndexで複数指数を一括計算
import spyndex
idx = spyndex.computeIndex(
    index=["NDVI", "NDWI", "NDBI"],
    params={"N": nir, "R": red, "G": green, "S1": swir1}
)

出典: NEON — Calculate NDVI in Python / spyndex GitHub

無料衛星データソース

データ解像度再訪頻度特徴
Sentinel-210m(RGB, NIR)5日13バンド。植生・土地利用に最適
Landsat30m16日40年以上の連続記録。長期変化分析に
MODIS250m-1km1-2日広域・高頻度。気候変動・火災検出
Sentinel-15-20m6日SAR(レーダー)。全天候型。無料

ダウンロード方法

プラットフォーム特徴
Copernicus BrowserSentinel全シリーズ。ブラウザからGeoTIFFダウンロード
USGS EarthExplorerLandsat・MODIS・ASTER等40年分
EO BrowserSentinel-2, Landsat等。JPEG/KMZ/GeoTIFF出力

クラウドプラットフォーム

プラットフォーム提供元特徴料金
Google Earth EngineGoogle最も成熟。ペタバイト規模。自動補正・雲除去済みデータ研究用無料
Microsoft Planetary ComputerMicrosoftAzure基盤。STAC標準対応。JupyterHub環境無料(要申請)
AWS Open DataAmazonS3上にSentinel・Landsat等。従量課金データ無料、計算は従量課金

初心者向け推奨: Google Earth Engineが最もドキュメント・コミュニティが充実している。

マルチスペクトル vs ハイパースペクトル

マルチスペクトルハイパースペクトル
バンド数3-20数百
バンド幅広い(数十nm)狭い(10-20nm)
空間解像度高い(10-30m)低い(30m以上が多い)
代表衛星Sentinel-2, LandsatPRISMA, EnMAP
用途植生分類、土地利用、水域検出鉱物識別、汚染物質検出

Sentinel-2の主要バンド

バンド波長帯解像度用途
B2(Blue)~490nm10m大気散乱、水深
B3(Green)~560nm10m植生のピーク反射
B4(Red)~665nm10m葉緑素吸収
B5-B7(Red Edge)705-783nm20m植生の健康状態
B8(NIR)~842nm10mNDVI、バイオマス
B11-B12(SWIR)1610-2190nm20m土壌水分、鉱物、建築物

学習リソース

無料コース

Kaggleコンペティション

NVIDIA — 衛星・気象AIのオープンソース化

NVIDIAは2025-2026年にかけて、衛星データ・気象AIの分野で大規模なオープンソース化を進めている。

Earth-2: オープンソース気象AIプラットフォーム

2026年1月、米国気象学会で発表されたEarth-2は、世界初の完全オープンな気象AIプラットフォーム。5つのモデルがオープンソースで公開されている。

モデル機能
Earth-2 Medium Range(Atlas)70以上の気象変数で15日間予報
Earth-2 Nowcasting(StormScope)衛星+レーダーデータで0-6時間のkm解像度局地予測
Earth-2 CorrDiff大陸スケール→地域スケールのダウンスケーリング(従来比500倍高速)
Earth-2 FourCastNet3アンサンブル予報(従来比60倍高速)
Earth-2 HealDA大気初期条件の生成(スパコンで数時間→数秒)

コードはGitHub: NVIDIA/earth2studioGitHub: NVIDIA/physicsnemoで公開。モデルはHugging Faceからも取得可能。

採用機関: イスラエル気象局、台湾中央気象署、The Weather Company、米国立気象局、TotalEnergies、AXA、S&P Global Energy。

出典: NVIDIA Blog — Earth-2 Open Models(2026年1月) / KQED — NVIDIA Open-Source Weather Models

GPU加速の地理空間処理 — RAPIDS / cuSpatial

NVIDIAのGPU加速データサイエンスエコシステムRAPIDSには、衛星データ処理に直接使えるライブラリがある。

  • cuSpatial: CUDA加速GISライブラリ。空間演算で10倍〜10,000倍の高速化
  • cuDF: GPUデータフレーム。Google Colabにもプリインストール済み
  • cuML: scikit-learnをGPU加速

NASAのDeepSatフレームワークは217,088 CUDAコアで65TBの衛星画像を分類処理した実績がある。

出典: cuSpatial GitHub / RAPIDS Ecosystem

Prithvi-EO-2.0 — NASA/IBMの地球観測基盤モデル

NVIDIAのハードウェアで訓練されたPrithvi-EO-2.0は、6億パラメータの地球観測基盤モデル。NASAのHarmonized Landsat/Sentinel-2アーカイブから420万のグローバル時系列サンプルで学習。240基のNVIDIA A100 GPUで訓練され、Hugging FaceとGitHubでオープンソース公開。

用途: 土地利用追跡、災害監視、収量予測、環境分析。

出典: NASA Science — Prithvi-EO-2.0 / Prithvi-EO-2.0 GitHub

軌道上GPU — 宇宙でのエッジAI

NVIDIAのGPUは宇宙でも稼働を始めている。

  • Starcloud-1(2025年11月打ち上げ): NVIDIA H100を搭載した軌道上データセンター。宇宙で初めてLLMを訓練。Capella SpaceのSAR画像で捜索救助・火災検出を実行
  • Planet Labs Pelican-2(2025年1月打ち上げ): NVIDIA Jetsonで軌道上AIを処理。約1時間でAI分析済み画像を配信
  • OroraTech: JetsonをCubeSatに搭載し60秒以内の山火事検出を実現
  • Jetson AGX Thor(2025年8月): Blackwellアーキテクチャ、2,070 FP4 TFLOPS。宇宙エッジAI向けの次世代プラットフォーム

NVIDIAは「軌道データセンターシステムアーキテクト」(年収$224K-$356K)の求人も公開しており、宇宙コンピューティングへの本格参入を示唆している。

出典: CNBC — Starcloud(2025年12月) / Planet Labs × NVIDIA Jetson / Cloud News — NVIDIA Orbital Data Centers

まとめ

衛星データ×機械学習は、3つの要素が揃ったことで急速にアクセシブルになった。

  1. 無料データ — Sentinel-2(10m, 5日周期)、Landsat(30m, 40年超の記録)が無料公開
  2. Pythonエコシステム — Rasterio、TorchGeo、Google Earth Engine APIで、専用GISソフトなしに解析可能
  3. クラウド計算 — Google Earth Engine、Microsoft Planetary Computerでペタバイト規模のデータをブラウザから処理

最初の一歩として推奨するのは、Google Earth EngineでSentinel-2画像を取得し、NDVIを計算すること。コード数行で衛星画像の世界に入れる。


参考とした記事:

この先は無料会員登録で読めます

メールアドレスを入力すると、確認コードをお送りします。

法人の方へ — 社内共有ライセンス・テーマ指定の記事作成も承ります

登録によりプライバシーポリシーに同意したものとします。

衛星データ×機械学習入門 — Pythonで衛星画像を解析する基礎知識