image spacecraft lena data visualization routines: go-lena


last updated on November 2th, 2004

1. startup the routines

1.1 compile routines

まず、goを起動します。そののちに、image_routines.proというcomponentを以下のようにしてcompileしてあげてください。必要なIDL routinesが順にcompileされます。

Go> .run image_routines

1.2 startup routines

compile の後に、以下の command を実行すれば go-lena 用の配列が用意されて、データの読み込み、プロットなどができるようになります。

start_lena

まずは、ここまでやってみてください。


2. load the data

2.1 load the data

観測データの読み込みには、以下のcommandを用います。

file_lena, 'date'


例えば、2000年2月1日のデータ読み込むには、以下のようにします。日付の前後のクオーテーションを忘れないように気をつけてください。

Go > file_lena, '20010201'

これで、lena の観測データが計算機のメモリの上に乗りました。go-lena では、データをメモリの上に置いたまま、様々な作業を行っていきます。プロットの形式を変えたい時にも、改めてデータを読み込むことはしません。

このコマンドで読み込まれるデータは全て水素 (Hydrogen) のデータです。LENA イメージャは水素だけでなく酸素 (Oxygen)も観測しています。Oxygen のデータを読み込む場合は以下のように oxy というキーワードを付けてやります。

file_lena, 'date', /oxy

例えば以下のように実行します。

Go > file_lena, '20010328', /oxy

読み出しが完了すれば、読み込んだデータに関する情報が自動的に表示されると思います。詳細については、2.2 を参照してください。

2.2 data level

lena データには幾つかのレベルがあります。これは生データからのノイズ除去の程度によって分けられています。現在のところ、以下の3つのレベルのデータが存在します。

Level-0 生データ (バックグラウンドの除去のみを行っている)
Level-1 一次処理済みデータ
Level-2 二次処理済みデータ

file_lena の引数に日付を指定しただけで実行すると Level-0 のデータが自動的に選択されて読み込まれます。Level-1, Level-2 のデータを読み出す場合は、以下のように level というキーワードを付けてやる必要があります。

file_lena, 'date', level=level

例えば、2001年4月11日の Level-1 のデータを読む場合は以下のようにします。

Go > file_lena, '20010411', level=1

Level-2 のデータを読む場合も同様にして、

Go > file_lena, '20010411', level=2

とします。Oxygen のデータの場合もこの level キーワードは有効です。Hydrogen の場合と同様に以下のように使うことが可能です。

Go > file_lena, '20010328', /oxy, level=2

期間によっては、3種類すべてのデータが揃っていない場合があります。データが存在しない場合は、以下のようなメッセージがでますので、読み込むデータの level を変更して、データの読み出しを行ってください。

Go > file_lena, '20010328', level=0
No available lena Level-0 data on the data directory

また、どのレベルのデータがどれだけあるかを確かめるコマンドもあります。

check_lena_data, 'date'

このコマンドもやはり引数に日付を指定して、以下のようにして実行します。

Go > check_lena_data, '20010411'

Checking LENA data files on 20010411

Hydrogen

Level-0 data: Total 704 files
Level-1 data: Total 264 files
Level-2 data: Total 303 files

Oxygen

Level-0 data: Total 000 files
Level-1 data: Total 000 files
Level-2 data: Total 000 files

Total 000 files と表示された場合は、その種類のデータが存在しないことを意味します。


2.3 print information

読み込んだデータに関する情報を知りたい時は以下の command を用います。データの読み込みを行ったときには、読み込み完了に続いて自動的にこのコマンドを実行しています。

lena_info, /scan_info

以下のように command を実行すると、

Go > lena_info

以下のようなフォーマットでデータ、及びプロットの形式に関する情報が表示されます。

--------------------------------------------------------
IMAGE Spacecraft / Low Energy Neutral Atom Imager (LENA)
--------------------------------------------------------
Date 20010201 (032) データの日付
Data Type Level-2 data データの処理レベル
Atom Type Hydrogen 粒子種
Start Time 1915 42s データの開始時刻
END Time 2218 59s データの終了時刻
Number of Scans > 084 scans 何枚ぶん scan があるか
Current Scan 000th scan 現在の scan
Max Emission 3.05 データを通じての最大 emission
Time limits 1915 UT to 2218 UT 時系列プロットの開始時刻、終了時刻
Polar Angle Bin 07 現在の polar angle bin
Spin Angle Limit (min) -135 deg プロットする spin angle の最小値
Spin Angle Limit (max) 225 deg プロットする spin angle の最大値
Normalize with Maximum of Each Scan カラーの規格化の方法
--------------------------------------------------------

各 scan の時刻情報も知りたい場合は、scan_info キーワードを指定します。

Go > lena_info, /scan_info

以下のように scan 番号ごとに時刻情報が得られます。

Scn 000 (1915 42s) Scn 028 (2018 35s) Scn 056 (2115 50s)

プロットしていて、データやプロットに関する指定などがわからなくなったら、以上の command を用いて、情報を表示してやると良いでしょう。


3. plot the data in 2D format

3.1 single panel plotting in POLYFILL form

データの読み込みが終わったら、何にも考えずに以下の command を実行してみてください。

Go > plot_lena_summary

一枚の panel に lena data が2次元の形式で表示されたかと思います。これが、1 scan ぶんのデータです。
横軸が polar angle で、縦軸が spin angle です。縦軸の範囲を変えたい場合は、

set_azm, min_value, max_value

を用います。デフォルトでは、-135°から -225°までになっていますが、以下の例のように自在に変更できます。

Go > set_azm, -20, 140

縦軸の範囲を変更した後に、もう一度、

Go > plot_lena_summary

とやってやれば、新しい縦軸の範囲でプロットが出てきます。また、縦軸の範囲をデフォルトに戻したいときは、以下のように default キーワードを指定してやってください。

Go > set_azm, /default

プロットする scan を変えたい場合には、以下の command を用います。

go_lena, scan_number

飛びたい scan の番号を指定してください。例えば、80 番目の scan に行きたい場合は、以下のようにします。scan の通し番号は 0 から始まっていることに注意してください。

Go > go_lena, 79

また、飛びたい scan を番号で指定するのではなく、時間で指定することも可能です。

go_time_lena, hhmm

飛びたい時間を hhmm の形式で指定します。例えば、15時55分にジャンプしたい場合は、

Go > go_time_lena, 1555

としてやります。

また、デフォルトでは、カラーの規格化は各 scan ごとの最大値で行うようにしていますが、読み込んだデータ全体の最大値で規格化するように変更できます。

Go > day_scale

再び、各 scan ごとの最大値で規格化する設定に戻すには、以下のようにします。

Go > orb_scale

規格化に用いる最大値の値を自分で指定するには、以下の command を用います。

set_lena_scale, usr=value

例えば、最大値20で規格化したいときは、

Go > set_lena_scale, usr=20

のようにします。

ここで述べたスケールは全てリニアスケールです。これをログスケール(対数スケール)にするには、以下を実行します。

set_log_scale, 'on' | 'off'

ログスケールにしたい場合は、

Go > set_log_scale, 'on'

ログスケールをリニアスケールに戻したい場合は、

Go > set_log_scale, 'off'

というように用います。小さいエミッションを可視化したい場合には、ログスケールが有効な場合があります。

3.2 single panel plotting in CONTOUR form

今までは、2次元データを塗りつぶし(POLYFILL)でプロットしてきましたが、等高線の形式(CONTOUR)で表現することもできます。cont キーワードを指定してやってください。

Go > plot_lena_summary, /cont


3.3 multiple panels plotting

複数の panel を並べて表示することも可能です。

plot_lena_summary, xmaps, ymaps

xmaps に横方向の panel の数、ymaps に縦方向の panel の数を指定してやります。以下のように実行すると、

Go > plot_lena_summary, 10, 8

8行10列の panel 群(計80枚)が出てくるはずです。この command を実行しているときは、現在の scan はインクリメントしていっていることに注意してください。


4. plot the data in time-series format

4.1 single panel plotting

まず、何も考えずに以下を実行します。

Go > plot_lena_rti

すると、polar angle sector 07 のデータが時系列で表示されると思います。

デフォルトでは、プロットする時間の範囲は、読み込んだデータの範囲になっていますが、以下の command で自由に変更できます。

time_lena, start_hhmm, end_hhmm

例えば、8時から10時までにしたい場合には、

Go > time_lena, 0800, 1000

としてやれば良いわけです。

2次元プロットのところで説明した set_azm というプロットする spin angle の範囲を指定する command を使って、縦軸の範囲を指定することも可能です。

デフォルトでは、polar angle sector 07 のデータを時系列で表示されます。この polar angle sector は、1-12 までで、spin angle -45°から7.5°刻みで+45°までに対応しています。どの sector のデータを表示するかは、以下の command で変更します。

set_pol, sector_no

例えば、spin angle sector 01 (-45.0°〜 -37.5°)にしたい場合は、

Go > set_pol, 1

としてやります。

4.2 multiple panels plotting

複数の polar angle sector を同時にプロットすることもできます。

plot_lena_rti, xmaps, ymaps, pols=[sectors]

xmaps, ymaps は横、縦方向の panel の数です。また、pols には、プロットしたい polar angle sector の番号を書いていきます。例えば、spin angle sector 01, 02, 03, 04 を縦に4つのpanel で表示したい場合は、

Go > plot_lena_rti, 1, 4, pols=[0,1,2,3]

としてやります。縦方向に4枚の panel が並ぶはずです。

また、12個全ての polar angle sector をプロットするには以下のように all キーワードを指定します。

Go > plot_lena_rti, /all

6行2列で全ての polar angle のデータが表示されるはずです。


5. plot the data in single-line time-series

5.1 single panel plotting


まず、何も考えずに以下を実行してみます。

Go > plot_lena_line

そうするとラインプロットが出てくるはずです。これは、現在指定している polar angle sector における emission をやはり現在指定している spin angle の範囲について平均して表示しているものです。

プロットする polar angle sector を変更したい場合は、

Go > set_pol, 8

とかやってやればよく、平均を行う spin angle の範囲を変更するには、

Go > set_azm, -20, 120

とやります。RTI の形式の時系列プロットの時と同じで、プロットしたい時間帯を変更するのは、

Go > time_lena, 2000, 2100

などです。

5.2 multiple panels plotting

複数の polar angle sector を同時にプロットすることもできます。

plot_lena_line, xmaps, ymaps, pols=[sectors]

xmaps, ymaps は横、縦方向の panel の数です。また、pols には、プロットしたい polar angle sector の番号を書いていきます。例えば、polar angle sector 01, 02, 03, 04 を縦に4つのpanel で表示したい場合は、

Go > plot_lena_line, 1, 4, pols=[0,1,2,3]

としてやります。縦方向に4枚の panel が並ぶはずです。

また、12個全ての polar angle sector をプロットするには以下のように all キーワードを指定します。

Go > plot_lena_line, /all

6行2列で全ての polar angle のデータが表示されるはずです。


6. plot lena data with solar wind & geomagnetic index

これまでは、lena のデータのみをプロットしてきましたが、ここでは、太陽風や地磁気指数を lena のデータと一緒に表示する方法を解説します。使うコマンドは簡単で以下です。

lena_ql, 'date', level=level, /land, /port, duration=duration, /oxy, /log_scale, usr_scale=usr_scale

特にキーワードを指定せずにまず実行してみます。

Go > lena_ql, '20010411'

IDL の出力画面に太陽風磁場、密度、速度、動圧、地磁気指数(SYM-H) と lena のデータが表示されると思います。前にも述べた通り、ここでプロットされたデータは、Level-0 です。レベルを変更したい場合は、level キーワードを使います。

Go > lena_ql, '20010411', level=2

また、デフォルトでは Hydrogen がプロットされますが、Oxygen に変更したい場合は、

Go > lena_ql, '20010328', /oxy, level=2

のように oxy というキーワードを付けます。

PostScript への書き出しを行いたい場合は、/port (縦置き)、/land (横置き) のいずれかのキーワードを付けます。

Go > lena_ql, '20010328', /oxy, level=2, /port

横軸の時間幅を変更したい場合は、duration キーワードで指定します。例えば、1200UT から 1400UT までをプロットしたい場合、

Go > lena_ql, '20010411', /oxy, level=2, /port, duration=[1200,1400]

のように開始時間と終了時間を指定します。カラースケールも同様に指定可能で、ログスケールにしたい場合は、

Go > lena_ql, '20010411', /log_scale

また、自分でカラースケールの最大値を指定したい場合は、

Go > lena_ql, '20010411', usr_scale=5

のようにします (この場合は、5で規格化しています)。


以上で、go-lena の簡単な解説を終わります。

                      Just type start_lena, it's easier than falling off a bicycle ...


switch to gwave.ice.uec.ac.jp/~hosokawa/codes/codes.html