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

标签 latitude-longitude sun pyephem

我使用 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

正如你所看到的,在打印输入数据时,我的obesrver的纬度和经度已经从46.8和-71.2变成了46.48到-71.12。这也许是一个基本事实,但为什么会发生这种情况呢?以及如何纠正它?

提前致谢,

格雷戈里

最佳答案

幸运的是,这些值(value)观没有改变。您已将它们输入为带有小数点.的小数,将每个度数分成十分之十,但这不是传统上表示经度和纬度的方式 - 它们通常写为整数,然后六十分之一称为“分钟”,然后六十中的六十称为“秒”,PyEphem 用 : 字符分隔。

因此,46:48 的意思是“纬度 46 度 48 分”,因为 48/60 = 0.8。

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

46°48′00″

我注意到,伯纳德·R·戈德斯坦(Bernard R. Goldstein)关于中世纪晚期和文艺复兴时期天文学的学术论文中,使用了一种用分号表示小数点并在分钟和秒之间使用逗号的学术记数法,即看起来像:

46;48,00°

关于latitude-longitude - PyEphem 报告的纬度和经度与输入值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557870/

相关文章:

google-maps - 经纬度国名

javascript - 无法使用 Google map javascript api v3 在 Google map 上设置多个标记

java - 在最近的 JVM 中,不可见的引用仍然是一个问题吗?

python - 随时间传播卫星目录的有效方法

python - 将来自一个纬度-经度网格的数据插值到另一个网格中?

java - 垂直点放置

java - 向现有 java 类添加方法并使用我的项目重新编译

jms - SUN IMQ 主题消息预览

Python卫星跟踪与Orbitron,pyephem-位置不匹配

python - Perl 等同于 pyephem?