domingo, 25 de octubre de 2015

Novedades del QGIS 2.12 Lyon - Parte 3: Map Composer











Por fin ya podemos contar con la versión QGIS 2.12 denominada Lyon, aunque por el momento solo disponible para su instalación a través del instalador del OSGeo4W. 
En esta tercera entrega seguimos comentando sobre las novedades existentes en la nueva versión, por lo tanto ahora nos toca tratar sobre las mejoras dentro del diseñador de impresión de los mapas (Map Composer).

Objetivo:

  • Elaborar un grupo de mapas sobre áreas naturales protegidas configurados para su presentación a través de un atlas.

Datos:

Para la presente ejercicio vamos a emplear datos de tipo vectorial, los cuales representan a las áreas naturales protegidas (ANP) presentes en el Perú, los cuales pueden ser descargados libremente desde el SERNANP (Figura 1), institución pública dedicada a la administración de éstas áreas. Desde aquí se van a emplear dos tipos de cobertura, el que corresponde a la denominación de "ANP de Administración Nacional" y lo que corresponde a la "Zonificación de ANP".

Figura 1: Servidor de Mapas del SERNANP

Los datos específicos que vamos a emplear para el ejercicio pueden ser descargados desde aquí.

Generando un Atlas con QGIS

Una de las opciones que tenemos cuando vamos a elaborar un mapa dentro del diseñador de impresión, es configurar nuestras salidas a modo de Atlas. Muchas veces se requiere imprimir varios mapas de una misma temática y que representan distintas áreas de interés, además se pretende que todos ellos puedan mantener un mismo estilo. La creación y actualización de este tipo de mapas empleando la manera tradicional puede demandar mucho tiempo; por lo tanto el QGIS presenta la alternativa de generar un Atlas, tomando como referencia una capa que abarca todo el ámbito y dentro de sus atributos posee registros con la temática a diferenciar.


Paso 1: Descargar los datos proporcionados para el ejercicio y abrirlos dentro del QGIS, se recomienda activar los estilo que se proporciona junto con los datos, aunque también pueden generar sus propios estilos.


Figura 2: Vista de tres áreas naturales protegidas 


Paso 2: Ahora vamos a generar un nuevo diseñador de impresión, esto se logra ingresando a Proyecto-->Nuevo diseñador de impresión, o también haciendo clic en el icono que lo representa (Figura 3), al cual debemos indicarle un nombre.


Figura 3: Generando un nuevo diseñador de impresión


Paso 3: Una vez dentro del diseñador de impresión, vamos a configurar como A3 al tamaño de página y la orientación va ser vertical, luego debemos añadir un mapa nuevo, para ello hacemos clic en el icono correspondiente (Figura 4), se arrastra sobre el lienzo generando un rectángulo manteniendo presionado el botón izquierdo del mouse, logrando mostrar todo el contenido del mapa. 


Figura 4: Incorporando las capas al diseñador  y configurando el tamaño de la página 

Paso 4: Como siguiente paso debemos generar el atlas, para eso nos dirigimos a la pestaña correspondiente y activamos la casilla (1), luego debemos escoger nuestra capa de cobertura (2), esta parte es importante porque define aquella capa guía para diferenciar de un mapa a otro. En esta nueva versión del QGIS existe ahora la opción de generar un nombre de página, el mismo que puede escogerse entre los campos de la capa de cobertura o generar uno específico ingresando una expresión (3), asimismo se tiene la opción de ordenar la secuencia de los mapas a generarse el cual puede tener direcciones diferentes (4), por último se cuenta con la opción de generar una expresión de salida, es decir cómo serán nombrados los archivos de imagen o de tipo PDF, en este caso se generó una expresión que indica la categoría del área natural protegida seguido del nombre de página correspondiente ya definido anteriormente (5).


Figura 5: Activando y configurando la generación de un atlas.

Paso 5: Ahora debemos indicarle dentro de la pestaña de propiedades que lo vamos a "Controlar por atlas" (1), luego tenemos la opción de ajustar los márgenes alrededor del objeto (2), sobre todo si vamos a colocar etiquetas en la parte superior, se va requerir un espacio. Si ahora hacemos clic en el botón que indica "Atlas anterior" (3), veremos que sobre el lienzo aparece una capa individual (4), también observaremos que como parte de las mejoras con esta nueva versión se muestra el nombre de la página en la barra superior (5).

Figura 6: Configurando nuestro diseñador para que sea controlado por un atlas.


Paso 6: Con la finalidad de ajustar mejor las escalas, se recomienda ir revisando de una página a otra usando las fechas ubicadas a ambos lados del nombre, con la finalidad de verificar las escalas que se muestran. En este caso en particular se generó un campo de datos adicional, denominado "Escala" (Figura 7), en donde se ingresó la escala más adecuada para cada página; por lo tanto, lo que faltaría realizar es indicarle que tome en cuenta dichos valores. 

Figura 7: Ajustando los valores de escala más adecuado.

Paso 7: Con lo realizado hasta ahora se cuenta con los mapas a modo de atlas, pero es necesario darle algunas acciones para que el mapa presente mayor información. Entre ellos primero colocar un título al mapa, por lo tanto es necesario ingresar una etiqueta en la parte superior (1), pero como el título tiene que ir modificándose para cada página, debemos ingresar una expresión, primero haciendo clic en el botón correspondiente (2) y ya dentro del editor de expresiones, trabajamos con datos concatenados (3), al final tendremos una expresión que permitirá que vaya cambiando al pasar de página (4) y esto se mostrará en la parte superior (5).


Figura 8: Incorporando las etiquetas de las páginas


Paso 8: Algo importante a considerar en todo mapa es la leyenda; sobre todo en esta caso que se trabaja a modo de atlas, no debemos olvidar activar el botón que nos permite filtrar la leyenda de acuerdo al contenido, porque no todos los mapas a generarse presentan el mismo contenido.

Figura 9: Aplicando filtros para limitar el contenido de las leyendas.


Paso 9: Ahora podemos ingresar unos campos de la tabla de atributos, sobre todo porque quiero mostrar que en esta nueva versión del QGIS, podemos editar los colores de fondos de los campos. Para ello una vez que seleccionamos los campos a mostrar, podemos realizar una "personalización avanzada", indicando para este caso los colores que deseamos mostrar en los encabezados y en las filas.

Figura 10: Editando la tabla de atributos



Paso 10: También podemos incorporar otros elementos como la barra de escala y también otras etiquetas como por ejemplo la fecha de creación, el software empleado, en realidad ya depende de lo que deseamos mostrar. También es importante poder incluir la grilla de coordenadas, asimismo si deseamos "dibujar las coordenadas", en esta nueva versión existe la opción de personalizarlo (Figura 11). Para quienes desean probar esta opción les recomiendo ver estos vídeos: Composer Scale and Custom Grid Annotations  y Custom grid coordinates annotation.


Figura 11: Opción de personalizar el dibujo de las coordenadas.


Paso 11: Finalmente, una vez que hemos incorporado toda la información que deseamos mostrar en los mapas, podemos exportarlo ya sea como SVG (modo vectorial), como PDF o como imágenes, para ello te solicitará una carpeta en donde se van a guardar los mapas.

Figura 12: Opciones para exportar nuestros mapas a modo de atlas.



El resultado final se aprecia de la siguiente manera:

Figura 13: Resultado final de la exportación de los mapas.



Indicaciones Finales

Con esta entrega cumplo con lo prometido, el objetivo era mostrar algunas novedades de la nueva versión del QGIS 2.12 Lyon, sobre todo con algunas herramientas muy útiles y en última parte sobre cómo podemos sacar mayor provecho a nuestro diseñador de mapas. Todavía no logro explorar con mayor profundidad las otras novedades que existen pero poco a poco los iré descubriendo y desde aquí los animo a que lo hagan también. Como siempre les recomiendo revisar los enlaces que indico en las referencias, hay vídeos muy interesantes que les ayudará a profundizar los temas presentados. Estaré atento a sus comentarios y sugerencias, hasta otra oportunidad.


Referencias:







viernes, 23 de octubre de 2015

Novedades del QGIS 2.12 Parte 2: Herramientas de Geometría

Tal como lo mencioné en la entrada anterior, vamos a continuar mostrando las novedades que se vienen con el QGIS 2.12. En esta oportunidad vamos a probar las nuevas herramientas de geometría. En específico sobre las herramientas denominadas Comprobar geometrías (Geometry Checker) y Autoensamblar geometrías (Geometry Snapper).

Objetivos:

  • Verificar la validez de la topología y geometría de una capa vectorial, corrigiendo los errores encontrados usando la herramienta "comprobar geometrías".
  • Realizar el ajuste o alineado de una capa vectorial apoyado de una capa de referencia, empleando para ello la herramienta "autoensamblar geometrías".

Datos:

Para realizar las practicas de estas herramientas vamos a emplear un grupo de capas de tipo vectorial, todos ellos abarcan límites administrativos de Perú, en específico dentro del departamento de Ucayali, habiendo sido descargados desde el OSM (OpenStreetMap), en este caso se realizó empleando un plugin denominado "QuickOSM", no es el objetivo hablar sobre ello pero si lo recomiendo cuando se requiera obtener capas vectoriales de una zona determinada.

Los datos para los ejercicios pueden ser descargados desde aquí.

Geometry Checker - Comprobar geometrías

Con la presente herramienta ubicado dentro de la barra de menú Vectorial (Figura 1), vamos a poder primero, verificar la validez topológica y geométrica de capas vectoriales, detectando errores que pueden presentarse. Para aquellos que ya vienen usando el QGIS, seguramente han probado la herramienta denominada "comprobador de topología", muy útil para verificar la topología y descubrir la existencia de errores, pero que su corrección se realizaría empleando otras herramientas, por lo tanto en este caso no solamente vamos a detectar la existencia de errores sino también vamos a poder corregirlos inmediatamente, para lo cual nos mostrará opciones de corrección.

Figura 1: Ubicación de las herramientas de geometría 



Paso 1: Una vez descargado los datos del ejemplo (ejercicio1.zip), lo abrimos en el QGIS para verificar que tenemos dos capas vectoriales, la primera (adm_ucayali.shp), representa el estado inicial de la cobertura, mientras que la segunda (mod_adm_ucayali.shp), representa una modificación realizada intencionalmente para realizar este ejercicio, en lo posible tratar de identificar las alteraciones realizadas.

Paso 2: Activamos la herramienta "comprobar geometrías", con ello nos aparecerá una ventana en donde debemos configurar las condiciones que requerimos para satisfacer la validez de nuestra geometría. Primero debemos indicarle nuestra capa vectorial de entrada (1), luego debemos indicarle que no debe existir auto intersecciones ni nodos duplicados (2), para conocer con mayor profundidad los tipos de errores que pueden existir, recomiendo revisar las referencias indicadas al final. Le vamos a indicar el tipo de geometrías permitidas para nuestra evaluación (3), en nuestro caso se trata de polígonos y multipolígono, luego  se indica que ninguno de ellos deben contener agujeros (4), también vamos a indicarle alguna condiciones de geometría como la existencia de ángulos mínimos entre segmentos y el área mínima de nuestro polígono, para nuestro caso le indicamos que el mínimo sea de 10 grados y que el área mínima sea 1.0 respectivamente (5). Ahora vamos a comprobar la validez de la topología, evitando la existencia de duplicados, espacios vacíos entre polígonos adyacentes (gaps) y la existencia de capas sobre otras no autorizadas (6), luego debemos indicarle si deseamos corregir los errores en la misma cobertura o generar otra, esta última es la mejor opción (7), finalmente solo nos queda hacer clic en el botón de ejecutar para ver nuestros resultados (8).


Figura 2: Configuración de la herramienta "comprobar geometrías"

Paso 3: Debemos verificar nuestro resultado, en donde podremos visualizar los errores encontrados, en nuestro caso se detectaron cinco errores, entre ellos tenemos: dos polígonos con agujero (Figura 3), también auto intersección (Figura 4), ángulo mínimo (Figura 5) y polígono superpuesto (Figura 6). Con esta identificación se recomienda verificar con la cobertura inicial las modificaciones realizadas intencionalmente.

Figura 3: Identificando agujeros en la capa vectorial

Figura 4: Identificando auto intersección de la capa vectorial


Figura 5: Identificando ángulos mínimos


Figura 6: Identificando capas superpuestas sobre otra


Paso 4: Ahora podemos seleccionar todos los errores para elegir el método de corrección más adecuado, para ello tenemos dos opciones, configurar nuestra solución o corrección predeterminada, o decirle al sistema que nos consulte individualmente por cada error encontrado, en este caso elegimos esta última opción.

Figura 7: Opción para realizar las correcciones


Paso 5: Debemos elegir la mejor opción de corrección para cada tipo de error, como por ejemplo la eliminación de agujeros (Figura 8), para la auto intersección se recomienda dividir el objeto (Figura 9), para el ángulo mínimo se puede eliminar el nodo que genera dicho ángulo (Figura 10) y finalmente para el caso de la superposición de polígono, no se realizará ninguna acción porque deseamos que se mantenga en nuestra cobertura (Figura 11).

Figura 8: Corrigiendo agujeros 

Figura 9: Corrigiendo la auto intersección.

Figura 10: Corrigiendo la presencia de pequeños ángulos.

Figura 11: Indicando que no realice ninguna acción.



Paso 6: Una vez de haber elegido las opciones de corrección,  nos aparecerá el cuadro resumen de resultados, en donde confirma todos los errores corregidos.

Figura 12: Muestra del resumen de resultados luego de realizar las correcciones.


Paso 7: Finalmente se recomienda revisar la nueva cobertura generada, para ello deben compararlo con la cobertura que presenta los errores, con el objetivo de verificar si fueron adecuadamente corregidas.



Geometry Snapper - Autoensamblado de geometrías

La presente herramienta nos va a permitir ajustar polígonos adyacentes para que se ensamblen adecuadamente, evitando los errores comunes de espacios vacíos entre ellos. Normalmente cuando necesitamos ajustar capas vectoriales acudimos dentro de la barra de menú a configuración y de ahí a las opciones de autoensamblado. A través de la presente herramienta lo vamos a realizar de manera similar pero primero debemos definir bien nuestra capa de referencia a la cual debemos ajustar adecuadamente.

Paso 1: Descargar los datos del ejemplo (ejercicio2.zip), lo abrimos en el QGIS para verificar que tenemos dos capas vectorial, la primera (all_distritos_utm.shp), representa los límites administrativos a nivel de distritos, mientras que la segunda (only_distrito_utm.shp), representa a solo uno de los distritos que fue separado intencionalmente del grupo existente y que fue modificado para que no coincidan sus límites, con el objetivo de realizar el autoensamblado.

Figura 13: Capas del ejemplo indicando la cobertura a corregir.




Paso 2: Luego activamos la herramienta "Autoensamblar geometrías", desde aquí vamos a configurar la herramienta para que pueda ejecutarse. Primero seleccionamos la capa vectorial de entrada y la que deseamos corregir (1), seguidamente la capa de referencia a la cual deberá ajustarse evitando espacios vacíos (2), luego hay que indicarle la distancia máxima de autoensamblado, en nuestro caso será de 1000 metros (3), para ello debemos verificar directamente la distancia existente de desplazamiento que existe, luego se genera una nueva capa con las correcciones hechas (4) y finalmente le damos "Ejecutar" (5).


Figura 14:  Configuración de la herramienta "Autoensamblador de geometrías".


Paso 3: Una vez que se ejecutó la herramienta, solo nos queda verificar si realmente la capa nueva se ajusta bien en relación a los polígonos adyacentes, revisando que no existan espacios vacíos.


Figura 15: Resultado del ajuste realizado en la nueva capa luego de realizar el autoensamblado.


Indicaciones finales:

Considero que estas nuevas herramientas serán de mucha ayuda y complementan a las que ya existen dentro del QGIS, aunque durante las pruebas que estuve realizando nos siempre brindaron los resultados esperados y lo que se muestra son ejemplos didácticos, espero que algunos de ustedes puedan probarlo en casos reales y dar su opinión.
Por otro lado, para aquellos que están interesados en profundizar estos temas y sobre todo entender los conceptos de topología, recomiendo que puedan contar con una aplicación denominada JTS Topology Suite, que viene hacer un API para modelar y manipular geometría lineal en dos dimensiones, sirve mucho cuando requerimos practicar todo lo relacionado a geometría de capas vectoriales; como ejemplo en la Figura 16, se muestra cómo logra identificar un error de auto intersección.


Figura 16: Empleo del JTS Topology Suite para identificar un error de geometría


Espero que les sirva lo que hemos tratado hasta ahora, si pueden envíen sus comentarios.

Referencias:


martes, 20 de octubre de 2015

Novedades que se vienen con la versión del QGIS 2.12. Parte 1


Ahora retomare después de un largo tiempo las entradas a mi blog, por mi parte me gustaría escribir mucho más pero el tiempo a veces es mi peor enemigo.
En esta oportunidad voy a mostrarles las novedades que se vienen en la nueva versión estable, el QGIS 2.12, el cual estaría disponible a partir del 23 de octubre del presente año, en mi caso logre instalar la versión de desarrollo 2.11, para lo cual existen dos caminos, una opción es emplear el instalador individual que nos proporcionan cada lunes, disponible desde aquí. Aunque también existe la posibilidad de hacerlo a través del OSGeo4W (Figura 1).

Figura 1: Modo de instalar la versión de desarrollo a través del OSGeo4W


Nuevas Herramientas del QGIS 2.12


De todas las novedades existentes vamos a centrarnos en tres de ellas, las que a mi parecer representan las más útiles hablando como usuario. En esta primera parte se muestra la herramienta denominada "alinear capas raster", en la siguiente entrada trataré sobre "comprobar geometrías y autoensamblar geometrías" o Geometry Checker y Geometry Snapper, mientras que en la última parte se tratará sobre las mejoras dentro del Map composer.

Objetivo:

Nuestro objetivo será generar tres archivos de tipo raster, las cuales deben presentar las mismas propiedades, empleando para ello la herramienta denominada "Raster alignment" o alinear raster.


Datos de Ejemplo:

Para este ejercicio vamos a emplear los datos de tipo raster que representan a un modelo digital de elevación (DEM), proporcionados de forma libre desde http://srtm.csi.cgiar.org/. La zona seleccionada corresponde a la provincia de Purús, dentro del departamento de Ucayali en Perú. 
  1. DEM: srtm_purus.tif
  2. Hillshade: hillshade_purus.tif
  3. Pendiente: slope_purus.tif
Todos los datos del ejemplo pueden ser descargados desde aquí.

  • Herramienta 1: Alineando capas raster 
Seguro en más de una ocasión tuviste problemas en agrupar o superponer capas raster que tengan las mismas propiedades, es decir, el mismo tamaño de pixel, el mismo sistema de referencia (CRS) y también el mismo tamaño de salida. Ahora va a existir dentro de las herramientas para raster, la opción denominada "alinear raster" (Figura 2), con la cual podremos trabajar con un grupo de capas raster de manera simultánea, con los cuales vamos a generar otras capas pero que presentan todas ellas las mismas propiedades.


Figura 2: Herramienta para alinear archivos de tipo raster.


Con esta herramienta podremos alinear varias capas de tipo raster, reproyectando si presentan distintos CRS, recortando una zona de interés y re-escalando los valores si es necesario. Para hacer una demostración, se empleará los datos de ejemplo, los cuales son tres archivos de tipo raster, el primero corresponde a un modelo de elevación digital (DEM) y los otros dos fueron generados a partir de este DEM, tanto el hillshade (mapa de sombras) como el mapa de pendientes, todos ellos cubriendo una zona determinada, pero no en la misma extensión, todo ello simulando un caso común que se puede presentar.

Paso 1:  Descargar los datos de ejemplo y ponerlos sobre el escritorio, se recomienda luego revisar sus propiedades, para ello solo debemos ir a la parte de sus metadatos y comprobar el tipo de datos con los que vamos a trabajar.

Figura 3: Mostrando los tres archivos de tipo raster del ejemplo.



Paso 2:  Activar la herramienta tal como se aprecia en la Figura 2, con ello nos aparecerá una ventana en donde tenemos que indicarle las capas raster que vamos a alinear. Lo primero es hacer clic en el símbolo de "+" (1), luego nos aparecerá otra ventana en donde debemos precisar el archivo raster (2) y también indicarle cómo se denominará el archivo de salida (3), existe también la opción de cambiar el método de remuestreo, finalmente solo hacemos clic en el botón "Aceptar" (4). Todo este mismo procedimiento se debe repetir para cada uno de las capas raster que se desee alinear.



Figura 4: Seleccionando nuestras capa raster y el nombre de las capas de salida




Paso 3: Ahora que ya hemos seleccionado todos los archivos raster (1), debemos indicarle cual va ser nuestra capa de referencia (2), es decir aquella capa guía requerido para que todos los otros tengan sus mismas propiedades. En nuestro caso la misma herramienta nos ayuda a elegir la mejor opción. Ahora debemos seleccionar el sistema de referencia (SRC) que deseamos que contengan todas las capas (3) y también el tamaño de celda (4). Luego podemos elegir el tipo de corte de las capas, en nuestro caso vamos a seleccionar la opción por "extensión de la capa", es decir tomando en cuenta nuestro capa de referencia (5). Finalmente hacemos clic en el botón "Aceptar" (6).

Figura 5: Indicando las propiedades que deseamos contar para cada una de las capas.


Paso 4: Como paso final una vez mostrado nuestros resultados, al igual que en el primer paso, se recomienda revisar los metadatos de las capas para comprobar que presentan las mismas propiedades.

Figura 6: Resultado obtenido que muestra la extensión de las capas resultantes.



Muy bien, espero que logren probar con éxito esta novedad que se viene en la nueva versión del QGIS. 


Referencia:
  • http://changelog.qgis.org/qgis/version/2.12.0/