コンテンツにスキップ

最初の図を描く

KAGUYAのPACE ESA1が2008年2月29日に測った電子のエネルギーフラックスを、取得から作図まで通して扱います。 ネットワークに接続できる環境と、インストールで[kaguya,viz]以上を入れたPython環境を前提にします。

1. 保存先を決める

SOPRANは、取得した元ファイルや作った中間データをStoreと呼ぶ1つのディレクトリにまとめます。 まずセッションの既定のStoreを決めます。

import sopran as spn

spn.config.use(store="/path/to/sopran_data")

この設定はPythonプロセスの中だけで有効です。毎回書かずに済ませる方法は設定にあります。

2. 期間を作る

time = spn.day("2008-02-29")

spn.dayは2008-02-29 00:00から翌日00:00までの期間を返します。終わりの時刻は含みません(半開区間)。 spn.period(start, stop)、spn.month("2008-02")、spn.year("2008")でも期間を作れます。

3. 図にする

result = spn.kaguya.esa1.energy_flux.plot(time)
result.fig

このとき、SOPRANは次の処理を順に行います。

  1. その日のPACE ESA1の元ファイルがStoreに無ければ、JAXA DARTSの公開アーカイブから取得してraw/に保存する。
  2. ファイルをデコードし、カウントをtime × energy × lookの配列にする。
  3. PACEの校正テーブル(INFO)を取得し、カウントをエネルギーフラックスへ換算する。
  4. 時刻を横軸、エネルギーを縦軸、フラックスを色にしたスペクトログラムを描く。

2008年2月29日のKAGUYA PACE ESA1の電子エネルギーフラックス。約2時間の周回ごとに昼側と夜側で強度が変わり、観測の無い時間は白く抜けている

縦軸とカラーバーは対数表示が既定で、カラーバーにはenergy_flux [eV/(cm^2 s sr eV)]のように 変数名と単位が出ます。表示範囲はylim=(10, 10000)、vmin=1e6、vmax=1e9のように指定できます。 2回目からは元ファイルと校正テーブルをStoreから読むので、ネットワークには接続しません。

4. 配列として読む

解析ではload()で配列を受け取ります。

flux = spn.kaguya.esa1.energy_flux.load(time)
flux.info()          # 次元・単位・出典ファイルの要約
flux.to_xarray()     # xarray.DataArray
flux.files           # 読み込んだ元ファイル

返り値のSopranArrayは、xarrayの配列に単位・座標系・出典・処理履歴を付けたものです。 flux.plot()で同じ図を描けるほか、selやmeanで切り出した結果も同じ型のまま扱えます。

5. 図を保存する

flux.quicklook("esa1_energy_flux_20080229", root="reports")

reports/にPNGと、期間・パネルの種類・軸とカラーバーのラベル(単位を含む)を記録したJSONが保存されます。 formats=("png", "html")を渡すと、画像と記録を1枚にまとめたHTMLも作ります。

次に読む