最初の図を描く¶
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は次の処理を順に行います。
- その日のPACE ESA1の元ファイルがStoreに無ければ、JAXA DARTSの公開アーカイブから取得して
raw/に保存する。 - ファイルをデコードし、カウントを
time × energy × lookの配列にする。 - PACEの校正テーブル(INFO)を取得し、カウントをエネルギーフラックスへ換算する。
- 時刻を横軸、エネルギーを縦軸、フラックスを色にしたスペクトログラムを描く。

縦軸とカラーバーは対数表示が既定で、カラーバーには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も作ります。
次に読む¶
- 他にどんな変数があり、読む前に何を確認できるかはデータの構造をたどるへ。
- 期間や領域を固定して繰り返し解析するなら解析条件を残すへ。
- PACEの校正方法と注意点はPACEにあります。