2013-06-23 26 views
2

我刚刚开始使用PyEphem。我的当前任务是,给定日期和时间,以latitude-longitude的值计算地球上的亚太阳点。我会深入研究PyEphem来解决这个问题,但如果有人已经这样做了,我会很感激示例代码。在赤纬对象φ应该总是骑权的一系列具有纬度φ在地球上的位置之上,因此纬度号码给予:计算分太阳穴

回答

0

我无法从今天早上我在哪里测试实际的代码,但你直接由机构的.dec属性(或.a_dec.g_dec取决于您的应用程序)。

现在,经度怎么样?想象一下这种情况,我认为这种情况一天大概会发生一次,当0°经度的格林威治仰望起来,并看到天空中0°的赤经右上方向右上方。那时,赤经上的一个天体θ可能会低头看看经度θ,假设经度向东是正值,PyEphem就是这样。

现在,如果格林威治正在仰望非赤字的赤字线,那该怎么办呢?那么在我看来,我们只需要从一个人的赤经中减去这个东西来计算经度,因为随着时间的推移地球转动,赤经线越过格林威治,并且分配给它们的赤经越来越大,任何一个特定的身体将穿过地球西行,其经度会减少,然后在经过西半球时变为负值。

在任何时候,格林威治的赤经开销线可以通过在0°经度上创建一个观测器并且如果我正确记得快速参考请求它的.sidereal_time()来确定。所以,我认为,一个身体下方的经度可能是:

lon = body.ra - greenwich.sidereral_time() 

我会做一个简单的测试这个今天晚些时候,看看是否合理的数字出来。

0

我去找OP的同一个答案。许多帖子“提到”PyEphem如何走,但没有提供实际的例子。

这里是我的工作示例来计算下太阳穴点。将所有内容映射到-180到+ 180度之间的经度。

greenwich = ephem.Observer() 
greenwich.lat = "0" 
greenwich.lon = "0" 
greenwich.date = datetime.utcnow() 
sun = ephem.Sun(greenwich) 
sun.compute(greenwich.date) 
sun_lon = math.degrees(sun.ra - greenwich.sidereal_time()) 
if sun_lon < -180.0 : 
    sun_lon = 360.0 + sun_lon 
elif sun_lon > 180.0 : 
    sun_lon = sun_lon - 360.0 
sun_lat = math.degrees(sun.dec) 
print "Subsolar Point Sun Lon:",sun_lon, "Lat:",sun_lat 

我不是PyEphem的专家,可能有更好的方法 - 但我迄今为止的测试有这项工作为我的目的。

p.s.是的..上面的格林威治实际上并没有设置为实际经度/经度......它只是0.0的经度才能得到我们需要的合适的恒星时间。