solarwind visualization routines: go-sw



last updated on February 24th, 2003


1. startup the routines

まず、goを起動します。その後に、sw_routines.proというIDL routinesをcompileします。

Go> .run sw_routines

compileができたら、以下のcommandを用いて、solarwind routinesをstartさせます。

start_sw

Go> start_sw

必要な配列が用意され、dataの読み込みの準備が完了します。

go-swというmessageが出て、promptが以下のように変わったら起動完了です。

Go-sw>


2. description of the data

2.1 data and their source


softの使い方を説明する前にdataそのものについて少し述べます。

現在のところ、ACE, Wind, IMP-8, Geotailの4つの衛星のdataが利用可能です。


2.2 availability


それぞれの衛星で、欠測の時間帯などはもちろんありますが、以下の時期についてdataを取得しました。
dataが存在しない場合は、衛星が打ち上げられる前か、欠測かということになります。ただし、IMP-8に
ついては、磁気圏を観測している時間帯のdataは公開されていないことがあるのでご注意ください。


2.3 orbit of the satellites

それぞれの衛星の位置(軌道)は、

http://www-spof.gsfc.nasa.gov/cgi-bin/gif_walk

などで確認することができます。


3. load the solar wind data

3.1 load the data


dataの読み込みは非常に簡単で、読み込みたい日付を8桁で指定して以下のcommandを使うだけです。

file_sw, 'date(in 8-digits)', /ace_only, /wind_only, /imp8_only, /gtl_only

例えば、1999年10月10日のdataを読み込みたければ以下のようにします。

Go-sw> file_sw,'19991010'

これで、ACE, Wind, IMP-8, Geotailのdataが(もしdata archiveにdataが存在すれば)、memoryに読み込まれます。おのおのの衛星のおのおののdataいついて、読み込みの際の情報が表示されます。dataが存在しない場合はdataがありませんという情報が表示されます。また、特定の衛星のdataのみを読みたいときは、ace_only などのonly keywordを以下のように用います。

Go-sw> file_sw, '19991010', /ace_only

とにかく、日付を指定するだけでdataの読み込みは簡単に行えます。


3.2 information on the data

読み込んだdataに関する情報を得たければ、以下のcommandを使います。

print_sw_data_info, /ace_only, /wind_only, /imp8_only, /gtl_only

以下のように用います。

Go-sw> print_sw_data_info

-------------------------------- ----------------------------------------------------------------
Data type ACE Magnetic Field (MAG)
Current file 19991010_ace.mag
Parameter list Bt,Bex,Bey,Bez,Bmx,Bmy,Bmz,RMS
Position parameters Pex,Pey,Pez,Pmx,Pmy,Pmz
Data period 23/Jan/1998 - 24/Apr/2001
-------------------------------- ----------------------------------------------------------------
中略 .....
-------------------------------- ----------------------------------------------------------------
Data type Geotail Magnetic Field (MGF)
Current file k0_mgf_19991010_v01.cdf.gz
Parameter list Bt,Bex,Bey,Bez
Position parameters Pex,Pey,Pez
Data period 01/Jan/1997 - 05/Sep/2001
-------------------------------- ----------------------------------------------------------------

利用可能なparameter、dataの期間などがそれぞれのdata typeごとに表示されると思います。
parameter listにはplot可能なparameterがlistupされています。添え字のe, mはそれぞれ、GSE, GSM座標系を示しています。つまり、Vmxというのは、GSM座標系でのVx成分ということになります。また、Data periodのところには、archiveに存在するdataの期間が参考までに表示されています。

それぞれの衛星ごとにinfoを見たければ、/ace_onlyなどのonly keywordを指定してやります。

Go-sw> print_sw_data_info, /ace_only

以上で、dataの読み込みおよび確認が終わりました。


4. plot the data

4.1 plotting single solarwind panel


読み込んだsolarwindのdataのplotを行うcommandは、

plot_sw_panel

です。まず何も考えずに、

Go-sw> plot_sw_panel

と打ってみます。すると、Wind衛星のIMF Bz (GSM座標系)がplot0時-24時UTまでで出力されると思います。plotするdataは、defaultではWind衛星のBz (GSM)となっていますが、これを変更するには以下のようなcommandを使います。

plotする衛星の変更

set_sat, 'ace' or 'wind' or 'imp8' or 'gtl'

plotする衛星をACEに変更したければ以下のようにします。

Go-sw> set_sat,'ace'

plotするparameterの変更

set_param, 'parameter_name'

plot可能なparameterはprint_sw_data_infoで出力されるparameter listの中から選択してください。例えば、GSM座標におけるBy成分を指定したければ、

Go-sw> set_param,'Bmy'

plotする時間幅の変更

time_sw, start_time, end_time

例えば、UTで8時から12時までをplotしようとするならば、

Go-sw> time_sw, 0800, 1200

のように使います。このようなcommandを使って調整を行ったのちに再び

Go-sw> plot_sw_panel

を実行すれば自分のplotしたいdataを出力することができます。

なお、縦軸の範囲をdefaultから変える場合は、

set_limit, min, max

というcommandを用います。縦軸の範囲を-20から20までにしたければ、

Go-sw> set_limit,-20,20

のように使います。

以上で指定した情報を確認するには、

print_sw_prefs_info

というcommandを用います。

Go-sw> print_sw_prefs_info

-------------------------------- ----------------------------------------------------------------
Current satellite Ace
Current date 19991010
Current parameter Bmy
Plot time limits 0800 - 1200 UT
Plot value limits -20 to 20
-------------------------------- ----------------------------------------------------------------


4.2 plotting multiple panels

複数のpanelを一つのoutput deviceに出力することももちろん可能です。

plot_sw_panel,columns,rows,column,row, position=position, time_line=[], /zeroline

columns、rowsはそれぞれ横方向、縦方向の分割数を示しています。column、rowはその何番目にpanelを置くかを表しています。columnおよびrowは0から始まることに注意してください。

例えば、output deviceを縦に4分割して、上からGSM座標のBt,Bx,By,Bzをplotするには、

Go-sw> set_sat,'ace'
Go-sw> set_param,'Bt'
Go-sw> plot_sw_panel,1,4,0,0
Go-sw> set_param,'Bmx'
Go-sw> plot_sw_panel,1,4,0,1
Go-sw> set_param,'Bmy'
Go-sw> plot_sw_panel,1,4,0,2
Go-sw> set_param,'Bmz'
Go-sw> plot_sw_panel,1,4,0,3

とやってやればよいわけです。

また、このように複数のpanelを縦に並べる場合、panelをくっつけて表示し、かつ横方向のaxisは、一番下のpanelだけに書きたくなります。そんなときは、まず、panelをくっつけて表示する命令を以下のcommandによって実行します。

set_format, /sardines or /guppies

sardinesはpanelをくっつける設定、guppiesは離して表示する設定です。今は、panelを縦方向にくっつけようとしているので、

Go-sw> set_format,/sardine

を実行します。その後に、

Go-sw> set_param, 'Bt'
Go-sw> plot_sw_panel,1,4,0,0,/no_x
Go-sw> set_param, 'Bmx'
Go-sw> plot_sw_panel,1,4,0,1,/no_x
Go-sw> set_param, 'Bmy'
Go-sw> plot_sw_panel,1,4,0,2,/no_x
Go-sw> set_param, 'Bmz'
Go-sw> plot_sw_panel,1,4,0,3

というように/no_xというkeywordを付けて横方向のaxisを書かないようにしてやればOKです。

panelの数で自動に割り振りを行うのではなく、device座標系で陽にpanelの位置を指定したい場合は、position keywordを使います。縦横に0-1の値で指定します。

Go-sw> plot_sw_panel, position=[0.2, 0.3, 0.8, 0.7]

また、縦方向にlineを入れたい時は、

Go-sw> plot_sw_panel,1,3,0,0,time_line=[1200]

というようにtime_lineというkeywordを用います。この例では、UT12時のところにlineが引かれます。複数のlineを引きたければ、

Go-sw> plot_sw_panel,1,3,0,0,time_line=[1200,1400]

などとしてやればよいです。

また、0のところに横線を引きたければ、

Go-sw> plot_sw_panel,1,3,0,0,/zeroline

のように、zerolineというkeywordを付けてやります。

plotにtitleを付けたければ、

plot_sw_title, sub_title, main_title=main_title

というcommandを用います。引数なしで実行すれば、現在指定してあるdataについて情報が出力されます。

Go-sw> plot_sw_title

また、自分でtitleを付けたければ、

Go-sw> plot_sw_title, 'Original data',main_title='WIND SATELLITES DATA'

などとしてやります。


5. Example

最後にACE衛星の1999年10月10日のdataを例に取って、summary plotを作ってみます。Goのdocumentでも触れましたが、.goという拡張子のcustom commandを作ってそれを実行します。

summary_ace.goという名前のfileに以下の内容を書く。

;-----------------------------------------------
; dataの読み込み
file_sw,'19991010', /ace_only

; panelの間隔をあけないformatにする
set_format,/sardines

; PostScript fileをportraitで開く
ps_start,'summary_ace.ps'
ps_portrait

; plotする時間幅の設定
time_sw,0000,2400

; plotする衛星の設定
set_sat,'ace'

; parameterを指定してplotしてゆく
set_param,'Bt'
plot_sw_panel,1,10,0,0,/no_x
set_param,'Bmx'
set_limit,-20,20
plot_sw_panel,1,10,0,1,/no_x,/zeroline
set_param,'Bmy'
set_limit,-20,20
plot_sw_panel,1,10,0,2,/no_x,/zeroline
set_param,'Bmz'
set_limit,-20,20
plot_sw_panel,1,10,0,3,/no_x,/zeroline
set_param,'Vmx'
set_limit,-200,-700
plot_sw_panel,1,10,0,4,/no_x
set_param,'Vmy'
plot_sw_panel,1,10,0,5,/no_x
set_param,'Vmz'
plot_sw_panel,1,10,0,6,/no_x
set_param,'Vth'
plot_sw_panel,1,10,0,7,/no_x
set_param,'Np'
set_limit,0,40
plot_sw_panel,1,10,0,8,/no_x
set_param,'Pdy'
set_limit,0,15
plot_sw_panel,1,10,0,9

plot_sw_title

ps_close
ps_preview
;-----------------------------------------------

これを実行します。

Go-sw> @summary_ace.go

処理が終わるとghostviewがたって、できたplotが見えると思います。しかし、おそらくできあがってきたplotは文字が大きいと思います。そんな場合は、

Go-sw> set_char_size, 0.5

などとして、文字の大きさを小さくしてやってください(defaultは1.0)。


以上で簡単なgo-swの使用法の解説を終わります。

                           Just type start_sw, you might get wonderful information on the solar wind conditions ...


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