とらりもんHOME  Index  Search  Changes  Login

とらりもん - JAXA Earth API Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[[JAXA JAXA Earth API website|https://data.earth.jaxa.jp/api/python/index.html]]website
* https://data.earth.jaxa.jp/ja/
* https://data.earth.jaxa.jp/api/python/


$ wget https://data.earth.jaxa.jp/api/python/_downloads/c0936f213e877f553523c50be08b89ca/jaxa-earth-0.1.2.zip
$ pip3 install jaxa-earth-0.1.2.zip

!QGISで使う
入門ドキュメント
https://data.earth.jaxa.jp/api/python/_downloads/fc68fc08b82c9083016fca62808aedb2/How_to_Use_the_API_for_Python_with_QGIS_jp.pdf

# QGISを立ち上げる。
# CTRL+ALT+PするとQGIS窓の下部にPythonコンソールのペインが出てくる。
# その中の(上部の)文書っぽいアイコンを押すとPythonスクリプトのペインが出てくる。
# そのペインに上記文書のP12あたりのスクリプトを打ち込むと, 地形データがQGISで表示される。

オーストラリアのLST

import sys
from jaxa.earth import je
kw   = ["GCOM","LST","half-monthly"]
dlim = ["2019-02-01T00:00:00","2019-02-01T00:00:00"]
ppu  = 480
bbox = [112, -45, 154, -10]

collections,bands = je.ImageCollectionList(ssl_verify=True)\
                      .filter_name(keywords=kw)
data = je.ImageCollection(collection=collections[0],ssl_verify=True)\
         .filter_date(dlim=dlim)\
         .filter_resolution(ppu=ppu)\
         .filter_bounds(bbox=bbox)\
         .select(band=bands[0][0])\
         .get_images()
img = je.ImageProcess(data)\
        .show_images_qgis(clim=[280,330])

{{attach_view(JAXA-Earth-API_QGIS.jpg])}}

筑波山周辺の地形

import sys
from jaxa.earth import je
data = je.ImageCollection(ssl_verify=True)\
          .filter_date()\
          .filter_resolution(4800)\
          .filter_bounds( [139.9, 35.9, 140.5, 36.4])\
          .select()\
          .get_images()
img = je.ImageProcess(data)\
          .show_images_qgis()

最後の行を
          .show_images()
にすると, QGISでなくても走るし, 図は独立で出てくる。

!現状整備されているcollection
* 2023/05/30現在
* je.ImageCollection(collection="*****", ssl_verify=True)の*****に入れる文字列
* 詳細は https://data.earth.jaxa.jp/en/datasets/

In []: je.ImageCollectionList(ssl_verify=True).stac_collections.id                              
- Geting image collection information : completed
Out[]:
['Copernicus.C3S_PROBA-V_LCCS_global_yearly',
'JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global',
'JAXA.EORC_ALOS-2.PALSAR-2_FNF.v2.1.0_global_yearly',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-NDVI.daytime.v3_japan_8-day',
'JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_half-monthly-normal',
'JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_monthly-normal',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.daytime.v3_global_half-monthly-normal',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.daytime.v3_global_monthly-normal',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.nighttime.v3_global_half-monthly-normal',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.nighttime.v3_global_monthly-normal',
'JAXA.JASMES_Aqua.MODIS_swr.v811_global_half-monthly-normal',
'JAXA.JASMES_Aqua.MODIS_swr.v811_global_monthly-normal',
'JAXA.JASMES_Terra.MODIS_swr.v811_global_half-monthly-normal',
'JAXA.JASMES_Terra.MODIS_swr.v811_global_monthly-normal',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_ndvi.v811_global_half-monthly-normal',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_ndvi.v811_global_monthly-normal',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_taua.v811_global_half-monthly-normal',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_taua.v811_global_monthly-normal',
'NASA.EOSDIS_Aqua.MODIS_MYD11C1-LST.daytime.v061_global_half-monthly-normal',
'NASA.EOSDIS_Aqua.MODIS_MYD11C1-LST.daytime.v061_global_monthly-normal',
'NASA.EOSDIS_Aqua.MODIS_MYD11C1-LST.nighttime.v061_global_half-monthly-normal',
'NASA.EOSDIS_Aqua.MODIS_MYD11C1-LST.nighttime.v061_global_monthly-normal',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.daytime.v061_global_half-monthly-normal',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.daytime.v061_global_monthly-normal',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.nighttime.v061_global_half-monthly-normal',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.nighttime.v061_global_monthly-normal',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-RGB.daytime.v3_global_monthly',
'JAXA.G-Portal_Aqua.AMSR-E_standard.L3-SMC.daytime.v3_global_daily',
'JAXA.G-Portal_Aqua.AMSR-E_standard.L3-SMC.daytime.v3_global_half-monthly',
'JAXA.G-Portal_Aqua.AMSR-E_standard.L3-SMC.daytime.v3_global_monthly',
'JAXA.G-Portal_Aqua.AMSR-E_standard.L3-SMC.nighttime.v3_global_daily',
'JAXA.G-Portal_Aqua.AMSR-E_standard.L3-SMC.nighttime.v3_global_half-monthly',
'JAXA.G-Portal_Aqua.AMSR-E_standard.L3-SMC.nighttime.v3_global_monthly',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.daytime.v3_global_daily',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.daytime.v3_global_half-monthly',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.daytime.v3_global_monthly',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.nighttime.v3_global_daily',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.nighttime.v3_global_half-monthly',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SMC.nighttime.v3_global_monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_daily',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_half-monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.nighttime.v3_global_daily',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.nighttime.v3_global_half-monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-LST.nighttime.v3_global_monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-NDVI.daytime.v3_global_daily',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-NDVI.daytime.v3_global_half-monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-NDVI.daytime.v3_global_monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-AROT.daytime.v3_global_daily',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-AROT.daytime.v3_global_half-monthly',
'JAXA.G-Portal_GCOM-C.SGLI_standard.L3-AROT.daytime.v3_global_monthly',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.daytime.v061_global_daily',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.daytime.v061_global_half-monthly',
'NASA.EOSDIS_Terra.MODIS_MOD11C3-LST.daytime.v061_global_monthly',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.nighttime.v061_global_daily',
'NASA.EOSDIS_Terra.MODIS_MOD11C1-LST.nighttime.v061_global_half-monthly',
'NASA.EOSDIS_Terra.MODIS_MOD11C3-LST.nighttime.v061_global_monthly',
'JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_daily',
'JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_half-monthly',
'JAXA.EORC_GSMaP_standard.Gauge.00Z-23Z.v6_monthly',
'JAXA.JASMES_Aqua.MODIS_swr.v811_global_daily',
'JAXA.JASMES_Aqua.MODIS_swr.v811_global_half-monthly',
'JAXA.JASMES_Aqua.MODIS_swr.v811_global_monthly',
'JAXA.JASMES_Terra.MODIS_swr.v811_global_daily',
'JAXA.JASMES_Terra.MODIS_swr.v811_global_half-monthly',
'JAXA.JASMES_Terra.MODIS_swr.v811_global_monthly',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_ndvi.v811_global_half-monthly',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_ndvi.v811_global_monthly',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_taua.v811_global_daily',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_taua.v811_global_half-monthly',
'JAXA.JASMES_Terra.MODIS-Aqua.MODIS_taua.v811_global_monthly',
'JAXA.JASMES_GCOM-W.AMSR2_ic0.v201_north_daily',
'JAXA.JASMES_GCOM-C.SGLI_standard.L3-LST.nighttime.v3_global_8-day',
'JAXA.JASMES_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_8-day',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-LST.nighttime.v3_japan_8-day',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-LST.daytime.v3_japan_8-day',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SST.daytime.v4_global_daily',
'JAXA.G-Portal_GCOM-W.AMSR2_standard.L3-SST.nighttime.v4_global_daily',
'JAXA.EORC_GSMaP_SPI.climate.gnrt6_monthly',
'JAXA.JASMES_GCOM-C.SGLI_standard.L3-LST.nighttime.v3_global_8-day-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_8-day-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L3-LST.nighttime.v3_global_monthly-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L3-LST.daytime.v3_global_monthly-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-LST.nighttime.v3_japan_8-day-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-LST.daytime.v3_japan_8-day-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-LST.nighttime.v3_japan_monthly-normal',
'JAXA.JASMES_GCOM-C.SGLI_standard.L2-LST.daytime.v3_japan_monthly-normal']

!ビギナーへの助言

実際に衛星データをPythonでこねこねする練習には, JAXA APIは良いと思います!

サンプルプログラムで
data = je.ImageCollection(collection=collections[0],ssl_verify=True)
みたいな, なんか呪文? が出てきてこりゃ何だ? って思ったら,
type(data)
って打つ。するとdataというのがどういうクラスのオブジェクトかがわかる。それがよくあるクラスなら(たとえばnumpy.ndarrayとかlistとかtupleなら), そのクラスのよくある使い方をすればよい(Python入門書にがっつり載ってる)。聞いたこと無いクラスなら,
help(data)
って打つ。するとそのクラスを説明したマニュアルが出てくる。目的とか構造とかいろいろわかる。でも長いから読むのがダルくなってきたら,
dir(data)
と打つ。するとそのオブジェクトのメソッドやアトリビュート(入れ子になっている中身)がダダっと表示される。その中のなんかそれっぽいなーというやつを選んでドットでくっつけて調べてみる。たとえば 'raster'というのがあるから,
type(data.raster)
ってやってみる。(以下くりかえし)

衛星データは結局はタテヨコに数が格子状にならんだもの(行列)だから, それを見つけてしまえば, import matplotlib.pyplot as pltを打ってから
plt.imshow(なんちゃら)
plt.show()
で表示してみればよい。