1 votos

¿Cómo se convierte a grados y minutos desde un código DMS de latitud/longitud de 8/9 dígitos?

Estoy tratando de mapear el inventario nacional de puentes, pero las coordenadas se almacenan en este código de 9 dígitos para longitud (y 8 dígitos para latitud)

EJEMPLO:

Longitud es 81°5.8'
Código es 081054800

La página 9 del documento encontrado aquí explica:
http://www.fhwa.dot.gov/bridge/mtguide.pdf

Los datos se pueden encontrar aquí:
http://www.fhwa.dot.gov/bridge/nbi/ascii.cfm

He visto que hay herramientas como Mimee, pero no puedo entender cómo ejecutarlo en Ubuntu (intenté instalar las bibliotecas correctas, etc.)

¿Existe tal vez otra forma de hacer esto?

4voto

Subimage Puntos 1492

Si estás trabajando en Ubuntu, podrías usar esto en un script de shell:

  1. Para obtener una longitud como 81°5.8' (grados y minutos a partir del código en d,m,s):

    tmp0=`echo 081054800 | cut -c2,3`
    tmp1=`echo 081054800 | cut -c5`
    tmp2=`echo 081054800 | cut -c6,7`
    tmp3=`echo "scale=2; $tmp2/60" | bc -l`
    echo $tmp0 $tmp1 $tmp3 | awk '{ print $1"°"$2$3"'\''" }'

lo cual da como resultado: 81°5.80'

  1. Para obtener una longitud como 81.096666667 (grados decimales a partir del código en d,m,s):

    tmp0=`echo 081054800 | cut -c2,3`
    tmp1=`echo 081054800 | cut -c5`
    tmp2=`echo 081054800 | cut -c6,7`
    echo "scale=10; $tmp0+(($tmp1+$tmp3)/60)" | bc -l

lo cual da como resultado: 81.09666666666666666666

puedes jugar con la escala para obtener la precisión que necesitas. Además, creo que necesitas hacer una lista completa a la vez, luego usar un bucle for por ejemplo.

Espero que esto ayude,

1voto

kooshmoose Puntos 392

No estoy seguro de qué software quieres usar o cómo estás manejando ese archivo, pero dado que el Código sigue XXX XX XX.XX para Grados Minutos Segundos, respectivamente, puedes convertir manualmente:

Grados Decimales = Grados + ((Minutos / 60) + (Segundos / 3600))

Grados Decimales = 81 + ((05 / 60) + (48.00 / 3600)) = 81.096667

Para obtener Grados y Minutos Decimales -- la pregunta:

(Grados = Grados) y Minutos Decimales = Minutos + Segundos / 60

81° y 5 + (48 / 60) = 5.80'

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X