En el presente artículo ofreceré un par de scripts que permiten transformar desde el Sistema de Coordenadas Geodésico Angular Tradicional al Sistema de Coordenadas Universal Transversal de Mercator (UTM) y viceversa. Ya que hay una gran variedad de estos, el único aporte de este es la posible utilización dentro de una máquina linux, que sea capaz de efectuar la conversión automáticamente vía BASH (accediendo quizá mediante CGI, PHP o como se desee).
La transformación es original de Coticchia-Surace que cuenta con una gran facilidad de implementación a través de un algoritmo sencillo de orden 1, gracias a la aproximación de una sumatoria utilizando una serie de Taylor.
El sitio de Gabriel Ortiz ofrece una amplia gama de artículos de los cuales obtuve los algoritmos de ambos scripts.
En primer lugar debo indicar que el archivo tal como está sirve únicamente para zonas de Chile continental, pero Ud. podrá utilizarles para su zona geográfica si conoce previamente la información relativa a los elipsoides utilizados para cada lugar.
Los elipsoides y datums configurados son:
Por otro lado el algoritmo para convertir una coordenada determinará el huso al cual corresponde cada coordenada, no obstante Ud. puede forzar a que un punto sea representado dentro de una zona indicando tal huso mediante la opción -h [huso].
NOTA: recuerde que las coordenadas obtenidas de esta manera pueden no corresponder con un 100% de certeza al lugar deseado, es por ello que se opte por ello, solo para los husos contiguos para efectos de presentación en el plano (considere que, por lo general, un plano puede caer dentro de dos o más zonas por lo cual los puntos de una de estas zonas se suelen forzar para que la presentación sea correcta, aunque el valor correcto sea uno diferente).
Los husos utilizados en Chile continental son el huso 18 y el huso 19. Por convenio se utiliza canónicamente el huso 19 para las representaciones de proyecciones sobre un plano.
Favor modificar los permisos de cada archivo para que posea permisos de ejecución.
>> Conversor geo2utm.sh en Megaupload <<
Como podrá ver en las opciones anteriores puede optativamente indicar el datum y huso a utilizar para calcular las coordenadas UTM. La opción -t hace que solo se impriman las partes enteras de las coordenadas, algo que necesité para utilizar el comando en un script mayor que calculaba las coordenadas de varios puntos. La opción -s nos permite indicar las coordenadas en sexagesimal, grados minutos y segundos (solo el último valor puede ser un real), sin esta opción se ingresa la latitud y longitud en forma de número real. Y siempre acompañar con la letra que indique dirección de cada parámetro N ó S y E ó W.
>> Conversor utm2geo.sh en Megaupload <<
En este caso el huso es un parámetro necesario ya que para un mismo par de coordenadas estas son válidas probablemente en más de un huso. La zona también es requerida, ya que ella nos indicará si efectuar un paso previo o no.
Como podrán ver en los ejemplos pueden obtener una ayuda para cada comando si utilizan la opción -H
También pueden ejecutar los scripts en modo depuración mediante la variable de ambiente DEBUG igual a 1, así:
En este caso deberás añadirle. Lo único que debes saber es el nombre del datum, el elipsoide que este datum utiliza y los valores para los semi-ejes de cada elipsoide.
Una vez que poseas esta información puedes añadir a los arrays ELIPSOIDE y DATUMS los valores que necesites.
Utilizamos un datum imaginario llamado IMGDatum que utiliza el elipsoide ficticio Huevo con semi eje mayor: 6543210 y semi eje menor: 6543000.1234.
En tal caso añadimos a ambos arrays los valores indicados, quedando ellos como sigue:
A continuación puedes añadir el nombre del datum y el elipsoide que utiliza de la lista anterior (puedes usar cualquiera de los definidos).
Ahora solo utilizamos la opción -d IMGDatum para utilizar dicho datum en la transformación.
Lamentablemente no es tan simple, ya que un mismo punto por lo general no coincide con las coordenadas geodésicas aplicadas de transformar UTM a geodésico, debido a que se debe hacer una corrección previa de traslación y rotación, la cual no está especificada, ya que esto requiere un trabajo en terreno para determinar los deltas a aplicar.
¡Qué sea de su utilidad!