以前使っていたDelphiから10年以上が経過していますので当然進化しているのですが、細かいことでちょっと感動したのが、エディタのブロック強調表示機能。
昔、印刷したソースコードを読む時に、どこからどこまでが1ブロックなのかを見やすくするため、よく手書きで線を入れていましたが、最近のエディタは賢いのですね。なんと、勝手にブロックを認識して線を引いてくれるとは!

★読み取り段階で致命的ミス
前回、まさかのBigEndianで記録されていることが発覚したASI1600MC-COOLのFITSデータですが、よく見ると輝度分布が変なことに気づきました。
ベイヤーFITSから、RGBそれぞれの素子についての輝度データを分離して読み出すところまでは成功したのですが、幅広く分布を見るために対数表示させてみると

これ、絶対にバグってますよね。ちょうど3万2千あたりでどの色も不連続になっているのが分かります。
あ〜あ。完全に「見切った」と思っていたんですが、甘かったようです。
グラフをよく見ると、左半分のトーンカーブがちょうど左右逆転してるような印象。
ベイヤー画像を表示させると所々諧調が反転してるように見える現象が起こっていたのは、これが原因のようです。
★そもそも符号付き16ビット整数とは・・・・
★というわけで、読み込みのロジック考え直し
最上位ビットが1なら上位バイトから128を減じたのち符号反転
下位バイトについても符号反転
<今回修正した新ロジック>
上位バイトについて、最上位ビットが1なら256を減じるのみ

★今度こそ!!


見事につながった♪
たぶん、これで大丈夫でしょう。ベイヤー表示もウソのようにきれいになりました。
★ASI1600MC-COOLの新たな謎
さて、12ビットでADCを駆動したASI1600MC-COOLはデータを吐き出すときに16ビットに変換しているのですが、いったいどのように変換しているのでしょう?
○4ビット分は空データ?
○16ビットの空間に「散らす」?
○それとも何らかの形で「補完」してる?
○色チャンネルによって差はある?
こればかりは、ステライメージでトーンカーブ見て(グラフが荒すぎて)分かりません。
・・・で、1ステップごとに輝度分布が見れるようなコードを書いて、RGB各色ごとに解析してみた!

> にゃあさん
いやはや、「基礎から」ちゃんと勉強し直せっていうお話ですが、まあ「遊び」ですからねぇ・・・。油断して、見切り発車でコーディングしていたら火傷したっていうことで、笑ってやってくださいまし。
なんだか、とても懐かしい感覚(学生時代の時のような)を味わってます。グラフ見て、「あっ!これって・・・・」と閃くように感覚が戻ってきたかも。そういえば学生時代の師匠(教授)はこの手の「感覚」が『神がかって』たんですよねえ・・・・・。
近日中に、驚愕の事実が明かされる予定。
・・・ええと・・・・その・・・たぶん、けむけむさんあたりが「怒る」んじゃないかっていう、驚愕の・・・・・。「HighSpeedMode問題」がまさかの振り出しに・・・っていう(涙)。

と驚いたけど、HighSpeedModeはOffで実害ないので、「謎だけどOffでいんぢゃね?」扱いでも、(とりあえず)大丈夫?
Binning=1 にして、彗星が彗星らしい姿になったので、撮影時間もデジカメと大差なくなったけど、色々恩恵にあずかってるのでヨシとしてます (^o^)