Python 如何获得一个PyEphem观察者';中国的经络;“日期纪元”;协调?

Python 如何获得一个PyEphem观察者';中国的经络;“日期纪元”;协调?,python,pyephem,Python,Pyephem,我试图确定观察者子午线的明显的赤经,在赤经星历表的上下文中,我使用的是“观察者”observer类。我知道后者将在“日期纪元”坐标中提供,但不知道如何在这些坐标中为观察者获得子午线的赤经 我假设恒星时间会给我我想要的东西 import ephem import numpy zone1 = ephem.city('London') zone1.date = '2014/08/04 11:00:00' meridian = zone1.sidereal_time() 但我不确定得到的坐标是什么年

我试图确定观察者子午线的明显的赤经,在赤经星历表的上下文中,我使用的是“观察者”
observer
类。我知道后者将在“日期纪元”坐标中提供,但不知道如何在这些坐标中为观察者获得子午线的赤经

我假设恒星时间会给我我想要的东西

import ephem
import numpy

zone1 = ephem.city('London')
zone1.date = '2014/08/04 11:00:00'
meridian = zone1.sidereal_time()
但我不确定得到的坐标是什么年代

如何在“日期纪元”坐标系中获得PyEphem观测者的子午线?

根据其定义(至少我理解!),恒星时间必然是两个日期纪元坐标系之间的关系:该日期的春分点和观测点位于地球表面的点

我们可以通过选择子午线上的一个点来检查这一点——比如说,它穿过天体赤道的纬度为0°的点——并使用略显笨拙的界面询问PyEphem,你所询问的那一刻该点的RA是什么:

import ephem
zone1 = ephem.city('London')
zone1.date = '2014/08/04 11:00:00'
zone1.pressure = 0.0
meridian = zone1.sidereal_time()
print 'Hour angle:', meridian
print

overhead = ephem.degrees('90:00')
south = ephem.degrees('180:00')

zone1.epoch = zone1.date
ra, dec = zone1.radec_of(az=south, alt=overhead - zone1.lat)
print 'Epoch-of-date:'
print 'RA:', ra
print 'dec:', dec
print

zone1.epoch = '2000/1/1'
ra, dec = zone1.radec_of(az=south, alt=overhead - zone1.lat)
print 'Epoch J2000:'
print 'RA:', ra
print 'dec:', dec
print
我认为,输出结果证实恒星时间与我们所问的点的日期赤经纪元相同——至少我认为微小的,小于一弧秒的差异是由于PyEphem所依赖的
libastro
中的舍入误差造成的,而不是我们正在逃避的一些额外的理论复杂性:

Sidereal time: 7:51:14.43

Epoch-of-date:
RA: 7:51:15.24
dec: 0:00:03.5

Epoch J2000:
RA: 7:50:30.36
dec: 0:02:19.5
因为我发现PyEphem对于这类问题有点笨拙,请注意,我已经创建了一个新的Skyfield库,如果你想尝试另一种方法的话,它会使计算变得更简单。无论哪种方式:享受

根据其定义(至少据我所知!),恒星时间必然是日期坐标的两个历元之间的关系:该日期的春分点和观测点位于地球表面的点

我们可以通过选择子午线上的一个点来检查这一点——比如说,它穿过天体赤道的纬度为0°的点——并使用略显笨拙的界面询问PyEphem,你所询问的那一刻该点的RA是什么:

import ephem
zone1 = ephem.city('London')
zone1.date = '2014/08/04 11:00:00'
zone1.pressure = 0.0
meridian = zone1.sidereal_time()
print 'Hour angle:', meridian
print

overhead = ephem.degrees('90:00')
south = ephem.degrees('180:00')

zone1.epoch = zone1.date
ra, dec = zone1.radec_of(az=south, alt=overhead - zone1.lat)
print 'Epoch-of-date:'
print 'RA:', ra
print 'dec:', dec
print

zone1.epoch = '2000/1/1'
ra, dec = zone1.radec_of(az=south, alt=overhead - zone1.lat)
print 'Epoch J2000:'
print 'RA:', ra
print 'dec:', dec
print
我认为,输出结果证实恒星时间与我们所问的点的日期赤经纪元相同——至少我认为微小的,小于一弧秒的差异是由于PyEphem所依赖的
libastro
中的舍入误差造成的,而不是我们正在逃避的一些额外的理论复杂性:

Sidereal time: 7:51:14.43

Epoch-of-date:
RA: 7:51:15.24
dec: 0:00:03.5

Epoch J2000:
RA: 7:50:30.36
dec: 0:02:19.5

因为我发现PyEphem对于这类问题有点笨拙,请注意,我已经创建了一个新的Skyfield库,如果你想尝试另一种方法的话,它会使计算变得更简单。无论哪种方式:享受

根据定义,局部恒星时间是局部子午线的RA。更准确地说,当地视恒星时间被定义为该地区春分点的小时角:它与在同一时刻通过当地子午线的任何天体的赤经具有相同的值,这正是你想要的

使用pyephem的sideral_time()函数将产生明显的RA(“日期纪元”RA在这个定义下可能也是相同的东西,但并不意味着相同的东西)

请注意,伦敦和格林威治也不是一回事

现在让我们把一颗星星放在这个RA上,看看我们得到了什么-,这个结果并不精确,但它足够近,足以显示两者之间的关系

>>> star._ra = '7:51:44.73'
>>> star._dec = '45'
>>> star._epoch = '2014/08/04 11:00:00'
>>> GST.pressure = 0
>>> star.compute(GST)
>>> star.az, star.alt
(359:59:38.7, 45:00:08.2)
在这里,我们可以看到我们虚构的恒星位于我们的子午线上(以及close和Pyphem将允许我们计算它),子午线被定义为0或180度的方位角。在pyephem中,当您尝试基本上向后使用它时,它的行为总是有点奇怪,如本演示中所示。让我们在前进方向再试试

这一次,我们将选择一颗已知的恒星,并调整该地点的时间,直到LST与该恒星的视RA相匹配

>>> vega = ephem.star('Vega') #retrieve vega from star catalog
>>> ephem.now() #get the current time
2015/7/9 01:42:49
>>> GST.date = '2015/7/9 01:42:49' #set time at site
>>> vega.compute(GST) #compute vega over the site for this time
>>> vega.a_ra #retrieve the astronomical RA for vega epoch J2000
18:36:56.47
>>> vega.ra #retrieve apparent RA for vega epoch now
18:37:29.64
请注意,由于地球绕其轴线的进动和地球-月球相互作用引起的轴线章动,它们有点不同

>>> GST.sidereal_time() #get the sidereal time for now
20:49:34.12
请注意恒星时间与织女星的视RA有点偏离,所以让我们调整时间,直到它们完全相同

>>> GST.date = '2015/7/8 23:31:06.16' 
>>> GST.sidereal_time()
18:37:29.64
现在它们完全一样了。现在再次计算该站点的vega

>>> vega.compute(GST)
>>> vega.ra, vega.dec
(18:37:29.64, 38:48:06.5)
>>> vega.az, vega.alt
(0:00:00.0, 51:11:53.5)

正如你在这里看到的,方位角精确地位于子午线上。这一正向演示表明,LST相当于局部子午线的视RA。

局部恒星实时的定义是局部子午线的RA。更准确地说,当地视恒星时间被定义为该地区春分点的小时角:它与在同一时刻通过当地子午线的任何天体的赤经具有相同的值,这正是你想要的

使用pyephem的sideral_time()函数将产生明显的RA(“日期纪元”RA在这个定义下可能也是相同的东西,但并不意味着相同的东西)

请注意,伦敦和格林威治也不是一回事

现在让我们把一颗星星放在这个RA上,看看我们得到了什么-,这个结果并不精确,但它足够近,足以显示两者之间的关系

>>> star._ra = '7:51:44.73'
>>> star._dec = '45'
>>> star._epoch = '2014/08/04 11:00:00'
>>> GST.pressure = 0
>>> star.compute(GST)
>>> star.az, star.alt
(359:59:38.7, 45:00:08.2)
在这里,我们可以看到我们虚构的恒星位于我们的子午线上(以及close和Pyphem将允许我们计算它),子午线被定义为0或180度的方位角。在pyephem中,当您尝试基本上向后使用它时,它的行为总是有点奇怪,如本演示中所示。让我们在前进方向再试试

这一次,我们将选择一颗已知的恒星,并调整该地点的时间,直到它的LST与恒星的视RA相匹配