Конвертировать GPS-координаты из рациональных дробей в градусы - PullRequest
1 голос
/ 15 марта 2012

Я пытаюсь понять координаты GPS, возвращенные из тегов EXIF ​​в моих изображениях:

мой метод доступа к координатам

@property
def GPSCoordinatesRat(self):
coords = (str(self._EXIF_GPSLatitude) +
          str(self._EXIF_GPSLongitude_Ref) +
          str(self._EXIF_GPSLongitude)) +
          str(self._EXIF_GPSLongitude_Ref)

пример

>>> s.GPSCoordinatesRat
'[Fraction(40, 1), Fraction(3901, 100), Fraction(0, 1)]W[Fraction(73, 1), Fraction(4691, 100), Fraction(0, 1)]W'

Как я могу заставить это читать что-то вроде:

35° 42' 1" N, 71° 37' 0" W

Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Смотрите здесь, чтобы преобразовать число с плавающей точкой в ​​градусы, минуты и секунды: http://geography.about.com/library/howto/htdegrees.htm

Что там не упоминается: если местоположение находится в западном полушарии, знак отрицательный, то есть умножьте (целое число) градусов на -1 То же самое для мест в южном полушарии.

0 голосов
/ 15 марта 2012

Передача каждого Fraction конструктору float превратит его в число с плавающей запятой.

>>> float(fractions.Fraction(3901, 100))
39.01
...