結局、「エンディアン形式」「FITSの書式」「補数表現」の3匹のモンスターと3週間ほど格闘していたことになりますが、おかげさまで、ようやくまともにASI1600MC-COOLのFITSファイルが読み出せるようになりました。
色々と楽しむ前に、基本を固めておかないとダメでした。
前回のトーンカーブを描いた元データからG1素子(GRBGグループに含まれる2個のGのうち片方)の輝度データを抜き出して、その一部を拡大表示させてみると

こんな感じで輝度分布が『飛び飛び』になっているのが分かります。
理論的には、「16」離れた間隔でデータが散らばっていると想像できますが、本当にそうなのでしょうか?今度は少し別な角度から分析してみます。
★輝度間がどれだけ離れているか集計してみる
ヒットしたピクセル数がゼロの輝度値を削除して、「輝度間隔がいくらのデータが多いのか」「輝度と間隔との相関はあるのか」を視覚化してみます。

※横軸は輝度値、縦軸は輝度間隔を示します。
たとえば、300という値の次が320ならば、間隔は20となりますので、座標(320,20)に1つ点が打たれます。
数値軸は、より広範囲について相関が見やすいように、両対数グラフにしてあります。
これを見ると、輝度が高くなればなるほど、間隔が狭くなっていることが分かります。高輝度データがサチったりトーンジャンプしないように、ガンマ値を調整したと考えればつじつまが合いますね。
ところが、「きれいな相関を示す群」(オレンジ囲い)の上下には「奇妙な分布を示す群」(ブルー囲い)が見られます。これは一体何なんでしょう??
別に根拠があるわけではありませんが、たいていこういったイレギュラーな分布を示すデータは『個人的に』ゴミデータだと思いたいのが心情。その正体がショットノイズなのか、ダークノイズなのか、はたまたリードノイズなのかは分かりませんが、12ビットADCからは『出るはずのない』値が吐き出されているのは間違いありませんねぇ。
★もっと細かく見てみます
実際に、等間隔であるべき狭い領域に、不自然に割り込んできたデータの実例をお見せします。


★あらたな謎も・・・・
もっと比較データを取らないと、はっきりしたことは言えませんが、今のところ暫定的結論として
<ASI1600MC-COOLのADCを12ビット駆動して16ビットFITS出力すると>
①16ビットの輝度空間に12ビット分の輝度データが分散配置される。
②分散配置される間隔は一定ではなく、輝度値と相関関係がある(ガンマ値次第?)
③想定される輝度値と異なる数値を示すピクセルが混じっている(ノイズの影響?)
★ではノイズが出そうにもない条件ならどうだ?
ASI1600MC-COOLは元々ノイズが少ないので、冷却した上に超短時間露光ならノイズの影響はほとんど受けないと思われます。
・・・・で、やってみた。

どうなったんでしょう?
白熱の次号を待てッ! ですか...
ノイズが識別できるなら、バッサリと捨てたいトコロですね
ダークノイズってどう現れるんだろう?光ではない荷電粒子の影響とか...
いつもアカデミックな香りがして素晴らしい内容ですねぇ...
すげー肩凝りそうな気もするけど
今校正中なので、明日朝には公開できるかと。
アカデミックなのは香りだけですが、資料色々作りました。
あ、荷電粒子などによるダイレクトヒット現象は、かつての専門分野です。
たぶん頻度的には多くないのでご心配なく。