Mostrando las entradas con la etiqueta Estilos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Estilos. Mostrar todas las entradas

lunes, 7 de agosto de 2017

Nuevas Opciones para generar leyendas con QGIS 3.0

En una entrada anterior, se mostró una de las novedades sobre estilos que se viene con el QGIS 3.0, en específico la demostración fue sobre una capa de puntos, mostrando la opción "Point cluster". En esta oportunidad, empleando la misma fuente de datos, me permitiré hablar sobre una opción que tenemos para mostrar en nuestro panel de capas, un nuevo estilo de simbología, el mismo que luego podrá ser representado dentro de un mapa como leyenda.

Generando una leyenda colapsada (Collapsed legend)


En realidad es muy sencillo el procedimiento, pero vamos a tener que considerar unos detalles, como por ejemplo, primero debemos revisar nuestra tabla de atributos, sobre todo porque en algunos casos será necesario hacer algunos ajustes. Para esta demostración estoy empleando un capa vectorial de puntos, representando un grupo de centros poblados del Departamento de Apurímac, el mismo contiene un campo denominado "TOT_POB99", con valores de población. 
Si desean los datos para practicar lo pueden descargar desde aquí.

Paso 1: Debemos generar un campo que represente valores enteros que guarden relación o proporción sobre los valores de población, para nuestro caso, el grupo de centros poblados presenta valores desde 500 hasta 7731, por lo tanto, se ha creado el campo "CATEG_POB", con valores de 5, 10, 15 y 20, los cuales considerándose rangos específicos deberán cubrir todos de valores de población.

Figura 1: Ajustando nuestra tabla de atributos

Paso 2: Generar una simbología simple de puntos, pero que el tamaño del marcador esté activado para que esté definido por datos de un campo específico, en este caso de nuestro campo "CATEG_POB".


Figura 2: Configurando para que el tamaño del marcador sea definido por datos

Paso 3: Ahora podemos ir a las opciones avanzadas para generar simbología, seleccionando la opción denominada "Data-defined size legend". Es importante primero realizar el paso anterior, porque de lo contrario no se activará esa opción.

Figura 3: Activando la opción Data-defined size legend


Paso 4: Debemos generar nuestra leyenda colapsada, para ello debemos ir a dicha opción y luego añadir manualmente los tamaños de las clases, tal como lo hemos configurado previamente, es decir desde valores de 5 a 20, para que a su costado podamos incluir el valor real de la población que queremos representar.


Figura 4: Generando una "leyenda colapsada"


Paso 5: Finalmente, veremos que aparecerá dicha simbología en nuestro panel de capas, por lo tanto, ahora podemos representarlo en un mapa, para que lo podamos imprimir.

Figura 5: Vista del resultado de nuestra leyenda generada

Editando la simbología


Al ver el primer resultado, me pregunté si podría hacer que los símbolos tengan colores diferentes por cada tamaño generado, por lo tanto, lo que hice fue generar una simbología de tipo "Graduated", para lograr generar con ello una rampa de coloración, claro está en función a los datos de población.
Con la finalidad de que se mantenga los rangos similares, se optó que la opción del modo de separación de las 4 clases sea por "rupturas naturales".

Figura 6: Generando una simbología graduada

Con este cambio, vamos a visualizar nuestros valores en una leyenda compuesta por dos simbologías, la que ya habíamos generado anteriormente y la otra que representa una coloración establecida por nosotros.

Figura 7: Vista del resultado incorporando coloración graduada


En general me parece interesante esta nueva opción que vendría en la nueva versión del QGIS 3.0, les invito a probarlo en la versión de desarrollo del QGIS.


sábado, 22 de julio de 2017

Cuando se juntan PostGIS+Geoserver+QGIS - Parte 3




Continuando con lo ofrecido, ahora nuestro objetivo es primero importar un archivo raster a nuestro Geoserver y luego desde el QGIS con el GeoServer Explorer gestionar nuestras capas contenidas en el mismo, también importaremos capas vectoriales, para esto último nos apoyaremos del GeoServer tools, el mismo que está disponible desde nuestra caja de herramientas, en fin veremos que ambas herramientas nos presentan o amplían nuestras posibilidades como la creación y editar estilos, asimismo el poder generar grupos sin necesidad de ingresar al GeoServer.


Incorporando datos raster al GeoServer


Como primer paso debemos agregar a nuestro espacio de trabajo, un origen de datos raster, para ello seguimos los mismos pasos vistos en las Figuras 12 y 13 de la entrada anterior, con la única diferencia que ahora se selecciona como origen de datos raster, un archivo GeoTIFF, y luego de ello le indicamos la carpeta donde está contenida nuestro archivo.


Figura 1: Adicionando nuestra capa raster


Ahora ya estamos listos para realizar la publicación de nuestra capa raster.

Figura 2: Capa raster lista para su publicación


En la parte de edición de capa, como ya sabemos podemos darle alguna descripción a nuestra capa y revisar los encuadres, adicionalmente por ser un raster, podemos verificar las características de la banda, es decir veremos si se trata de una capa multibanda o solo contiene una banda simple, este último es nuestro caso, por eso apreciamos que existe está definido por una escala de grises.

Figura 3: Editando nuestra capa raster

Luego de guardar la edición, podemos previsualizarlo con OpenLayers, pero como no le indicamos un estilo específico se verá en escala de grises. Tenemos la opción de como lo vimos antes, empleando el SLD2raster, generar el estilo y luego llevarlo al GeoServer agregando un nuevo estilo y desde ahí seleccionarlo para nuestra capa, pero ahora lo vamos hacer desde el QGIS empleando otro procedimiento.



Empleo del Geoexplorer


Primero en QGIS realizamos la conexión con un servicio WMS para contar con nuestra capa recién publicada, al hacerlo aparecerán todas las capas contenidas en nuestro espacio de trabajo.

Figura 4: Visualizando nuestra primera versión del raster con el estilo por defecto



Como siguiente paso activamos el panel del plugin GeoServer Explorer, asumimos que en pasos previos se empleo el SLD2raster para elevar nuestro estilo al GeoServer, ahora lo vamos a definir para nuestra capa ya presente en el QGIS. Ahora solo necesitamos agregar un nuevo "Catálogo".

Figura 5: Primeros pasos con el GeoServer Explorer


Ahora nos aparecerá nuestro espacio de trabajo con toda las capas que hemos publicado, lo que nos interesa ahora es adicionar el nuevo estilo que ya se encuentra en nuestro GeoServer a nuestra capa, para ello buscamos primero nuestra capa y en un subpanel inferior veremos las opciones que tenemos, en mi caso modifique el título y luego active "Add style to layer..", escogiendo luego el que habría sido elevado al GeoServer, se recomiendo luego activar la casilla de estilo por defecto.

Figura 6: Adicionando estilo a una capa raster con GeoServer Explorer

El paso siguiente será añadir de nuevo el servicio WMS y ahora comprobaremos que tenemos además de la opción del raster por defecto otra que nos mostrará el raster con el estilo definido. Es decir que ahora lo veremos de la siguiente manera:

Figura 7: Resultado de incorporar un estilo propio a nuestro raster

Hay que considerar que podemos aumentar otros estilos desde nuestra capa original, por lo tanto, vamos a abrir nuestro raster llamado "chicama" para ello podemos activar la opción "Add to current QGIS project", luego generamos otro estilo al que lo llamaremos "chicama_new", ahora comprobamos que lo podemos adicionar directamente a nuestro GeoServer, pero ahora será activando la opción "New style from QGIS layer..".

Figura 8: Incorporando estilos desde capas presentes en nuestro panel de capas



Bueno, ya vimos que este plugin nos facilita la gestión de nuestras capas subidas al GeoServer, en este caso trabajamos un archivo raster, lo mismo podríamos realizar para nuestras capas vectoriales, es cuestión de ir probando.

Una aplicación interesante por ejemplo es el hecho que podemos generar grupos, esto sobre todo si requerimos visualizar varias capas en una sola vista, por ejemplo supongamos que tenemos capas vectoriales y queremos subirlas al GeoServer y luego generar un grupo, para resolver nos apoyaremos del GeoServer tools.


Empleando el GeoServer tools


Dentro de la Caja de herramientas de procesado vamos a ubicar si esta activado al GeoServer tools, el cual presenta un grupo de geoalgoritmos, para nuestro caso emplearemos "Upload vector", porque necesitamos subir las capas vectoriales "estaciones_pluviometricas", "ana_administracion_local" y "rios_peru" (tomar en cuenta que se modificaron los nombres para no generar conflictos con las capas ya subidas desde el PostGIS, aunque también tienen la opción de crear otro espacio de trabajo).

Figura 9: Uso del GeoServer tools para adicionar capas vectoriales al GeoServer


Luego de subir todas las capas, debemos comprobar con el GeoServer explorer que se encuentran en nuestro espacio de trabajo, diferenciándose de los que fueron subidos con el PostGIS.

Figura 10: Vista actualizada de nuestro espacio de trabajo con las nuevas capas


Creando Grupos en GeoServer


Ahora vamos a crear nuestro Grupo denominado "ANA", seleccionando las capas vectoriales que acabamos de subir. 

Figura 11: Generando un Grupo en GeoServer con capas vectoriales

Luego de realizar esto, verificamos la creación del grupo y lo adicionamos directamente a nuestro lienzo activando "Add to current QGIS project..".

Figura 12: Vista de nuestro Grupo con estilos por defecto

Como se aprecia se visualiza sin estilo, ahora que sabemos manejar estilos y conocemos las opciones que tenemos para generar, vamos a recuperar los que ya hemos generado o extraerlo de las capas vectoriales que hemos empleado, lo importante ahora es editar nuestro grupo para que tenga el estilo que deseamos, finalmente hacemos clic en "Overwrite".

Figura 13: Editando nuestro grupo para incorporar nuestros estilos


Bien, finalmente para poder añadir este servicio WMS, pero como la categoría de grupo está a un nivel superior de capas y de espacio de trabajo, debemos crear una nueva conexión (Ver Figura 14 ), la cual va mostrar todo lo que tenemos en nuestro GeoServer, es decir todos nuestros espacios de trabajo y por supuesto el nuevo grupo creado.

Figura 14: Incorporando una nueva conexión WMS para visualizar todas las capas 
y grupos de nuestro servidor de mapas



Finalmente tendremos nuestro grupo "ANA" en nuestro lienzo, aunque creo que voy a tener que ajustar mejor el estilo, el objetivo se logró.

Figura 15:  Vista final en la vista de mapa de nuestro grupo creado 

Bueno, por ahora sería todo lo que quería mostrarles, como ven hay opciones que podemos considerar al manejar el GeoServer junto con el QGIS, les invito a probarlas. 
Hasta la próxima.


Referencias:

  1. https://github.com/boundlessgeo/qgis-geoserver-plugin
  2. http://boundlessgeo.github.io/qgis-plugins-documentation/geoserver/index.html
  3. https://mappinggis.com/2017/01/geoserver-plugin-configura-y-gestiona-geoserver-desde-qgis/
















martes, 18 de julio de 2017

Cuando se juntan PostGIS+Geoserver+QGIS - Parte 2



Importando un Raster al PostGIS







En esta segunda parte vamos a importar un archivo raster al PostGIS, para ello se cuenta con el ejecutable denominado raster2pgsql.exe, el cual permite para convertir fuentes de datos raster en tablas de base de datos. Si hemos realizado la instalación por defecto la aplicación se ubica en la ruta "C:\Program Files\PostgreSQL\9.6\bin\". 

Figura 1: Ubicación del ejecutable para importar raster a la base de datos



Para realizar el procedimiento ingresamos a la consola de Windows tipeando "cmd" y ejecutándolo como administrador, ya dentro podemos realizar la sentencia raster2pgsql -G, que nos permite conocer primero el listado de los diversos drivers disponibles para el manejo de datos raster.


Figura 2:  Opción para visualizar los formatos raster que funcionan con el raster2pgsql


Una vez que hemos seleccionado nuestra capa raster, para el ejemplo será un archivo tipo GeoTiff denominado "palcazu.srtm.tif", luego ejecutamos la siguiente sentencia.


Figura 3: Vista en consola de la secuencia de comandos para importar un raster a la base de datos


Para entender lo que se ha ejecutado de acuerdo a la opciones de los comandos considerados se tiene:

1. -s    Especifica el CRS a emplearse (EPSG: 4326, WGS84)
2. -I    Crea un índice espacial GIST en la columna ráster. 
3. -C   Define un conjunto de restricciones estándar en la columna ráster, después de que se cargar los  rasters.
4. -M  Ejecuta el comando VACUUM ANALIZE sobre la columna raster creada.
5.  Se define la ruta de ubicación del archivo raster a emplearse.
6.  -F   Adiciona una columna con el nombre de archivo raster. Por defecto rast
7.  -t    Corta un raster en "Tiles" para insertarlos uno por cada fila de la tabla creada. El  es expresado como WIDTHxHEIGHT, para este caso se indicó que sea 100x100.
8.  Se define el esquema donde se almacenará, en este caso "public" seguido del nombre de la tabla para la base de datos (dem1).
9.  Con psql se ingresa al terminal del  PostgreSQL, permitiendo con ello ejecutar consultas o scripts, en este caso se usa para primero definir al usuario de la base de datos "-U", el cual por lo general es "postgres", luego el nombre de la base datos al cual se conectará "-d", después se especifica el nombre de host de la máquina en la que se ejecuta el servidor "-h", como trabajamos en nuestra máquina se emplea el "localhost" y finalmente se especifica el puerto TCP, definido durante la instalación del PostgreSQL, por lo general es 5432.


Finalmente, tendremos como resultado una tabla adicionada dentro del Schema "public" de nuestra base de datos "peru", el cual como vimos en la Figura 3 se denomina "dem1".


Figura 4: Vista de la Tabla con nuestro raster dentro de la base de datos



Abriendo nuestro Raster en QGIS


Ahora que ya tenemos nuestro raster en el PostGIS, lo podremos abrir dentro de nuestro QGIS, para ello luego de habernos conectarnos a nuestra base de datos, podemos abrir la aplicación "Administrador de BB DD", el cual nos permite administrar todas nuestras bases de datos creadas hasta el momento, en este caso luego de activarlo (se ubica en la barra de menú llamada Base de datos), dentro de PostGIS vamos a comprobar que se adicionó una tabla a las ya creadas con datos vectoriales.

Figura 5: Vista de nuestra Tabla desde el Administrador de BB DD en QGIS


Para visualizarlo en la vista del mapa, simplemente hacemos un clic derecho y le indicamos la acción de "Añadir al lienzo" y desde ahí generamos un estilo para una mejor visualización.


Figura 6: Vista de nuestro raster aplicándole un estilo



Ahora si bien nosotros podemos darle nuestro propio estilo, a diferencia de las capas vectoriales, el QGIS no presenta la opción de forma directa para guardar estilo de tipo "SLD", el cual lo podríamos emplear cuando trabajemos con el Geoserver. Por lo tanto, vamos a emplear un plugin denominado "SLD4raster" y tal como lo indica en su descripción, soporta estilos multibanda, pseudocolor en banda simple,  gradiente (blanco a negro, negro a blanco), también de tipo interpolación de color y niveles de opacidad. Pero lo más importante es que se integra con la API de GeoServer Rest, es decir que proporciona la carga directa de los estilos que se genere previamente en el QGIS.


Figura 7: Entorno del SLD4raster con la opción de exportar un SLD o subirlo al GeoServer


Trabajando con GeoServer




Sin entrar en detalles GeoServer actúa como un Servidor Web, permitiendo servir mapas y datos de diferentes formatos para aplicaciones web; está escrito en Java y es de código abierto. Es resumen los usuarios solo necesitarían un Web Browser para visualizar los mapas tal como tu lo has creado.

Empecemos, una vez que instalan el GeoServer y entran desde su web browser, el cual por lo general es desde "http://localhost:8080/geoserver/", desde ahí solo tienen que identificarse como administrador, por defecto el usuario es "admin" y el password es "geoserver", y claro se recomienda  por seguridad luego cambiar esos datos.

Figura 8: Vista de nuestro GeoServer como administrador 


Como primer paso vamos a crear nuestro espacio de trabajo.

Figura 9: Creando nuestro espacio de trabajo

Luego procedemos a configurar dicho espacio, es decir le indicamos un nombre y después un URI con el cual nos van a identificar y que se relaciona con nuestro espacio de trabajo.

Figura 10: Configurando nuestro espacio de trabajo


Ahora ya podemos editar nuestro espacio de trabajo, sobre todo para habilitar los servicios que vamos a brindar con nuestros datos, en este caso habilitamos todos (WMS, WFS, WCS, WMTS). Desde aquí una vez activado la casilla de "Habilitado", podemos también indicar nuestros datos más específicos, como la persona de contacto y nombre de la Organización.

Figura 11: Editando nuestro espacio de trabajo.


Como paso siguiente, vamos a crear nuestro primer almacén de datos para el espacio de trabajo. Es decir que le indicaremos nuestra fuente de datos.

Figura 12: Creando un nuevo almacén de datos


Para nuestro ejemplo nuestro origen o fuente de datos serán vectores pero que provengan de nuestro base de datos PostGIS.


Figura 13: Seleccionando al PostGIS como nuestro nuevo origen de datos

Ahora además de indicarle el nombre de nuestro origen de datos, necesitamos llenar la información de conexión.


Figura 14: Configurando nuestro conexión al PostGIS en el GeoServer

Luego ya podremos verificar que dentro de nuestro origen de datos establecido, se pueden apreciar una lista de tablas, las cuales serán todas aquellas que están presentes en nuestra base de datos, y nosotros ya estaríamos listos para publicar aquellos que necesitamos que se compartan por la web.


Figura 15: Vista en GeoServer de nuestras tablas presentes en nuestra base de datos


A partir de aquí nos vamos a dedicar a configurar nuestro recursos a publicar, indicando sus principales características de nuestras capas, para ello en la pestaña de "Datos" uno de los puntos importantes a revisar es el sistema de referencia a considerar, del mismo modo que los "Encuadres" que especifican los límites en coordenadas de nuestra capa.


Figura 16: Configurando el sistema de referencia y el encuadre de nuestra capa

Si lo guardamos así como está ya podemos verificar que se agregó una capa dentro de la lista de capas del GeoServer.


Figura 17: Vista de nuestra nueva capa publicada en GeoServer

Con el objetivo de comprobar cómo se aprecia en un entorno web nuestra capa publicada, nos vamos a "Previsualización de capas".


Figura 18: Vista de las opciones de previsualización

Cuando activamos la opción de previsualizar a través del OpenLayers, vamos a tener como resultado la siguiente imagen.

Figura 19: Vista en OpenLayers de nuestra capa vectorial

Añadiendo el Servicio dentro del QGIS


Ahora nuestro objetivo es añadir un servicio de tipo WMS dentro de nuestro QGIS, para ello seguimos los pasos de la siguiente imagen.


Figura 20: Secuencia para añadir un servicio WMS dentro del QGIS

Luego de ello, podremos comprobar que ya contamos con la capa publicada con el GeoServer (Administracion_local) y que podemos añadirlo a nuestra vista de mapa del QGIS.

Figura 21: Vista de la capa disponible luego de conectarse al servicio WMS

Finalmente en nuestro QGIS lo veremos con el estilo de defecto (polígono), tal como lo apreciamos en el OpenLayers.

Figura 22: Vista de la capa en formato PNG desde nuestro servicio WMS generado


Dándole Estilo a la Capa


Si revisan el post anterior, en la Figura 9, se exportó el estilo a nuestra base de datos, pero también existía la opción de generar un SLD a nuestra capa vectorial, que fue lo que también se realizó, ahora vamos a importar ese archivo para que lo lea el GeoServer.

Figura 23: Vista de los estilos guardados como SLD de nuestras capas

Dentro del GeoServer nos vamos a Estilos, para agregar luego indicarle que vamos a agregar un nuevo estilo.

Figura 24: Opción en el GeoServer para agregar nuevos estilos



Debemos configurar nuestro estilo, primero denominándolo, luego indicando el espacio de trabajo y el formato a considerar (SLD), luego le indicamos la ubicación de nuestro archivo de estilo y finalmente subirlo.

Figura 25: Configurando nuestro nuevo estilo a importar



Ahora que ya tenemos el estilo, podemos validarlo y si todo esta bien lo enviamos para que se encuentre como una alternativa de estilo adicional.

Figura 26: Vista del archivo SLD importando y listo para enviarse

Como siguiente paso nos vamos a nuestras capas, con la finalidad de editar la capa con el nuevo estilo disponible, para ello se ingresa a la pestaña "Publicación".


Figura 27: Edición de nuestra capa con el nuevo estilo importado


Una vez realizado este paso, podemos ir a previsualizar la capa y verlo en un entorno web con OpenLayers.

Figura 28: Vista en OpenLayers de nuestra capa vectorial con el estilo importado

Muy bien, ahora nos vamos al QGIS para añadir como ya conocemos nuestro servicio y veremos la diferencia, sobre todo observen que ya se adiciono el estilo como propiedades de la capa.

Figura 29: Vista de cuando añadimos un servicio WMS con el nuevo estilo generado.

Finalmente ya dentro de nuestra vista de mapa del QGIS podemos apreciarlo, y si requerimos dar unos ajustes a los colores, es específico relacionado a brillo, saturación y contraste lo podemos realizar desde el panel de estilos.

Figura 30:  Vista final de nuestra capa con el estilo generado y con la opción para algunos ajustes


Bueno, se cumplió con el objetivo de primero importar un archivo raster al PostGIS, y luego empezar a trabajar con el GeoServer, sobre todo para ver las opciones que tenemos para la publicación de mapas web, en este caso vimos a través de un servicio WMS, pero como habilitamos también la opción de WFS, también lo podemos realizar, a ver si lo intentan y me comentan.

No voy a extender más esta entrada, está pendiente para la siguiente parte dos procedimientos: (1) cómo se importa un archivo raster al GeoServer agregándole estilo y (2) la gestión de nuestras capas de GeoServer empleando el plugin Geoserver Explorer.