gpt4 book ai didi

python - Observer() 的结果似乎没有考虑 PyEphem 中的提升效应

转载 作者:太空狗 更新时间:2023-10-29 20:26:17 26 4
gpt4 key购买 nike

我查询 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))

我得到输出:

Sunset time @ 0m: 2011/8/8 04:38:34
Sunset time @ 10000m: 2011/8/8 04:38:34

我很确定我做错了什么而不是这是一个错误,但是尝试了多种不同的方法后,恐怕我总是得到相同的结果。有谁知道我在这里做错了什么?

我在 https://launchpad.net/pyephem 上发布了这个已经,但我没有任何回应。我希望我没有从根本上误解海拔功能的目的......

最佳答案

观察者的 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() 一起使用!)

关于python - Observer() 的结果似乎没有考虑 PyEphem 中的提升效应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7662543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com