0

更新(2016 年 3 月 10 日):我想我会把它放在这里,让以后的任何人都可以看到。我基本上已经解决了这个问题。拍摄图像后,我实际上是在尝试“制作”一个世界坐标系。我的想法是,如果我能从特定的夜间减少中获得数百张图像的 WCS 会容易得多。但是,如果没有图像中的参考点,或者在拍摄图像时仅在源处制作一个参考点,这样的事情就不会那么容易了。在撰写本文时,我大学的望远镜正在升级为具有自动引导系统,因此我们希望能够以这种方式在我们的图像标题中实现 WCS。

希望没有太多假设的知识。这纯粹是一个使用天体的天文学简化问题。

一些背景:现在我有一大堆适合的图像;数百个用于许多不同的目标。如果你只是坐在目标上,我使用的望远镜会有一些令人讨厌的漂移,所以现在我需要对齐我所有的图像。我可以使用像 PixInsight 这样的非自由软件,我听说它做得很好,但我是一个好奇的本科生,想以免费的方式/困难的方式尝试它。在广泛寻找一种将许多图像与 IRAF 中的漂移对齐的方法之后,似乎我最需要的是星坐标。所以我想出了一个想法,如果我获得参考星的世界坐标,然后将其用于我拥有的所有其他图像,我可以提取每个图像中参考星的像素坐标。这将允许我计算班次,从而对齐数据。

关于我的麻烦:

按照有关从带有 astropy 的 fit 标头获取 wcs 的文档,我遇到了以下错误:

警告:FITSFixedWarning:EPOCH = '2015.5' / RA 和 12 月的 Epoch(年)预期为浮点值。[astropy.wcs.wcs]

纪元很奇怪,因为望远镜无法使用 2000 年的纪元进行旋转,因此系统将其转换为当前年份以正确转换 RA 和 DEC,我相信这就是标题中列出的内容。如果我从这里按下并尝试将像素坐标转换为世界坐标,那么我最终会再次得到像素坐标,所以很明显这是行不通的。然后我的想法是为每个图像手动创建一个 WCS 对象,但我不能真正遵循 astropy 文档在这方面做得很好。当我似乎只知道 RA 和标头中的 Dec 时,wcs 对象的属性让我感到困惑。

有人可以帮我解决这个问题吗?

请不要告诉我使用 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 参数的详细信息,包括缺少的参数,所以有人可以帮我解决这个问题吗?

4

0 回答 0