Conversión masiva de coordenadas geográficas decimales a UTM usando los elipsoides Hayford y WGS 84

Con base a un requerimiento expresado en:

http://foro.gabrielortiz.com/index.asp?Topic_ID=32471

se procedió a modificar el programa que se encuentra en este artículo:

Conversión de coordenadas geográficas a UTM usando los elipsoides Hayford, WGS 84 o SAD 69

para procesar simultáneamente la conversión de coordenadas geográficas en formato decimal a UTM, usando los elipsoides Hayford y WGS 84, para una gran cantidad de datos. El programa toma los valores que necesita del archivo datos.in y escribe la salida al archivo datos.out. Desde datos.in el programa lee, en primer lugar, el número de valores y luego, secuencialmente para cada línea, el código para el elipsoide (Hayford = 1, WGS 84 = 2), el código para la ubicación con relación al meridiano de Grenwich (Oeste = o, Este = e; pueden usarse también mayúsculas), la longitud en grados decimales, el código para la ubicación hemisférica (Norte =n, Sur = s; pueden usarse también mayúsculas) y la latitud en grados decimales. El programa fue probado con un archivo datos.in de 5001 líneas y cuyo extracto, para que se observe su estructura, se coloca a continuación:

5000
2 o 70.439 s 25.184
2 o 65.8811388888889 n 10.3074166667
2 o 65.8811388888889 n 10.3074166667
.
.
.
2 o 65.8811388888889 n 10.3074166667
2 o 65.8811388888889 n 10.3074166667
2 o 65.8811388888889 n 10.3074166667

Cada línea (excepto la primera que señala el número de datos) contiene la información pertinente al ejemplo que se hace referencia en el artículo que se señala al inicio. Para sus propósitos particulares (es decir, cada línea con valores diferentes) ese archivo puede ser preparado usando una hoja de cálculo Excel y guardado en texto plano como datos.in (si mal no recuerdo, en Excel, el archivo de texto plano se guardaría como datos.in.prn por lo que sería necesario usar word pad o el blog de notas para producir finalmente el datos.in).

A continuación, tenemos un extracto del datos.out cuyas 5000 líneas presentan las coordenadas UTM X, Y precedidas por el número de línea correspondiente y el huso.

        huso           X              Y
   1     19      354998.1358    7213903.0114
   2     20      184416.0841    1140822.4972
   3     20      184416.0841    1140822.4972
.
.
.
 4998    20      184416.0841    1140822.4972
 4999    20      184416.0841    1140822.4972
 5000    20      184416.0841    1140822.4972

el cual fue obtenido por la ejecución del programa que se encuentra en el siguiente link:

GEO_UTM_MAS0.3.zip

Para propositos particulares modifiquen el datos.in tal como se sugirió arriba.

Nota: El programa no funcionaba adecuadamente para el hemisferio Sur. Ya lo corregí y lo calibré frente a SAGA GIS. El error fue menor de 1 cm en ambas coordenadas por lo que el conversor que Paulina dice haber usado (ver comentarios) y difiere en 23 metros en la coordenada Y con los resultados aquí expresados parece no funcionar adecuadamente.

Esta entrada fue publicada en Código C++, Transformar Coordenadas y etiquetada . Guarda el enlace permanente.

34 Respuestas a Conversión masiva de coordenadas geográficas decimales a UTM usando los elipsoides Hayford y WGS 84

  1. Pingback: Conversión de coordenadas geográficas a UTM usando los elipsoides Hayford, WGS 84 o SAD 69 |

  2. Hola José

    Estamos convirtiendo posiciones geográficas a UTM. Nos surge el problema de que estamos en Tenerife (huso 28) y al introducir las coordenadas nos aparece huso 26
    Ej.
    Entrada
    2 o 28.0588888 n -16.8594444

    Salida
    1 26 387194.8195 -1864331.0227

    Espero no quitarte mucho tiempo
    Gracias
    Manuel Carrillo

    • Los valores de las entradas son SIEMPRE POSITIVAS. El signo es colocado internamente por el programa de acuerdo a las letras (n, N, s, S, e, E, o, O) que se coloquen para hacer referencia a la latitud y a la longitud (es irrelevante usar mayúsculas o minúsculas siempre que sean las que mencioné anteriormente).

      Saludos

  3. Fue que invertistes los valores. Pruébalo así:

    1
    1 o 16.8594444 n 28.0588888
    

    Obtendrás esto:

            huso         X           Y
        1    28    317248.4442 3105164.7962
    

    Viéndolo en GoogleEarth fue que me di cuenta del error. El programa funciona bien.

    Saludos

  4. jorge dijo:

    Muy buena herramienta para convertir coordenadas geograficas a UTM, la verdad me sirvio bastante, sin embargo lo que hice fue pegar los datos en los archivos originales, ya que al querer crear una hoja aparte de jorge.in, no me da los datos, pero de todas formas logre obtener los resultados que queria.
    Felicito nuevamente a este link, por darnos estas herramientas

    • Gracias por tu comentario. Para producir los archivos desde Windows, excepto la manera que tu usastes que también es viable, hay que grabar desde Excel como un *.prn y después con wordpad abrirlo para guardarlo como el *.in requerido.

      Saludos

  5. Jorge dijo:

    Una herramienta igual pero que funcione al reves Conversión masiva de coordenadas UTM a geográficas decimales conoces alguna
    Gracias

  6. Maria Fernanda dijo:

    HOla, soy nueva en esto de las coordenadas y del sig. oye no puedo guardarlo en el formato que requiere el programa, solo llego hasta el prn, como hago el resto si wordpad no me dá la opción?
    mil gracias
    lo unico que tengo que convertir es

    20
    2 e 0 n 35
    2 e 0 n 37,5
    2 e 0 n 40
    2 e 0 n 42
    2 e 3,75 n 35
    2 e 3,75 n 37,5
    2 e 3,75 n 40
    2 e 3,75 n 42
    2 e 348,75 n 35
    2 e 348,75 n 37,5
    2 e 348,75 n 40
    2 e 348,75 n 42
    2 e 352,5 n 35
    2 e 352,5 n 37,5
    2 e 352,5 n 40
    2 e 352,5 n 42
    2 e 356,25 n 35
    2 e 356,25 n 37,5
    2 e 356,25 n 40
    2 e 356,25 n 42

    me puedes hechar una mano?

    • Primero que nada, revisa bien donde van colocadas esas comas porque no son coordenadas válidas. Luego, usa la opción de buscar y reemplazar de wordpad para cambiar las comas por punto porque tampoco funcionaría. Por ahora, no tengo acceso a wordpad porque estoy accediendo sólo a máquinas con Linux y Mac. Sino sería más explícito.

  7. Salva dijo:

    Hola.
    Me he descargado el ejecutable en mi disco duro, pero cuando accedo al programa, se me abre, me indica que presione cualquier tecla para continuar y cuando lo hago, se cierra el programa.
    Debo instalarlo con otra ruta?
    Muchas gracias.

  8. Paulina dijo:

    Hola estoy intentado convertir una planilla de datos del hemisferio sur y me entrega coordenadas que no coinciden con las de google earth, te pongo un ejemplo, ingreso:
    2 o 70.439 s 25.184
    y obtengo
    huso X Y
    1 19 354998.1358 12786096.9886
    sin embargo el valor de Y en google eart y probando todos los conversores que estan en linea es 7213880, lo probe para muchos valores y el error persiste, tu lo has probado con Lat S? al final tuve que hacer mis conversiones una a una, ojala puedas solucionar ese error porque la aplicacion es muy buena.
    Saludos

  9. Ya encontré el error. Está en un else y en consecuencia no hace nada con la s o S de hemisferio sur. Me di cuenta al colocar el archivo así (ya tenía mi sospecha de que allí estaba el error):

    1
    2 o 70.439 s -25.184
    

    lo que produce un resultado similar al esperado (hay una diferencia de aproximadamente 23 m que también tengo que averiguar de donde sale).

            huso         X           Y
        1    19    354998.1358 7213903.0114
    

    Tengo que corregirlo en el código fuente y compilarlo nuevamente. Después lo subo.

    Saludos

    • Hola José! Me parece muy interesante esta aplicación. La estaba tratando de usar para el hemisferio sur pero no funciona, los husos 19 y 18 de Chile Continental, y después de un buen rato de intentar, donde me tiraba al huso 18 y 43 coordenada por medio, me di cuenta de este post. Estaré atenta al upgrade!

      Catalina

      • Si, tiene un error pero como sólo la probé con valores del hemisferio norte no me di cuenta. Por otra parte, según mi experiencia, las diferencias deberían ser de centímetros por lo que un error de 23 m como señala Paulina es algo que también tengo que explorar. Por ahora, estoy algo complicado evaluando trabajos para un Congreso por lo que la revisión del error tendrá que esperar unos días.

        Saludos

      • Gracias José, estaré atenta, tu programa está realmente salvador. Sabes si existe algun ArcScript que hace esto directamente en ArcGis?

        Saludos

  10. Paulina dijo:

    Hola Jose, creo que la diferencia entre tu resultado y el mio es que en la latitud tu especificaste con el signo -, yo solo indiqué Sur (s) como indicabas en tu ejemplo, como dices que no hace nada con la s o S, al no poner signo da el valor que te indiqué que es una diferencia de mucho mas que metros.
    al parecer al poner e signo menos da un valor mucho mas cercano al real.

    • Hola, Paulina. El problema estriba en que al adaptar el programa para un sólo valor a aquel en que los toma masivamente sólo lo probé con datos del hemisferio Norte. Cuando lo estaba programando ese problema que tu experimentaste yo también lo viví porque estoy a la izquierda del meridiano de Grenwich y no le estaba haciendo caso a la O de la longitud y cambiarla de signo (obviamente lo solventé). En este caso, cuando se lee s o S del archivo, el programa tiene que cambiar la latitud de signo internamente y no lo está haciendo por un gazapo en la programación. Por eso es que “funciona” bien cuando lo cambio de signo en el archivo.

      Saludos

  11. Pingback: Conversión masiva de coordenadas usando SAGA SIG |

  12. marco dijo:

    Hola Jose, yo tengo un problema parecido al de paulina…tambien estoy entrando hace poco al mundo de la topografia y vi tu programa y se ve bueno. el problema es que cuando trato de convertir las cordenadas no me da correctamente. por ejemplo:
    necesito convertir
    latitud -23.631580°
    longitud -68.849853°
    esto es para chile en el UTM wgs 84

    gracias

  13. marco dijo:

    hola Jose soy yo denuevo, mira aqui pude dar con algo mas parecido a lo que me da el google, pero igual hay una diferencia de varios metros.
    datos in

    2		o		68.84985315		s		23.63157983
    2		o		68.83058181		s		23.62008431
    2		o		68.80971337		s		23.60040793
    

    datos out

        huso         X           Y
        1    19    515314.7653 7386553.6957
    

    y según el google sería

    515409.68 m E
    7386500.42 m S

    te pido si lo puedes revisar por favor.

  14. Mi programa funciona bien.

    datos.in

    3
    2 o 68.84985315 s 23.63157983
    2 o 68.83058181 s 23.62008431
    2 o 68.80971337 s 23.60040793
    

    datos.out

            huso         X           Y
        1    19    515314.7704 7386553.6924
        2    19    517281.9322 7387824.1511
        3    19    519413.5729 7389999.8211
    

    Lo calibré frente a SAGA GIS (ver imagen):

    y los resultados difieren en menos de 1 cm. Lamento decirte que por mucho que sea Google Earth tiene un bug en su conversor (y ese no es el único que tiene el programa) o utiliza un datum diferente, que no están señalando, para el cono sur. Eso es bueno que lo sepan aquellos que usan las imágenes de éste para georreferenciar.

    Además, tu lo calibraste frente a otro conversor que encontraste por allí y los resultados concordaron fue con mi aplicación (también menos de 1 cm); no con Google Earth.

    Saludos

  15. Pingback: Conversión masiva de coordenadas UTM a geográficas decimales usando los elipsoides Hayford y WGS 84 |

  16. Saludos
    Tengo un archivo excell con latitudes y longitudes que requiero convertir a utm (los puntos están tomados en el norte de Chile Zona 19). Tengo más 150 datos pero no he podido lograr…podrías darme una mano Te paso un ejemplo de la tabla que estoy manejando
    Atte

    1	Latitude: -22.45150348 Longitude : -68.91397979	-22.451503	-68.91398	2287
    2	Latitude: -21.6448061541 Longitude : -68.2769181859	-21.644806	-68.276918	2288
    3	Latitude: -21.6380645055 Longitude : -68.2827206422	-21.638065	-68.282721	2289
    4	Latitude: -21.6399261262 Longitude : -68.2870405074	-21.639926	-68.287041	3104
    5	Latitude: -21.6469793301 Longitude : -68.2822320610	-21.646979	-68.282232	3144
    6	Latitude: -21.6395429056 Longitude : -68.2861630898	-21.639543	-68.286163	3196
    7	Latitude: -26.5236673225 Longitude : -68.2538102847	-26.523667	-68.25381	3252
    8	Latitude: -21.6391956434 Longitude : -68.2852564193	-21.639196	-68.285256	3250
    9	Latitude: -21.6463582311 Longitude : -68.2806599513	-21.646358	-68.28066	3351
    10	Latitude: -21.6388127580 Longitude : -68.2844466437	-21.638813	-68.284447	3378
    
    • Así debe estar el archivo (lo hice sólo para los 5 primeros y para WGS84):

      5
      2 o 68.91397979   s 22.45150348   
      2 o 68.2769181859 s 21.6448061541 
      2 o 68.276918     s 21.644806		
      2 o 68.2827206422 s 21.6380645055  
      2 o 68.282721     s 21.638065	
      

      El resultado es el siguiente:

              huso         X           Y
          1    19    508850.7000 7517194.0277
          2    19    574823.0054 7606313.0291
          3    19    574823.0247 7606313.0461
          4    19    574226.0016 7607062.0296
          5    19    574225.9643 7607061.9750
      
    • Gracias por el comentario. Aprovecho la oportunidad para señalar que Google Earth ya corrigió los bugs y ciertas cosas no deseables que se venían experimentando y ahora su funcionamiento está más cerca de lo que queremos.

      Saludos!

  17. Mienko. dijo:

    Nada mas que decir, un gran aplauso!!!! Gracias por tu aplicación.

  18. hola, tengo el problema que al abrir el archivos de datos.in o datos. out me salen todos desordenados, cual es la manera de hacerlo correctamente para que salgan en le formato de arriba. Gracias

    • Manualmente. Fue que los edité en Linux y Windows tiene problemas para “interpretarlos” de manera correcta. No obstante, los resultados son los esperados porque están los indicadores de fin de línea y fin de archivo. Una vez que arreglas el datos.in conserva siempre el formato y produce datos.out sin problemas; por lo menos en mi sistema.

      Saludos

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s