viernes, 2 de diciembre de 2016

Análisis topológico con FME Desktop


Existen muchas alternativas para realizar un análisis topológico de nuestro conjunto de datos, sin duda el más completo, desde mi punto de vista es ArcGIS, ya que permite realizarlo desde un primer momento, hasta las últimas fases del mismo realizando una limpieza total de los datos de partida. Pero que sea el más completo no significa que sea el más eficiente, ni que todas las fases del análisis respondan al 100% a nuestras necesidades y expectativas. 

Actualmente encontramos en el mercado una gran variedad de herramientas y programas que pueden completar las “debilidades” del programa de la firma ESRI, e incluso mejorar muchas de las utilidades implementadas en el mismo, haciéndolo más eficiente. Para mi, sin duda, uno de los mejores es FME Desktop, que como ya comenté en una entrada anterior es una herramienta ETL mayormente centrada en la manipulación de información geoespacial. 

Evidentemente este programa no hace milagros, y sí como en el caso que veíamos en la entrada “Revisión de topologías en ArcGIS” (en la cual pretendíamos crear polígonos a partir de líneas), los datos iniciales presentan errores topológicos, como por ejemplo colgantes, el resultado no será todo lo completo que nos gustaría, quedándonos líneas sin su polígono correspondiente.

FME ofrece multitud de herramientas para realizar un análisis topológico previo, para detectar y depurar errores, pero sin duda lo más interesante es que podemos resolver los errores directamente, sin crear una topología previa, ya que el programa la genera en tiempo de ejecución.

Así pues en el ejemplo anterior, y para minimizar los errores, podemos añadir una serie de transformadores que hacen una depuración previa de los datos de partida. El modelo podría quedar de la siguiente manera:

Cada una de las partes del modelo presenta una serie de características y variables que podemos modificar según consideremos. Vamos a analizar uno a uno todos los elementos del modelo, pero hay que tener en cuenta que el programa contiene al rededor de 500 transformadores, y cada uno de ellos con sus propias variables. Evidentemente esto es solo una pequeña muestra del potencial de este programa, que intentaré desarrollar en futuras entradas.

  • Snapper: esta herramienta se utiliza para alargar líneas (o añadir vértices), hasta la línea más próxima. También nos permite utilizar un atributo en concreto para realizar esta acción. Por ejemplo si tenemos en un mismo shapefile distintos elementos lineales tales como alambradas, muros, tapias… puede ser que necesitemos realizar este proceso solo sobre un tipo de entidades. Para ello realizaremos esta acción especificando el campo concreto en el cual queremos realizar el proceso. Obligatoriamente tendremos que asignar una tolerancia al proceso (cuanto mayor sea esta más impredecible será el resultado). Otra serie de variables son el tipo de snapping, añadir vértice adicional, que modificaremos en función de nuestras necesidades.


  • Intersector: esta herramienta se utiliza para romper elementos que se cruzan ya sean poligonales o lineales. Por ejemplo si tenemos un archivo de líneas que van a conformar una red del tipo que sea, esta herramienta es útil porque nos generara vértices en las intersecciones de la red. En el caso de tener un shape poligonal, por ejemplo de cultivos de una zona, nos será útil para eliminar solapes entre parcelas, para no falsear la superficie total de trabajo. Las distintas opciones que nos brinda esta herramienta son por ejemplo tener en consideración la z del elemento, ya que en muchos casos los cruces entre líneas a distinta cota no necesitan un vértice adicional. También nos da la opción de partir líneas que se cruzan con sí mismas, y otra serie de opciones que vendrán definidas por las necesidades del tipo de trabajo a realizar.

  • Area builder: esta herramienta se utiliza para crear polígonos a partir de líneas. Si los procesos anteriores se han realizado de forma correcta, y han solucionado los errores topológicos, los polígonos serán generados correctamente.