★MATLABで始めたノイズ解析遊びひょんなことから突然始めたMATLABによるノイズ解析ごっこですが、前回は「宇宙線二次粒子のヒットと思われるノイズ」の弁別とその特徴について考察ごっこしました。★標準偏差がゼロ・・・だと?ダークファイル中の各ピクセルの輝度値は、大なり小なり揺らいでいるのが普通です。ところが、前回ダークファイルの解析をしていた際に奇妙なピクセルを発見しました。これはASI1600MM-Proをー10°Cゲイン300で30秒露光したダークファイルを32コマ分解析したものですが、上記のように最低輝度側と最高輝度側に輝度揺らぎの標準偏差がゼロのデータが見られます。標準偏差がゼロということは、要するに常に一定輝度値を吐いているということになるのですが、本当にそうなのかを確かめるため、この『異常ピクセル』の座標を特定するためのコードをMATLABで書いて走らせてみました。やっていることは単純です。読み込んだFITSファイルから輝度値を読み込み、それぞれのピクセル毎に輝度メジアンと輝度揺らぎの標準偏差を演算します。次に、標準偏差がゼロになるデータを弁別し、そのピクセル座標を特定します。通常の言語なら、X座標やY座標でループを回して条件に合う座標値を収集しないといけないのですが、MATLABの場合は上記のように非常にシンプルなコードで演算が可能でした。(ある意味、RDBのクエリ処理に近いと言えるかもしれません)得られた座標値をそれぞれ変数に格納したところでプログラムは終了。ここからが個人的にMATLABの好きなところで、MATLABはインタープリタなので、コードを走らせた後でもコード中の変数をコマンドラインから呼び出して中身を見たりグラフにしたりすることができるのですよー。学生時代にFORTRANで観測データの解析をしていた時には(解析したデータを全部書き出しておかないと)後から「しまった。あの変数も考察に必要だった!!」などと再解析に陥りがちでした。解析演算に数日から数週間かかるようなデータの場合だと致命的で、学会前によく慌てたものです。その点、MATLABならコードを走らせた後でも変数の中身が見られます。輝度メジアンが100未満で標準偏差がゼロのピクセルのX座標(行列変数のYインデックス)をJ2という変数に格納しておけば、後からコマンドラインで「L2」と打つだけで、上記のようにその中身が吐き出されます。