【天文画像解析】インテンシティとフラックス間違いが招く悲劇

インテンシティとフラックスを間違えると
基本的な操作でバグを仕込んでしまうのでメモしておきます。

インテンシティマップは単位面積当たりにいるゴキブリの数(Jy/srとか星形成率面密度とか)で、
フラックスマップは1ピクセルにいるゴキブリの数(Jyとか星形成率とか)です。

インテンシティとフラックスの間違いが悲劇を生むのは、
例えばpythonでいうreproject_interpとかrebinのときです。

reproject_interpは別の画像のヘッダーに合わせてリサンプリングする操作で、
rebinは複数のピクセルの平均値で新しい画像を作る操作です。
どちらもピクセル数が減ります。

ピクセルの値が全て1の10x10ピクセルの画像を扱う場合を考えます。
100m^2に亘って1m^2当たりに1匹ずつのゴキブリがいるとして、
1ピクセルの大きさが1m^2の画像を考えているとすると、
インテンシティマップもフラックスマップも見た目は同じ画像になります。

reproject_interpやrebinをして
100ピクセルの画像を4ピクセルにすると、
結果得られるピクセルの値は全て1です。

インテンシティマップの場合、
ピクセル数が変わっても
単位面積当たりのゴキブリの数は変化しないので問題ありません。
フラックスマップの場合、
100ピクセルが4ピクセルになったときの1ピクセルのゴキブリの数は
25匹になるはずです。


そんなわけで、インテンシティマップはreproject_interpもrebinも何も考えなくて大丈夫です。
しかしフラックスマップでは、そのまま使うと値を過小評価してしまいます。
rebinの場合はピクセル数の変化分を掛ける必要があります。
(reproject_interpだと厳密にはピクセル数を掛けるだけでは正しくないので何か適当に考えてください。ピクセル数が極端に違わなければピクセル数を掛ければ良いかなと思います。)

reproject_interpやrebin以外でも、
銀河を空間分解した星形成率面密度マップから
銀河全体の星形成率面密度を求めるときは平均をとって、
星形成率マップから銀河全体の星形成率を求めるときは合計をとる、
みたいにちょっとややこしいので気を付けてください。

私も卒論のときにここでコケたのですが、
後輩の卒論生もコケていたので、たぶんここは要注意ポイントです。

ちなみにゴキブリは嫌いです。

コメント

このブログの人気の投稿

TypeError: ufunc 'bitwise_xor' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

overleafで画像が表示されない!

エラー: ""C:\U" で始まる文字列の中で 8 進文字なしに '\U' が使われています