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