GO


大型短波レーダーのネットワーク観測である SuperDARN(Super Dual Auroral Radar Network)の観測データを可視化するソフトウェアの使い方の解説です. 読者として想定しているのは, 福田・田口研究室に新しく配属されて, SuperDARN のデータ解析に取り組むことになった卒研生もしくは M1 です. SuperDARN そのものについて知りたい場合は このドキュメント を参照すると良いでしょう.

データ解析ソフトの名前は Go といいます. IDL(Interactive Data Language)という言語を用いて書かれています. オリジナルヴァージョンは 英国 Leicester 大学の Steve Milan 博士 によって開発されました. その後, SuperDARN 各加盟国の研究機関のデータ解析環境に移植され, それぞれが機能を追加する形で発展してきています. Steve による 英語での解説 もありますので, 英語で勉強してみたいという人はそちらを参照してみてください.


1. 可視化を始める前に

Go は Unix 上でのみ動きます. 使い始める前に, 動作環境に関するごく簡単な準備が必要です.

1.1. 福田・田口研究室データ解析用計算機(darndeb)にログイン

Go が使えるのは現在のところ福田・田口研究室のデータ解析用計算機(いわゆる darndeb 系列)のみです. 端末の計算機(Ubuntu Linux)で動かすことはできません. darndeb01, darndeb02, darndeb03, darndeb04 のいずれかを用いるのが計算速度などから考えて適当と思われます. Go を起動する前に, いずれかの計算機に遠隔ログインしてください.

Go は観測データを可視化する(要はプロットを作る)ソフトウェアなので, 画像を出力する X Window 環境も手元の端末計算機に持ってこなければなりません. 例えば, darndeb01 に ssh でログインして, X window を手元の計算機に持ってくるためには, 以下のように -X というオプションをつけて ssh コマンドを実行する必要があります. また, 通信を圧縮し, 描画速度を改善するために -C というオプションもつけたほうが良いでしょう.

% ssh -XC darndeb01

1.2. Go を起動する

Go の起動はいずれかの darndeb に ssh ログインした後, コマンドプロンプトで go と打つだけです. ただし, ホームディレクトリよりは作業ディレクトリである work に移動した後で Go を起動したほうが何かと便利かもしれません.

% cd work
% go

Go を起動すると, IDL で書かれた可視化コマンド群が順次コンパイルされ, 実行可能な状態になります. ヒエログリフによる Go というタイトルが表示されて,

Go >

というコマンドプロンプトが現れたら起動は完了です.

1.3. プロット画面をつくる

clear_page というコマンドで出力するウィンドウを作ることができます.

clear_page

Go > clear_page

このコマンドは, ウィンドウをリフレッシュしたいときはいつでも使えます. 黒板消しのようなものです. clear_page といちいち打つのが面倒なので, このコマンドは c でも代用できるように設定されています.

Go > c

ウィンドウの大きさを変えたい場合は,

set_window_size,window_size

というコマンドを使います. 引数である window_size に好みの大きさをディスプレイのピクセルの単位で指定し, 再度 clear_page を実行するとウィンドウの大きさが変わります.

Go > set_window_size,500
Go > clear_page

また, いくつものウィンドウを作りたい場合は set_window というコマンドを使います.

set_window,window_id

デフォルトの出力ウィンドウの番号は 1 ですが, set_window の引数である window_id に 1 より大きい数字を入れて行くとどんどん新しいウィンドウができ, そのウィンドウがアクティブ(プロットの出力先になる)になります.

Go > set_window,2
Go > set_window,3
Go > set_window,4

もとのウィンドウ(例えばデフォルトの 1 番)をアクティブにしたい場合は,

Go > set_window,1

とします. 邪魔なウィンドウを消したい場合は, 以下の dw というコマンド(delete window の意味)を用います.

dw

Go > dw

また, clear_page や set_window でウィンドウを作成した場合, デフォルトでは, portrait(縦置き)のウィンドウが出てくると思いますが, これを landscape(横置き)に変更したい場合があります. そんな場合は, 以下の set_format というコマンドを用います.

set_format,/landscape or /portrait

landscape に変更したい場合は,

Go > set_format,/landscape

とした後で, clear_page をすれば良いことになります. clear_page をしないと変更が反映されないので注意してください. portrait に再び戻したいときは,

Go > set_format,/portrait

としてから clear_page を行います.

Output device(出力先)を印刷が可能なポストスクリプト(Postscript: PS)ファイルに変更したい場合は,「8. ポストスクリプトファイルへの出力」のところを参照してください.

2. レーダーのデータについて

観測データの読み込みについて説明する前に SuperDARN のデータについて簡単に説明します.

2.1. データファイルの種類

SuperDARN のデータファイルの種類は大きく分けて以下の 2 つがあります.

  1. rawacf file: 受信信号の自己相関関数(ACF).
    受信電波のドップラースペクトルが得られる. 拡張子は .rawacf

  2. fitacf file: ACF をフィッティング(FITACF)したデータ.
    FITACF によって導出された power, Doppler velocity, spectral width が入っている. 拡張子は .fitacf
通常の解析には fitacf file があれば充分です. rawacf file はドップラースペクトルを見たいときに用いますが, そのような場合はごく稀です. このドキュメントでは, fitacf ファイルに入っているデータの可視化についてのみ説明します.

以下の directory に 1995 年 4 月から新着分までの fitacf file が格納されています

/radar07/data/SuperDARN/Fit_Acf

rawacf file については, 以下の directory に格納されています.

/radar07/data/SuperDARN/Raw_Acf

2.2. データファイル名について

SuperDARN のデータは基本的に 2 時間ごとに区切られたファイルになっています. また圧縮された状態(bzip2 による圧縮, 拡張子は .bz2)で保存されています.

ex) 20000710.1000.00.kap.fitacf.bz2

このファイルは, 2000 年 7 月 10 日 10 時 10 分 00 秒 UT から 2 時間分のデータが格納された fitacf file です.

拡張子 .fitacf の手前にある "kap" はどのレーダーのデータかを示しているレーダー ID です. 実際のレーダー名との対応は以下のようになっています.

北半球
Goose Bay	gbr	グーズベイ
Kapuskasing	kap	カプスケイシング
Saskatoon	sas	サスカツーン
Prince George	pgr	プリンスジョージ
Kodiak		kod	コディアック
Stokkseyri	sto	ストックセイリ
Pkkvibaer	pyk	シィックバイル
Hankasalmi	han	ハンカサルミ
King Salmon	ksr	キングサーモン
Wallops		wal	ワロプス
Hokkaido	hok	北海道
Blackstone	bks	ブラックストーン
Rankin Inlet	rkn	ランキンインレット
Inuvik		inv	イヌヴィク

南半球
Halley		hal	ハレー
Sanae		san	サナエ
Syowa East	sye	昭和基地東
Syowa South	sys	昭和基地南
Keruguelen	ker	ケルグエレン
Tiger		tig	タイガー
Unwin		unw	アンウィン

これらのレーダーの一覧を表示するには以下のコマンドを使います.

list_radars

Go > list_radars

また, レーダーの視野をポーラーマップ(中央が地磁気極)上に描くには以下のコマンドを用います.

plot_polar_fov,date,hhmm,eiscat=eiscat,camera=camera

例えば, 2003 年 10 月 10 日に稼働していた全てのレーダーの視野を書くには, 引数 date に日付を 8 桁で与えます.

Go > plot_polar_fov,20031010

ここでは, 磁気緯度・磁気経度で定義されたポーラーマップの上に, normal scan の時のレーダーの視野(観測開始レンジ = 180 km, ゲートの間隔 = 45 km, ゲートの数 = 75)が描かれています. 左側が北半球, 右側が南半球です. また, EISCAT レーダー(北欧にある非干渉性散乱レーダー)の場所を上書きするには以下のように eiscat というキーワードを指定します.

Go > plot_polar_fov,20031010,/eiscat

ここで, /eiscat としているのは, 以下のように eiscat というキーワードに 1 を指定していることと等価です.

Go > plot_polar_fov,20031010,eiscat=1

IDL で用いるキーワードは, そのまま値を与えればよい引数とは異なり, keyword=? というような形式で指定してやる必要があります. これ以降もキーワードは頻繁に出てきますので, 少しずつ慣れてください.

さらに, 様々な光学観測機器(OMTI, NIPR, THEMIS カメラなど)のおおよその視野を上書きするには以下のようにします.

Go > plot_polar_fov,20031010,/eiscat,/camera

以下のように, plot_polar_fov の引数 hhmm にプロットしたい時刻を UT で与えると, 視野が磁気緯度・磁気地方時(MLT)で定義されたポーラーマップの 上に表示されます. 上側が 12 MLT, 下側が 24 MLT です. 南半球は, 北半球の極から地球を透過させて見ているように描かれています.

Go > plot_polar_fov,20031010,0300

与える hhmm を変えると地球の自転に伴ってレーダーの位置する MLT が変わるのが分かると思います.

3. データの読み込み

データファイルを読み込んでプロットを行うのは, どのようなプロットソフトでも同じですが, Go は読んだデータをメモリに格納したままの状態でインタラクティブにプロットすることができます. 同じデータについてプロットの形式を変更するときも, 再度データの読み込みをする必要はありません. ここで言うデータは, fitacf file のことです. 通常 fitacf file は圧縮(bzip2)された形で保存されていますが, Go は自動的に解凍を行ってデータの読み込みを行いますのでここでは特に気にしなくても問題ありません.

3.1. データの読み込み

Go でデータを読み込むには以下の archive というコマンドを用います.

archive,id,stime,duration

id には上で説明した 3 文字のレーダー ID を, stime には読み出すデータの開始時刻を 10 桁で, duration には読み出すデータの時間幅を指定します.

注意すべきは, レーダー ID を指定するときに single quate で囲うことを忘れないようにすることです. 例えば, 1999 年 2 月 27 日の 06 UT から 4 時間ぶんの Hankasalmi レーダーのデータを読む場合は,

Go > archive,'han',1999022706,4

とします. ごくたまに, 長い時間幅のデータ(例えば 70 時間分)を読み込む際に, 以下のような警告がでることがあります.

WARNING: fit file too long; trucating.

これは, データの読み出しに確保しているメモリの量よりも大きいデータを読もうとする場合に起こります. Go のデフォルトでは, 48 時間分のデータ量に対応したメモリを確保するようになっています. それよりも長いデータを読みたい場合は, archive コマンドを実行する前に以下の resize コマンドを実行して, 確保するメモリの量を増やしておいてください.

resize,hours

例えば 72 時間分のデータに見合うだけのメモリ領域を用意するには,

Go > resize,72

のようにします. ここで指定する時間は, normal scan(後述)のデータ量で定義されるもので, それよりも時間分解能の高い(単位時間あたりのデータ量が多い)特別観測のデータを読む場合には, 時間幅よりも余分にとってやる必要があるかもしれません. 但し, 100 以上の大きな値を resize の引数とすると darndeb 全体のメモリが足りなくなりますので, 上限は 100 にしてください.

3.2. データの確認

データの読み出しを行うと以下のように読み込んだデータに関する情報が表示されます.

---------------------------------------------
SuperDARN radar      Hankasalmi (10)
Current file         19990227.0600.00.han.fitacf.bz2 (appended)
Start time           0600 00s (058)
End time             0959 48s (058)
Frequency band       12.300 to 12.500 MHz
Scan mode          > normal (ccw) (150)
No beams             1920 (7%)
No scans             120
Maximum file size    48 hours (24672 beams)
---------------------------------------------

レーダー名, データファイル名, データの開始・終了時刻, 周波数, スキャンモード(後述)などが書いてあります. No beams は読み込んだデータの量を観測したビームの本数を単位として示してあります. 隣に(7%)と書いてあるのは, 用意した配列(メモリ)の 7 % にデータが入っているということを意味しています. これらの情報は, データを読み込んだ状態であれば以下のコマンドを用いていつでも確認できます.

print_file_info

Go > print_file_info

データを読み込んだ状態でずっと作業をしていて, データの内容を忘れてしまった場合などに用います.

3.3. スキャンモードについて

レーダーの観測時間は以下の 3 つに分かれており, 様々なスキャンモードで観測が行われています. スキャンモードにはは, cpid と呼ばれる識別番号が振られており, モードのだいたいの内容を把握するのに役立ちます.

  1. Common Time:
    全てのレーダーが共通観測を行わなければならない時間帯.
    最低でもその月の全観測時間の 50 % 程度は確保されている. 通常は 20 days / month 程度.
    観測開始レンジは 180 km, ゲートの間隔は 45 km, 1 ビームのゲートの数は 75.
    Common Time で行われるスキャンモードと cpid の対応は以下のようになっている.
    
    150:  normal scan:        7 sec / beam, 2 min / scan 
    151:  fast normal scan:   3 sec / beam, 1 min / scan 
    152:  stereo normal:      7 sec / beam, 2 min / scan on channel A
    153:  stereo fast normal: 3 sec / beam, 1 min / scan on channel A
    9050: normal sound:       normal scan with frequency optimization
    9060: fast normal sound:  normal scan with frequency optimization
    
    
  2. Discretionary Time:
    各レーダーが勝手に観測モードを決めて良い時間帯.
    衛星との共同観測などはこの時間帯を使って, 特別観測モードを走らせる.
    基本的には, 観測提案を行ったグループが解析する.
    cpid がマイナスである場合は Discretionary Time のデータ.

  3. Special Time:
    全レーダーが参加して特殊な観測モードを行う時間帯. 最近は殆ど行われない.
    cpid がプラスで, 150, 151, 152, 153, 9050, 9060 以外のもの.
現在読み込んでいるデータのスキャンモードを調べるには以下のコマンドを用います.

print_scan_mode_info

Go > print_scan_mode_info

                         lag to      gate
date and time           1st range   length    scan mode
------------------------------------------------------------------------
27 Feb 1999  0600 00s    180.0 km   45.0 km   normal (ccw) (150)
------------------------------------------------------------------------

データの開始時間や観測開始ゲート(first gate)までの距離, ゲートの間隔などが表示され, 最後にスキャンモードと cpid が表示されています. ここで(ccw)と書いてあるのは, ビームを反時計回り(counter clockwise: ccw)に掃引しているということを示しています. ちなみにビームの番号は beam 0 がもっとも西で, beam 15 がもっとも東と決められています. ビームの掃引方向が ccw であるか cw(時計回り: clockwise)であるかはレーダーによって決められています.

3.4. STEREO レーダーのデータの読み出し

SuperDARN のレーダーのうちのいくつかは, STEREO という機能を持っています. STEREO 機能のあるレーダーでは, 2 つ異なる観測モードを channel A と channel B という観測チャンネルに分けて同時に走らせています. この STEREO 機能は, 2002 年頃に Hankasalmi, Pykkvibaer レーダーに初めて実装されました. また, 2005 年頃には Syowa South レーダーにも実装されました. ふたつのチャンネルのデータは同じデータファイルに入っているので, データの読み出しを行った後で, 表示させたいチャンネルのデータだけを抜き出す処理を行います.

以下では, Hankasalmi レーダーの 2005 年 1 月 1 日の 10 UT から 2 時間分のデータを例に取って解説します. まず, archive コマンドで普通にデータの読み出しを行います.

Go > archive,'han',2005010110,2

上で解説したデータの情報として以下のようなものが表示されます.

---------------------------------------------
SuperDARN radar      Hankasalmi (10)
Current file         20050101.1002.00.han.fitacf.bz2
Start time           1002 00s (001)
End time             1200 08s (001)
Frequency band       11.000 to 11.300 MHz
Scan mode            unknown (-26006)
                   > stereo normal (ccw) (152)
No beams             1892 (7%)
No scans             120
Maximum file size    48 hours (24672 beams)
---------------------------------------------

ここで注意したいのは, Scan mode が 2 つ表示されているということです. cpid が -26006 のモードと 152 のモード(stereo normal)です. これは, ふたつのチャンネルのデータが両方読み込まれている状態であることを意味しています. どちらかの cpid のデータだけを取り出したい場合は, 以下の make_mono というコマンドを使います.

make_mono,cpid

例えば cpid が 152 の stereo normal のデータだけを取り出す場合は, 引数 cpid に 152 を指定します.

Go > make_mono,152

これで, cpid が -26006 のデータはメモリから削除され, cpid が 152 のモードのデータだけが残った状態になります.

4. RTI プロットの作成

まずプロットの一番簡単な例として RTI プロットを作ってみようと思います. RTI は Range Time Intensity の略です. その名前の通り, 横軸に時間(UT), 縦軸にレーダーからのレンジ(電波の航続距離)をとって, 特定のビームに沿った power, Doppler velocity, spectral width の 3 つの基本パラメータを時系列で表示するものです.

横軸は常に時間(UT)ですが, 縦軸は, 必要に応じてゲート, レンジ距離, 地理緯度, 磁気緯度などに変更することが可能です.

SuperDARN レーダーは 16 本のビームで扇形の視野を構成しています. RTI プロットはひとつのビームのデータしかプロットすることができないので, プロットするビームを随時変更し, 自分が見たい情報を引き出す必要があります.

4.1. ひとつの RTI プロットを描く

ここでは, 例として 1999 年 2 月 27 日の 06 UT から 24 時間分の Hankasalmi レーダーのデータを用います. まずは archive コマンドでレーダーのデータを読みます.

Go > archive,'han',1999022706,24

Hankasalmi レーダーには 2002 年頃から STEREO 機能が付加されましたが, ここでは 1999 年のデータを用いるので, make_mono を使って片方のチャンネルのデータを取り出す必要はありません.

RTI プロットを作成するには, 以下のコマンドを用います.

plot_rti,time_line=time_line,y_line=y_line

データを読み込んだあとで, まず何も考えずに以下を実行してみます.

Go > plot_rti

すると, beam 0 に沿った power のデータが読んだ時間の分だけ出力されると思います. 縦軸はゲートになっているはずです. SuperDARN の Common Time の観測ではゲートは 45 km ごとに区切られており, 75 個の bin に分けられています. また, 最初のゲートは通常 180 km に設定されています.

この plot_rti というコマンドが全ての基本です. これから, プロットするビームや縦軸横軸に関する指定を加えていき, 自分の見たいプロットにしていきます.

4.2. RTI プロットの各種設定の変更

まずは, プロットするビームを指定します. ビームの指定は以下のコマンドで行います.

set_beam,beam_number

例えば, beam 9 をプロットしたい場合は以下のように set_beam でビームの指定を行ったあとで, 再度 plot_rti コマンドで RTI プロットの描画を行います.

Go > set_beam,9
Go > plot_rti

次に, プロットするパラメータの指定を以下のコマンドで行います.

set_parameter,parameter_name

指定する parameter_name の名前は, power が 'pwr_l', Doppler velocity が 'vel', そして, spectral width が 'width_l' です. Power は電波の受信強度(dB), Doppler velocity は散乱体の視線方向 Doppler 速度(m/s: 正の値がレーダーに近づく向き, 負の値がレーダーから遠ざかる向き), spectral width は Doppler スペクトルの広がり(m/s: 散乱体の不規則性に関する指標)を表しています. 例えば, pwr_l をプロットするパラメータとして指定したいときは, 以下のようにします.

Go > set_parameter,'pwr_l'
Go > plot_rti

基本の 3 パラメータに関しては, 以下のようにその名前を打ってやるだけでパラメータ指定をすることも可能です.

Go > pwr_l
Go > plot_rti

Go > vel
Go > plot_rti

Go > width_l
Go > plot_rti

また, プロットする時間幅も読み込んだ時間範囲の中であれば, 以下のコマンドで自由に変更できます.

time,start_time,end_time

UT で 06 時から 12 時までを指定したければ, 以下のようにすればよいことになります.

Go > time,0600,1200
Go > plot_rti

例えば, 日付をまたいでデータを読み込んでいて, 24 UT を超えてデータをプロットしたい場合は以下のようにします.

Go > time,2000,2800
Go > plot_rti

この例では, 20 UT から翌日の 04 UT までのデータを表示します.

次に, 縦軸の座標の指定を行います. デフォルトでは縦軸はゲート番号になっていますが, 以下のコマンドを用いて, 地理座標, 地磁気座標, レンジ距離(実際の距離)などに変更することが可能です.

set_coords, 'geog' or 'mag' or 'range' or 'gate'

地磁気座標に変換するなら以下のようにしてやればよいことになります.

Go > set_coords,'mag'
Go > plot_rti

地理座標に変換するなら以下のようにしてやればよいことになります.

Go > set_coords,'geog'
Go > plot_rti

レンジ距離に変換するなら以下のようにしてやればよいことになります.

Go > set_coords,'range'
Go > plot_rti

ゲートに戻したい場合は, 以下のようにします.

Go > set_coords,'gate'
Go > plot_rti

縦軸を指定したら, その範囲も指定したくなります. そんな時は, 以下のコマンドを使います.

map,y=[ymin,ymax]

地磁気座標を指定した後に, 以下のようにしてやれば,

Go > set_coords,'mag'
Go > map,y=[70,80]
Go > plot_rti

磁気緯度で 70 度から 80 度までの範囲に縦軸を設定できます.

SuperDARN のエコーには, 電離圏散乱エコー(Ionospheric Scatter: IS)と地面・海面散乱エコー(Ground Scatter: GS)がありますが, Go では, それらを選択的にプロットしてやることもできます. プロットするエコーの種類を決定するのは以下のコマンドです.

set_scatter, 0 or 1 or 2 or 3

0: 全てのエコーを プロット (IS + GS)
1: Ground Scatter のみをプロット.
2: Ionospheric Scatter のみをプロット.
3: 全てのエコーをプロット(ただし, vel をプロットするときには, GS をグレーで表現)

Ground Scatter を取り除いて Ionospheric Scatter のみをプロットしたい場合には, 以下のようにしてやります.

Go > set_scatter, 2
Go > plot_rti

なお, Go のデフォルトは上記の 3 になっています.

プロットのカラースケールをデフォルトの設定から変更するのは以下のコマンドで行います.

set_scale,min,max

例えば, Doppler velocity をプロットするパラメータとして設定している状態で, スケールを -2000 m/s から 2000 m/s までに変更したいときには,

Go > set_scale,-2000,2000
Go > plot_rti

とやってやれば良いわけです. デフォルトのスケールに戻すには,

Go > default_scale
Go > plot_rti

としてやります.

スケールは, デフォルトでは, power については 0-30 dB, spectral width については 0-500 m/s, Doppler velocity は -1000-1000 m/s となっています. 小さい値まで細かく変動をみたいときや, 非常に大きな値までプロットする場合には, 適宜, 変更が必要になります.

特定の時刻に縦線を引きたい場合は, time_line キーワードを使います.

Go > plot_rti,time_line=[0840,0920]

この例では, 0840, 0920 UT に線を引いています.

また, 横方向に線を引くこともできます. 例えば磁気緯度 75, 80 度に線を引く場合は,

Go > set_coords,'mag'
Go > plot_rti,y_line=[75,80]

のようにします. 縦軸をゲートや地理緯度, レンジ距離に変えてもこの y_line キーワードを使うことは可能です.

Go はデフォルトでは北半球のデータをプロットするように設定されているので, 南半球のデータをプロットするにはいくらかの小細工が必要です.

ここでは, 例として 1999 年 10 月 12 日の 08 UT から 4 時間分の Syowa East レーダーのデータを用います. まずは archive コマンドでレーダーのデータを読みます.

Go > archive,'sye',1999101208,4

縦軸をゲートにして, 普通に plot_rti を実行すると,

Go > set_coords,'gate'
Go > plot_rti

何の問題もなくデータが表示されるのですが, 縦軸を磁気緯度にすると,

Go > set_coords,'mag'
Go > plot_rti

上下逆さまのプロット(上が赤道側)が出てくると思います. 縦軸の上側を極方向にとって見やすいプロットにするには, 以下のような手順を踏みます.

まず, 以下のコマンドを縦軸の座標設定の前に使ってやります.

set_invert,'on' or 'off'

これは縦軸の上下を反転させるオマジナイです. 例えば, 南半球のデータを地磁気座標で, -70 度から -80 度までプロットしようと思えば, オマジナイに引き続いて以下のような操作をします.

Go > set_invert,'on'
Go > set_coords,'mag'
Go > map,y=[-80,-70]
Go > plot_rti

これで, 南半球のデータも北半球と同じように, 縦軸上側を極方向にとってプロットできます. 南半球のデータをプロットした後で, 北半球のデータをプロットしたい場合は,

Go > set_invert,'off'

とやってからプロットを行う必要があることに注意してください.

4.3 複数の RTI プロットを 1 つの画面に描画する

再び, 例として 1999 年 2 月 27 日の 06 UT から 4 時間分の Hankasalmi レーダーのデータを用います. まずは archive コマンドでレーダーのデータを読みます.

Go > archive,'han',1999022706,4

これまでは, plot_rti コマンドをつかって, 1 つの画面に 1 枚のパネルを書いてきましたが, 1 つの画面に複数のパネルを書くことも可能です. plot_rti の正確な使い方は以下のようです.

plot_rti,columns,rows,beams=[n,n, ...],/all

全 16 本のビームを 1 枚の画面に描きたいと思えば,

Go > plot_rti,/all

とします. 16 枚のパネルが 4 x 4 のフォーマットで出力されると思います.

また, 特定のビームのみを出力することも可能です. 2 行 2 列にパネルを並べて, 0, 5, 10, 15 の 4 本のビームだけをプロットするには, 以下のようにしてやります.

Go > plot_rti,2,2,beams=[0,5,10,15]

これらの機能を用いれば, データのプレビューをするぶんには十分かと思います. しかし, 論文や学会発表などのための清書のプロットを作成するときは, 以下のコマンドのほうが思い通りのプロットが作れるかもしれません.

plot_rti_panel,columns,rows,column,row,beam=n,position=[x1,y1,x2,y2],info=info,no_x=no_x

このコマンドは, 1 つの画面を横方向に columns, 縦方向に rows に分割し, その column 番目と row 番目のパネルに RTI プロットを出力するというものです. 注意すべきは, column および row は 0 から始まるということです. 例えば, 画面を縦方向に 3 つに分割し, 上から pwr_l, vel, width_l をプロットしたいときは,

Go > clear_page
Go > pwr_l
Go > plot_rti_panel,1,3,0,0,/info
Go > vel
Go > plot_rti_panel,1,3,0,1,/info
Go > width_l
Go > plot_rti_panel,1,3,0,2,/info

のようにします. info というキーワードを指定すると, ビーム番号や横軸の時間幅などの情報が表示されます. また, beam キーワードにビーム番号を指定することで, set_beam コマンドを使わないでもプロットするビームを選ぶことができます.

Go > clear_page
Go > vel
Go > plot_rti_panel,1,4,0,0,/info,beam=0
Go > plot_rti_panel,1,4,0,1,/info,beam=5
Go > plot_rti_panel,1,4,0,2,/info,beam=10
Go > plot_rti_panel,1,4,0,3,/info,beam=15


 ここで注意してほしいのは, plot_rti_panel は clear_page をしてくれないので, 実行するまえには clear_page を使って画面をリフレッシュしておく必要があるということです.

また, お好みの位置にパネルを出したい時は, position というキーワードを用います. Device 座標で, パネルの四隅の座標を指定してやります. Device座標は, 縦横ともに, 0から1の範囲で設定されています. 具体的な使い方は以下のようになります.

Go > plot_rti_panel,position=[0.2,0.3,0.8,0.7]

ただし, position キーワードで位置の指定を行うと, info キーワードで出力される情報が正しい位置にでないので併用することは不可能です.

plot_rti_panel コマンドにおいて, no_x というキーワードを設定することが可能です. このキーワードが指定されれば, 横軸の座標が表示されません. 縦方向にパネルを連ねていく場合に, 使うことになります.

縦方向にパネルを重ねていく場合, 各パネルは縦方向にある程度の間隔をもって出力されます. このスペースが無駄と思えるならば, 各パネルを縦方向にくっつけて表示することも可能です. それには, フォーマットの指定を行う以下のコマンドを予め用いてやる必要があります.

set_format,/sardines or /guppies

パネルをくっつけて表示するには,

Go > set_format,/sardines

元のように, 離して表示するには,

Go > set_format,/guppies

です. 先ほどの例と同じように, 画面を縦方向に 3 分割し, 各パネルをくっつけた形で, 上から 3 つの基本パラメータをプロットするならば,

Go > set_format,/sardines
Go > clear_page
Go > pwr_l
Go > plot_rti_panel,1,3,0,0,/no_x
Go > vel
Go > plot_rti_panel,1,3,0,1,/no_x
Go > width_l
Go > plot_rti_panel,1,3,0,2

各パネルをくっつけるので, 一番上のパネルと真ん中のパネルを描くときには, 横軸を出力しない no_x キーワードを加えてやる必要があります.

plot_rti コマンドでは, カラーバーを自動的に出力してくれますが, plot_rti_panel コマンドでは, その機能はありません. よって, 別途, カラーバーを描くコマンドを使う必要があります.

plot_colour_bar,rows,row,position=[x1,y1,x2,y2]

カラーバーの位置は, デフォルトで, 右端に設定されていて, 縦方向の位置(row)を指定するだけでその位置に出力されます. 縦方向に 3 つに分割して, その一番上にカラーバーを描く場合は, 以下のようにします.

Go > plot_colour_bar,3,0

この場合も, row は 0 から始まることに注意してください. また, 任意の場所に Device 座標で位置を指定してカラーバーを出力することももちろん可能です. 例えば以下のようになります.

Go > plot_colour_bar,position=[0.80,0.50,0.83,0.70]

3 つの基本パラメータを縦方向に並べたプロットをカラーバー付きで表示するには,

Go > set_format,/sardines
Go > clear_page
Go > pwr_l
Go > plot_rti_panel,1,3,0,0,/no_x
Go > plot_colour_bar,3,0
Go > vel
Go > plot_rti_panel,1,3,0,1,/no_x
Go > plot_colour_bar,3,1
Go > width_l
Go > plot_rti_panel,1,3,0,2
Go > plot_colour_bar,3,2

のようにします. 以上で RTI プロットを作成する際に用いるコマンドの説明は全て終わりました.

5. 2次元の可視化 - マッププロット

RTI プロットの作り方がだいたいわかったので, 今度は 2次元の可視化をやってみます. Normal scan では, 約 2 分かけて 16 本のビームをスウィープし, 扇形の視野全域においてデータを取得します. 地理もしくは磁気緯度経度の座標軸の上に, データをスキャン毎にプロットしていきます. この形式のプロットをマッププロットと呼びます.

5.1. ひとつのマッププロットを描く

ここでも, 例として 1999 年 2 月 27 日の 06 UT から 4 時間分の Hankasalmi レーダーのデータを用います. まずは archive コマンドでレーダーのデータを読みます.

Go > archive,'han',1999022706,4

マッププロットを作成するには, 以下のコマンドを用います.

plot_map

データを読み込みを行った状態で, 以下を実行してみます.

Go > set_coords,'mag'
Go > plot_map

横軸磁気経度, 縦軸磁気緯度のフレームの上に, 現在指定してあるパラメータがプロットされるはずです. これが, マッププロットです. ここでは, 磁気緯度経度で座標を指定しましたが, 地理緯度経度で指定することも以下のようにすれば可能です.

Go > set_coords,'geog'
Go > plot_map

プロットするパラメータの指定は RTI プロットで説明したものと全く同じです.

Go > pwr_l
Go > plot_map
Go > vel
Go > plot_map
Go > width_l
Go > plot_map

ここで, 横軸の経度および縦軸の緯度の範囲はレーダーごとに予め決められていますが, 随時変更することも可能です. その時は, 以下のコマンドを用います.

map,x=[x1,x2],y=[y1,y2]

x軸(経度)を例えば, -20 度から 120 度までの範囲にし, y軸(緯度)を 60 度から 80 度にしたければ, 以下のようにします.

Go > map,x=[-20,120],y=[60,80]

x軸, y軸のどちらかだけを指定することももちろん可能です. これでもう一度,

Go > plot_map

とやってやれば, お好みの範囲でplotを作成することができます.

次に, 何番目のスキャンをプロットするかを指定する方法を説明します. これには, 二つの方法があります. ひとつ目は, スキャンの番号で指定する方法です.

goto_scan,scan_number

normal scan では, 2時間のデータファイルに 2 分ごとに 60 のスキャンが入っています. 読み込んだデータが何スキャン分あるかは print_file_info の No scans を参照すればわかります. 例えば, 5 番目のスキャンをプロットしたければ,

Go > goto_scan,5
Go > plot_map

とし, その上で, plot_map を実行すれば良いことになります. スキャンの番号は 0 から数え始めることにご注意ください. 現在何番目のscanが指定されているかを知るには,

print_scan_info

を使います.

Go > print_scan_info
Scan 5 (0-64)     Scan time 00020 00s (284)

などと情報を得ることができます.

スキャンを指定する二つ目の方法は, 時刻で指定する方法です. 4 桁で時刻を与えれば, その時刻にもっとも近いスキャンを自動的に選んでくれます.

go_time,hhmm

例えば, 8 時 30 分 UT のスキャンをプロットするならば,

Go > go_time,0830
Go > plot_map

とします.

5.2. 情報を上書きする

plot_map をするだけでデータのプレビューには充分ですが, さらに情報を追加することも可能です. まず, レーダーの視野をデータの上に上書きするには以下を使います.

overlay_beams,/outline

使い方は以下のような感じです.

Go > plot_map
Go > overlay_beams

outline キーワードは視野の外枠だけを描く場合に用います.

Go > plot_map
Go > overlay_beams,/outline

つぎに, オーロラオーバルのモデル(Feldstein モデル)を上書きしてみます.

overlay_oval,Kp=Kp

Kp キーワードで指定された Kp の時のオーバルのモデルを上書きします. デフォルトでは, Kp=3 になっています.

Go > plot_map
Go > overlay_oval,Kp=4

5.3. 1 つの画面に複数のマッププロットを描画する

これまでは, plot_map コマンドをつかって, 1 つの画面に 1 枚のパネルを書いてきましたが, 1 つの画面に複数のパネルを書くことも可能です. plot_map の正確な使い方は以下のようです.

plot_map,columns,rows,beams=beams,oval=Kp,skip=n

columns と rows はそれぞれ, 横方向, 縦方向のパネルの数です. この引数を指定せずに plot_map を実行すると 1 枚のパネルになりますが, 指定すると複数のパネルにスキャンを順に進めて行きながらデータをプロットすることができます. 例えば, 2 行 2 列にパネルを並べて, 4 つの連続したスキャンをプロットするには, 以下のようにしてやります.

Go > plot_map,2,2

また, スキャンを 5 つずつスキップして(2 分で 1 スキャンとするならば, 10 分おきに 1 枚のマップというように)表示するには, 以下のようにします.

Go > plot_map,2,2,skip=5

また, 視野やオーバルのモデルを上書きすることもできます.

Go > plot_map,2,2,skip=5,/beams,oval=3

この場合は, 視野と Kp=3 のときのオーロラオーバルを上書きしています.

これらの機能を用いれば, データのプレビューをするぶんには十分かと思います. しかし, 論文や学会発表などのための清書のプロットを作成するときは, 以下のコマンドのほうが思い通りのplotが作れるかもしれません.

plot_map_panel,columns,rows,column,row,position=[x1,y1,x2,y2],/info

このコマンドは, 1 つの画面を横方向に columns, 縦方向に rows に分割し, その column 番目と row 番目のパネルにマッププロットを出力するというものです. 注意すべきは, column および row は 0 から始まるということです. 例えば, 画面を縦方向に 3 つに分割し, 上からあるスキャンの pwr_l, vel, width_l を順にプロットしたいときは,

Go > clear_page
Go > pwr_l
Go > plot_map_panel,1,3,0,0,/info
Go > vel
Go > plot_map_panel,1,3,0,1,/info
Go > width_l
Go > plot_map_panel,1,3,0,2,/info

とやってやれば良い訳です. info キーワードを指定するとはスキャンの時刻, 周波数などが表示されます.

また, お好みの位置にパネルを出したい時は, position というキーワードを用います. Device 座標で, パネルの四隅の座標を指定してやります. Device 座標は, 縦横ともに, 0 から 1 の範囲で設定されています. 具体的な使い方は以下のようになります.

Go > plot_map_panel,position=[0.2,0.3,0.8,0.7]

ただし, position キーワードで位置を指定した場合, info キーワードで出力される情報は正しい位置に表示されません. また, plot_map_panel では, plot_map のように自動でカラーバーが出力されませんので, 適宜, plot_colour_bar コマンドでカラーバーを出力してください.

6. 2次元の可視化 - ポーラープロット

RTI プロットやマッププロットの作り方がだいたいわかったので, 次にポーラープロットを作ってみます. このプロット形式は, 極域を地磁気極の方向から見下ろした時に見えるであろう景色を想定しています. 半径方向に磁気余緯度(90 - 磁気緯度)をとっています. 上側が常に 12 MLT(太陽方向), 下側が 24 MLT(真夜中), 右側が 06 MLT(朝側), 左側が 18 MLT(夕方側)になっています. マッププロットをより研究に実用的な形にしたものと言えます.

6.1. ひとつのポーラープロットを描く

ここでも, 例として 1999 年 2 月 27 日の 06 UT から 4 時間分の Hankasalmi レーダーのデータを用います. まずは archive コマンドでレーダーのデータを読みます.

Go > archive,'han',1999022706,4

ポーラープロットを作成するコマンドは以下です.

plot_polar,clip=clip

まず, 何も考えずに,

Go > plot_polar

を実行すると, 極域全体のポーラープロットが出てくるかと思います. レーダーの周囲だけをズームしてプロットしたいときは, clip というキーワードをつけてやります.

Go > plot_polar,/clip

これで, データを読み込んだレーダーの周囲だけにフォーカスしたポーラープロットがでてくると思います. 常に, 上側が太陽方向(24 MLT)であることに注意してください. また, ポーラープロットは磁気緯度と MLT の座標系でのみ利用可能です. 地理緯度と LT でプロットすることはできません.

プロットするパラメータの指定はこれまでに説明したものと全く同じです.

Go > pwr_l
Go > plot_polar,/clip
Go > vel
Go > plot_polar,/clip
Go > width_l
Go > plot_polar,/clip

読み込んだデータの時間幅の範囲であれば任意のスキャンについてポーラープロットを出すことができます. 5.1 のマッププロットの箇所で説明したように, 以下のどちらかのコマンドで行います.

goto_scan,scan_number

go_time,hhmm


6.2. 情報を上書きする

基本的なポーラープロットができれば, あとはお飾りをつける作業をします.

レーダーの視野を上書きするには,

overlay_polar_beams,beams=[n,n, ...]

を用います. 普通に実行すれば,

Go > overlay_polar_beams

視野の外枠が出力されます. また, beams キーワードで特定のビームのみの輪郭をトレースすることも可能です. 例えば, beam 7 だけを描きたければ,

Go > plot_polar
Go > overlay_polar_beams,beams=[7,8]

とします.

Feldstein のオーロラオーバルモデルを上書きするには, 以下のコマンドを用います.

overlay_polar_oval,Kp=n

例えば, Kp が 2 の時のモデルを描くには,

Go > plot_polar
Go > overlay_polar_oval,Kp=2

とします. Kp キーワードをつけなければ, デフォルトの Kp=3 の時のオーバルが出力されます.

太陽天頂角(solar zenith angle)を上書きするには,

overlay_polar_zenith

使い方は以下のようです.

Go > plot_polar
Go > overlay_polar_zenith

大陸の形を描いてやるには,

overlay_polar_coast,/south

北半球ならば,

Go > plot_polar
Go > overlay_polar_coast

南半球ならば,

Go > plot_polar
Go > overlay_polar_coast,/south

ここで注意して欲しいのは, 南半球のポーラープロットは南半球を下から見上げているのではなく, 地球が透き通っているとして北極から南半球を見下ろしているように書いているという点です. 南北半球共に, 上側が常に 12 MLT, 下側が 24 MLT, 右側が 06 MLT, 左側が 18 MLT となります.

以上が良く使うお飾りです. これらを使うとデータの相対的な位置取りがはっきりしますが, 度が過ぎるとややこしくなるので注意が必要です.

これらの上書きコマンドは, plot_polar コマンドのキーワードとしても指定できます.

plot_polar,/zenith,/coast,/beams,oval=Kp

以下のように複数を同時に指定することもできます.

Go > plot_polar,/zenith,/coast,/beams,oval=3

試してみてください.

6.3. 1 つの画面に複数のポーラープロットを描画する

これまでは, plot_polar コマンドを用いて, 1 つの画面に 1 枚のパネルを書いてきましたが, 1 つの画面に複数のパネルを書くことも可能です.

plot_polar,columns,rows,/clip,/zenith,skip=n,/coast,/beams,oval=Kp

columns と rows はそれぞれ, 横方向, 縦方向のパネルの数です. この引数を指定せずに plot_polar を実行すると 1 枚のパネルが出力されるだけですが, 指定すると複数のパネルにわたって連続するスキャンをプロットすることができます. 例えば, 2 行 2 列にパネルを並べて, 4 つの連続したスキャンをプロットするには, 以下のようにします.

Go > plot_polar,2,2

自動的にスキャンが前へ進んでいくことがわかるかと思います. また, スキャンを 5 つずつスキップして(2 分で 1 スキャンとするならば, 10 分おきに 1 枚のパネル)表示するには, 以下のようにします.

Go > plot_polar,2,2,skip=5

これらの機能を用いれば, データのプレビューをするぶんには十分かと思います. しかし, 論文や学会発表などのための清書のプロットを作成するときは, 以下のコマンドのほうが思い通りのプロットが作れるかもしれません.

plot_polar_panel,columns,rows,column,row,position=[x1,y1,x2,y2],/info,/clip,xrange=xrange,yrange=yrange

このコマンドは, 1 つの画面を横方向に columns, 縦方向に rows に分割し, その column 番目と row 番目のパネルにポーラープロットを出力するというものです. 注意すべきは, column および row は 0 から始まるということです. 例えば, 画面を縦方向に 3 つに分割し, 上からあるスキャンの pwr_l, vel, width_l をプロットしたいときは,

Go > clear_page
Go > pwr_l
Go > plot_polar_panel,1,3,0,0,/info
Go > vel
Go > plot_polar_panel,1,3,0,1,/info
Go > width_l
Go > plot_polar_panel,1,3,0,2,/info

とします. info キーワードを指定するとスキャンの時刻, 周波数などが表示されます.

xrange, yrange キーワードではそれぞれ横方向, 縦方向の描画領域の範囲を指定できます. デフォルトの描画範囲は, 横(x)方向, 縦(y)方向ともに [-30,30] です. 例えば, 緯度が 80 度以上の領域を重点的に描きたい場合は,

Go > clear_page
Go > plot_polar_panel,xrange=[-10,10],yrange=[-10,10]

のようにします.

好みの位置にパネルを出力したい時は, position キーワードを用います. Device 座標で, パネルの四隅の座標を指定してやります. Device 座標は, 縦横ともに, 0 から 1 の範囲で設定されています. 具体的な使い方は以下のようになります.

Go > plot_polar_panel,position=[0.2,0.3,0.8,0.7]

ただし, position キーワードで位置を指定した場合, info キーワードで出力される情報は正しい位置に表示されません. また, plot_polar_panelでは, plot_polar のように自動でカラーバーが出力されませんので, 適宜, plot_colour_bar コマンドでカラーバーを出力してください.

plot_colour_bar,rows,row,position=[x1,y1,x2,y2]

7. 各種ラインプロットの作成

ここでは, レーダーのデータをラインプロットで表示する方法について解説します. ここで作成するラインプロットの縦軸はすべてパラメータ(pwr_l, vel, width_l)の値です. パラメータが pwr_l にセットされているならば, pwr_lですし, vel にセットされているならば, velということになります. それに対して, 横軸は, 時間にする場合とレンジゲート(もしくは, 磁気緯度, 地理緯度, 実際のレンジ距離)にする場合があります.

7.1. 特定のセルのデータの時系列プロット

ここでは, 例として 1999 年 10 月 10 日の 12 UT から 10 時間分の Pykkvibaer レーダーのデータを用います. まずは archive コマンドでレーダーのデータを読みます.

Go > archive,'pyk',1999101012,10

Pykkvibaer レーダーには 2002 年頃から STEREO 機能が付加されましたが, ここでは 1999 年のデータを用いるので, make_mono を使って片方のチャンネルのデータを取り出す必要はありません.

まずは, RTI プロットで状況を確認します.

Go > vel
Go > plot_rti,beam=7

ここでは Beam 7 をプロットしました. ゲート 5 から 10 にかけて連続的にエコーが得られているようです. このあたりのデータを切り出してラインプロットを作ってみたいと思います. 特定のビームの特定のゲートのデータを時系列でラインプロットには以下のコマンドを用います.

plot_graph,columns,rows,beams=[],ranges=[],y=[y1,y2],exclude=[y1,y2],/nopoints

例えば, Beam 7 の Gate 5 のデータをラインプロットにするには以下のようにします.

Go > plot_graph,beams=7,ranges=5

時系列のラインプロットが出力されたと思います. パネルの一番上にデータの場所(ビーム番号・ゲート番号)が示されています. プロットをよく見ると, データポイントに塗りつぶされた四角とそうでない四角があることが分かります. 塗りつぶされた四角は Ionospheric Scatter を, そうでないものは Ground Scatter であることを示しています. ラインプロットにするエコーの種類は set_scatter コマンドで変えることができます.

Ground Scatter のみをプロットする場合,

Go > set_scatter,1
Go > plot_graph,beams=7,ranges=5

Ionospheric Scatter のみをプロットする場合,

Go > set_scatter,2
Go > plot_graph,beams=7,ranges=5

データポイントに描かれる四角が不要な場合は, nopoints キーワードをつけます.

Go > plot_graph,beams=7,ranges=5,/nopoints

以上の例では beams, ranges というキーワードでプロットするデータの場所を指定しましたが, 以下の set_cell というコマンドでも指定することができます.

set_cell,beam,gate

例えば, beam 8 の gate 10 をプロットしたい場合は,

Go > set_cell,8,10
Go > plot_graph

のようにします.

プロットする時間幅の指定は, RTI プロットのところで説明した time コマンドで行います.

Go > time,1400,1600
Go > plot_graph

プロットの縦軸の範囲は, y というキーワードで指定することができます.

Go > plot_graph,y=[-2000,2000]

もちろん set_scale コマンドで別途指定してもかまいません.

Go > set_scale,-2000,2000
Go > plot_graph,

また, y 軸のある範囲以外のデータをプロットしないようにしたい場合は, exclude というキーワードを用います.

Go > plot_graph,exclude=[-500,500]

この例では, velocity が -500 m/s から 500 m/s の範囲のデータのみをプロットしています.

これまでの例では, ひとつの画面に 1 枚のパネルを描きましたが, 複数のパネルを描くことも可能です. 例えば, beam 1,2,3,4 の gate 5 のデータを 2 x 2 のパネルに描きたい場合は,

Go > plot_graph,2,2,beams=[1,2,3,4],ranges=[5,5,5,5]

のようにします. beams, ranges キーワードに複数の場所を指定します.

また, 好みの場所にプロットをすることも可能です.

plot_graph_panel,columns,rows,column,row,y=[y1,y2],exclude=[y1,y2],/nopoints,/bar

このコマンドは, 1 つの画面を横方向に columns, 縦方向に rows に分割し, その column 番目と row 番目のパネルにラインプロットを出力するというものです. 注意すべきは, column および row は 0 から始まるということです. 例えば, 画面を縦方向に 3 つに分割し, Beam 7, Gate 5 のデータを上から pwr_l, vel, width_l についてラインプロットしたいときは,

Go > clear_page
Go > set_cell,7,5
Go > pwr_l
Go > plot_graph_panel,1,3,0,0,/info,/bar
Go > vel
Go > plot_graph_panel,1,3,0,1,/info,/bar
Go > width_l
Go > plot_graph_panel,1,3,0,2,/info,/bar

info というキーワードをつけることでプロットされているデータの場所(ビーム・ゲート)が各パネルの上に出力されます. また bar というキーワードをつけることで, パネルの横にカラーバーを描くスペースを確保することができます.

7.2. 特定のビームのデータをレンジ方向にプロット

ここでは, 特定のビームのデータを, 横軸をレンジにしてプロットしてみたいと思います. 用いるコマンドは以下です.

plot_range,columns,rows,y=[y1,y2],exclude=[y1,y2],/nopoints,/bar

プロットするビームを set_beam コマンドで指定したあとで, plot_range を実行します.

Go > set_beam,7
Go > plot_range

横軸がゲート, 縦軸がパラメータの値のプロットが出力されると思います. 横軸の時間幅, 縦軸の範囲など plot_range コマンドにキーワードとして指定できるものの殆どは plot_graph コマンドと共通です.

また, 好みの場所にプロットをすることも可能です.

plot_range_panel,columns,rows,column,row,y=[y1,y2],exclude=[y1,y2],/nopoints,/bar

このコマンドは, 1 つの画面を横方向に columns, 縦方向に rows に分割し, その column 番目と row 番目のパネルにラインプロットを出力するというものです. 注意すべきは, column および row は 0 から始まるということです. 例えば, 画面を縦方向に 3 つに分割し, Beam 7 のデータを上から pwr_l, vel, width_l についてラインプロットしたいときは,

Go > clear_page
Go > set_beam,7
Go > pwr_l
Go > plot_range_panel,1,3,0,0,/info,/bar
Go > vel
Go > plot_range_panel,1,3,0,1,/info,/bar
Go > width_l
Go > plot_range_panel,1,3,0,2,/info,/bar

info, bar キーワードなども plot_graph_panel と共通です.

8. ポストスクリプトファイルへの出力

基本的に SuperDARN のデータの可視化は X window で行うものですが, 描画結果を印刷する場合は, PostScript(PS)ファイルに出力する必要があります. そのような時は, 一連のプロットコマンドを実行する前に ps_open コマンドを用いて, PS ファイルを開いておきます.

ps_open,'filename'

fuck.ps という名前の PS ファイルに出力したければ,

Go > ps_start,'fuck.ps'

のようにします. もし, filename を指定しなければ, piccy.ps という名前の PS ファイルが自動的に生成されます.

PS ファイルを開いた後で, landscape か portrait かを指定することができます(defaultはportrait). それを行うのは, 以下のコマンドです.

ps_landscape

ps_portrait

開いた PS ファイルは見たり印刷したりする前に, 閉じる必要があります. PS ファイルを閉じるには,

ps_close

を用います.

できた PS ファイルを gv で閲覧するときは,

ps_preview,'filename'

Go > ps_preview,'fuck.ps'

もし, filenameを指定しない場合は, もっとも最近開いた PS ファイルを gv で開きます.

作成した PS ファイルを印刷したいときは,

Go > $lpr -Pxa fuck.ps
Go > $lpr -Pxb fuck.ps

などとしてください. $ は, Go の上で UNIX のコマンドを実行するためのおまじないです.

IDL の PS フォント(helvetica)を利用したいときは, 以下のコマンドを PS ファイルを開く前に使ってください.

set_ps_font,'on' or 'off'

Go > set_ps_font,'on'

ps fontを使わなくするには,

Go > set_ps_font,'off'

としてやってください.

以下に PS ファイルへの出力の一連の過程をまとめて示します.

Go > set_ps_font,'on'
Go > ps_start, 'sample.ps'
Go > ps_portrait
Go > plot_polar
Go > ps_close
Go > ps_preview
Go > $lpr -Pzb sample.ps

9. バッチ処理について

これまでに解説してきた Go のコマンドを連続的に実行したいときは, go という拡張子のファイルを現在のディレクトリに作成し,

Go > @sample.go

このように @ を先頭に付けて実行してやればよいだけです. 例えば, sample.go の中身は,

;---------------------------------------------------------
; 72 時間分の memory 領域を確保する
resize,72

; 1999 年 2 月 27 日の 00 UT - 24 UT までの Hankasalmi のデータを取り込む
archive,'han',1999022700,24

; プロットするパラメータを Doppler velocity に指定
vel

; sample.psという名前の PS ファイルを Portrait で開く
ps_open,'sample.ps'
ps_portrait

; プロットするビームを 6 に設定
set_beam,6

; RTI プロットの縦軸を磁気緯度にして, 範囲を 70 度から 90 度にする
set_coords,'mag'
map,y=[70,90]

; RTI プロットの横軸の範囲を 06 UTから 10 UT にする
time,0600,1000

; ページを一度クリアする
clear_page

; RTI プロット描く, 縦線を 0840 UT にひく
plot_rti_panel,1,2,0,0,time_line=[0840]

; カラーバーを出す
plot_colour_bar,2,0

; ポーラープロットを書く時間を 0800 UT に設定
go_time,0840

; ポーラープロットを作成
plot_polar_panel,1,2,0,1,/clip

; レーダーの視野を上書き
overlay_polar_beams

; Beam 6 の位置を上書き
overlay_polar_beams,beams=[6,7]

; Feldstein のオーロラオーバルモデルを上書き
overlay_polar_oval,Kp=4

; 太陽天頂角を上書き
overlay_polar_zenith

; カラーバーを書く
plot_colour_bar,2,1

; sample.psを閉じる
ps_close

; sample.ps をプレビューする
ps_preview
;---------------------------------------------------------

このファイルの中で, ; で始まる行は, コメント行になります.

このようなバッチファイルを作っておくと, 作業を楽に, かつ再現性を持った形で行うことができます.