とらりもんHOME  Index  Search  Changes  Login

JAXA Earth API

JAXA Earth API website

$ 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

  1. QGISを立ち上げる。
  2. CTRL+ALT+PするとQGIS窓の下部にPythonコンソールのペインが出てくる。
  3. その中の(上部の)文書っぽいアイコンを押すとPythonスクリプトのペインが出てくる。
  4. そのペインに上記文書の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])
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

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()

で表示してみればよい。

Last modified:2023/06/14 14:45:42
Keyword(s):
References: