PyEphem сообщает широту и долготу, отличную от входных значений

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

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

Заранее спасибо,

Грегори


person gregory    schedule 14.09.2015    source источник


Ответы (1)


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

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

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

46°48′00″

Замечу, что в академических работах Бернарда Р. Гольдштейна по астрономии позднего Средневековья и Возрождения используется академическая запись с точкой с запятой для десятичной точки и запятой между минутами и секундами, которая выглядит так:

46;48,00°

person Brandon Rhodes    schedule 14.09.2015
comment
привет Брэндон, хорошо, спасибо за помощь. Тогда все было в порядке. - person gregory; 17.09.2015