CODE FOR DATA ANALYSIS

画像データについて

データは, 以下のようなディレクトリに格納されている.

2006 年 9 月 23 日 2120 - 2320 UT のデータ:
/radar07/data/Aurora/Tjornes/2006/Sep/20060923_212000_232000
2006 年 9 月 24 日 2110 - 2310 UT のデータ:
/radar07/data/Aurora/Tjornes/2006/Sep/20060924_211000_231000

注: 2006 年のデータは, それぞれのディレクトリに YYYYMMDD_HHMMSS.gif というファイル名前で gif 画像として保存されている.

2008 年 9 月 3 日 2331 - 2727 UT のデータ:
/radar07/data/Aurora/Tjornes/20080903/disk1/sec
2006 年 9 月 6 日 2330 - 2726 UT のデータ:
/radar07/data/Aurora/Tjornes/20080906/disk1/sec

注1: 2008 年のデータは, それぞれのディレクトリに YYYYMMDD_HHMMSS.jpg というファイル名前で jpg 画像として保存されている.
注2: 2008 年のデータについては, 24 UT 以降のデータの時刻は前日の時刻と連続になるように設定してある.

これらの gif, jpg 画像を直接見ることも可能である. display という画像表示コマンドを用いる.
$ cd /radar07/data/Aurora/Tjornes/2006/Sep/20060924_211000_231000
$ display 20060924_212000.gif

解析の準備

作業用ディレクトリの作成

ここでは, 作業用ディレクトリを ~/work/atv として説明する.

$ ssh -X darndebXX (darndeb01-05 までのどの計算機でも OK. 処理が速いのは darndeb01)
$ mkdir -p ~/work/atv
$ cd ~/work/atv

解析用プロシージャの用意

Tjornes ATV データ解析用の IDL プロシージャにシンボリックリンクをはる.
$ ln -s /radar01/work/Aurora/Tjornes/Visualize/tjornes_atv_routines.pro

注: シンボリックリンクをはることで, 別のディレクトリにあるプロシージャが作業用ディレクトリに存在しているかのようにできる.

ついでに, サンプルバッチファイルをコピーしておく.
$ cp /radar01/work/Aurora/Tjornes/Visualize/*.go .

Go を起動する

$ go

プロシージャのコンパイル

Tjornes ATV データ解析用の IDL プロシージャをコンパイルする
Go > .run tjornes_atv_routines

データ画像ファイルの読み込み

まず, 2006 年のデータについて読み出しを行ってみる. 以下のディレクトリにあるデータファイルを読み込むことを考える.
/radar07/data/Aurora/Tjornes/2006/Sep/20060923_212000_232000

このディレクトリにある全てのデータ(2120-2320 UT)を読む場合は,
Go > file_atv,'2006/Sep/20060923_212000_232000'

全部を読むのには時間がかかるので, その一部だけ(例えば 2130-2150 UT)を読む場合は, dura というキーワードを使って, データ読み出しの開始時刻・終了時刻を設定する.
Go > file_atv,'2006/Sep/20060923_212000_232000',dura=[213000,215000]

デフォルトでは 1 秒毎に画像ファイルを読む設定になっているが, 1 分毎に画像を読み込みたい場合は, min というキーワードを設定すればよい.
Go > file_atv,'2006/Sep/20060923_212000_232000',/min

ここで用いた例は, file_20060923_atv.go というバッチファイルを使うことで実行できる.
Go > @file_20060923_atv.go

次に, 2008 年のデータ(jpg 形式)について読み出しを行ってみる. 以下のディレクトリにあるデータファイルを読み込むことを考える.
/radar07/data/Aurora/Tjornes/20080903/disk1/sec

このディレクトリにある全てのデータ(2120-2320 UT)を読む場合は,
Go > file_atv,'20080903/disk1/sec'

全部を読むのには時間がかかるので, その一部だけ(例えば 2600-2700 UT)を読む場合は, dura というキーワードを使って, データ読み出しの開始時刻・終了時刻を設定する.
Go > file_atv,'20080903/disk1/sec',dura=[260000,270000]

デフォルトでは 1 秒毎に画像ファイルを読む設定になっているが, 1 分毎に画像を読み込みたい場合は, min というキーワードを設定すればよい.
Go > file_atv,'20080903/disk1/sec',/min


2 次元全天画像の可視化

全天画像を出力する

まずは何も考えずに, 以下のコマンドを実行してみる.
Go > plot_atv

注1: これで読み込んだデータの先頭のイメージが出力される. 座標は "上-下" が "北-南", "左-右" が "東-西" を表す. この方角は地理的なものである. ここで, Tjornes のカメラは実際には, 画像全体が地理的な北に対して 5 度ほど西に傾いているので, 東西・南北のグリッドもやはり西に 5 度だけ傾いていることに注意する.

注2: 点線で書かれた同心円は, 天頂角(天頂からの角度: 0 度が天頂, 90 度が地平線)を示しており, 内側から 15, 30, 45, 60, 75 度となっている. 画像の端の灰色でマスクされた部分は, 天頂角が 90 度より大きい場所で, 魚眼レンズの視野の外になる.

地上から空を見上げた画像であるため, 宇宙から見下ろした画像とは東西が逆になっている. 画像の東西を反転させて, 宇宙から見たような表示にするには, irev キーワードを設定する. 当たり前だが, 南北は反転しない.
Go > plot_atv,/irev

プロットする時刻の変更

プロットする時刻を例えば 21:40:00 UT に変更したい場合は, まず以下のコマンドを実行して, "現在のイメージの時刻" を変更する.
Go > go_time_atv,214000

注: 24 時以降のデータの場合は, go_time_atv,264000 のように指定する必要がある(2008 年のデータでは特に注意)

その上で, 再度以下のプロットコマンドを実行すればよい.
Go > plot_atv

注: この時刻変更コマンドを使えば, 読み込んだデータの時間幅の範囲内で自由に "現在のイメージの時刻" を変更することができる. 必ず, 6 桁で時刻を指定することに注意する. ただし, 読み込んだデータの時間幅の外に時刻を変更しようとしても "scan out of range!" というエラーとなる.

カラースケール・カラーバーの変更

デフォルトでは, オーロラの輝度に色を付ける際の最小値・最大値をそれぞれ 0, 800 に設定してあるが, 以下のコマンドで変更をすることができる. 例えば, 100 から 600 の間でカラースケールを設定したい場合は, 以下のようにすればよい.
Go > set_scale_atv,100,600

その後に, 再度 plot_atv コマンドを実行すれば新しいカラースケールで画像が表示される.

また, デフォルトではレインボーのカラーテーブルが使われているが, 使用するカラーテーブルの番号を ctab というキーワードで設定することもできる. IDL では, カラーテーブルに 0 から 39 までの間の番号が割り当てられており, これらの数字を指定することで変更することができる.

白黒にしたい場合は,
Go > plot_atv,ctab=0

白青にしたい場合は,
Go > plot_atv,ctab=1

白赤にしたい場合は,
Go > plot_atv,ctab=2

一般にオーロラのパンクロマティックな(波長毎に分光していない)観測では, 白黒(ctab=0)を使うことが多い.

複数枚のイメージを出力する

以下のようなコマンドを実行すると,
Go > plot_atv,2,3

横に 2 枚, 縦に 3 枚(計 6 枚)の時間的に連続するイメージが 1 つのウィンドウに出力される.
Go > plot_atv,3,4

とすれば, 横に 3 枚, 縦に 4 枚(計 12 枚)の連続するイメージが 1 つのウィンドウに出力される. このように plot_atv コマンドをプロット枚数を指定して実行すると "現在のイメージの時刻" が 1 秒ずつ進んでいくことに注意する.

時刻が進むのを n 秒おきにしたい場合は, 以下のように skip というキーワードを指定すると良い.
Go > plot_atv,2,3,skip=n

注: ここで n は 2 とか 3 などの整数値である. 画像をスキップしながら概況をチェックしたい場合に便利かもしれない.

好みの場所にパネルを出力する

plot_atv_panel というコマンドを用いると好みの場所にパネルを出力することができる. 例えば, 画面全体を横に 2 つ, 縦に 3 つに分割してその左上にパネルを出力したい場合は, 以下のようにする.
Go > plot_atv_panel,2,3,0,0

これらの _panel 系のコマンドは, 実行してもウィンドウをリフレッシュしないので(したい場合は clear_page を実行), 続いて以下のコマンドを実行すると今度は右下にパネルが出る.
Go > plot_atv_panel,2,3,1,2

この 3 番目, 4 番目の引数を変えるとパネルの出力位置がいろいろ変わる.

ここで注意したいのは, _panel 系のコマンドでは "現在のイメージの時刻" は自動的に進まないということである. 強制的に進ませる場合は, 以下のコマンドを用いる.
Go > next_image

また, _panel 系のコマンドでは, カラーバーも自動的に出力されないので, 手動で書く必要がある.
Go > plot_atv_colour_bar

以下の例で示されるように, 引数として数字を 2 つ指定することで, 配置をいろいろ変えることができる.
Go > plot_atv_colour_bar,2,0
Go > plot_atv_colour_bar,3,1
Go > plot_atv_colour_bar,4,2

SuperDARN の視野のオーバープロット

全天画像の上に SuperDARN Pykkvibaer レーダーの観測視野(myopic モードのみに対応)を上書きすることもできる. まず plot_atv_panel で全天画像を書いた後に, 視野を書くためのコマンドを実行する.
Go > clear_page
Go > plot_atv_panel
Go > overlay_myopic_fov

レンジ方向 15 gate 毎に線が引かれている. 特定の beam の特定の gate をプロットしたい場合は以下のようなキーワードで指定する. これで, beam 7 の gate 0 から 30 までが四角で囲まれる.
Go > overlay_myopic_fov, beams_plot=7,gates_plot=[0,30]

SuperDARN 視野の上書きは plot_atv コマンドでも myopic_fov というキーワードを指定することで行える.
Go > plot_atv,/myopic_fov

irev で画像の東西を反転した場合は, レーダー視野もそれに同期して反転される.
Go > plot_atv,/myopic_fov,/irev

SuperDARN のデータのオーバープロット

観測視野だけでなく観測データを上書きすることもできる. この場合, 全天カメラのデータ時間幅に対応したレーダーデータを事前に読み込んでおく必要がある.
Go > archive,'pyk',2006092320,4
Go > make_mono,-6401

このデータ読み出しプロセスは, file_20060923_cha.go(Channel B を読みたい場合は file_20060923_chb.go)というバッチファイルで行える.
Go > @file_20060923_cha.go

まず, plot_atv_panel で全天画像を書く.
Go > clear_page
Go > plot_atv_panel

続いて, レーダーデータを上書きするためのコマンドを実行すると, 全天画像の時刻にもっとも近いレーダー scan のデータが上書きされる.
Go > overlay_myopic_data

デフォルトでは pwr_l が出力されるが, vel もしくは width_l コマンドを用いてパラメータの種類を変えることもできる. SuperDARN データの上書きは plot_atv コマンドでも myopic_data というキーワードを指定することで行える.
Go > plot_atv,/myopic_data

irev で画像の東西を反転した場合は, レーダー視野もそれに同期して反転される.
Go > plot_atv,/myopic_data,/irev

ケオグラムのプロット

サマリーケオグラムのプロット

まずは何も考えずに以下を実行する.
Go > plot_atv_keo

上から, 南北のケオグラム(断面の時系列), 東西のケオグラム, Pykkvibaer レーダーの beam 7 に沿ったケオグラムが順に出力される. このプロットで横軸は時間(UT: 世界時), 縦軸は天頂角である. 言うまでもないが, 先ほどまでの全天画像プロットと同じで, set_scale_atv や ctab キーワードを用いてカラーの調整を行うことができる.

プロットするケオグラムの時間幅は, デフォルトでは読み込んだデータの時間幅になるが, 以下のコマンドでその調整を行うことができる. 例えば 21:30:00 UT から 21:40:00 UT までをプロットしたい場合は, 以下のように, 開始時刻・終了時刻を指定した後で, plot_atv_keo を実行すればよい.
Go > time_atv,213000,214000

注: 24 時以降のデータを扱う場合は, time_atv,260000,270000 のようにする必要がある(特に 2008 年のデータは注意)

好みの位置にパネルを出力

2 次元画像のプロットと同様, plot_atv_keo_panel という _panel 系のコマンドを用いることで好みの位置にケオグラムを出力することができる.
Go > plot_atv_keo_panel,1,3,0,0

これで, ウィンドウを縦に 3 つに割って, 一番上にパネルが出力される. デフォルトでは, 南北断面がプロットされるが, 出力する断面を変更したい場合は, line_id で指定する.

南北断面:
Go > plot_atv_keo_panel,1,3,0,0,line_id=0

東西断面:
Go > plot_atv_keo_panel,1,3,0,0,line_id=1

beam 7 に沿った断面:
Go > plot_atv_keo_panel,1,3,0,0,line_id=2

また, no_x というキーワードを指定することで, X 軸を書かないようにすることもできる. パネルを縦に並べる場合に使うことがある.
Go > plot_atv_keo_panel,1,3,0,0,line_id=2,/no_x

画像上の点の時系列ラインプロット

天頂における輝度の時系列をプロット

とりあえず何も考えずに以下を実行する.
Go > plot_atv_line

これで, 天頂(zenith angle=0.0, azimuth angle=0.0)におけるオーロラ輝度の時系列データが表示される. 表示する zenith angle(天頂角), azimuth angle(方位角: 北から時計回りにとった角度)は以下のようなキーワードをつけることで指定する.
Go > plot_atv_line,zan=10.0,azm=90.0

また, plot_atv で全天画像を表示した後で, click というキーワードをつけて実行し, 表示されている全天画像上の場所をマウスでクリックすると, その点における輝度の時系列が表示される.
Go > plot_atv_line,/click

好みの位置にプロット

これまでと同様, plot_atv_line_panel という _panel 系のコマンドで好みの位置にプロットをすることができる.
Go > plot_atv_line_panel,1,4,0,2

キーワードとして指定できるものは, 縦軸の範囲を変える yrange, X 軸の出力を抑制する no_x, 線の色を指定する colour, 線の太さを指定する thick などである. 例えば以下のように用いる.
Go > plot_atv_line_panel,1,3,0,0,yrange=[0,800],colour=252,thick=5,/no_x

ムービーの作成

ムービーは連続した静止画像から作成する. ムービーを作成する画像が格納されているディレクトリを指定して実行する.
Go > make_movie,'2006/Sep/20060923_212000_232000'

上で指定したディレクトリに入っている 1 秒毎の画像が全て mpeg ムービーとなって出力される. ただし, 1 秒毎の画像を用いるとムービーが長大になるうえ, 作成に時間もかかるのであまりおすすめできない. 画像を間引いて作成するには以下のようなオプションを用いる.

10 秒毎の画像を用いる場合は(10 倍速), fast というオプションを
Go > make_movie,'2006/Sep/20060923_212000_232000',/fast

1 分毎の画像を用いる場合は(60 倍速), very_fast というオプションを用いる.
Go > make_movie,'2006/Sep/20060923_212000_232000',/very_fast

また, 以下のように, ムービーの開始・終了時刻を 6 桁の時刻で指定することも可能である.
Go > make_movie,'2006/Sep/20060923_212000_232000',dura=[213000,220000]

注: ムービーを作成する場合はカラーテーブルはモノクロしか使えないようになっており, ctab キーワードは用いられないことに注意する.

ムービーはカレントディレクトリに作成される. ファイル名前は, 例えば以下のようになる.
20060923_213000_220000_1sec.mpeg

順に, 日付・開始時刻・終了時刻・サンプリングレートとなっている. 作成されたムービーは, Scp で Windows へ転送し, 再生したほうがベターである. ムービーを作成に関しては movie_20060923.go というバッチファイルを参照されたい.


Go back to Keisuke Hosokawa's Webpage