1.Crearemos un diccionario de datos el cual almacenará una coordenada X,Y en grados decimales:
decimal_degrees = {'Coord_xy': [ '-73.950342' ]} # aquí esta la coordenada X
2.Ahora necesitamos completar la coordenada en Y (Latitud_N) para esto crearemos un programa que permita transformar coordenadas sexagesimales grados(°) minutos (’) segundos(") a decimales; ingresando los datos desde la terminal con la función ‘input’ , así:
Nota: En cada línea de código se transforma directamente de formato (type) str a float , con el fin de evitar errores al momento de realizar operaciones aritméticas
grad = (float(input('Ingresa los grados ==> ')))
min = (float(input('Ingresa los minutos ==> ')))
sec = (float(input('Ingresa los segundos ==> ')))
Seguido de esto generamos el siguiente código (print) para validar la información ingresada por el usuario:
print(f"La coordenada en grados sexagesimales ingresada es = > {grad}° {min}' {sec}'' ")
3.Una vez ingresados y validados (print) los valores de grad, min y sec procedemos a generar el código que incluye la formula para transformar la respectiva coordenada. Aquí el objetivo es sumar los segundos y los minutos a los grados, de esta manera se obtiene el resultado en grados decimales, para poder hacer esta suma debemos hacer el cálculo teniendo en cuenta lo siguiente:
De acuerdo a estos factores de conversión declaramos dos variables en nuestro código:
1min_sec = 60# permite transformar los segundos a minutos para sumarlo con los minutos1gra_min = 60# permite transformar los minutos a grados para sumarlo con los grados
4.Posteriormente creamos una variable llamada Degree que tendrá la formula y resultado para el cálculo de la transformación entre coordenadas, así:
Degree = round(grad +((min + sec/1min_sec)/1grad_min),6) # usamos la función **round** para obtener 6 cifras decimales
5.¡Muy bien! ,estas a dos líneas de código para obtener tu coordenada, para finalizar agregaremos la coordenada resultado del paso 4, (en este caso Y) a la lista de la llave ‘Coord_xy’ contenida en nuestro diccionario: decimal_degrees usando la función append , así:
decimal_degrees['Coord_xy'].append(Degree)
print(decimal_degrees)
!Hemos finalizado¡ con este programa puedes transformar cualquier coordenada x,y de formato sexagesimal a decimal, asi que adelante.
Aquí esta el código integrado:
decimal_degrees = {'Coord_xy': [ '-73.950342' ]}
grad = (float(input('Ingresa los grados ==> ')))
min = (float(input('Ingresa los minutos ==> ')))
sec = (float(input('Ingresa los segundos ==> ')))
print(f"La coordenada en grados sexagesimales ingresada es = >> {grad}° {min}' {sec}'' ")
min_sec = 60
gra_min = 60
Degree = round(grad +((min + sec/min_sec)/gra_min),6)
decimal_degrees['Coord_xy'].append(Degree)
print(decimal_degrees)