Observer()的结果似乎不能解释PyEphem中的高程效应

Smi*_*gos 9 python astronomy pyephem

我查询PyEphem模块给出的与Observer()查询有关的结果以及提升的影响.我从几个来源(例如http://curious.astro.cornell.edu/question.php?number=388)了解到,观察者的高度对日落时间有显着影响.但是在下面的代码中,我看到旁边没有区别:

import ephem

emphemObj = ephem.Observer()
emphemObj.date = '2011/08/09'
emphemObj.lat = '53.4167'
emphemObj.long = '-3'
emphemObj.elevation = 0

ephemResult = ephem.Sun()
ephemResult.compute(emphemObj)
print "Sunset time @ 0m: " + str(emphemObj.previous_rising(ephemResult))

emphemObj.elevation = 10000
ephemResult.compute(emphemObj)
print "Sunset time @ 10000m: " + str(emphemObj.previous_rising(ephemResult))
Run Code Online (Sandbox Code Playgroud)

我得到输出:

Sunset time @ 0m: 2011/8/8 04:38:34
Sunset time @ 10000m: 2011/8/8 04:38:34
Run Code Online (Sandbox Code Playgroud)

我很确定我做错了,而不是这是一个错误,但是尝试了很多不同的方法,我担心我会不断收拾相同的结果.有谁知道我在这里做错了什么?

我已经在https://launchpad.net/pyephem上发布了这个,但我没有回复.我希望我没有从根本上误解提升功能的目的......

Bra*_*des 6

elevation观察员表示他们的位置的海拔高度-就像弗拉格斯塔夫的高度,例如.但据推测,不仅观察者和他们的望远镜或双筒望远镜是这个海拔以上的距离; 据推测,地面 - 以及地平线 - 处于这个高度.所以增加elevation相对于地平线没有任何优势,因为当你移动到更高海拔的城市时,地平线会随着你移动.

用铅笔和黄色纸垫几分钟后,看起来像地平线的角度hza与地球半径r和地面高度有关h,如下所示:

hza = - acos(r / (h + r))
Run Code Online (Sandbox Code Playgroud)

所以继续上面的例子:

import math
height = 10000
hza = - math.acos(ephem.earth_radius / (height + ephem.earth_radius))
emphemObj.horizon = hza
print "Sunrise time @ 10000m: " + str(emphemObj.previous_rising(ephemResult))
Run Code Online (Sandbox Code Playgroud)

我得到输出:

Sunrise time @ 10000m: 2011/8/8 04:08:18
Run Code Online (Sandbox Code Playgroud)

(注意"日出" previous_rising()和"日落"一起去next_setting()!)