# -*- coding: utf-8 -*-
# convertir degrés-minute-seconde (DMS)
# en degrés-décimales (DD)
#v.2

print("Convertion des degrés minutes secondes en degrés décimales")
print("----------------------------------------------------------")
print()

#-------------------------------variables
deg_lat = 0.0
sav_lat = 0.0
min_lat = 0.0
sec_lat = 0.0
hem_lat = "N"

deg_lon = 0.0
sav_lon = 0.0
min_lon = 0.0
sec_lon = 0.0
hem_lon = "E"

lat_dec = 0.0
lon_dec = 0.0

#-------------------------------Questions Latitude

deg_lat = input("Degrés de Latitude ? ")
try :
    deg_lat = float(deg_lat)
except :
    deg_lat = 0.0
    print("les Degrés de Latitude seront égale à zéro.")
sav_lat = deg_lat #------------Sauvegarde de la Latitude
min_lat = input("Minutes de Latitude ? ")
try :
    min_lat = float(min_lat)
except :
    min_lat = 0.0
    print("les Minutes de Latitude seront égale à zéro.")

sec_lat = input("Secondes de Latitude ? ")
try :
    sec_lat = float(sec_lat)
except :
    sec_lat = 0.0
    print("les Secondes de Latitude seront égale à zéro.")

hem_lat = input("Hémisphère Nord ou Sud, N/S ? ").upper()
if hem_lat == "N" or hem_lat == "S" :
    deg_lat
else :
    hem_lat = "N"
    print("La Latitude sera NORD.")

if hem_lat == "S" :
    deg_lat = -deg_lat # invertion du signe pour la Latitude Sud (de 0° a 89°)

print()

#-------------------------------Questions Longitude

deg_lon = input("Degrés de Longitude ? ")
try :
    deg_lon = float(deg_lon)
except :
    deg_lon = 0.0
    print("les Degrés de Longitude seront égale à zéro.")
sav_lon = deg_lon #------------Sauvegarde de la Longitude
min_lon = input("minutes de longitude ? ")
try :
    min_lon = float(min_lon)
except :
    min_lon = 0.0
    print("les Minutes de Longitude seront égale à zéro.")

sec_lon = input("Secondes de Longitude ? ")
try :
    sec_lon = float(sec_lon)
except :
    sec_lon = 0.0
    print("les Secondes de Longitude seront égale à zéro.")

hem_lon = input("Longitude Est ou Ouest, E/O/W ? ").upper()
if hem_lon == "E" or hem_lon == "O" or hem_lon == "W" :
    hem_lon
else :
    hem_lon = "E"
    print("La Longitude sera EST.")

if hem_lon == "O" or hem_lon == "W" :
    deg_lon = -deg_lon # invertion du signe pour la Longitude Ouest ou West (de 0° a 179°)
	
print()

#-------------------------------Calcul

'''
Équation simple de conversion des degrés, minutes et secondes en degrés décimaux
DD = (Seconds/3600) + (Minutes/60) + Degrees

Si la valeur des degrés est négative
DD = -(Seconds/3600) - (Minutes/60) + Degrees
----------------------------
'''

if deg_lat >= 0.0 :
    deg_lat = (sec_lat/3600) + (min_lat/60) + deg_lat
else :
    deg_lat = -(sec_lat/3600) - (min_lat/60) + deg_lat
    print(deg_lat)

if deg_lon >= 0.0 :
    deg_lon = (sec_lon/3600) + (min_lon/60) + deg_lon
else :
    deg_lon = -(sec_lon/3600) - (min_lon/60) + deg_lon

#-------------------------------affichage

print("Latitude....:", int(sav_lat), "° ", int(min_lat), "' ", sec_lat, "\"", hem_lat, end=' \t')
print("Longitude...:", int(sav_lon), "° ", int(min_lon), "' ", sec_lon, "\"", hem_lon)
print()
print("En Degrés ça nous donne : ")
print()
print("Latitude....:", round(deg_lat, 6), "° ", end = '\t')
print("Longitude...:", round(deg_lon, 6), "° ")

#-------------------------------Sortie

print()
print("----------------------")
bye = (input ("Entrer pour Sortir...!"))
