【发布时间】:2021-06-28 20:13:04
【问题描述】:
我使用 PyEphem 已经有一段时间了,最近我的软件出现了一个问题,尽管当地地平线上的高度是恒定的,但计算出的偏角不是恒定的。我想,只要当地地平线上的高度也是恒定的,只有赤经发生变化,赤纬就会恒定?
我正在使用radec_of() 函数和一个从纬度/经度坐标、海拔和压力设置为 0 创建的观察者类。
self.QTH.lat = str(lat)
self.QTH.lon = str(lon)
self.QTH.pressure = 0
self.QTH.elevation = 0
还有我的函数,它从本地/水平坐标返回赤道坐标。
# Returns equatorial coordinates
def equatorial(self):
ra, dec = self.QTH.radec_of(str(self.az), str(self.alt))
return round(ra / degree, 1), round(dec / degree, 1)
在我的代码中,用户可以选择以度 (RA) 为单位的特定间隔来执行接下来 24 小时的程序。我的预期输出将是一个恒定的赤纬和一个按用户选择的间隔增加的赤经。例如,如果间隔为 4,那么预期的输出将类似于以下内容:
ra=100.1, dec=40.5
ra=104.1, dec=40.5
ra=108.1, dec=40.5
ra=112.1, dec=40.5
...
但输出却如下所示,其中坐标的变化标有“**”
18.05.21 16:37:00 805465 ra=102.8,dec=48.0.png
18.05.21 16:53:00 807480 ra=106.8,dec=48.0.png
18.05.21 17:09:00 801372 ra=110.8,dec=48.0.png
18.05.21 17:25:00 803262 ra=114.8,dec=48.0.png
18.05.21 17:41:00 799578 ra=118.8,dec=48.1.png
18.05.21 17:57:00 804559 ra=122.9,dec=48.1.png **
18.05.21 18:13:00 807459 ra=126.9,dec=48.1.png
18.05.21 18:29:00 808064 ra=130.9,dec=48.1.png
18.05.21 18:45:00 810290 ra=134.9,dec=48.1.png
18.05.21 19:01:00 806551 ra=138.9,dec=48.1.png
18.05.21 19:17:00 809136 ra=143.0,dec=48.1.png **
18.05.21 19:33:00 808622 ra=147.0,dec=48.1.png
18.05.21 19:49:00 806295 ra=151.0,dec=48.1.png
18.05.21 20:05:00 807896 ra=155.0,dec=48.1.png
18.05.21 20:21:00 809402 ra=159.0,dec=48.1.png
18.05.21 20:37:00 810583 ra=163.0,dec=48.1.png
18.05.21 20:53:00 805021 ra=167.1,dec=48.1.png **
18.05.21 21:09:00 797692 ra=171.1,dec=48.1.png
18.05.21 21:25:00 807645 ra=175.1,dec=48.1.png
18.05.21 21:41:00 805415 ra=179.1,dec=48.1.png
18.05.21 21:57:00 804573 ra=183.1,dec=48.1.png
18.05.21 22:13:00 806138 ra=187.2,dec=48.1.png **
18.05.21 22:29:00 804337 ra=191.2,dec=48.1.png
18.05.21 22:45:00 808220 ra=195.2,dec=48.1.png
18.05.21 23:01:00 808257 ra=199.2,dec=48.1.png
18.05.21 23:17:00 802124 ra=203.2,dec=48.1.png
18.05.21 23:33:00 807289 ra=207.3,dec=48.1.png **
用于产生上述值的命令如下:
python3 H-line.py -n 50000 -i 4 -c
请记住,在运行此命令时,还应该在 config.txt 文件中添加天空的纬度/经度和高度/方位角坐标。 起初我预计这是由于 PyEphem 的高精度计算也考虑了折射,因此我将压力设置为 0。我目前怀疑计算时间可能是问题所在。如果给定时间间隔,则控制代码何时运行的整个循环可以在this GitHub repository 中找到,如果它可能有帮助的话。打开的问题可以是found here,也可以是coordinate function here。
编辑: 根据我的 Brandon Rhodes 的建议,我将开始时间重新定位到 for 循环之外,并使结束时间仅取决于开始时间和计算出的每个数据收集之间的间隔。
end_time = current_time + timedelta(seconds = second_interval * (i + 1))
time_remaining = end_time - datetime.utcnow()
这样我希望 RA 每次都会增加一个恒定的量,但我仍然得到以下结果:
07/06/2021 05:32 PM 1,004,512 ra=122.8426,dec=14.5368.png
07/06/2021 05:48 PM 974,403 ra=126.8922,dec=14.5436.png
07/06/2021 06:04 PM 979,557 ra=130.8667,dec=14.5499.png
07/06/2021 06:20 PM 974,845 ra=134.8789,dec=14.5559.png
07/06/2021 06:36 PM 981,583 ra=138.8912,dec=14.5615.png
07/06/2021 06:52 PM 975,283 ra=142.9035,dec=14.5666.png
07/06/2021 07:08 PM 984,823 ra=146.9160,dec=14.5713.png
07/06/2021 07:24 PM 1,000,268 ra=150.9285,dec=14.5756.png
07/06/2021 07:40 PM 998,461 ra=154.9410,dec=14.5793.png
07/06/2021 07:56 PM 994,188 ra=158.9536,dec=14.5825.png
07/06/2021 08:12 PM 978,760 ra=162.9662,dec=14.5852.png
07/06/2021 08:28 PM 983,823 ra=166.9789,dec=14.5873.png
07/06/2021 08:44 PM 998,307 ra=170.9916,dec=14.5889.png
07/06/2021 09:00 PM 980,310 ra=175.0042,dec=14.5899.png
*请注意,偏角也在发生变化,我希望它不会发生变化。
我现在开始认为每次 for 循环运行时都启动一个新的观察者可能会导致问题?
for i in range(num_data + 1):
# Get current equatorial and galactic coordinates of antenna RA and Declination
Coordinates_class = Coordinates(lat = lat, lon = lon, alt = alt, az = az)
ra, dec = Coordinates_class.equatorial()
我希望有人可以帮助我。提前致谢!
【问题讨论】:
-
您是否可以提供一个脚本,或者在命令行上提供参数,这会使您的脚本产生类似于您问题中显示的输出的输出? (虽然星号不存在也没关系。)如果您的读者都无法通过查看您的问题来了解正在发生的事情,那么工作脚本或命令将让他们实际运行代码并进行实验以在内部了解正在发生的事情开。
-
嗨,是的,我添加了用于产生上述结果的确切命令(配置文件中的 lat/lon 和 alt/az 除外)。谢谢提醒!