【问题标题】:Conversion to ecliptic coordinates in Astropy在 Astropy 中转换为黄道坐标
【发布时间】:2019-11-19 15:41:12
【问题描述】:

我是astropy新手,正在尝试掌握坐标转换模块。

我从一些类似于文档中的简单工作开始。例如:

from astropy import units as u
from astropy.coordinates import SkyCoord

c_gal = SkyCoord(l=0.0*u.degree, b=90.0*u.degree, frame='galactic')

print(c_gal.fk5)

在 FK5 目录中给出了银河北极的正确值。这是一个赤道参考系,但我怎样才能转换为黄道参考系呢?我找不到可以完成这项工作的类似方法。有通用的 transform_to() 方法,但问题是我无法找到可用帧的完整列表。显然,所有文档和/或示例都只针对其中的几个,即:galactic、fk4/5、icrs,它们都是 Equatorial 和 Galactic 的。

【问题讨论】:

    标签: python astropy


    【解决方案1】:

    如果文档中没有,您可以随时手动检查对象的所有属性。从交互式 python shell,如果你这样做了

    import astropy.coordinates as co
    dir(co)
    

    它将打印coordinates 对象的所有属性。这是一个很长的列表,我对天体或天文坐标的了解还不够,无法确切知道您需要什么,所以这里是打印内容的一个子集:

    'CIRS', 'FK4', 'FK4NoETerms', 'FK5', 'GCRS', 'Galactic', 'GalacticLSR', 'Galactocentric', 'GenericFrame', 'GeocentricMeanEcliptic', 'GeocentricTrueEcliptic', 'HCRS', 'HeliocentricEclipticIAU76', 'HeliocentricMeanEcliptic', 'HeliocentricTrueEcliptic', 'ICRS', 'ITRS', 
    

    也许GeocentricTrueEcliptic 是你需要的?

    【讨论】:

    • 感谢您的回答。实际上,我已经尝试过做一个类的 dir() ;例如我试过print(c_gal.transform_to('BarycentricMeanEcliptic')),但答案是ValueError: Transform 'frame' must be a frame name, class, or instance。然后,在文档中,我注意到这个类有一个名为“name”的属性,其值为barycentricmeanecliptic。所以我发现print(c_gal.transform_to('barycentricmeanecliptic')) 可以节省一天的时间。实际上,您必须使用框架 name 调用该方法,您可以在类属性中找到它。
    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多