使用astropy进行坐标投影

4

我有一组以赤道坐标表示的点,需要将它们投影到平面上,例如:天顶或方位投影

astropy显然能够执行这种类型的投影,以及其他许多类型的投影

问题在于我不知道如何将这些模块应用到我的数据上,而且文档相对较少。

对于这个例子,假设赤道ra, dec坐标以度为单位可以通过以下方式生成:

ra = np.random.uniform(130., 135., 1000)
dec = np.random.uniform(-55., -57., 1000)
2个回答

3

这些投影是与wcs(世界坐标系)对象和FITS格式一起使用的。主要步骤如下:

import numpy as np
from astropy import wcs

#create data
ra = np.random.uniform(130., 135., 1000)
dec = np.random.uniform(-55., -57., 1000)

#create wcs object
w = wcs.WCS(naxis=2)
# set coordinate and projection types for each axis
w.wcs.ctype = ["RA---ARC", "DEC--ARC"]

#do the projection
pixel_coords = w.wcs_world2pix(ra, dec, 1) 

请注意,wcs项目还有一些额外的配置参数可能很重要,例如crpixj,轴j的图像参考点,以及pvi_m,中间世界坐标轴i参数值。
有关一些用法示例,请参见astropy.wcs文档投影单元测试

1
我不确定那是否完全符合你的需求,但我尝试一下:
你可能需要使用SkyCoord类:
import numpy as np
from astropy import units as u
from astropy.coordinates import SkyCoord

ra = np.random.uniform(130., 135., 10)
dec = np.random.uniform(-55., -57., 10)

你必须使用astropy单位来设置它:

a = SkyCoord(ra * u.degree, dec * u.degree)
a
<SkyCoord (ICRS): (ra, dec) in deg
    [(134.26176984, -55.707478), (134.58510684, -55.87649941),
     (134.87524059, -56.48554659), (133.13341559, -56.81440026),
     (132.87143675, -56.44936089), (131.14191795, -56.68300147),
     (133.50910855, -56.07594072), (132.05561955, -56.90231565),
     (134.62961065, -55.72207914), (133.64757046, -55.59277667)]>

现在你有一个坐标类(不确定哪种坐标系最合适。 SkyCoord 默认为 ICRS)。如果你想计算它的方位投影,你可以使用其他表示形式。我认为物理球面表示法是你想要的?!
a.represent_as('physicsspherical')
<PhysicsSphericalRepresentation (phi, theta, r) in (deg, deg, )
    [(134.26176984, 145.707478, 1.0), (134.58510684, 145.87649941, 1.0),
     (134.87524059, 146.48554659, 1.0), (133.13341559, 146.81440026, 1.0),
     (132.87143675, 146.44936089, 1.0), (131.14191795, 146.68300147, 1.0),
     (133.50910855, 146.07594072, 1.0), (132.05561955, 146.90231565, 1.0),
     (134.62961065, 145.72207914, 1.0), (133.64757046, 145.59277667, 1.0)]>

谢谢MSeifert,但这不是我想要的。这提供了一个单位半径球面上的坐标,我需要将赤道坐标投影到平面上。 - Gabriel
仅供参考:您希望像高度方位角系统这样的内容吗?还是只想将wikipedia中提供的公式应用于您的坐标? - MSeifert
我想在我的数据上应用一个投影,该投影在astropy中有多个定义,例如天顶等距投影 - Gabriel
请点击此处查看“方位等距投影”(相当于“天顶等距投影”)的定义。 - Gabriel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接