jueves, 23 de junio de 2016

Creación de topologías en ArcGIS

La capacidad de realizar análisis topológicos, es una de las piedras angulares en los Sistemas de Información Geográfica, y que entre otras cosas, lo diferencia de programas de Diseño Asistido por Ordenador (CAD).

La topología (geoespacial en este caso) dentro de un GIS se podría definir como las relaciones espaciales entre las distintas entidades geométricas de los elementos de nuestro proyecto. Estas relaciones son por ejemplo; vecindad, proximidad, superposición, etc. 

Estas propiedades tienen una gran relevancia en el estudio de elementos con una componente espacial, por ejemplo, para determinar las distancias entre elementos que han de interactuar entre ellos (la distancia entre una estación de bomberos y una fábrica de productos inflamables). A lo largo de los años los SIG han desarrollado y mejorado la capacidad de análisis basadas en la topología. 

Muchos de los problemas que nos encontramos a la hora de trabajar con datos vectoriales de distintos formatos, es la falta de consistencia topológica que presentan. En muchos casos esto se debe a que en su origen estos no fueron concebidos pensando en sus relaciones espaciales sino como una mera representación de la realidad geográfica de una determinada zona. En otras muchas ocasiones la conversión de formatos entre distintas plataformas genera este tipo de inconsistencias que nos pueden generar más de un quebradero de cabeza. Un caso habitual es intentar crear un shape poligonal, a partir de uno lineal y ver que de los 5000 polígonos esperados solo tenemos 1000.

ArcGis ofrece distintas herramientas para identificar, y en algunos casos subsanar dichos problemas. Evidentemente el primer paso para solventar este tipo de situaciones es localizar los errores, para ello lo primero que tendremos que hacer es migrar los datos en cuestión dentro de un Feature Dataset, que a su vez estará dentro de una Geodatabase. La forma mas cómodo para hacerlo es creando en ArcCatalog la geodatabase y dentro ella el Feature Dataset, y dentro de este, importar el fichero en cuestión.




En este punto estamos en disposición de comenzar a generar la topología para dicha capa. Lógicamente hemos de saber cuáles son nuestras necesidades ya que tendremos que definir ciertas reglas topológicas, por ello antes de nada tendremos que analizar cuáles son los problemas que se nos presentan. En el ejemplo anterior posiblemente el error esté en que la capa lineal no está correctamente cerrada (o por lo menos no dentro de la tolerancia permitida). Para localizar dichos errores tendríamos que indicar dentro de la topología que tuviese en cuenta esta incidencia. Para ello ArcGis ofrece una serie de reglas topológicas, como por ejemplo la detección de colgantes, que en nuestro ejemplo sería la que nos sería de utilidad. Para añadir una (o varias) reglas topológicas dentro de nuestra geodatabase simplemente tendremos que desplegar el menu con el botón derecho del ratón y marcar la opción “New - Topology” 


Una vez aquí solo tendremos que ir siguiendo al asistente para definir el nombre de la topología , la tolerancia de la misma, la capa sobre la que será aplicada y por último la regla topológica concreta que vamos a aplicar, en nuestro caso “Must not have dangles”


Entonces el programa creara las relaciones especificadas, y nos preguntara si queremos validarla, le decimos que si y veremos como aparece una nueva capa dentro de nuestra Geodatabase. En este punto ya podremos conocer la magnitud de nuestro problema, ya que mirando las propiedades de la nueva capa, y pinchando en “Generate Summary”, podremos ver el número de elementos que incumplen la(s) regla(s) topológica(s) definidas.


Una vez llegados a este punto el siguiente paso lógico sería solucionar estos errores, a ser posible de la manera más automática que se pueda, y como veremos más adelante esto no siempre es fácil. 

Por supuesto ArcGIS ofrece múltiples formas de eliminar colgantes, pero en ocasiones (por lo menos a mi entender) no siempre es la más óptima, tanto en tiempos de procesos como en la calidad del resultado. 




sábado, 4 de junio de 2016

Creación de un MDT con ArcGIS. (Continuación)

Como vimos en la entrada anterior la creación de un MDT a partir de un archivo vectorial del formato que sea es relativamente fácil de realizar en ArcGIS, pero como tantos otros procesos en un GIS se puede hacer de muchas maneras. 

Esta otra forma de realizar un modelo digital de elevaciones es un poco más complicada, pero sin duda es más precisa que la anterior. 

Supongamos nuevamente que tenemos como fichero de origen un fichero DGN, el cual tiene definidas las entidades que la componen no solo por niveles (lo que en AutoCAD serían Layers), sino también por un vínculo a una BBDD que nos da un número que hace referencia al tipo de elemento que nos encontramos. Los que hayan utilizado MicroStation GeoGraphics sabrán de lo que hablo, para los que no, simplemente tendrán que cargar el fichero en ArcGIS, y abrir la tabla de atributos y entre las múltiples columnas verán una llamada MsLink-ODBC que hace referencia al vínculo que tenía ese elemento con la BBDD que definía el tipo de entidad.


Con este campo podremos conocer el tipo de entidad al que nos enfrentamos (por supuesto siempre que tengamos la correspondencia entre el número y la entidad geográfica a la que hace referencia, que estará definido en la BBDD a la que el fichero .dgn estaba vinculado). De esta manera podremos separar cada elemento para la posterior generación del MDT.

El paso siguiente será hacer la extracción de los elementos según este MSlink, para ello tendremos que reflexionar sobre qué elementos nos pueden ser útiles, y realmente pueden definir un MDT, ya que por ejemplo las líneas de los edificios o alambradas son elementos que cuando se restituyen no tienen cota terreno, y no han de ser tenidos en cuenta para este propósito.

Después de examinar todos los elementos, ya tendremos una lista de todos los MSlink que vamos a utilizar para generar nuestro MDT, ahora podemos operar de dos maneras, o bien separar los ficheros en el de origen (posiblemente para los que estén acostumbrados a trabajar con Microstation Geographics, será más rápido de esta manera), o hacerlo en ArcGIS. Aquí lo haremos en ArcGIS para no tener que depender de ningún otro Software externo para realizar el proceso completo.

Así pues, cargamos en ArcGIS el fichero inicial (en este caso al abrirlo veremos que como con los ficheros .dwg el programa los separa según el tipo de elemento), en nuestro caso será suficiente con el fichero de puntos y de polilineas


Haremos una selección por atributos de cada MSlink (este sería un buen ejemplo para crear una herramienta en Model Builder si tuviésemos que repetir este proceso en distintos ficheros) y la exportamos a un shape con el nombre de la entidad.



El resultado sería algo de este estilo, dependiendo del número de entidades que se utilicen para crear el MDT:



En ArcToolBox seleccionamos la herramienta Topo to Raster y añadimos los diferentes shapes de la siguiente forma:



El resto de valores los podemos dejar como aparecen por defecto, lo único que hay que definir es el “Type” ya que dependiendo del tipo que le asignemos, la interpolación que realizará ArcGIS será distinta. Es aquí donde reside la mayor diferencia con respecto al método anterior, ya que asignando un tipo más apropiado de interpolación, dependiendo de la entidad considerada, el resultado será más preciso.



Y a este le aplicaremos la herramienta Raster to Tin para crear el TIN, si es el tipo de archivo de salida que necesitamos.