我仔细查看了令人沮丧的文档,得出的结论是 没有本地的经纬度经纬度的ECEF(以地球为中心,固定在地球上)的帧,可以将其转换为赤道坐标RA(决定是否给出时间)。这是真的吗?
最终,我想使用以下方法创建地图:
map = HEALPix(nside=NSIDE, order='nested', frame=MY_REF_FRAME())
MY_REF_FRAME = ITRS
显然不是一个选择。
如果有人可以帮助我找到最新版本的astropy可以定义的方法,我将不胜感激。
谢谢!
埃里克
答案 0 :(得分:0)
HEALPix本身和https://astropy-healpix.readthedocs.io主要涉及给定天空框架中的HEALPix像素。
对于不同天空坐标系之间的转换,您应该查看astropy.coordinates。
我对ECEF并不熟悉,但是您可以使用现有的ICRS和ITRF框架进行所需的计算(请参见https://stackoverflow.com/a/49325584/498873)。
答案 1 :(得分:0)
让我在这里发布对@Christoph的评论的答案,以便我粘贴完整的代码。这是我得到的代码和错误:
In [1]: import astropy.coordinates as coord
In [2]: import astropy.units as u
In [3]: from astropy.time import Time
In [4]: coord.ITRS( coord.SphericalRepresentation(lon= 0.0 *u.deg ,lat = 0.0 * u.deg, distance = 1 * u.m), obstime=Time('2018-12-03 14:00:00')).transform_to(coord.ICRS)
ValueError Traceback (most recent call last)
<ipython-input-4-1d50da4d3855> in <module>
----> 1 coord.ITRS( coord.SphericalRepresentation(lon= 0.0 *u.deg ,lat = 0.0 * u.deg, distance = 1 * u.m), obstime=Time('2018-12-03 14:00:00')).transform_to(coord.ICRS)
~/lib/python3.5/site-packages/astropy/coordinates/baseframe.py in transform_to(self, new_frame)
1165 msg = 'Cannot transform from {0} to {1}'
1166 raise ConvertError(msg.format(self.__class__, new_frame.__class__))
-> 1167 return trans(self, new_frame)
1168
1169 def is_transformable_to(self, new_frame):
...
474 # In case we want to convert 1e20 to int.
475 try:
--> 476 fill_value = np.array(fill_value, copy=False, dtype=ndtype)
477 except OverflowError:
478 # Raise TypeError instead of OverflowError.
ValueError: invalid literal for int() with base 10: 'N'
In [6]: astropy.__version__
Out[6]: '3.0.5'
In [8]: numpy.__version__
Out[8]: '1.15.3'