初めに
JAXA Earth API は、JAXAが保有するCOG/STAC形式の地球観測衛星データにPythonからアクセスできるライブラリです。降水量、標高、植生指数、海面水温など多様な衛星データをプログラムから取得・処理・可視化できます。
今回、このAPIを使って衛星データを手軽に閲覧できるGradioアプリを作りました。以下の5つのタブで構成されています。
- コレクション検索 - 利用可能なデータセットの検索
- 衛星画像ビューア - 衛星画像の取得・表示
- 時系列解析 - 複数日の統計処理
- 差分解析 - 2時期のデータ比較
- マスキング - マスクデータによるフィルタリング

開発環境
| 項目 | バージョン |
|---|---|
| OS | Windows 11 |
| Python | 3.13.8 |
| uv | 0.9.2 |
| jaxa-earth | 0.1.5 |
| Gradio | 6.5.1 |
環境構築
pyproject.toml に JAXA のパッケージインデックスを設定します。
[project] name = "jaxa-earth-data" version = "0.1.0" description = "JAXA Earth Data Gradio Viewer" requires-python = ">=3.13" dependencies = [ "gradio", "matplotlib", "pandas", "numpy", "jaxa-earth", ] [tool.uv] [[tool.uv.index]] name = "jaxa" url = "https://data.earth.jaxa.jp/api/python/repository/" [tool.uv.sources] jaxa-earth = { index = "jaxa" }
jaxa-earth はPyPIではなくJAXA独自のリポジトリで配布されているため、[tool.uv] でインデックスを追加し、[tool.uv.sources] でパッケージの取得元を指定しています。
インストールは以下のコマンドで完了します。
uv sync
JAXA Earth API の基本的な使い方
JAXA Earth API は ImageCollectionList → ImageCollection → ImageProcess のパイプラインでデータを取得・処理します。
from jaxa.earth import je # 1. コレクション検索 icl = je.ImageCollectionList() collections, bands = icl.filter_name(keywords=["GSMaP"]) # 2. データ取得(メソッドチェーン順序は固定) ic = je.ImageCollection( collection="JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_daily" ) ic.filter_date(dlim=["2021-07-01T00:00:00", "2021-07-03T00:00:00"]) ic.filter_resolution(ppu=4) ic.filter_bounds(bbox=[130.0, 30.0, 145.0, 45.0]) ic.select(band="PRECIP") ic.get_images() # 3. 画像処理・可視化 ip = je.ImageProcess(data=ic) ip.show_images(cmap="turbo", clim=[0, 20])
注意:
ImageCollectionのメソッド呼び出し順序はfilter_date→filter_resolution→filter_bounds→select→get_imagesで固定です。順序を変えるとエラーになります。
主なパラメータは以下の通りです。
collection: データセットID(例:JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_daily)ppu(Pixels Per Unit): 解像度を指定(値が大きいほど高解像度)bbox: 取得範囲を[min_lon, min_lat, max_lon, max_lat]で指定cmap: カラーマップ(turbo/ndvi/spectral)
機能紹介
コレクション検索
キーワードを入力して利用可能なデータセットを検索できます。空欄で検索すると全コレクションを一覧表示します。

衛星画像ビューア
20種類以上のプリセットデータセットから選択し、衛星画像を取得・表示します。Collection ID、バンド、日時範囲、解像度、取得範囲などのパラメータを自由に変更可能です。

GSMaPの日次降水量データを取得した例です。日本周辺の降水量分布が可視化されています。

時系列解析
複数日のデータを取得し、平均・最大・最小・標準偏差・中央値の統計処理を実行します。統計画像と空間統計グラフを同時に表示し、統計データテーブルも確認できます。

降水量データの時系列平均を算出した例です。統計画像・空間統計グラフ・データテーブルが表示されます。

差分解析
2つの期間のデータを比較し、差分を可視化します。例えば、2020年と2021年の降水量の差分を確認する、といった使い方ができます。

2020年と2021年の夏季降水量(月次GSMaP)を比較した例です。期間1(参照)・期間2(比較)・差分の3つの画像が並んで表示されます。

マスキング
マスクデータを使ってデータをフィルタリングします。例えば、標高データにマスクを適用して特定の領域のみを表示できます。マスク手法は values_equal / range / bits_equal から選択可能です。

AW3D30標高データにマスクを適用した例です。マスク前後の画像を並べて比較できます。

実行
以下のコマンドでアプリを起動します。
uv run python app.py
ブラウザで http://localhost:7861 にアクセスするとアプリが表示されます。