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
ベースクラス:
objectFeatureCollectionクラスは、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)
ベースクラス:
objectImageCollectionクラスは、JAXAのEarth databaseから選択されたコレクションのカタログjsonデータを取得します。このクラスのメソッドを使用すると、ユーザーは日付の制限、解像度、範囲、バンドなどの問い合わせに基づいて、コレクションのラスター画像を取得することができます。- パラメータ:
collection (str) -- 選択されたコレクションの名前。入力がない場合は "JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global" が使用されます。
ssl_verify (bool) --
ユーザーは、有効なSSL認証プロセスを
TrueまたはFalseに設定することができます。デフォルトはTrueです。注釈
値を
Falseに設定すると、セキュリティリスクになる可能性があります。
- 戻り値:
stac_date、stac_ppu、stac_bounds、stac_band、およびラスターのプロパティを持つImageCollectionクラスのオブジェクトこのオブジェクトのすべてのプロパティは、デフォルトで None に設定されています。
- stac_date
デフォルト値は None。updatedプロパティは、
filter_dateメソッドの後に設定されます。updatedプロパティには、query、url、id、jsonの4つのプロパティがあります。このオブジェクトは、filter_resolutionメソッドへの入力として使用されます。- 型:
Stacクラスのオブジェクト
- stac_ppu
デフォルト値は Noneとなります。updatedプロパティは、
filter_resolutionメソッドの後に設定されます。updatedプロパティには、query、url、jsonの3つのプロパティがあります。このオブジェクトは、filter_boundsメソッドへの入力として使用されます。- 型:
Stacクラスのオブジェクト
- stac_bounds
デフォルト値は Noneになります。updatedプロパティは、
filter_boundsメソッドの後に設定されます。updatedプロパティには、query、url、jsonの3つのプロパティがあります。このオブジェクトは、selectメソッドへの入力として使用されます。- 型:
Stacクラスのオブジェクト
- stac_band
デフォルト値は Noneになります。updatedプロパティは、
selectメソッドの後に設定されます。updatedプロパティには、queryとurlの2つのプロパティがあります。このオブジェクトは、get_imagesメソッドへの入力として使用されます。- 型:
Stacクラスのオブジェクト
- raster
デフォルト値は Noneになります。updatedプロパティは、
get_images``メソッドの後に設定されます。更新された ``Rasterクラスオブジェクトのプロパティには、img、latlim、 ``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)
ベースクラス:
objectImageCollectionListクラスは、ユーザーの入力キーワードに基づいて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)
ベースクラス:
objectImageProcessクラスは、入力されたImageCollecionクラスのオブジェクトを用いて様々な処理を実行します。ImageProcessクラスのメソッドを利用することで、マスキング画像や差分画像、時間的・空間的統計量の算出など、画像の処理や取得を行うことができます。処理だけでなく、画像や時系列グラフを表示することも可能です。- パラメータ:
data (object) --
更新された
rasterプロパティを含むImageCollectionクラスオブジェクト注釈
ImageCollectionクラスのオブジェクトは、正しいrasterプロパティを持っている必要があります。- 戻り値:
更新されたプロパティを持つ
ImageProcessクラスオブジェクト
- raster
デフォルト値は、入力された
ImageCollectionクラスオブジェクトのrasterプロパティと同じです。mask_images、diff_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()