APIリファレンス

jaxa.earth.jeモジュール

JAXA が保有する人工衛星の地球観測データを活用するために開発された、Pythonパッケージです。本APIを利用することで、各衛星データの仕様やセンサー、解像度などを気にすることなく、簡単にデータを取得・処理することができます。

警告

本APIとデータベースは試験版です。将来的に重要な仕様変更が行われる可能性があります。あらかじめご了承ください。本API、モジュール、データベースの使用により生じたいかなる事件、事故について、当方は一切の責任を負いません。

je モジュールには4つのクラスがあります: FeatureCollection, ImageCollectionList, ImageCollection, ImageProcess

# 使用例

# モジュールをインポート
from jaxa.earth import je

# geojson読み込み
geoj_path = "gadm36_JPN_0.geojson"
geoj = je.FeatureCollection().read(geoj_path).select([])

# 画像を取得
data_out = je.ImageCollection("JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global")\
             .filter_date(["2021-01-01T00:00:00","2022-01-01T00:00:00"])\
             .filter_resolution(20)\
             .filter_bounds(geoj[0])\
             .select("DSM")\
             .get_images()

# 画像を処理して表示
img = je.ImageProcess(data_out)\
        .show_images()\
        .calc_spatial_stats()\
        .show_spatial_stats()
class jaxa.earth.je.FeatureCollection

ベースクラス: object

FeatureCollection クラスは、feature collectionを読み込んで、コンピュータからgeojsonデータのfeatureを選択するために使用します。

戻り値:

feature_collection プロパティを持つ FeatureCollection クラスのオブジェクトです。オブジェクトのすべてのプロパティはデフォルトで None に設定されています。

feature_collection

プロパティは read メソッドの実行後に更新されます。デフォルト値は None です。

:

dict

# 使用例:フィーチャーコレクションデータの取得
geoj_path = "C:\MyData\gadm36_JPN_1.geojson"
geoj = je.FeatureCollection().read(geoj_path).select(["Tokyo"])
read(path: str)

read メソッドは、入力されたパスのgeojsonデータをfeature collectionとして読み込みます。

パラメータ:

path (str) -- geojsonデータが保存されている場所の絶対パス

戻り値:

更新された feature_collection プロパティを格納する FeatureCollection クラスのオブジェクト

# 使用例:geojsonデータをfeature collectionとして読み込む
data_path = "C:\MyData\MyArea.geojson"
data_fc   = je.FeatureCollection.read(data_path)
select(keywords: list = [])

select メソッドは、入力されたfeature collectionのデータをキーワードでフィルタリングする。デフォルトは空リストのため、feature collectionの全featuresが選択されます。

パラメータ:

keywords (list) -- ご希望のキーワードリスト

戻り値:

キーワードで選択されたgeojson features

# 使用例:geojsonのfeature collectionからfeatureを選択する。
geojson = data_fc.select(["Japan","Tokyo"])
class jaxa.earth.je.ImageCollection(collection: str | None = None, ssl_verify: bool | None = None)

ベースクラス: object

ImageCollection クラスは、JAXAのEarth databaseから選択されたコレクションのカタログjsonデータを取得します。このクラスのメソッドを使用すると、ユーザーは日付の制限、解像度、範囲、バンドなどの問い合わせに基づいて、コレクションのラスター画像を取得することができます。

パラメータ:
  • collection (str) -- 選択されたコレクションの名前。入力がない場合は "JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global" が使用されます。

  • ssl_verify (bool) --

    ユーザーは、有効なSSL認証プロセスを True または False に設定することができます。デフォルトは True です。

    注釈

    値を False に設定すると、セキュリティリスクになる可能性があります。

戻り値:

stac_datestac_ppustac_boundsstac_band 、およびラスターのプロパティを持つ ImageCollection クラスのオブジェクトこのオブジェクトのすべてのプロパティは、デフォルトで None に設定されています。

stac_date

デフォルト値は None。updatedプロパティは、 filter_date メソッドの後に設定されます。updatedプロパティには、 queryurlidjson の4つのプロパティがあります。このオブジェクトは、 filter_resolution メソッドへの入力として使用されます。

:

Stac クラスのオブジェクト

stac_ppu

デフォルト値は Noneとなります。updatedプロパティは、 filter_resolution メソッドの後に設定されます。updatedプロパティには、 queryurljson の3つのプロパティがあります。このオブジェクトは、 filter_bounds メソッドへの入力として使用されます。

:

Stac クラスのオブジェクト

stac_bounds

デフォルト値は Noneになります。updatedプロパティは、 filter_bounds メソッドの後に設定されます。updatedプロパティには、 queryurljson の3つのプロパティがあります。このオブジェクトは、 select メソッドへの入力として使用されます。

:

Stac クラスのオブジェクト

stac_band

デフォルト値は Noneになります。updatedプロパティは、 select メソッドの後に設定されます。updatedプロパティには、 queryurl の2つのプロパティがあります。このオブジェクトは、 get_images メソッドへの入力として使用されます。

:

Stac クラスのオブジェクト

raster

デフォルト値は Noneになります。updatedプロパティは、 get_images``メソッドの後に設定されます。更新された ``Raster クラスオブジェクトのプロパティには、 imglatlim``lonlim``の3つのプロパティがあります。

:

Raster クラスのオブジェクト

# 使用例:画像を取得する
data_out = je.ImageCollection("JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global")\
             .filter_date(["2021-01-01T00:00:00","2023-01-31T00:00:00"])\
             .filter_resolution(20)\
             .filter_bounds([-180,-90,180,90])\
             .select("DSM")\
             .get_images()
filter_bounds(bbox: list | None = None, geoj: dict | None = None)

filter_bounds メソッドは、ユーザーのboundsまたはgeojsonのクエリによってコレクションのカタログjsonをフィルタリングします。bboxとgeojの両方を入力した場合は、geojがバウンディングボックスの検出に使用されます。どちらも入力しない場合は、最大のバウンディングボックスが選択されます。QGIS環境では、何も入力しないと適切なエリアが選択されます。 stac_bounds プロパティは、このメソッドの後に更新されます。

パラメータ:
  • bbox (list) -- バウンディングボックスをインプット

  • geoj (dict) -- geojsonをインプット

戻り値:

更新された stac_bounds プロパティを格納する ImageCollection クラスオブジェクト

注釈

メソッドの前に filter_resolution メソッドを使用する必要があります。

# 使用例:geojsonのbboxによるImageCollectionのフィルタリング
bbox = [120,20,150,50]
data_ic3 = data_ic2.filter_bounds(bbox)
filter_date(dlim: list = [])

filter_date メソッドは、日付制限のユーザークエリによってコレクションのカタログjsonをフィルタリングします。デフォルトの日付制限パラメーターは ["2021-01-01T00:00:00", "2021-12-31T23:59:59"] で設定されます。 stac_date プロパティは、このメソッドの後に更新されます。

パラメータ:

date_lim (list) -- 最小日付と最大日付の指定による日付制限

戻り値:

更新された ImageCollection プロパティを格納する stac_date クラスオブジェクト

# 使用例:日付制限によるImageCollectionのフィルタリング
date_lim = ["2021-01-01T00:00:00","2022-01-01T00:00:00"]
data_ic1 = data_ic0.filter_date(date_lim)
filter_resolution(ppu: float | None = None)

filter_resolution メソッドは、ppu (Pixels Per Unit) 解像度のユーザーからの問い合わせによって、コレクションのカタログjsonをフィルタリングします。単位は、EPSG4326で1単位あたり1度、EPSG3995では1単位あたり32,786 mになります。何も入力されない場合、最小値または適切な値(QGIS内のみ)が設定されます。 stac_ppu のプロパティは、このメソッドの後に更新されます。

パラメータ:

ppu (float) -- ppuのインプット

戻り値:

更新された stac_ppu プロパティを格納する ImageCollection クラスのオブジェクト

注釈

メソッドの前に filter_date メソッドを使用する必要があります。

# 使用例:ppuによるImageCollectionのフィルタリング
ppu = 20
data_ic2 = data_ic1.filter_resolution(ppu)
get_images()

get_images メソッドは、日付制限、解像度、範囲、バンドなどのユーザからの問い合わせに基づいてcollectionの画像を取得します。このメソッドの実行後、 raster のプロパティが更新されます。さらに、 raster 画像の関心領域も返されます。

戻り値:

更新された raster プロパティを格納する ImageCollection クラスオブジェクト

注釈

メソッドの前に filter_band メソッドを使用する必要があります。

# 使用例 ユーザーのクエリに応じて画像を取得します。
data_out0 = data_ic4.get_images()
select(band: str | None = None)

select メソッドは、コレクションのカタログjsonを、bandを指定して選択するメソッドです。bandを入力しない場合は、最初のバンドが選択されます。 stac_band のプロパティはメソッド実行後に更新されます。

パラメータ:

band (str) -- バンドのアセット

戻り値:

更新された stac_band プロパティを格納する ImageCollection クラスのオブジェクト

注釈

メソッドの前に filter_bounds メソッドを使用する必要があります。

# 使用例:bandによるImageCollectionのフィルタリング
band = "DSM"
data_ic4 = data_ic3.filter_band(band)
class jaxa.earth.je.ImageCollectionList(ssl_verify: bool | None = None)

ベースクラス: object

ImageCollectionList クラスは、ユーザーの入力キーワードに基づいてcolletionのカタログjsonを取得し、フィルタリングします。

パラメータ:

ssl_verify (bool) --

ユーザーは、有効なSSL認証プロセスを True または False に設定することができます。デフォルトは True です。

注釈

値を False に設定すると、セキュリティリスクになる可能性があります。

戻り値:

stac_collections プロパティを持つ ImageCollectionList クラスオブジェクト。

# 使用例:コレクションの名前とバンドを取得する
keywords = ["LST","_half-month"]
collections,bands = je.ImageCollectionList(ssl_verify=False)\
                      .filter_name(keywords=keywords)
filter_name(keywords: list = [])

filter_name メソッドは、colletionのidからcolletionのカタログjsonをフィルタリングします。

パラメータ:

keywords (list) -- リクエストのキーワード

戻り値:

フィルター付きコレクションとフィルター付きバンド

# 使用例:コレクションの名前とバンドを取得する
key = ["LST","_half-month"]
collections,bands = je.ImageCollectionList()\
                      .filter_name(keywords=key)
class jaxa.earth.je.ImageProcess(data)

ベースクラス: object

ImageProcess クラスは、入力された ImageCollecion クラスのオブジェクトを用いて様々な処理を実行します。 ImageProcess クラスのメソッドを利用することで、マスキング画像や差分画像、時間的・空間的統計量の算出など、画像の処理や取得を行うことができます。処理だけでなく、画像や時系列グラフを表示することも可能です。

パラメータ:

data (object) --

更新された raster プロパティを含む ImageCollection クラスオブジェクト

注釈

ImageCollection クラスのオブジェクトは、正しい raster プロパティを持っている必要があります。

戻り値:

更新されたプロパティを持つ ImageProcess クラスオブジェクト

raster

デフォルト値は、入力された ImageCollection クラスオブジェクトの raster プロパティと同じです。 mask_imagesdiff_images などの``calc_temporal_stats`` クラスオブジェクトのメソッド実行後に更新されます。

:

Raster クラスのオブジェクト

timeseries

デフォルト値は None。このプロパティは、calc_spatial_stats などの ImageProcess クラスオブジェクトのメソッド実行後に更新されます。更新されるプロパティには、"mean"、 "std"、 "min"、 "max"、 "median"の5つのキーと値があります

:

dict

# 使用例:画像を加工して表示する#
img = je.ImageProcess(data_out0)\
        .show_images()\
        .calc_spatial_stats()\
        .show_spatial_stats()
calc_spatial_stats()

calc_spatial_stats メソッドは空間統計量を計算します。

戻り値:

更新された timeseries プロパティを格納する ImageProcess クラスのオブジェクト更新されるプロパティには、 "mean"、"std"、"min"、"max"、"median"の5つのキーと値があります。

# 使用例:data_ip0の空間統計量を計算する
data_s_stats = data_ip0.calc_spatial_stats()
calc_temporal_stats(method_query: str = 'mean')

calc_temporal_stats は、ユーザーが入力した method_query のクエリによって時間統計量を計算します。

パラメータ:

method_query (dict) -- "mean" 、 "max" 、 "min" 、 "std" 、 "median"のうちのどれか。デフォルトは "mean"。

戻り値:

更新された raster プロパティを格納する ImageProcess クラスオブジェクト

# 使用例:data_ip0の時間的統計量を計算する
data_t_stats = data_ip0.calc_temporal_stats("mean")
diff_images(ref)

diff_images メソッドは、ユーザーが入力した参照元のクエリに基づいて、差分を取得します。

パラメータ:

ref (object) --

参照データとして使用される raster プロパティを更新した ImageCollection クラスオブジェクト。

注釈

引数のrefの形式(解像度を含む)は、本メソッドの呼び出し元オブジェクトが持つ ImageCollecion オブジェクトと同じ形式でなければならない。

戻り値:

更新された raster プロパティを格納する ImageProcess クラスオブジェクト

# 使用例:差分データ(data_out0-data_out1)
data_diff = data_ip0.diff_images(data_out1)
mask_images(mask, method_query: str = 'values_equal', values: float = [0, 1])

``mask_images``メソッドは、mask、type_query、valuesを使用してマスクします。

パラメータ:
  • mask (class) --

    ImageCollection クラスのオブジェクトで、マスキングデータとして使用される raster プロパティを更新します。

    注釈

    マスクの形式(解像度を含む)はデータと同じでなければならない。

  • method_query (dict) --

    "range" または "values_equal" または "bits_equal"。デフォルトは ""values_equal" です。

    "range" は、特定の範囲の値を抽出し、範囲外の値をマスクしたい場合に使用する。float型のデータは "range" マスクとして受け入れられます。

    "values_equal" は、ユーザーが特定の値のピクセルのみを抽出し、他の値のピクセルをマスクしたい場合に使用されます。float型のデータが受け入れられます。通常、土地被覆プロダクトが "values_equal" マスクとして使用されます。

    "bits_equal" は、ユーザーが特定のビット値のピクセルのみを抽出し、他のビット値のピクセルをマスクしたい場合に使用されます。マスクとしてfloat型のデータは受け入れられません。通常、品質保証(quality assurance)プロダクトが "bits_equal" マスクとして使用されます。

  • values (list) -- type_queryを "range" とした場合は、値を最小値と最大値の2つの値のリストとして設定してください。 "values_equal" の場合は、複数の値を設定することができます。 "bits_equal" の場合は、0ビットから始まるビット値として0または1を設定することができます。デフォルトは[0,1]です。

戻り値:

更新された raster プロパティを格納する ImageProcess クラスオブジェクト

# 使用例:data_out0をdata_out1でマスクする。
data_masked = data_ip0.mask_images(data_out1,"range",[0,100])
show_images(cmap: str | None = None, clim: list = [])

show_images メソッドは raster プロパティの画像を表示します。複数の日付の画像が設定されている場合、メソッドは全ての画像を表示します。

パラメータ:
  • cmap (str) -- カラーマップ名のクエリ。colormap名の問い合わせは、"ndvi", "turbo", "spectral" を選択できる。デフォルトは "turbo"。

  • clim (list) -- 色範囲のクエリ(オプション)

戻り値:

ImageProcess クラスのオブジェクト

# 使用例:data_ip0の画像を表示する
data_ip0.show_images()
show_images_qgis(cmap: str | None = None, clim: list = [])

show_images_qgis メソッドはqgisの画像を表示します。

パラメータ:
  • cmap (str) -- カラーマップ名のクエリ。colormap名の問い合わせは、"ndvi", "turbo", "spectral" を選択できる。デフォルトは "turbo"。

  • clim (list) -- 色範囲のクエリ(オプション)

戻り値:

ImageProcess クラスのオブジェクト

注釈

この方法はQGIS環境でのみ有効です。

# 使用例:data_ip0の画像をqgisに表示する。
data_ip0.show_images_qgis()
show_spatial_stats(ylim: list = [])

show_spatial_stats メソッドは、 calc_spatial_stats メソッドの計算結果のグラフを表示します。

パラメータ:

ylim (list) -- 色範囲のクエリ(オプション)

戻り値:

ImageProcess クラスのオブジェクト

注釈

calc_spatial_stats メソッドは、このメソッドの前に使ってください。

# 使用例:メソッドの計算結果のグラフ表示  calc_spatial_stats
data_s_stats.show_spatial_stats()