我尝试调试代码,但我意识到,当我尝试将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=',')

最佳答案

您将要在to_string()上使用altaz方法。这将为您提供一个字符串列表,其中的每个条目都有一个海拔高度和一个方位角数字(它们之间用空格隔开,因此您可以.split()或其他任何形式)。然后,您可以使用numpy或其他选择的库将其写出。

或者,如果要直接进入文件,则可以创建繁琐的Table,并具有分别设置为等于'alt''az'的列altaz.altaltaz.az。然后,您可以.write(format='ascii')该表。

关于python - 如何生成从赤道到AltAz的转换坐标表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34905575/

10-12 18:28