UEC all-sky airglow imager (SVALCAM) visualization routine: go-scm

last updated on June 18th, 2012

Norway 北部 Svalbard 島の Longyearbyen (地理緯度 78.21 度, 地理経度 15.55 度, 磁気緯度 75.32, 磁気経度 111.00) に設置されている高感度全天大気光 Imager (SVALCAM) の観測 data を可視化する IDL routines の使い方を説明します.

観測 data は, SVALCAM Data Quick Browser で公開されています.



1. startup the routines


まず, 以下のように darndeb02 に ssh login し,

         $ ssh -XC darndeb02.ice.uec.ac.jp

続いて, 以下のようにして go を起動します.

         $ go

その後に, svalcam_routines.pro という component を以下のようにして compile してあげてください. 必要な IDL routines が順に compile されます.

         Go> .run  svalcam_routines

これで必要な IDL の procedure が全て compile されて使用可能な状態になります. この svalcam_routines.pro の実体は,

           /radar01/work/Svalcam/Visualize/svalcam_routines.pro

にあります. 自分でこの procedure を customize したい場合は, 適宜自分の directory に copy して編集してください.



2. load the data


SVALCAM は, 複数の分光 filter を用いて, 異なる波長の光を別々に捕らえることができます. 我々が主として用いるのは, 緑色の光 (green-line: 557.7 nm) と赤い光 (red-line: 630.0 nm) の観測 data です. 前者は高度 110 km 程度, 後者は高度 250 km 程度で発光していると考えられています.

観測 data を読み出す前に, どちらの波長の data を可視化するかを設定します. その設定には以下の command を用います.

set_flt_scm, 'red' | 'gre'

もし, 557.7 nm の green line の data を読みたい場合は, 以下のようにします.

          Go > set_flt_scm, 'gre'

630.0 nm の red line の data を読みたい場合は, 以下のようにします.

          Go > set_flt_scm, 'red'

また, 各波長の観測にはさらに 2 つの type の data があります. Raw count と絶対発光強度 (absolute intensity) です. 前者は imager からの出力値そのもの, 後者は絶対発光強度に変換したもの(単位は Rayleigh)の 2 つです. Data を読み出す前に, 以下の command を用いて, どちらの data を読み出すかを指定します.

set_typ_scm, 'raw' | 'abs'

もし, raw count の data を読みたい場合は, 以下のようにします.

          Go > set_typ_scm, 'raw'

絶対発光強度に変換された data を読みたい場合は, 以下のようにします.

          Go > set_typ_scm, 'abs'

続いて, 観測 data の読み出しを行います. 観測 data の読み出しには以下の command を用います.

file_scm, 'date', st_hour, no_hour

例えば, 2011 年 12 月 21 日の 21 UT から 2 時間分の data を読み込むには, 以下のようにします. 日付は, 文字列変数で与えなければならないので, 前後の quotation を忘れないように気をつけてください.

          Go > file_scm, '20111221', 21, 2

読み出した画像の file 名が順に画面上を流れて行き, 最後に読み出した data に関する情報が表示されます. ここで注意して欲しいのは, 一度に読み込める data は 4 時間までであるということです. それ以上の data を読み込みたい場合は 64-bit 計算機である darndeb03 を使ってみてください. 8 時間まで読み出すことができます.

これで、大気光 data が計算機の memory の上に乗りました. go-scm では, data を計算機の memory の上に置いたまま, 様々な作業を行っていきます. plot の形式を変えたい時にも, 改めて data を読み込むことはしません. ただし, red-line と green-line の data を同時に memory に読み込むことはできません. 解析する波長を変える場合は, 必ず set_flt_scm を使って解析波長の変更を行ったうえで, file_scm を用いて data の loading を行ってください.



3. navigating images


通常の解析では green-line もしくは red-line の画像を用います. red-line は 4 秒毎, green-line は 1 分毎に画像が取得されています.

まずは, どの時間に画像が取られているかを確認してみます. 以下の command を用います.


print_scm_info, image_info=image_info

まず keyword を何も指定せずに実行すると以下のような情報が得られます. これは data を読み出すために file_scm という command を使ったとき, 最後に表示された message と同じものです.
---------------------------------------------------------------------------
UEC Svalbard All-sky Airglow Imager (SVALCAM)                  Longyearbyen
---------------------------------------------------------------------------
Date                                                         20111221 (354)
Current Data Type                                                  RAW-data
Filter Type                                             Filter 2 (630.0 nm)
No. Available Images                                            1677 images
Current Image                                                  0000th image
Current Image Time                                              2100 01s UT
Time limits for Keogram                                  0000 UT to 2400 UT
---------------------------------------------------------------------------
それぞれの意味している内容を簡単にまとめると以下のようになります.

Date: 読み込んだ data の日付. この例では 2011 年 12 月 21 日. () の中は通し日 (Julian Day).
Current Data Type: data の type. RAW, ABS の 2 種類がある.
Filter Type: 読み込んだ data の波長 (Filter 2: red-line, Filter 3: green-line ....)
No. Available Images: 読み込まれた画像 image の数
Current Image: 現在の image. plot command を実行して表示される image.
Current Image Time: Current image に対応する時刻 (UT).
Time limits for Keogram: keogram で表示を行う場合の横軸 (UT) の範囲.

以下では, 各時刻に取得された個々の画像を 2 次元的に表示する手順を解説しますが, どの時刻の画像を表示するかを指定する場合には以下の command を用います.

go_time_scm, hhmmss

例えば 213000 UT の画像へ jump するには以下のようにします.

          Go > go_time_scm, 213000

もし, 画像が読み込まれていないもしくは観測が行われていない時刻に jump しようとした場合は以下のような警告が出て, 移動ができませんので注意してください.

          Scan out of range!



4. plot the data in all-sky image


data の読み込みが終わったら、何にも考えずに以下の command を実行してみてください.

          Go > plot_scm

一枚の panel に data が全天画像として表示されたかと思います. 上方向が磁北となっています.

もちろん, 複数の panel を並べて表示することも可能です.

plot_scm, xmaps, ymaps

xmaps に横方向の panel の数, ymaps に縦方向の panel の数を指定してやります. 以下のように実行すると,

          Go > plot_scm, 2, 3

2 行 3 列の panel 群 (計 6 枚) が出てくるはずです. この command を実行しているときは, 現在の画像 (Current Image) は, increment (1 つずつ進んでいく) していっていることに注意してください. また, xmaps, ymaps に何も指定しない場合は, 上の最初の例のように 1 枚の panel が表示されます.

お好みの位置に panel を 1 枚だけ表示するには以下を用います.

plot_scm_panel, xmaps, ymaps, xmap, ymap

xmaps, ymaps はそれぞれ横方向, 縦方向の panel の数です. xmap, ymap ではその何番目に panel を置くかを指定します. 画面を上下・左右に 3 分割 (9 panel 分) して, 真ん中に panel を plot する場合は以下のようにします.

          Go > clear_page
          Go > plot_scm_map_panel, 3, 3, 1, 1

xmap, ymap は, 0 から始まることに注意してください.



5. plot the data in geographic and geomagnetic coordinates


全天画像はあくまで観測点から空を見上げたときにどう見えるかを表示したものです. 大気光の発光高度を仮定し, 全天画像 data を緯度・経度の map 上に展開することで, 他の観測と比較したりすることが可能となり, Science に使える data となります. ここでは, その展開の仕方を解説します.

まずは, 何も考えずに以下を実行します.

          Go > plot_scm_map

縦軸に地理緯度, 横軸に地理経度をとった座標系の上に data が表示されました.

上書きされているのは, imager の天頂からの角度 (zenith angle) です. 全天 imager なので, 天頂 (0度) から地平線 (90 度) まで data を取得することができますが, 一般には 地平線に近い部分の data (zenith angle 80 度以上) は誤差が大きく, 信頼度が落ちると考えられています.

Default では, red-line の場合, 発光高度は 250 km, green-line の場合は, 110 km と仮定して全天画像 data の展開を行っていますが, この仮定高度を変えることももちろん可能です. 以下の command を用います.

file_scm_fov, alt=alt

alt という keyword を指定しなければ, 上で説明した default の発光高度が仮定されます. 以下のように, alt に, 自分の求める発光高度を入れてcommand を実行すれば,

          Go > file_scm_fov, alt=220

この例では, 発光高度を 220 km に設定しました (現時点では上は 270 km 高度までしか対応していないので注意してください). この設定を行ったうえで, 再度 plot_scm_map を実行すれば, default とは異なった結果が得られるはずです.

4. で説明した plot_scm と同じで, 以下のようにして, 複数の panel を plot することが可能です.

plot_scm_map, xmap, ymap

2 行 3 列で panel を並べたい場合は以下のようにします.

          Go > plot_scm_map, 2, 3

また, 横軸・縦軸を地理座標ではなく磁気座標にしたい場合は以下の command を実行してから plot_scm_map を再度実行します.


set_coords_scm, 'geog' | 'mag'

磁気座標にする場合は,

          Go > set_coords_scm, 'mag'

地理座標に戻す場合は,

          Go > set_coords_scm, 'geog'

お好みの位置に panel を 1 枚だけ表示するには以下を用います.

plot_scm_map_panel, xmaps, ymaps, xmap, ymap

xmaps, ymaps はそれぞれ横方向, 縦方向の panel の数です. xmap, ymap ではその何番目に panel を置くかを指定します. 画面を上下に分割して, 上半分に panel を plot する場合は以下のようにします.

          Go > clear_page
          Go > plot_scm_map_panel, 1, 2, 0, 0

xmap, ymap は, 0 から始まることに注意してください.



6. plot the data in polar panel


何にも考えずに以下の command を実行してみてください.

          Go > plot_scm_polar

全天画像 data が, 極域全体を北から見下ろした format で表示されたと思います. 上が 12 MLT, 下が 24 MLT です.

plot_scm の時と同じで, 複数の panel を並べて表示することも可能です.


plot_scm_polar, xmaps, ymaps, clip=clip, coast=coast

xmaps に横方向の panel の数, ymaps に縦方向の panel の数を指定してやります. 以下のように実行すると,

          Go > plot_scm_polar, 2, 3

2 行 3 列の panel 群(計 6 枚)が出てくるはずです. この command を実行しているときは, 現在の scan は increment (1 scan ずつ進んでいく) していっていることに注意してください. また, xmaps, ymaps に何も指定しない場合は, 上の最初の例のように 1 枚の panel が表示されます.

ここで以下のように clip という keyword をつけて実行すると, SVALCAM の視野の周辺のみが表示されます.

          Go > plot_scm_polar, /clip

この場合もやはり上が 12 MLT, 下が 24 MLT であることには変わりはありません.

また, coast という keyword をつけると地図が上書きされます.

          Go > plot_scm_polar, /coast

これまでの 2 次元 plot と同じで, お好みの位置に panel を 1 枚だけ表示するには以下を用います.


plot_scm_polar_panel, xmaps, ymaps, xmap, ymap, clip=clip, coast=coast

xmaps, ymaps はそれぞれ横方向, 縦方向の panel の数です. xmap, ymap ではその何番目に panel を置くかを指定します. 画面を上下に分割して, 上半分に panel を plot する場合は以下のようにします.

          Go > clear_page
          Go > plot_scm_map_panel, 1, 2, 0, 0


xmap, ymap は, 0 から始まることに注意してください.



7. setting data type and maximum luminocity


全天 imager の画像 data には 2 つの種類があります.

          1. raw: 生 data. SVALCAM で取得された data そのもの. 背景の明るさなどは差し引いていない.
2. abs: raw data に対して, 感度校正を行い絶対発光強度 (単位は Rayleigh) に変換したもの. 通常はこれを用いる.

これら 2 種類の data のうち, どの type の data を用いるかを設定するには以下の command を用います.

set_typ_scm, 'raw' | 'abs'

どちらのデータを読み込むかはデータの読み出しを行う前に指定する必要があることに注意してください.

これらの 2 種類の data はそれぞれに強度の値が大きく異なります. 最大値で言うと, raw は 10000 count 以上, abs は数 1000 Rayleigh 程度になっています.

これらを図にする場合は, それぞれに最適の最大値・最小値で colour scale を調整して表示してやる必要があります. 最大値・最小値を設定するには以下の command を用います.


set_lev_scm, min, max

例えば, abs data を plot する場合, 最大値を 500 Rayleigh にしたい場合は, 以下のように用います.

          Go > set_lev_scm, 0, 500

ここで設定した最大値・最小値は, set_typ_scm で data 形式を変更して再読み込みを行うと default の値に戻ります. default の値は以下のようになっています.

   data type 最小値 最大値
       1. raw data 0 cnt 65000 cnt
2. abs data 0 Rayleigh 3000 Rayleigh



8. plot the data in keogram format


これまでは, 画像 data を 2 次元で表示する方法を解説してきましたが, ここでは画像をある断面で切り取って時系列に並べた plot (以下ではこの形式の plot を keogram と呼びます) の作成方法を解説します.

まずは, 何も考えずに以下の command を実行してみてください.


plot_scm_keo

4 枚の panel が出てくると思います. 元となる data は全て同じで, 横軸はすべての panel で UT となっていますが, 4 枚の panel で切り取る断面が異なっています. 上から下に以下のような断面で切り取っています. 言うまでもないことかもしれませんが, 縦軸の中央が天頂となっています.

SE to NW: 南東 - 北西断面 0
SW to NE: 南西 - 北東断面 1
South to North:      南北断面 2
East to West: 東西断面       3

切り取る断面によって, data の見え方が変わってくると思います. ここで, plot する時間幅を変えるには以下の command を用います.

time_scm, hhmm1, hhmm2

1000 UT から 1200 UT までプロットしたい場合は,

          Go > time_scm, 1000, 1200
          Go > plot_scm_keo

また, 任意の断面だけを plot するには以下の command を用います.

plot_scm_keo_panel, xmaps, ymaps, xmap, ymap, keo=keo, no_x=no_x, no_bar=no_bar

xmaps, ymaps はそれぞれ横方向, 縦方向の panel の数です. xmap, ymap ではその何番目に panel を置くかを指定します.

また, keo という keyword に番号を指定することで, どの断面で切り取るかを指定します. 何も指定しない場合は上の表の一番上の の SE to NW 断面が選択されます. 断面を指定する番号は上の表の右端のようになっています.

例えば, 画面を上下に 4 分割し, 上から「南北断面」「東西断面」「南東-北西断面」「南西-北東断面」を順に表示するには以下のようにします.

          Go > clear_page
          Go > plot_scm_keo_panel, 1, 4, 0, 0, keo=2
          Go > plot_scm_keo_panel, 1, 4, 0, 1, keo=3
          Go > plot_scm_keo_panel, 1, 4, 0, 2, keo=0
          Go > plot_scm_keo_panel, 1, 4, 0, 3, keo=1



9. Misc routines


ここでは, 上で解説した以外で使いそうな command についてまとめます.

colour bar を書くには以下の command を用います.


plot_scm_colour_bar, ymaps, ymap

ymaps は縦方向に何分割するか, ymap はその何番目に bar を書くかをあらわします. 以下のように何も引数を取らずに実行した場合,

          Go > plot_scm_colour_bar

画面の右端に 1 つの bar が出力されます. また, 以下のようにすると右端を縦に 3 分割してその一番上に bar が出力されます.

          Go > plot_scm_colour_bar, 3, 0

この場合も ymap は, 0 から始まることに注意してください.

plot に title をつける場合は以下の command を用います.


plot_scm_title, long=long

_panel がついた command では title が出ませんのでそのような場合に用います. long という keyword は横長の画面の場合につけると balance が多少良くなります.


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