【问题标题】:How do I produce a table of converted coordinates from Equatorial to AltAz?如何生成从赤道到 AltAz 的转换坐标表?
【发布时间】:2016-01-20 16:38:35
【问题描述】:

我已经尝试调试我的代码,并且我意识到当我尝试将 AltAz 坐标保存到 .csv 文件时它最终会崩溃,因为它不是一个 numpy 数组,它是一个 SkyCoord 对象。有人可以建议一种将大赤道坐标表转换为 AltAz 的简单方法,或者如何让我的代码保存到文件中。

 # Get time now
time = astropy.time.Time.now()
time.delta_ut1_utc = 0

# Geodetic coordinates of observatory (example here: Munich)
observatory = astropy.coordinates.EarthLocation(
    lat=48.21*u.deg, lon=11.18*u.deg, height=532*u.m)

# Alt/az reference frame at observatory, now
frame = astropy.coordinates.AltAz(obstime=time, location=observatory)
# Look up (celestial) spherical polar coordinates of HEALPix grid.
theta, phi = hp.pix2ang(nside, np.arange(npix))
# Convert to Equatorial coordinates
radecs = astropy.coordinates.SkyCoord(
    ra=phi*u.rad, dec=(0.5*np.pi - theta)*u.rad)

# Transform grid to alt/az coordinates at observatory, now
altaz = radecs.transform_to(frame)
#Transpose array from rows to columns
altaz_trans=np.transpose(altaz)

np.savetxt('altaz.csv',altaz_trans,fmt='%s', delimiter=',')

【问题讨论】:

  • np.savetxt 相当原始,astropy 内置了更好的选项来处理天文学家喜欢制作的各种文本文件。下面的答案讨论了几个不错的选择。

标签: python numpy coordinate-systems astropy healpy


【解决方案1】:

您需要在altaz 上使用to_string() 方法。这会给你一个字符串列表,每个条目都有一个高度和方位角数字(它们用空格分隔,所以你可以.split()它们或其他)。然后你可以用 numpy 或你选择的其他库写出来。

或者,如果你想直接进入一个文件,你可以创建一个 astropy Table,并将列 'alt''az' 分别设置为等于 altaz.altaltaz.az。然后你可以.write(format='ascii')那张桌子。

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多