2015-09-14 9 views
2

Я использовал Pyephem для расчета широты и долготы солнца на данную дату, широту и долготу наблюдателя на уровне моря. Я получаю результаты, которые я не понимаю. Код, который я провел следующим образом (на IPython ноутбук в Windows 7):PyEphem сообщает о различной широте и долготе, чем входные значения

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) 

resulst я получил следующие:

<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. Это, возможно, основной факт, но почему это происходит? и как исправить это?

Спасибо заранее,

Gregory

ответ

2

значения, к счастью, не меняется. Вы ввели их в виде десятичных знаков с десятичной точкой ., отделяя каждую степень до десяти десятых, но это не то, как традиционно выражаются долгота и широта - их обычно пишут как целые числа, затем шестидесятые называют «минутами», а затем шестидесятыми - шестидесятые, называемые «секундами», которые PyEphem разделяет с символом :.

Таким образом, 46:48 означает «46 градусов 48 минут широты», потому что 48/60 = 0,8.

libsastro Использование : является компромиссом на ограничения ASCII. Традиционно, градусы минуты и секунды будут разграничены с символом степени, штрихом и двойным штрихом, который теперь можно в Unicode, но не получили широкое распространение в языках программирования:

46 ° 48'00 "

I обратите внимание, что в научных работах Бернарда Гольдштейна, в астрономии позднего средневековья и эпохи Возрождения, используется академическая нотация, использующая точку с запятой для десятичной точки и запятую между минутами и секундами, которая выглядит так:

46; 48,00 °

+0

привет Брэндон, хорошо спасибо за помощь. Тогда все было в порядке. – gregory