2014-11-23 28 views
1

我试图修复这个代码,它使用astlib转换坐标到使用astropy坐标模块。这里是一个副本的代码:astlib坐标代码到天体坐标代码

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件事。

  1. 哪些astropy适当进口,如果我想从B1950更改为J2000,以及适当的进口从J2000去银河坐标?

  2. 在以coords.convertCoords()开头的地区,天文学的功能和参数取决于它的位置。换句话说,我用什么来取代它?

此外,我已经对这个问题做了一些研究。我在这里找到这个链接:http://docs.astropy.org/en/v0.2.1/coordinates/

它描述了astropy's坐标相关函数的符号。但是,这里有很多,我不确定要使用什么以及如何使用它。

+0

FWIW这些Astropy文档非常古老。您可以随时获取最新版本的文档:http://docs.astropy.org/en/stable/coordinates/index.html(另请参阅右下角的Readthedocs版本选择菜单)。 – Iguananaut 2014-11-24 14:40:04

回答

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到银河直接了。