这个问题可能与这个问题有关:Wrong Range Rate with Pyephem
我刚刚开始尝试使用 pyephem 进行卫星通过预测和无线电链路的多普勒频移计算。我对此很陌生,以至于我还没有编写任何代码,我只是涉足了 python 交互式解释器。
我的问题是关于大气折射的校正,可以通过将观察者高度设置为 0mb 来禁用它。当我将在 pyephem 中使用 next_pass() 的通过预测与来自 gnu predict 的通过预测进行比较时,我注意到 AOS 和 LOS 时间之间的差异大约为 30 秒,当大气折射校正被禁用。这与 predict 和 pyephem 使用的 TLE 相同。
Q1) 最初大约 30 秒的较大差异是否可能是由于预测在其通过预测中未补偿大气折射?这似乎是一个合理的解释。
Q2)据我所知(也许很弱),大多数地面无线电传播模型使用 4/3 地球半径的软糖因子来补偿大气折射,有效地理顺弯曲的路径,从而影响计算的距离,从而影响距离率。pyephem 中的大气折射校正是否等同于这种方法?
Q3) 我注意到 range 和 range_rate 值似乎不受将观察者压力从 1010.0mb 更改为 0.0mb 的影响(因此禁用大气折射校正),而调用 next_pass() 的结果受到影响。应该是这样吗?我会认为 range 和 range_rate 值会改变,或者我们实际上是否应该将“视距”和“视距率”视为可以在应用大气折射补偿时计算的附加值?
这是我关于堆栈溢出的第一个问题。如果我的查询格式不正确,我深表歉意。谢谢。
更新 - 一些代码和一些要求的结果
这是一些代码...
import ephem
g0hww = ephem.Observer()
g0hww.lat='52:14:15.70'
g0hww.lon='0:43:24.49'
g0hww.elevation=40.0
g0hww.pressure = 0.0
g0hww.date = "2014/5/9 08:48:53"
stations = open("/home/darren/cronjobs/stations.txt","r")
line1=stations.readline()
line2=stations.readline()
line3=stations.readline()
print "Using keps for:" + line1.strip()
print line2.strip()
print line3.strip()
print "\n"
iss = ephem.readtle(line1,line2,line3)
iss.compute(g0hww)
print g0hww
print "iss azimuth: " + str(iss.az)
print "iss elevation: " + str(iss.alt)
print "iss range: " + str(iss.range)
print "iss range rate: " + str(iss.range_velocity)
print g0hww.next_pass(iss)
print "\n"
g0hww.pressure = 1010.0
iss.compute(g0hww)
print g0hww
print "iss azimuth: " + str(iss.az)
print "iss elevation: " + str(iss.alt)
print "iss range: " + str(iss.range)
print "iss range rate: " + str(iss.range_velocity)
print g0hww.next_pass(iss)
以下是一些结果:
Using keps for:ISS (ZARYA)
1 25544U 98067A 14126.92299264 .00007994 00000-0 14853-3 0 2319
2 25544 51.6500 304.1061 0002752 337.8472 139.1065 15.49877967884923
<ephem.Observer date='2014/5/9 08:48:52' epoch='2000/1/1 12:00:00' lon=0:43:24.5 lat=52:14:15.7 elevation=40.0m horizon=0:00:00.0 temp=15.0C pressure=0.0mBar>
iss azimuth: 90:47:19.1
iss elevation: 21:02:43.0
iss range: 999640.75
iss range rate: 5735.83300781
(2014/5/9 10:18:09, 269:24:46.2, 2014/5/9 08:48:44, 22:40:03.7, 2014/5/9 08:52:14, 79:47:08.3)
<ephem.Observer date='2014/5/9 08:48:52' epoch='2000/1/1 12:00:00' lon=0:43:24.5 lat=52:14:15.7 elevation=40.0m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
iss azimuth: 90:47:19.1
iss elevation: 21:05:11.0
iss range: 999640.75
iss range rate: 5735.83300781
(2014/5/9 10:18:04, 269:25:01.5, 2014/5/9 08:48:49, 21:49:15.9, 2014/5/9 08:52:29, 79:31:12.8)