CODE FOR DATA ANALYSIS

画像データについて

Tromsoe における ATV, WTV の観測データは, jpg 形式の静止画に変換されて以下のディレクトリ以下に格納されている.

/radar07/data/Aurora/Tromsoe

このディレクトリには, 観測された晩の日付ごとにデータが格納されている.

$ cd /radar07/data/Aurora/Tromsoe
$ ls
$ 20071113 20080307 20080308 20080311

各日付のディレクトリ以下に, atv, wtv というサブディレクトリがあり, それぞれ ATV(全天カメラ), WTV(狭視野カメラ) のデータが格納されている.

$ cd /radar07/data/Aurora/Tromsoe/20080308
$ ls
$ atv wtv

オリジナルのビデオデータは複数の DVD ディスクに分けて Tromsoe から持ち帰られており, DVD ディスクごとに異なるディレクトリに格納されている.

$ cd /radar07/data/Aurora/Tromsoe/20080308/atv
$ ls
$ disk1 disk2 disk3

また, オリジナルの ATV のビデオデータは, 30 Hz の時間分解能で取得されている. ビデオをキャプチャする時間分解能によって 2 種類のデータ(sec, htr)を用意している. sec データは, 1 秒ごとにサンプリングしたもの, htr データはオリジナルの時間分解能と同じ 1/30 秒ごとにサンプリングしたものである. 各ディスクのディレクトリ以下の sec, htr というサブディレクトリに分けて保存されている.

$ cd /radar07/data/Aurora/Tromsoe/20080308/atv/disk1
$ ls
$ htr sec

例えば, 20080308 の晩の ATV 観測の 1 番目の DVD ディスクに入っているデータを 1 秒ごとにサンプルしたデータは以下のディレクトリにある.

格納されている jpg ファイルを確認するには以下のようにする.
$ cd /radar07/data/Aurora/Tromsoe/20080308/atv/disk1/sec
$ ls

注1: データ量(jpg ファイルの数)が膨大であるため, ls の結果が帰ってくるまでしばらく時間がかかる.
注2: データは, それぞれのディレクトリに YYYYMMDD_HHMMSS.jpg というファイル名前で jpg 画像として保存されている.
注3: 24 UT 以降のデータの時刻は前日の時刻と連続になるように設定してある. 日付が変わった後のデータを解析する場合に注意を要する.

これらの jpg 画像を直接見ることも可能である. display という画像表示コマンドを用いる.
$ cd /radar07/data/Aurora/Tromsoe/20080308/atv/disk1/sec
$ display 20080308_204000.gif

注1: この例では, 2008 年 3 月 8 日の 2040 00s UT のデータを表示している.
注2: htr データは, ファイルの数が膨大(1 時間で 約 10 万枚)であるため, ls でリストを確認したり, display で画像を表示することはしないほうがよい(数十分はかかる).
注3: htr データのファイル名には, 秒の部分が小数点第 2 位まで含まれていることに注意する. 具体的に言うと, YYYYMMDD_HHMMSS.MS.jpg のようになっている.

解析の準備

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

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

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

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

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

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

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

Go を起動する

$ go

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

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

データ画像ファイルが格納されているディレクトリのチェック

20080308 の晩の観測データをプロットすることを考える. まず, どの時間帯のデータがどの DVD ディスクに入っているかをチェックする.

Go > list_atv,'20080308'
---------------------------------------------------------------------------------
Contents of data disks: 20080308
---------------------------------------------------------------------------------
20080308/atv/disk1: 1840 00s UT => 2120 03s UT
20080308/atv/disk2: 2120 05s UT => 2340 22s UT
20080308/atv/disk3: 2400 11s UT => 2733 37s UT

この出力結果から, 30080308 の晩の ATV データは 3 つの DVD ディスクに対応するディレクトリに分けて格納されていることが分かる. また, それぞれのディレクトリに含まれている画像データの開始時刻と終了時刻を確認することができる.

例えば, 20080308 の 2656-2658 UT(20080309 の 0256-0258 UT に対応)の 2 分間のデータに注目する場合は, その時刻に対応する画像データは, 上のリストから 20080308/atv/disk3 に格納されていることが分かる. このデータ格納ディレクトリは, 以下で述べるデータ読み出しプロセスで必要となる.

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

まず, 20080308 の 2656-2658 UT の 1 秒値データ(sec データ)を読み出す場合を考える.

file_atv というコマンドの引数にデータが格納されているディレクトリを与え, dura というキーワードを用いて開始時刻・終了時刻を 6 桁で指定する.
Go > file_atv,'20080308/atv/disk3',dura=[265600,265800]

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

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

次に, 1/30 秒値データ(htr データ)について読み出しを行ってみる. filt_atv_htr というコマンドを用いる. 使い方は, 1 秒値を読むときに 用いた file_atv と同じである.
Go > file_atv_htr,'20080308/atv/disk3',dura=[265600,265800]

注: htr データはデータファイルの数が膨大であるため時間がかかる. 我慢.

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


2 次元全天画像の可視化

全天画像を出力する

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

注1: これで読み込んだデータの先頭のイメージが出力される. 座標は "上-下" が "北-南", "左-右" が "東-西" を表す. この方角は地理的なものである.

注2: 点線で書かれた同心円は, 天頂角(天頂からの角度: 0 度が天頂, 90 度が地平線)を示しており, 内側から 15, 30, 45, 60, 75 度となっている.

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

プロットする時刻の変更

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

注: 24 時以降のデータの場合は, go_time_atv,264000 のように指定する必要がある.

その上で, 再度以下のプロットコマンドを実行すればよい.
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

ケオグラムのプロット

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

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

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

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

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

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

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

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

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

EISCAT ビーム点における輝度の時系列をプロット

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

これで, EISCAT の沿磁力線方向(zenith angle=12.5, azimuth angle=185.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,'20080308/atv/disk3'

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

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

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

また, 以下のように, ムービーの開始・終了時刻を 6 桁の時刻で指定することも可能である.
Go > make_movie,'20080308/atv/disk3',dura=[263000,273000]

カラーテーブルのデフォルトはやはりレインボーになっているので, ctab キーワードに番号を指定することで好みのカラーテーブルを使うことができる.
Go > make_movie,'20080308/atv/disk3',dura=[263000,273000],ctab=0

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

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


Go back to Keisuke Hosokawa's Webpage