我正在尝试使用AstroPy将卫星坐标从ECI转换为给定时间的纬度、经度和高度。然而,我无法利用时间部分来工作。我不确定这是UTC时间的语法错误还是其他原因。在
'New Method #1: ECI --> Lat, Lon, Alt'
from astropy import coordinates as coord
from astropy import units as u
from astropy import time
from astropy.time import Time
xyz = (orbitPineapple.r.x, orbitPineapple.r.y, orbitPineapple.r.z) #position of satellite in GCRS or J2000 ECI
now = time.Time('2017-09-28 16:53:40') #Time in UTC for xyz
cartrep = coord.CartesianRepresentation(*xyz, unit=u.m) #adding units of [m] to xyz
gcrs = coord.GCRS(cartrep, obstime=now)
itrs = gcrs.transform_to(coord.ITRS, obstime=now)
loc = coord.EarthLocation(*itrs.cartesian.xyz)
print(orbitPineapple.r)
print('')
print(loc.lat, loc.lon, loc.height)
我的输入:(位置(x=-2686197.0596728502,y=-6402017.6107924329,z=10956.564679617248))
这个解决方案类似于您前面问题的答案How to convert Earth Centered Inertial (ECI) coordinates to Earth Centered Earth Fixed (ECEF) AstroPy? Other?
obstime
需要传递给ITRS()
类:所以,完整地(我从你的问题中复制了xyz坐标,因为我没有看到
^{pr2}$orbitPineapple
的定义)相关问题 更多 >
编程相关推荐