我对 PyEphem 模块给出的与 Observer() 查询相关的结果以及海拔的影响进行了查询。我从几个来源了解到(例如http://curious.astro.cornell.edu/question.php?number=388 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))
我得到输出:
Sunset time @ 0m: 2011/8/8 04:38:34
Sunset time @ 10000m: 2011/8/8 04:38:34
我相当确定我做错了什么而不是这是一个错误,但在尝试了多种不同的方法后,我担心我会继续得到相同的结果。有谁知道我在这里做错了什么?
我把这个贴在https://launchpad.net/pyephem https://launchpad.net/pyephem已经,但我还没有回复。我希望我没有从根本上误解海拔函数的目的......
The elevation
观察者的海拔是指其所在位置的海拔高度,例如亚利桑那州弗拉格斯塔夫的海拔高度。但据推测,不仅观察者和他们的望远镜或双筒望远镜处于这个海拔高度;假设地面——以及地平线——是also在这个高度。所以增加了elevation
相对于地平线,你没有任何优势,因为当你搬到海拔更高的城市时,地平线会随着你移动。
用铅笔和黄色纸片几分钟后,看起来就像是与地平线的角度hza
与地球半径有关r
以及你的离地高度h
如下:
hza = - acos(r / (h + r))
因此,从上面的示例开始:
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))
我得到输出:
Sunrise time @ 10000m: 2011/8/8 04:08:18
(请注意,“日出”与previous_rising()
和“日落”相伴next_setting()
!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)