JAXAの衛星データをAPIで探す(STAC)
JAXAは、陸域観測衛星「だいち」(ALOS)や水循環変動観測衛星「しずく」(GCOM-W)などが取得した地球観測データを公開しており、STAC(SpatioTemporal Asset Catalog)という国際標準のカタログ形式で提供しています。衛星データというと利用申請や特殊なソフトが必要な印象がありますが、この経路なら登録不要・APIキー不要で、JSONを辿るだけで衛星画像そのものにHTTPで到達できます。ただし「JAXAの衛星データ」には登録が必要な別系統もあり、そこを混同すると迷います。このガイドでは、実際にカタログを辿って確認した構造と境界線を整理します。
STACカタログで何が公開されているか
カタログのルートは `https://data.earth.jaxa.jp/stac/cog/v1/catalog.json` です。実際に取得して数えたところ、119のコレクションが登録されていました。提供元の内訳は、JAXA G-Portal由来が45件、JASMES(衛星利用推進サイト)由来が39件、JAXA EORC(地球観測研究センター)由来が12件、NASA EOSDIS由来が14件、東大との共同提供が7件、欧州Copernicus由来が1件、気象庁由来が1件でした。JAXAのカタログでありながら、NASAやCopernicusのデータもCOG形式に変換して収録されています。
中身の例を挙げると、ALOS/PRISM による AW3D30(全球の数値地表モデル。地形の標高データ)、ALOS-2/PALSAR-2 による森林・非森林分類、GSMaP(衛星観測による全球降水マップ)、GCOM-W/AMSR2 による土壌水分、Aqua/MODIS 由来の積雪・海面水温といった指標が並びます。
データ形式はCOG(Cloud Optimized GeoTIFF)です。ファイル全体をダウンロードしなくても、必要な範囲だけを部分取得できるように作られたGeoTIFFで、クラウド上の大容量ラスターを扱う現在の定番形式です。
カタログから実データまでの辿り方
STACは階層構造で、リンクを辿って掘っていく設計です。実際に辿ると次のようになります。
ルートの `catalog.json` には `links` 配列があり、その中の `rel: "child"` が下位への入口です。これを辿ると各コレクションの `collection.json`(衛星・センサ単位のメタデータ、ライセンス、観測期間、空間範囲)に着きます。さらにその下は年月ごとの `catalog.json`(例: `2021-02/catalog.json`)、その下がCOGの解像度レベル別(0〜3)のカタログ、さらに経度・緯度で分かれ、最下層でようやく実際のラスターファイル(COG)のURLに到達します。
重要なのは、**メタデータのJSONも実データのGeoTIFFも同じ場所にある**ことです。`collection.json` 以下はすべて `https://s3.ap-northeast-1.wasabisys.com/je-pds/cog/v1/...` という、Wasabi(S3互換のクラウドストレージ)上に直接HTTP公開されています。認証トークンもログインも不要で、curlでそのまま取得できることを確認しました。つまり、STACのリンクを辿るだけで衛星画像まで到達できます。
登録が要るもの・要らないもの(ここが混乱しやすい)
「JAXAの衛星データ」には、認証要件の異なる別系統が存在します。ここを混同すると「登録が必要と書いてあるのに、登録なしで取れる記事もある」という矛盾に見えて混乱します。
**JAXA Earth API系(`data.earth.jaxa.jp`)は登録不要**です。公式に「ユーザー登録やAPIキーの発行、API利用回数制限は設けておりません」と明記されています。上で説明したSTACカタログはこちらです。
一方、**正式な「G-Portal」(`gportal.jaxa.jp/gpr/`)はユーザー登録が必須**です。氏名・メール・所属・利用目的を登録し、ID/パスワードでログインします。こちらはバルクダウンロードやSFTPでの取得に対応した、本格的にデータを収集するための窓口です。
つまり、「まず何があるか探したい」「特定の範囲・時期のデータを少し見たい」なら登録不要のSTAC経由、「大量に一括で落としたい」ならG-Portalに登録、という住み分けです。カタログ名に「G-Portal」と付いたコレクションがSTAC側にもあるため紛らわしいのですが、配信ホストが違えば認証要件も違う、と理解してください。
実装の落とし穴:ホストが移設されている
このAPIで最も引っかかりやすいのが、配信ホストの移設です。ネット上の情報やコード例には `https://gportal.jaxa.jp/stac/cog/v1/catalog.json` を叩くものがありますが、**これは現在404を返します**。末尾スラッシュの有無を変えても404でした。
正しくは `https://data.earth.jaxa.jp/stac/cog/v1/catalog.json` で、こちらは200が返り、119コレクションが正常に取得できます。同じパス構造のままホストだけが `gportal.jaxa.jp` から `data.earth.jaxa.jp` へ移っている、という状態です(移設時期は公式の告知を見つけられませんでした)。
教訓として、APIキー不要のオープンなAPIほど「動いていた頃のコード」がそのまま残りやすく、ホスト移設で静かに壊れます。認証エラーなら気づきますが、404は「そのうち直るだろう」と放置されがちです。定期的に実際に叩いて確認する仕組みがないと、気づかないまま動かないコードを抱えることになります。
利用条件
コレクションのメタデータ内の `license` フィールドは `proprietary` となっており、詳細は JAXA の利用ポリシー(earth.jaxa.jp/policy/)を参照する形になっています。オープンデータとして自由に使える、と単純に言い切れる状態ではないので、利用前に規約本文の確認が必要です。
実務上は、成果物を公開する際やソフトウェアに組み込む際に「本データはJAXA Earth APIを使用して取得したものです」といった出典明記が求められます。またデータセットによっては、論文の引用が求められるものもあります。たとえば ALOS World 3D-30m のコレクションには `sci:publications` フィールドに引用すべき論文(Tadono et al. 2014 等)がDOI付きで明記されています。使うデータのコレクション情報に何が書かれているかを確認する習慣を付けてください。
実際に叩いてみる(JAXA Earth STAC・登録不要)
JAXA Earth の COGデータは STAC(静的JSON)で登録不要でたどれます。ルートの catalog.json から rel:child のリンクを辿り、各コレクション(ALOS・GCOM・GSMaP等)→アイテム→実体のCOGファイル、という階層で目的のデータに到達します。
curl -s "https://data.earth.jaxa.jp/stac/cog/v1/catalog.json"
# 実際のレスポンス(抜粋)
{
"id": "cog",
"type": "Catalog",
"stac_version": "1.0.0",
"title": "STAC for JAXA Earth database (COG)",
"links": [
{ "rel": "child", "href": ".../Copernicus.C3S_PROBA-V_LCCS_global_yearly/collection.json" }
/* rel:child が計119コレクション */
]
}出典
元システムエンジニア。Web系アプリ開発6年+ソリューション9年、IT実務およそ15年。個人開発者として、政府オープンデータや各府省のAPIを実際に叩いて検証し、「何が取れるか」「実装時にどこで詰まるか」「どう活用するか」を一次検証にもとづいて記録しています。
運営者・検証方針について →