我正在尝试修复此代码,该代码使用astlib
转换坐标以使用astropy
坐标模块。这是代码的副本:
from astLib import astCoords as coords
#Convert B1950 coordinates (as given)
clra=zeros(3)
cldec=zeros(3)
for i in range(len(clra)):
clra[i], cldec[i] = coords.convertCoords(
'B1950', 'J2000', clra1950[i],
cldec1950[i], 1950
)
#Convert input coords to Galactic coords
lgal,bgal = radians(coords.convertCoords(
'J2000', 'GALACTIC', ra,
dec,2000
))
我需要2件事的帮助。
如果我想从astropy
更改为B1950
,并且从J2000
进入银河坐标的正确导入,J2000
的正确导入是什么? ?
在以coords.convertCoords()
开头的区域中,来自星座的函数和参数是什么。换句话说,我该用什么替换它呢?
另外,我对这个问题进行了一些研究。我在这里找到了这个链接:http://docs.astropy.org/en/v0.2.1/coordinates/
它描述了astropy's
坐标相关函数的表示法。但是,那里有很多,我不知道该使用什么以及如何使用它。
答案 0 :(得分:2)
这是一种方法:
In [1]: import numpy as np
In [2]: from astropy import units as u
In [3]: from astropy.coordinates import SkyCoord, FK4, FK5, Galactic
In [4]: clra = np.zeros(3)
In [5]: cldec = np.zeros(3)
In [6]: c1 = SkyCoord(clra * u.deg, cldec * u.deg, frame=FK4)
In [7]: c2 = c1.transform_to(FK5(equinox='J2000'))
In [8]: c3 = c2.transform_to(Galactic)
In [9]: print(c3.l.degree)
[ 97.74220094 97.74220094 97.74220094]
In [10]: print(c3.b.degree)
[-60.18102359 -60.18102359 -60.18102359]
请注意,您也可以直接将c1
转换为Galactic。