domingo, 7 de enero de 2018

Transformación entre sistema de coordenadas en SIG.


El problema de transformación de coordenadas de puntos de un sistema de coordenadas a otros, es un problema común en geodesia, topografía, fotogrametría y cartografía. Si bien existen diferentes métodos para el cálculo y aplicación de parámetros de trasformación, ampliamente documentada en la literatura de las geociencias. En ingeniería geodésica básicamente este conjunto de métodos de transformación de coordenadas, están concentradas en dos grandes grupos:


  • Transformación de coordenadas entre datum: también conocidos como modelos de similaridad, entre los más usados se encuentra Helmert, Bursa-Wolf, Badekas-Molodensky, entre otros. Su aplicación radica en sistema de coordenadas geodésicas espaciales de tipo cartesiano o curvilíneo (Figura 1), asociados a diferentes sistemas/marcos de referencia. Esta relación matemática es expresada típicamente mediante 7 parámetros de transformación, aunque existen modelos que utilizan un mayor número de parámetros de transformación (PT).


Figura 1. Datum geodésicos horizontales (ϕ, λ), (H) y tridimensionales (ϕ, λ, h), (H)
Fuente : 
IGAC (2004)



  • Transformación de coordenadas entre sistemas bidimensional: los modelos de transformación de similaridad, se enfocan por transformar una figura de un sistema/marco de referencia a otro, sin alterar su forma. Sin embargo, dada las características de las redes geodésicas medidas con métodos convencionales (redes clásicas), muchas veces es conveniente implementar modelos matemáticos de alcance local, de modo que minimice las distorsiones existentes y mejore la precisión de las coordenadas resultantes. Esta metodología es de especial utilidad en cartografía urbana y mapas catastrales. Entre ellos podemos mencionar: transformación lineal conforme, transformación afín, transformación proyectiva, transformación polinómica (Figura 2).


Figura 2. Sistema de coordenadas bidimensional.
Fuente: Ghilani, y otros (2006).


1. La transformación de coordenadas en los paquetes SIG.

En la actualidad, existen un gran conjunto de software de SIG que permiten la trasformación de coordenadas, ingresando la capa de entradas y los respectivos parámetros de transformación (PT). Sin embargo los modelos matemáticos más complejos lo poseen los paquetes SIG de licencia comercial, entre los más conocidos ArcGIS de Esri® y Modular GIS Environment de Intergraph Corporation®. Siendo la componente económica para la adquisición de licencia y soporte técnico, una gran limitante para el usuario, que necesite transformar un gran volumen de datos geográficos.

En cuanto al software SIG de licencia libre (open source), los modelos matemáticos que trae por defecto, son por lo general: Modelos de similaridad (Molodensky-Badekas) y modelos de transformación lineal conforme y transformación afín. Siendo esta una desventaja, si se requiere modelo matemáticos más complejos.

2. El lenguaje de programación Python en los paquetes SIG.

El uso de Python en los SIG, se debe primeramente por ser uno de los lenguajes para scripting, siendo un lenguaje de programación orientado a objeto, de sintaxis clara, ordenada y legible. Aunado a la disponibilidad de bibliotecas de códigos (librerías) asociadas a las herramientas SIG y de procesamiento digital de imágenes como en el caso de SAGA GIS, GDAL/ORG, GRASS GIS, GeoSERVER, gvSIG, ArcGIS, QGIS entre otros. Lo que da una gran flexibilidad por parte de usuario, para crear rutinas que permitan automatizar tareas repetitivas y personalizar herramientas. En este caso es indispensable por parte del usuario, el uso de la creatividad y la imaginación para resolver problemas.

3. Un ejemplo de transformación de coordenadas usando Python en QGIS.

La información cartográfica disponible de la ciudad de Maracaibo, capital del Estado Zulia, fue elaborada en base a un vuelo fotogramétrico efectuado en el año 1996, este producto cartográfico se encuentra referido al sistema local de la ciudad que se materializa en el origen Catedral de Maracaibo.

El cual presenta inconsistencia con los procedimiento de adquisición de información geográfica actual, en mi caso particular, servicios online de mapas (Google Maps, Bing Maps, Yahoo Maps entre otros), servicios de mapas base vectoriales (Open Street Maps, mapas bases de Esri, Google Maps) y adquisición de puntos y rutas con el dispositivo de navegación GPS en el sistema de referencia geográfico WGS84.

Este problema de transformación de coordenadas entre el sistema Local catedral de Maracaibo y el datum REGVEN, fue abordado por el profesor Ing. Geovanni Royero de la escuela de Ingeniería Geodésica de la Universidad del Zulia, mediante su trabajo de Ascenso para optar a la categoría de profesor asociado, titulado “Georreferenciación del mapa digital de Maracaibo en el datum REGVEN apoyándose en imágenes de satélites y mediciones GPS” (2003). El aporte de esta valiosa investigación arrojo el modelo matemático y los parámetros de transformación de coordenadas, con calidad de ± 3 cm, además de una metodología de conversión de archivos vectores en software privativo Modular GIS Environment de la empresa Intergraph, siendo esta una gran limitante.

Sin embargo, se desarrollo una script en lenguaje de Python, para abordar la problemática de la transformación de coordenadas entre el Sistema Local Catedral de Maracaibo y la proyección REGVEN UTM-19N, usando la API de PyQGIS y los parámetros de transformación calculados por el Prof. Geovanni Royero, este como insumo fundamental. Básicamente el script se desarrolla siguiendo un flujo de trabajo como se muestra en la Figura 3.

Figura 3. Diagrama del flujo de trabajo del Script de transformación de coordenadas.
Fuente: elaboraciòn propia.


El script contiene una declaración de entrada, que corresponde a los archivos vectoriales de geometría simple (puntos, polilíneas o polígonos), se analiza los posibles errores en tiempo de ejecución como es el caso de tener:

  • Capas vacías,
  • Geometrías múltiples,
  • Uso del un sistema de proyección diferente de EPGS 2202 (REGVEN UTM 19N),
  • Coordenadas fuera de rango del Sistema Catedral de Maracaibo (SCM), el cual abarca el límite superior e inferior de la extensión geográfica del municipio Maracaibo.

Estas restricciones deberían de proteger la ejecución del algoritmo y obtener una capa de salida satisfactoria.
Una vez que la capa de entrada evite las restricciones anteriores, el proceso de ejecución comienza con la extracción de coordenadas y se realiza el cálculo de transformación de coordenadas con el modelo propuesto, esta información se almacena en un objeto tipo lista. De igual manera, se almacena en una lista los atributos de la capa de entrada. Se crea una réplica de la capa de entrada, mediante una capa temporal (memory layer) la cual contendrá la información de la geometría calculada en coordenadas UTM19N y sus respectivos atributos.

Aunque el proceso parezca sencillo, se debe estar familiarizado con la estructura de programación en Python, es decir conocer sus sintaxis, sentencias, definiciones, clases y tipo de objetos de forma avanzada. El proceso se completa, cuando se está adiestrado en el uso, de las herramientas de la librería de PyQGIS, conociendo de antemano, los comandos necesarios, para cumplir las fases de cada geoproceso.

4. Resultado y conclusiones.

Se obtuvo un script de forma satisfactoria que permite la transformación de coordenadas de un sistema de referencia a otro (en este caso del sistema local catedral de Maracaibo a la proyección REGVEN UTM19N) cuyo modelo matemático no se encuentra entra las herramientas de geoprocesos de QGIS. . El script definitivo contiene 197 líneas de códigos, estructurado en doce (12) funciones, con 4 excepciones. El script se muestra a continuación en el siguiente link

https://www.dropbox.com/s/qojqalnpu0px32t/vector_convert_CATEDRAL-UTM19N_12102017.py?dl=0

La aplicación se analizara mediante un análisis FODA (Fortalezas, Oportunidades, Debilidades y Amenazas) como estrategia para criticar la propuesta de script en su fase inicial, detectar las potenciales amenazas y mitigar las posibles debilidades y riesgos mediante fortalezas y oportunidades, estimando los recursos disponibles para la realización de algoritmo en un SIG.


Fortalezas (+)Oportunidades(+)
·        Script de Python en QGIS.·        Se puede ejecutar en cualquier sistema operativo utilizando QGIS.
·        Otros modelos matemáticos de transformación de coordenadas se pueden implementar en Python, sin importar el nivel de complejidad.
·        Geoproceso rápido y confiable para la transformación de un gran volumen de datos geográficos.


Debilidades(-)Amenazas(-)
·        No realiza la transformación de coordenadas de capas vectoriales de geometría múltiple, debido al que acceso a la geometría de la misma es más complejo.·        Dependencia al API de plug-in de PyQGIS, que puede cambiar en cualquier momento.
·        El script esta focalizado en la API de PyQGIS, por lo cual no se puede ejecutar en ningún otro software SIG, como por ejemplo gvSIG.

A continuación, se analiza las amenazas:

  • Dependencia al API de plug-in de PyQGIS, que puede cambiar en cualquier momento.
  • Mitigación: Se analizará los cambios del API y actualizaremos nuestro script a la última versión del API. Son muy poco frecuente o casi nulo, estas actualizaciones en las últimas versiones de QGIS.
  • Contingencia: En caso de que el API cambie demasiado, se seguirá utilizando el script en la versión 2.18.4 de QGIS.

Una muestra de esta aplicación se puede apreciar en el siguiente video-tutorial

https://youtu.be/K0VSksAUq80

Referencia bibliográfica


  • Sherman, Gary. 2016. The PyQGIS programer's Guide. AK : Locate Press LLC, 2016. 978-0989421720.


No hay comentarios:

Publicar un comentario