更新 (2016 年 3 月 10 日):将来誰でも見られるように、これをここに置くと思いました。私は本質的にこの問題を解決しました。私は基本的に、画像を撮った後に世界座標系を「作成」しようとしていました。私の考えでは、特定の夜の削減から何百もの画像で WCS を取得できれば、はるかに簡単になると思いました。ただし、このようなことは、画像内の基準点がなければ、または画像の撮影時にソースで基準点を作成するだけでは簡単には実行できません。これを書いている時点で、私の大学の望遠鏡は自動誘導システムを持つようにアップグレードされているため、うまくいけば、この方法で画像ヘッダーに WCS を実装できるはずです。
想定される知識があまりないことを願っています。これは純粋に、アストロピーを使用した天文学の縮小に関する質問です。
背景: 現在、たくさんのフィット画像があります。多くの異なるターゲットに対して数百。私が使用した望遠鏡は、ターゲットに座っているだけではひどいドリフトが発生するため、すべての画像を調整する必要があります。私は PixInsight のようなフリーではないソフトウェアを使用することもできますが、これはすばらしい仕事をすると聞いていますが、私は好奇心旺盛な学部生で、フリーの方法/ハードな方法で試してみたいと思っています。IRAF で多くの画像をドリフトに合わせる方法を広範囲に探した後、私が最も必要としているのは星の座標のようです。そこで、基準星の世界座標を取得し、それを他のすべての画像に対して使用すると、各画像の基準星のピクセル座標を抽出できるという考えに至りました。これにより、シフトを計算してデータを整列させることができます。
私の悩みに:
astropy を使用して fit ヘッダーから wcs を取得する方法に関するドキュメントに従って、次のエラーが発生します。
WARNING: FITSFixedWarning: EPOCH = '2015.5 ' / RA および Dec のエポック (年) 浮動小数点値が予期されていました。[astropy.wcs.wcs]
望遠鏡は 2000 年の EPOCH を使用して旋回することができないため、システムはそれを現在の年に変換して RA と DEC を適切に変換し、それがヘッダーにカタログ化されているため、エポックは奇妙です。ここから先に進み、ピクセル座標をワールド座標に変換しようとすると、再びピクセル座標になってしまうため、明らかにこれは機能していません。私の考えでは、各画像の WCS オブジェクトを手動で作成することですが、これについてはアストロピーのドキュメントをうまくフォローできません。wcs オブジェクトの属性は、ヘッダーからの RA と Dec だけを知っているように見えるときに混乱します。
誰かがこれを整理するのを手伝ってくれますか?
imstar を使用するように言わないでください。wfctools を IRAF にインストールする必要があり、誰もが IRAF が厄介な獣であり、私が壊す可能性があることを知っているからです。
ありがとう!
PS:誰かがここで私を助けてくれることを願っていますが、私の言い訳として、夏学期が終了し、この質問は休暇のために脇に置きました. しかし、私はそれを復活させて解決し、言い換えたいと思っています。
基本的に、私の大学には学部生だけが実際に使用する望遠鏡があります。これは、今日の基準では研究グレードの最下位であるためです。したがって、天文学の学部生が 30 インチの望遠鏡を操作するのは良い練習になります。最終的に、画像の適合ヘッダーには世界座標系 (WCS) が含まれていません。すべての画像に WCS があれば、画像を大量に整列させる方がずっと簡単だと思うので、これは問題だと思います。だから私がやろうとしているのは、WCSを画像ヘッダーに正しく追加することですが、その方法についてはあまり考えていません。
私の最初の試みは、astropy 内で WCS を作成することをテストすることでした。これには予備的なコードを提供しますが、WCS を作成するためのキーワードが私を混乱させるため、失敗に満ちています。ここで、WCS に関する適切な説明とおそらくチュートリアルと思われるものを見つけました: http://astroweb.iag.usp.br/~moser/notes/GAi_FITSimgs.html。
WCS を作成するためのコードを次に示します (少し哀れです)。
import numpy as np
from astropy.io import fits
from astropy import wcs
def main():
w = wcs.WCS(naxis=2)
w.wcs.crpix = [256, 256] # center pixel
w.wcs.crval = [18.73337, 0.54708] # RA and dec values in hours and degrees
w.wcs.cdelt = np.array([-1.0, 1.0])
w.wcs.ctype = ["RA-TAN", "DEC-TAN"]
#print w.wcs.print_contents()
wx, wy = w.wcs_pix2world(232.85, 278.14, 1) # pixel coords of interested star
print wx, wy
pix_x, pix_y = w.wcs_world2pix(wx, wy, 1)
# for gstandard010; another images WCS
w2 = wcs.WCS(naxis=2)
w2.wcs.crpix = [256, 256]
w2.wcs.crval = [18.733427777777777, 0.5471388888888888]
w2.wcs.cdelt = np.array([-1.0, 1.0])
w2.wcs.ctype = ["RA-TAN", "DEC-TAN"]
wx2, wy2 = w.wcs_pix2world(pix_x, pix_y, 1)
print wx2, wy2
# Using first WCS wx, and wy to find the pixel coordinates in this new images.
# It only outputs the first images pixel values which is incorrect.
pix_x2, pix_y2 = w2.wcs_world2pix(wx, wy, 1)
print pix_x2, pix_y2
main()
OutPut:
41.88337 22.68708
41.88337 22.68708
232.850057778 278.139941111
欠落しているパラメーターを含め、WCS パラメーターの詳細をさらに記入する必要があると思います。