貧者の赤道儀 (The Poor Man's Equatorial) - (2-h) フィールドソルバの精度

天体写真を撮って、フィールドソルバに掛けたとき、どのくらいの精度が得られるのだろうか。これまでのような用途であれば、1ピクセル以下だったら実用上問題なさそうでは有る。そもそもそういった精度が期待できるのか考えてみる。

FITSの座標系については、下から辿って、PAPER Iを読むとよく分かる。

前回のパノラマの検証

前回のパノラマ、うまく繋がったように見えてたけど結構綱渡りだったんだろうな、と思い、検証してみることにした。

solve-fieldを実行すると結果ファイルがいろいろできるんだが、このなかに*.corrというのがある。correlationつうことだ。同定に使用した画像上の天体と天体カタログ上の天体、両方の座標が並べて表にしてくれている。field_{x,y}つうのが画像上の天体のピクセル座標、index_{x,y}がカタログ天体のピクセル座標だ。こいつらの距離が画像上でのズレになる。

大体画像一枚につき20から30くらいの天体が*.corrファイルにあるので、平均や偏差で評価できそうだ。とある画像で計算してみるとσ≒0.007だったので3σで考えても0.02ピクセルとなり充分実用的に見える。同じような検証してる人が他にも居て、


この人は精度は1/15ピクセルだと結論している。ま、コンパラブルだわ。

solve-field --verifyの効果

何らかの原因でσが大きい場合、まあ、3ピクセルとかだとパノラマにした時に具合悪いわな、何かできることはないのかと。あるそうです。一旦解いた結果ファイルをもう一回食わせてやるとよいらしい。んで、やってみた。リネームしないと怒られます。

$> cd G
$> mv DSC_4395.wcs DSC_4395_.wcs
$> solve-field --overwrite --verify DSC_4395_.wcs DSC_4395.tif


結果、σは1.608912e+00から8.229623e-01へ改善。へーってなもんです。毎度fv開いてちまちま計算してられないので、Gnu Rスクリプトをでっち上げた。いや便利だわ。

require (FITSio)

corrfiles <- system ("ls G/DSC_*.corr", intern=T)
sd <- c ()
for (corrfile in corrfiles){
  zz <- file (description = corrfile, open = "rb")
  header0 <- readFITSheader (zz)
  header <- readFITSheader (zz)
  D <- readFITSbintable (zz, header)
  close (zz)
  
  # str (D)
  # str (header)
  # str (parseHdr (header))
  D$colNames
  sd <- c (sd, sd (sqrt *1
}

corrfiles
sd

*1:D$col1 - D$col5)^2 + (D$col2 - D$col6)^2))) summary (sqrt ((D$col\[\[1\]\] - D$col\5)^2 + (D$col\2 - D$col\6)^2