1

CREACIÓN DE UN DICCIONARIO Y CONVERSIÓN DE COORDENADAS SEXAGESIMALES EN PYTHON

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:

  • 1 minuto equivale a 60 segundos
  • 1 grado equivale a 60 minutos

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)
Escribe tu comentario
+ 2