有没有办法使用 PyEphem 来计算目标列表的上升/设定值?我的目标有一个 astropy.table
坐标(在 RA 和 Dec),我想使用 PyEphem(或其他包)为观察者引用系中的每个对象生成另外两列,其中包含上升和设置时间。
我知道 PyEphem 有一个预装对象的目录,例如明亮的恒星和行星,但我想要做的是利用它的 location.next_setting(ephem.Object())
和 location.next_rising(ephem.Object())
函数来计算我的目标列表何时可以被观察到,而不仅仅是明亮的恒星和行星。
我知道有 PyEphem 的替代品,到目前为止我已经尝试安装 Astroplan 没有成功(不确定这是否稳定),我已经研究了 Skyfield,但我还没有看到 PyEphem 之上的任何额外功能。
这类似于我的表格现在的样子,添加了最后两列作为我希望它变成的样子的示例。
RA Dec Apparent Magnitude Rise Time Set Time
deg deg
float64 float64 float64
0.0 90.0 20.1080708665 06:04:34 22:43:17
18.9473684211 80.5263157895 22.7223534546 06:25:01 22:21:56
37.8947368421 71.0526315789 19.4416167208
56.8421052632 61.5789473684 20.7207435685
75.7894736842 52.1052631579 19.9318711443
94.7368421053 42.6315789474 23.8544483535
113.684210526 33.1578947368 15.8981196334
132.631578947 23.6842105263 24.2866475431
151.578947368 14.2105263158 15.9503148326
170.526315789 4.73684210526 16.5505303858
189.473684211 -4.73684210526 24.194771397
最佳答案
您确实提到您可能也对 PyEphem
的替代品感兴趣,所以我会给您一种使用 astroplan
的方法:
这里唯一的障碍是您必须以不同的方式设置坐标,因为 astroplan
可以处理 list
的 SkyCoord
但 而不是 包含数组的 SkyCoord
...
# What to look at
coordinates = SkyCoord(ra=np.linspace(0, 360, 20) *u.degree,
dec=np.linspace(-60, 60, 20) *u.degree)
# Replace these by you table-columns, e.g. ra=table['RA']
# Where is it observed
observer_location = Observer.at_site('lapalma') # Just as example
# When to observe
time = Time(['2016-03-18 01:00:00']) # Today ... there probably is even a convenience for this
# The ugly part... with the list comprehension
coordinates2 = [i for i in coordinates]
# Calculate the time of rise/set
rise = observer_location.target_rise_time(time, coordinates2, which='next')
set = observer_location.target_set_time(time, coordinates2, which='next')
看看时间,即使最后一步打印了多个关于有限精度的
WARNINGS
,它似乎还是合理的......print(rise.iso)
array(['2016-03-18 12:11:40.396', '2016-03-18 11:54:31.989',
'2016-03-18 12:23:42.034', '2016-03-18 13:07:22.969',
'2016-03-18 13:58:27.418', '2016-03-18 14:53:52.965',
'2016-03-18 15:52:03.338', '2016-03-18 16:51:58.965',
'2016-03-18 17:52:59.172', '2016-03-18 18:54:34.040',
'2016-03-18 19:56:18.074', '2016-03-18 20:57:47.969',
'2016-03-18 21:58:38.462', '2016-03-18 22:58:20.275',
'2016-03-18 23:56:14.195', '2016-03-19 00:51:22.408',
'2016-03-18 01:46:02.343', '2016-03-18 02:29:20.391',
'2016-03-18 02:57:54.607', '2016-03-18 02:37:40.890'],
dtype='<U23')
其余的可能只是设置坐标/时间/站点并将两个新列插入到您的表中的问题。
关于python - PyEphem 可以用于计算任何对象的设置和上升时间吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36066817/