PyEphem 报告与输入值不同的纬度和经度

PyEphem reporting different latitude and longitude than input values

我已经使用 Pyephem 计算了给定日期的太阳纬度和经度,海平面观察者的纬度和经度。 我得到我不明白的结果。我 运行 的代码如下(在 windows 7 中的 Ipython 笔记本上):

import ephem
date = '2015-04-17 12:30:00'

Amundsen = ephem.Observer()
Amundsen.lat = '46.8'
Amundsen.lon = '-71.2'
Amundsen.date = date

sun = ephem.Sun(Amundsen)
sun.compute(Amundsen)

print Amundsen
print "sun latitude: {0}, sun longitude: {1}".format(sun.hlat,sun.hlon)

我得到的结果如下:

<ephem.Observer date='2015/4/17 12:30:00' epoch='2000/1/1 12:00:00'lon='-71:12:00.0' lat='46:48:00.0' elevation=0.0m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
sun latitude: -0:00:00.1, sun longitude: 207:11:10.2

如您所见,在打印输入数据时,我的观察者的纬度和经度已从 46.8 和 -71.2 更改为 46.48 到 -71.12。这也许是一个基本事实,但为什么会这样呢?以及如何纠正它?

提前致谢,

格雷戈里

令人高兴的是,价值观没有改变。您将它们作为小数输入,小数点 . 将每个度数分成十分之十,但这不是经度和纬度的传统表达方式——它们通常写成整数,然后六十分之一称为“分钟”,然后 sixtieths-of-sixtieths 称为“秒”,PyEphem 用 : 字符分隔。

所以 46:48 表示“纬度 46 度 48 分”,因为 48/60 = 0.8。

libsastro 使用 : 是对 ASCII 限制的妥协。传统上,度分和秒将用度数符号、素数和双素数分隔,这现在在 Unicode 中是可能的,但在编程语言中并不普遍:

46°48′00″

我注意到,在 Bernard R. Goldstein 的学术论文中,关于中世纪晚期和文艺复兴时期的天文学,使用了一种学术符号,小数点用分号,分秒之间用逗号,看起来像:

46;48,00°