SSWの挙動を確認するために、過去にIDLで作成した図を再度作成する。
画像は、Yamamoto & Sakurai (2009, PASJ, 61, 75)の図3である。(以下の図)
オリジナルのEPSファイルをconvertコマンドでJPGにしたら、こんな感じになってしまった。
イベントはAR10486で起きたX10フレアで、TRACEで観測された1600Aの画像に、MDIの磁場強度の輪郭線を書いている。
この図の作成の要点は、データの読み込み、マップ化、EPSファイルの作成である。
MDIデータの読み込みとマップ化
まずは、MDIについて、データの読み込みとマップ化を試みた。
MDIのFITSデータの読み込みについてはエラーメッセージは出なかった。
複数のファイルを一度に読み込む'mreadfits'も機能している。
ただ、データの内容については、おかしいかもしれない。
私の記憶では、MDIデータを読み込んだ後のアレイ(e.g., float[1024,1024])で、光球面の外には、float最小値である-32000?程度の値が入っているはずだったが、そこに全て'nan'が入っていた。
マップ化でエラーメッセージ?が出た。
% Compiled module: GET_FITS_CDELT.
% Compiled module: REP_TAG_NAME.
% Compiled module: IS_NUMBER.
% Compiled module: IS_NUMBER2.
% Input conversion error.
% Type conversion error: Unable to convert given STRING: 'cdel1' to FLOAT.
% Input conversion error.
% Type conversion error: Unable to convert given STRING: 'cdel2' to FLOAT.
% Input conversion error.
% Type conversion error: Unable to convert given STRING: 'dxb_img' to FLOAT.
% Input conversion error.
% Type conversion error: Unable to convert given STRING: 'dyb_img' to FLOAT.
% Compiled module: GET_FITS_CEN.
STRINGをFLOATに変換できないと言っているのは、is_number2.pro中の'finite'関数である。
index2map.pro -> get_fits_par.pro -> get_fits_cdelt.pro -> rep_tag_name.pro -> is_number.pro -> is_number2.pro
結論として、これらのメッセージは無視して良い。
このようにして作ったマップを表示すると、以下のようになる。
<<新版、8/6, 13時台>>
上に書いたように、光球面外の値がnanになっているので、以下の処理をした。
> w0=where(finite(data0,/nan))
> data0[w0]=-30000.
±3000Gで表示している。
なお最近のplot_mapは、キーワード無しで使うと、エラーを吐いて止まってしまう。
ベクトル化とかplot_map_index.pro ってなんなんすか、Zarroさん。
<<旧版、8/6, 1時台>>
この図では、光球面の外側も黒白カラーテーブルの中間色である灰色になってしまっている。
以前作った時は、ここが最低値の黒色になっていたはずである。(過去に作成した図で確認した)
そこで、データのnanの領域を-30000などの数値に変えようとしたがうまくいかない。
以下、data0がデータ、map0がマップ構造体である。
GDL> print,data0[0,0]
nan
GDL> print,data0[10,10]
nan
GDL> print,map0.data[10,10]
nan
GDL> w0=where(data0 eq !VALUES.F_NAN)
GDL> help,w0
W0 LONG = -1
GDL> print,data0[0,0],!VALUES.F_NAN
nan nan
GDL> help,data0[0,0],!VALUES.F_NAN
<Expression> FLOAT = nan
<Expression> FLOAT = nan
GDL> print,(data0[0,0] eq !VALUES.F_NAN)
0
whereと!VALUES.F_NANを使って、nanの領域を取り出せるかと思ったら失敗。
何より困った事に、データ中のnanとシステム変数のnanが一致しない。
なんか間違えてるかな?
0 件のコメント:
コメントを投稿