登録不要で衛星データが触れる。「JAXA Earth API」とQGISプラグインの楽しみ方

衛星データと聞くと、「研究者のもの」「扱うまでが大変そう」という印象を持つ方は多いのではないでしょうか。ところがJAXAのJAXA Earth APIを使うと、富士山の標高も、日本周辺の降水量も、緯度・経度と日時を指定するだけで取得できます。ユーザー登録もAPIキーも不要で、利用回数の制限もありません。

2026年11月4日にINTERNET Watchが、位置情報技術のカンファレンス「MIERUNE MEETUP 2026 in Tokyo」でのJAXAの発表を紹介しました。地図好き、データ好き、宇宙好きには、かなり刺さるツールです。プログラムを書かなくてもQGISのプラグインで地図に重ねられ、最近は生成AIとの連携も進んでいます。今回はその中身と試し方を整理してみます。

JAXA Earth APIとは

JAXAは現在9機の地球観測衛星を運用しており、約30年にわたって陸域・海洋・大気のデータを蓄積してきました。ただ、従来の方法でこれらを使うには、ファイル形式の違いや前処理、大容量ファイルを処理できるコンピューターなど、いくつものハードルがありました。

そこでJAXAが提供しているのが、APIでデータを取得できるこのサービスです。2022年にプロトタイプが公開されました。PythonとJavaScriptのモジュールがあり、投影変換や物理量への変換といったリモートセンシング特有の処理はAPI側で自動的に行われます。

項目内容
利用料金無料
ユーザー登録・APIキー不要
利用回数の制限なし
提供モジュールPython、JavaScript
データセット数約100件(期間別統計を含む)
主なデータ地形、降水量、植生指数、土壌水分量、森林・非森林マップ、地表面温度、海面水温、クロロフィルa濃度など

JAXAの衛星データだけでなく、NASAのMODISなど他機関の公開データをまとめて変換したものも含まれています。一覧は公式のデータセットページで確認できます。

必要な部分だけ取れる仕組み

技術的に面白いのが配信の仕組みです。データはCOG(Cloud Optimized GeoTIFF)という形式に変換され、STAC(SpatioTemporal Asset Catalog)という形式のカタログで整理されています。利用者側のモジュールがカタログをたどり、指定された範囲と日時の部分だけをピンポイントで取得します。

サーバー側は静的なファイルを配信するだけなので、運用コストを抑えられます。JAXAの河村耕平氏によれば、AIが頻繁にアクセスを繰り返しても処理待ちになることがないそうです。登録不要・回数制限なしという条件を支えているのは、この設計だと言えそうです。

コードなしで試す:QGISプラグイン

いちばん手軽なのは、オープンソースのGISソフト「QGIS」から使う方法です。MIERUNEが開発した「JAXA Earth APIプラグイン」を入れると、マウス操作だけで衛星データを地図に重ねられます。手順は次のとおりです。

  1. QGISをインストール:公式サイトから入手します。JAXAの案内では長期サポート版(LTR)が推奨されています。
  2. 背景地図を追加:ブラウザパネルの「XYZ Tiles」を右クリックして新規接続を作り、URLに https://tile.openstreetmap.org/{z}/{x}/{y}.png を入力します。
  3. プラグインをインストール:「Plugins」メニューの「Manage plugins」を開き、「JAXA」で検索してインストールします。
  4. データセットと期間を選ぶ:ツールバーのアイコンからダイアログを開き、たとえば「Precipitation Rate (Monthly)」と対象期間を指定します。
  5. 範囲を決めて実行:表示中の範囲を使うなら「Map Canvas Extent」、ドラッグで囲むなら「Draw on Canvas」を押し、「Launch」で読み込みます。月別データなら月ごとのレイヤーとして追加されます。

このプラグインには面白い背景があります。JAXAが依頼したものではなく、APIの公開からわずか2週間後にMIERUNEが自発的に公開したものだそうです。河村氏は「QGISプラグインにすればいいのか」と衝撃を受けたと語っており、ダウンロードは2万回を超えています。データをAPIで開いたことで、提供側が想定していなかった使い方が生まれた好例です。

Pythonなら数行で取得できる

Pythonで使う場合は、PyPIからインストールできます。

pip install jaxa-earth

基本の流れは、「データセット→日時→解像度→範囲→バンド」の順に絞り込んでいくだけです。たとえば、富士山周辺の標高データを表示するコードは次のようになります。

from jaxa.earth import je

data = (
    je.ImageCollection("JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global", ssl_verify=True)
    .filter_date(dlim=["2021-01-01T00:00:00", "2022-01-01T00:00:00"])
    .filter_resolution(ppu=360)  # 緯度・経度1度あたりのピクセル数
    .filter_bounds(bbox=[138.5, 35.1, 139.0, 35.6])  # 西, 南, 東, 北
    .select("DSM")
    .get_images()
)

img = je.ImageProcess(data).show_images()

データセットのIDとバンド名は、キーワードで検索できます。

from jaxa.earth import je

collections, bands = je.ImageCollectionList(ssl_verify=True).filter_name(keywords=["LST"])

for collection, band in zip(collections, bands):
    print(collection, band)

取得したデータは画像として表示するだけでなく、NumPy配列として扱えます。マスク処理、平年値との差分、複数日の合成、領域内の平均値などの時系列グラフも、ImageProcess のメソッドで用意されています。次のコードは公式チュートリアルの例で、日本周辺の短波放射の平年値を時系列グラフにするものです。

from jaxa.earth import je

data = (
    je.ImageCollection("JAXA.JASMES_Aqua.MODIS_swr.v811_global_half-monthly-normal", ssl_verify=True)
    .filter_date(dlim=["2021-01-01T00:00:00", "2021-12-31T00:00:00"])
    .filter_resolution(ppu=10)
    .filter_bounds(bbox=[120, 20, 150, 50])
    .select("swr_2012_2021")
    .get_images()
)

img = je.ImageProcess(data).calc_spatial_stats().show_spatial_stats()
print(img.timeseries["mean"])

なお、モジュール(v0.1.6)のソースを見ると、1回の取得で扱える日付は100個まで、取得できるピクセル数にも上限があります。「利用回数の制限なし」とは別の話で、長期間の日次データを取るなら期間を分けて取得する必要があります。

生成AIと組み合わせる

最近の動きで特に注目したいのがAIとの連携です。JAXAは「AIが頻繁にアクセスしても処理待ちにならない」という特性を活かす方向に力を入れており、公式でも次のようなものを用意しています。

  • MCPサーバーのサンプル:Claude Desktopに設定すると、データセットの検索、画像表示、統計の計算と表示という4つのツールをチャットから呼び出せます。手順は公式ドキュメントにまとまっています。
  • AI向けのドキュメントとデータセットカタログ:AIアシスタントがAPIを理解し、適切なデータセットを選ぶためのMarkdown資料です。

河村氏の発表では、Agent Skillsを使った例も紹介されました。「現在のエルニーニョ現象の発生状況を確認して報告書にまとめて」と依頼すると、AIがサンプルコードをもとにプログラムの作成やエラー修正まで自動で行い、時系列グラフや観測画像を含む20ページのレポートを作成したそうです(2026年9月時点、Claude Opus 5を利用)。元になったエルニーニョ現象の確認処理はCodePenで公開されています。

QGISをチャットで操作する「Mapsuke」

もう一つの話題が、MIERUNEが10月14日にオープンソースで公開したMapsukeです。QGISを自然言語で操作できるプラグインで、QGIS公式のプラグインリポジトリから無料でインストールできます。CodexまたはClaude Codeを接続して使う仕組みで、QGISに追加したプラグインの処理をそのままAIエージェントの道具として使えます。

河村氏が富士山の地形データを表示させたうえで「JAXA Earth APIの地表面温度を重ねて表示してください」と指示したところ、Python APIモジュールの事前準備なしに、AIが自らデータを探して表示したそうです。提供側のJAXAが、この結果に「衝撃だった」と語っているのが印象的です。

こんな人に刺さりそう

ここからは筆者の考えですが、次のような方には特におすすめです。週末に遊ぶ題材としても十分楽しめます。

  • 地図好き:地元や好きな山の標高、森林分布、地表面温度を自分の手で地図に重ねられます。
  • データ分析が好きな人:降水量や海面水温の時系列を、自社のデータや公開データと突き合わせる題材になります。
  • Web開発者:JavaScript版はブラウザ上で直接動き、MapLibreやCesiumなどの地図ライブラリと組み合わせられます。フロントエンドだけで衛星データアプリを作れます。
  • AIエージェントを試している人:認証なしで使える本物の観測データなので、MCPやSkillsの検証題材にちょうどよさそうです。

JAXAが紹介した活用例の中には、縄文時代の海岸線に似た状況を再現できる海面上昇シミュレーターもあります。こういう題材に心が動く方は、きっとハマります。

使う前に確認したいこと

気軽に使えるサービスですが、特に業務で使う場合は次の点を押さえておきましょう。

  • ライセンスはデータセットごとに確認する:各データセットのライセンスはSTACのメタデータに記載されています。JAXAの研究データ利用条件が適用されるデータは商用利用も可能とされていますが、他機関のデータも含まれるため、一律に判断しないようにしましょう。
  • 利用を明記する:論文やWebサイトで成果を公開する際は、「画像:JAXA Earth APIを利用して作成」のように、使用した旨を記載します。
  • 無保証で、仕様変更や公開停止もあり得る:APIとデータは現状のまま提供され、予告なく変更・停止される可能性があります。本番サービスに組み込むなら、止まった場合の備えが必要です。
  • AIの出力は検証する:AIが作るレポートは見栄えが良くても、データの選択や解釈を誤る可能性があります。意思決定に使う場合は、元データと処理内容を人が確認しましょう。

まとめ

JAXA Earth APIは、約30年分の地球観測の蓄積を、登録なしで誰でも触れる形にしてくれるサービスです。まずはQGISプラグインで地元の地図にデータを重ねてみて、面白くなってきたらPythonやJavaScript、さらにAIとの組み合わせへと進むのがよさそうです。

今回特に印象に残ったのは、QGISプラグインもMapsukeの使い方も、データを開いたことで提供側の想定を超える使い方が生まれたという点です。次の「想定外」を生むのは、この記事を読んでいる方かもしれません。


本記事は、INTERNET Watchの記事およびJAXA・MIERUNEの公開情報(2026年11月5日時点)をもとに整理したものです。河村氏の発言やAI連携の事例は、同記事の内容に基づきます。コード例は公式チュートリアルとモジュールv0.1.6の定義に沿って作成しましたが、執筆環境では実行確認をしていません。利用条件や仕様は変更される可能性があるため、実際の利用を検討する際は必ず公式情報をご確認ください。

参考情報