チュートリアル(APIモジュールのインストールからデータ表示まで)

はじめに

JAXA Earth API for Pythonは、JAXAが保有する複数の衛星データをAPI (Application Programming Interface) 経由でPython環境上から簡単に利用できるサービスです。

このページでは、Windows環境でのJAXA Earth API for PythonのAPIパッケージのインストールから、APIを使った衛星データの表示までのチュートリアルを掲載しています。

0.作業環境の準備

APIのインストールの前に、以下の作業を行ってください。

ファイルの拡張子を表示する

1.タスクバーから「エクスプローラー」をクリックし、開きます。

_images/Explorer_Click.png

2.エクスプローラー画面上の「表示」をクリックします。

3.「ファイル名拡張子」の四角いチェックボックスをクリックし、チェックを付けます。

_images/File_extension_display.png

作業用フォルダの作成

1.任意の場所に作業用ディレクトリを作成します。この例では、デスクトップ上に作業用ディレクトリを作成します。デスクトップ上で右クリックし、「新規作成」→「フォルダ」を選択します。

_images/Create_Folde1.png

2.「JAXAEarthAPI」と名前を付けてフォルダを作成します。

_images/Create_Folde2.png

1.Pythonをインストールする

JAXA Earth API for Pythonの実行には、プログラミング言語のひとつである「Python」のインストールが必要です。

まず、APIを実行する環境にPythonがインストールされているかを確認してください。 タスクバーの検索ボックスで「cmd」と入力し、表示される「コマンドプロンプト」を開きます。

_images/cmd_open.png

コマンドプロンプト上で次の文(コマンド)を入力し、エンターキーを押して実行してください。

$ python –V

Pythonがインストールされていれば、次のようにPythonのバージョンが表示されます。

_images/cmd_python_v.png

バージョン番号はインストールされているPythonのバージョンによって変わります。

Pythonのバージョンが問題なく表示され、インストールされているのが確認できた場合は手順2に進んでください。

Pythonがインストールされていない場合、公式サイトからPythonをインストールする必要があります。

次のURLにあるPython環境構築ガイドを参考に、作業環境に合った方法でインストールを進めてください。

https://www.python.jp/install/install.htm

インストール完了後、コマンドプロンプト上で再度「python –V」を実行し、Pythonのバージョンが表示されればインストールは完了となります。

インストール時に使用したファイルは削除して構いません。

2.APIパッケージのインストール

JAXA Earth API for Pythonを実行するために必要なAPIパッケージをインストールします。

次のダウンロードリンクを右クリックし、「名前を付けてリンク先を保存」を選択します。

jaxa-earth-0.1.2.zip

手順0で作成した作業用フォルダ (この例ではデスクトップ上のJAXAEarthAPIフォルダ) に移動し、「保存」をクリックします。

_images/Package_Download.png

保存後に作業用フォルダを開き、「jaxa-earth-0.1.2.zip」というファイルがあるのを確認してください。

_images/Package_Check.png

次に、ダウンロードしたパッケージを用いて、コマンドプロンプトからAPIのインストールを行います。

デスクトップ上のJAXAEarthAPIフォルダのアイコンを「Shift」キーを押しながら左クリックし、表示されるメニューから「パスのコピー」を選択します。

_images/Copy_Path.png

コマンドプロンプト上で cd (cdの後に半角スペースが入ります)と入力し、「Ctrl」キーと「V」キーを同時に押してコピーしたパスを貼り付けてエンターキーを押してください。

例:

$ cd C:\Users\owner\Desktop\JAXAEarthAPI

コマンドプロンプト上のカレントディレクトリ(>の左側の表示)の末尾が作業ディレクトリ(この場合だと「JAXAEarthAPI」)になっていることを確認してください。

_images/cmd_cd.png

確認後、次のコマンドをコマンドプロンプトに入力、もしくはコピー・貼り付けし、エンターキーを押してください。

$ pip install jaxa-earth-0.1.2.zip

JAXA Earth API for Pythonの実行に必要なパッケージのインストールが始まります。インストールが終わり、再びコマンド入力が可能になるまでお待ちください。

インストールが完了して再び入力が可能になったら、コマンドプロンプトに Python と入力してエンターキーを押し、Pythonを起動します。

Pythonが起動した後、以下の文章を入力、もしくはコピー・貼り付けしてエンターキーを押してください。

$ from jaxa.earth import je

エラーが発生せず何も表示されなければ、APIは正しくインストールされています。

_images/Package_Install_Finish.png

3.スクリプトを作成し、保存する

PythonとAPIのインストールができたら、APIを使用し画像を取得・表示するスクリプトを作成します。

作業用フォルダを開き、右クリックをして「新規作成」→「テキストドキュメント」を選択します。

作成された「新しいテキストドキュメント.txt」の名前を「sample.py」に変更します。

名前変更時に、「ファイル名の拡張子が変わると、ファイルが使用できなくなる可能性があります」 という警告が出る場合がありますが、「はい」を選択して進めます。

_images/sample_make.png

「sample.py」を右クリックして「プログラムから開く」を選択し、 編集に使うテキストエディタを選択します(今回の例では「メモ帳」を選択します)。

_images/sample_open.png

次に、APIを使って衛星画像を取得・表示するPythonスクリプトをsample.pyに入力します。

次の文をコピーし、開いたsample.pyに貼り付けてください。

# モジュールをロード
from jaxa.earth import je

# クエリパラメータを設定
dlim = ["2018-01-01T00:00:00","2018-01-01T00:00:00"]
ppu  = 5
bbox = [110, 20, 160, 50]

# 画像を取得
data = je.ImageCollection("NASA.EOSDIS_Aqua.MODIS_MYD11C1-LST.daytime.v061_global_half-monthly-normal",ssl_verify=True)\
        .filter_date(dlim=dlim)\
        .filter_resolution(ppu=ppu)\
        .filter_bounds(bbox=bbox)\
        .select("LST_2012_2021")\
        .get_images()

# 画像を処理して表示
img = je.ImageProcess(data)\
        .show_images()

スクリプトを貼り付けることができたら、保存してください(メモ帳の場合、「Ctrl」キーと「S」キーを同時に押すことで保存できます)。

_images/sample_script.png

4.スクリプトを実行し、画像を表示する

スクリプトを実行し、衛星画像を取得・表示します。

手順2と同じようにコマンドプロンプトを開き、 cd コマンドでJAXAEarthAPIフォルダのディレクトリに移動します。

コマンドプロンプト上で次のコマンドを入力し、エンターキーを押して実行してください。

$ python sample.py

コマンドを実行すると、次の画像が表示されます。

_images/sample_result.png

これで画像の表示は完了です。

コマンドの実行時、ssl エラーが発生して画像が表示されない場合、スクリプトの ssl_verifyTrue から False に設定してください。

_images/sample_ssl_verify_false.png

5.表示する画像を変更する

手順4で例として提示したスクリプトは、期間、領域、解像度を設定して画像を取得して表示する基本的なスクリプトです。

画像はJAXA Earth APIで公開されているデータセット(観測衛星や分野ごとに整理されたデータのパッケージのようなもの)から取得しています。

JAXA Earth APIのデータセットは次のサイトで閲覧・検索することができます。

https://data.earth.jaxa.jp/ja/datasets/

データセット一覧を参考にスクリプトの各パラメーターを変更することで、内容、期間、領域、解像度等を指定して表示する画像を変更することができます。

各パラメーターの解説を以下に記載します。

_images/script_parameter.png

データセットID

data = je.ImageCollection("NASA.EOSDIS_Aqua.MODIS_MYD11C1-LST.daytime.v061_global_half-monthly-normal",ssl_verify=True)\

画像を取得するデータセットをIDで指定しています。「je.ImageCollection」の括弧の最初の””内にIDを入力することで、 対象のデータセットの画像を取得することができます。

各データセットのIDは、一覧サイトで確認することができます(各データセットの項目の ID: に記載)。

表示するバンド

.select("LST_2012_2021")

バンドとは、衛星などのセンサーが観測する光や電波などの波長範囲のことであり、データセットによっては取得できる画像がバンドで分けられていることがあります。 スクリプトでは data = 下の .select で表示するバンドを指定することができます。

各データセットで使えるバンドは、一覧サイトで確認することができます(各データセットの項目の BAND: に記載)。

画像を取得する期間

dlim = ["2018-01-01T00:00:00","2018-01-01T00:00:00"]

画像を取得する期間の範囲です。 [ ] 内の最初の時間が開始期間、後の時間が終了期間となっています。

例では2018年1月1日0時0分0秒の画像しか取得していませんが、開始期間と終了期間を設定し範囲期間を設定することで、期間内に存在する画像を順番に表示することができます。

なお、取得できる期間はデータセットによって異なり、一覧サイト内各データセットのページの Temporal で確認できます。

画像の解像度

ppu  = 5

ppu(Pixels Per Unit)は、表示する画像の解像度に関する値です。

値が大きいほど解像度は上がりますが、大きすぎるとデータの取得に時間がかかる可能性があります。

画像を取得する領域

bbox = [110, 20, 160, 50]

画像を取得する領域を、緯度・経度の数値で指定した四角形の範囲で囲んだbbox(バウンディングボックス)で指定できます。 それぞれ [経度の最小値、緯度の最小値、経度の最大値、緯度の最大値] となっています。

bboxとは緯度線と経度線2本ずつで囲んだ四角形のことであり、指定した四角形の範囲の画像を取得できます。

なお、取得できる領域はデータセットによって異なり、一覧サイト内各データセットのページの Spatial Bbox で確認できます。

変更例

例として、以下のようにスクリプトのパラメーターを変更し、画像を表示します。

・データセット: Land Surface Temperature(Daytime/Daily)

・バンド:LST

・期間: 2024.01.04.00.00.00 – 2024.01.05.23.59.59

・ppu:20

・領域:129, 30, 133, 35(九州付近)

# モジュールをロード
from jaxa.earth import je

# クエリパラメータを設定
dlim = ["2024-01-04T00:00:00","2024-01-05T23:59:00"]
ppu  = 20
bbox = [129, 30, 133, 35]

# 画像を取得
data = je.ImageCollection("JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_daily",ssl_verify=True)\
        .filter_date(dlim=dlim)\
        .filter_resolution(ppu=ppu)\
        .filter_bounds(bbox=bbox)\
        .select("LST")\
        .get_images()

# 画像を処理して表示
img = je.ImageProcess(data)\
        .show_images()

このスクリプトを実行すると、以下のように2024年1月4日の画像と、2024年1月5日の2つの画像が表示されます。

_images/sample2_1.png _images/sample2_2.png

パラメーターを変更しての画像の表示はこれで完了です。

更に複雑なパラメーターの設定等については、APIリファレンスを参照してください。