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

lunes, 11 de noviembre de 2019

Gráficas de capas ráster con QGIS - Raster Data Plotting

https://bitbucket.org/janzandr/rasterdataplotting/src/master/doc/source/logo.png
Una de las principales características de los datos ráster en especial los provenientes de los sensores remotos, es la posibilidad de analizar y explorar un poco más la información que contienen. Dentro del QGIS se dispone de un plugin especializado en realizar gráficas a partir de los datos ráster, nos referimos a RasterDataPlotting.

A continuación vamos a probar su funcionamiento y las opciones que nos brinda, para ello emplearemos datos ráster provenientes del Landsat 8. Si desean probarlo, los datos del ejemplo lo pueden descargar desde aquí.

Como primer paso y asumiendo que tienen instalado el plugin, incorporamos los datos dentro de nuestro QGIS.



Luego de activar el plugin, nos aparecerá su propio panel, en donde debemos seleccionar el tipo de gráfico a realizar. En nuestro caso vamos a seleccionar la primera opción denominada Scatter/Density Plot.



Ahora debemos seleccionar dos bandas del Landsat 8, para asignarle a cada eje (x,y). Para el ejemplo emplearemos en el eje x la banda 4 (Red) y en el eje y la banda 5 (NIR). Ayuda que con nuestras bandas generemos una combinación de bandas en RGB, para lo cual recomiendo hacerlo de manera rápida empleando el plugin Virtual Raster Builder. En la siguiente figura se muestra a un costado, una combinación RGB: 5-4-3 (Color Infrarojo, para resaltar la vegetación), tener presente que nosotros no contamos con todas la bandas del Landsat 8, por lo tanto, para visualizar esta combinación debemos especificar en las propiedades de la capa la debida combinación (4-3-2), siempre y cuando se realizó el apilado (Stack) de bandas en orden ascendente.



En específico lo que apreciamos como gráfica en un Density Plot, considerando la coloración en función a la rampa de color indicado por defecto, el mismo puede cambiar si seleccionamos otra.



Lo interesante de esta herramienta es la posibilidad de generar gráficas de manera interactiva con nuestra capa ráster, es decir que dicha gráfica se ajusta a la vista de mapa presente, la imagen que se presenta considera toda la extensión de nuestra capa, pero si hacemos un zoom a una zona en particular, la misma cambia.



Empleando otra combinación de bandas (RGB: 7-5-3) que nos permite resaltar mejor la vegetación con el río presente, podemos apreciar que se presenta otro tipo de gráfica.


Región de Interés Espectral (ROI)


Ahora vamos a generar los denominados Spectral ROI, a través de los cuales vamos a poder comprobar cómo con las bandas que empleamos se puede diferenciar zonas de vegetación y zonas cubiertas con agua (ríos). Como se aprecia en las imágenes previas, se pudo diferenciar en el gráfico dos zonas en donde se concentran los valores de las bandas. Sobre dichas zonas vamos a generar un ROI, empleando para ello figuras geométricas (elipse, rectángulo y polígono), para nuestro caso estamos generando dos ROI con su coloración respectiva, es decir que al seleccionar un color rojo a nuestro ROI sobre la zona de vegetación, la misma se pintará sobre nuestro mapa, logrando con ello su identificación.



Región de Interés Espacial


Existe también la posibilidad de especificar zonas de interés (ROI), para lo cual podemos generar un polígono identificando dichas zonas, en este caso por ejemplo sobre la zona de los ríos y la vegetación. La simbología (coloración) generada para clasificar dichas zonas luego va ser reflejada en nuestra gráfica.



Otros tipos de gráficos:

El plugin tiene la opción de generar gráficos de tipo Perfil Espectral (Spectral Profile Plot), aunque se aprecia mejor si tenemos imágenes hiperespectrales. Del mismo modo, se puede generar gráficos de perfiles espectrales temporales, pero para ello será primero necesario apoyarnos del plugin Temporal/ Spectral Profile Tool, pero en general se requiere contar con imágenes apiladas de una misma zona en un periodo de tiempo establecido, lo interesando de esto es que podemos generar animaciones.


Referencias:





viernes, 20 de septiembre de 2019

Editando ráster temático con el plugin ThRasE


En esta oportunidad vamos a conocer el funcionamiento del plugin de QGIS llamado ThRasE, el cual considero puede ser de mucha utilidad para quienes trabajan con datos ráster muy a menudo. En resumen nos permite modificar una codificación realizada a los píxeles de nuestro ráster, logrando editar y corregir posibles errores identificados.

Preparando nuestra capa ráster


En esta oportunidad como datos de entrada vamos a emplear una capa ráster proveniente de un proceso de clasificación supervisada, teniendo como origen una imagen compuesta del Sentinel 2. Este ejercicio lo vimos en una publicación anterior, cuando usamos el plugin kNN. Se comparte también el estilo de colores en formato de texto, con la finalidad de identificar la codificación de los píxeles, considerando el resultado de la clasificación realizada.
También será necesario emplear una imagen de referencia, en este caso emplearemos una imagen satelital Bing, apoyándonos con el plugin QuickMapServices.


Es importante establecer que este plugin solo trabaja con archivos ráster de tipo byte, por lo tanto debemos verificar primero si cumplimos con esa condición. Para ello nos vamos a Propiedades de la capa y en la parte de información verificamos el tipo de archivo.



Tal como se aprecia en la figura, tenemos como tipo de datos a un float32, por lo tanto, es necesario realizar una conversión, en este caso de las herramientas de ráster, dentro del grupo de Conversión emplearemos Traducir (convertir formato). Cuando lo ejecutamos solo tenemos que elegir a Byte, como el tipo de datos de salida.


Al final con nuestro archivo convertido debemos tener el siguiente resultado al consultar las propiedades de la capa.


Luego debemos configurar la simbología usando el archivo compartido para nuestro ejemplo, aunque para los casos particulares que se presenten, deberán ser elaborados y guardados en un archivo de texto, con la finalidad de tener definido la codificación de los colores. Otra alternativa es guardar el estilo en un archivo de tipo .qml.



Primeros pasos con ThRasE


Asumiendo que lograron instalar el plugin sin problemas, lo vamos a visualizar en nuestra barra de herramientas, luego lo activamos y tendremos una pequeña ventana que nos indica el número de filas y columnas que vamos emplear, en nuestro caso vasta con indicar dos columnas y una fila.



Luego nos aparece la ventana principal del plugin, aquí vamos a seleccionar las dos capas que tenemos disponibles, primero activamos la capa ráster que vamos a editar y al costado colocamos nuestro ráster de apoyo. Verificar que al lado derecho debe seleccionarse nuestra capa ráster, para que se pueda visualizar la tabla con los valores codificados de los píxeles.



Editando nuestra capa ráster


Ya estamos listos para editar nuestra capa ráster, para ello vamos hacer clic en el botón que dice edition, al hacerlo veremos que en la parte inferior se activa las herramientas de edición, teniendo la posibilidad de hacerlo por píxeles, por línea y por polígonos. Pero si bien tenemos a la imagen al costado como referencia para la edición, también podemos incorporar otra capa sobre nuestro ráster, con la finalidad de trabajar transparencias.

Vamos a editar una parte que a simple vista debe corregirse. Si nos basamos en la codificación del ráster, debemos cambiar aquella zona identificada con el código 3 (Suelo desnudo), para pasarlo al código o valor 1 (Bosque). Para ello editamos la tabla de valores tal como se aprecia en la siguiente figura. Tengan mucho cuidado en identificar los valores.


Ahora activamos la edición por polígonos y cubrimos el área a modificar, luego hacemos un clic derecho para que complete el cambio, luego existe un botón para eliminar el polígono y poder apreciar mejor el resultado.


Podemos seguir realizando los cambios que consideramos necesario, hay que tener en cuenta que a veces quedan algunos píxeles libres que necesitan ser modificamos, para ello se recomienda usar la edición by pixels.


Si en caso quieren continuar editando en otro momento, es importante guardar lo que venimos trabajando, por lo tanto, debemos salvarlo haciendo clic en el botón Save, generando luego un archivo de extensión .yml. Este archivo se podrá emplear cuando activamos el plugin, es decir, en lugar de indicar las filas y columnas, vamos a indicarle con la pestaña Load este archivo para que vuelva a cargar nuestra edición.

Revisando nuestros resultados


Con la finalidad de garantizar que nuestros resultados son los más adecuados, existe la opción de poder revisarlos, en este caso el plugin tiene la posibilidad de generar "Tiles", para subdividir la imagen en cuadrículas que nos permitan revisarlo más detenidamente. El tamaño de los tiles lo definimos nosotros. En la imagen de abajo se aprecia que elegí que sea de 200 metros.


Lo interesante de esta herramienta que te permite desplazarte rápidamente por cada cuadrícula y sobre ella se realizará un zoom para su revisión.




Finalmente también existe la opción de revisarlo generando un archivo kml, el cual si tenemos abierto nuestro Google Earth, lo podemos revisar desde ahí. 


Bueno, esto sería todo, les recomiendo revisar los enlaces que se comparte como referencia, los cuales son de los creadores de este interesante plugin. Por mi parte pretendo hacer un pequeño vídeo demostrando cómo se utiliza la herramienta, cuando este listo actualizaré esta entrada para que lo puedan visualizar.


Referencias:



martes, 10 de octubre de 2017

Empleando coberturas Geopackage en QGIS





En esta oportunidad voy a mostrar las ventajas de usar el formato Geopackage, sobre todo porque es una interesante alternativa al uso de los ESRI Shapefiles, sobre todo porque nos permite empaquetar varias capas en un solo archivo, lo que nos facilita mucho cuando necesitamos compartir nuestro trabajo, sobre todo si son varias capas, la lista de total de archivos que involucran a los Shapefiles pueden ser tantos que nos puede causar algunos inconvenientes.

Para este post como ejemplo, usaremos un proyecto con capas vectoriales principalmente, los cuales ya presentan sus estilos. Nuestro objetivo será adicionar todas las capas vectoriales y una capa raster en un solo archivo en formato Geopackage, incluir sus estilos dentro de la base de datos del formato y poder exportarlo empleando el plugin  QGIS map styling GeoPackage extension.

Datos de Entrada


El ámbito elegido es el Departamento de Pasco en Perú, dentro del mismo superpondremos capas que cubren la Provincia de Oxapampa, tal como se aprecia en la siguiente figura.

Fig. 1: Vista de un proyecto con capas vectoriales (Shapefiles) y raster


Generando Coberturas Geopackage


Luego de algunos intentos para adicionar en un mismo archivo GPKG, una capa raster y las capas vectoriales que tenía. Como primer paso, usaremos las herramientas de GDAL para convertir un archivo tipo GeoTiff en GPKG; para nuestro ejemplo seleccionamos la capa llamada Dem Fill (Ver Fig. 2), para luego en la parte inferior de las opciones, donde dice "Convertido", vamos a guardarlo como "oxapampa.gpkg".

Fig. 2: Uso de herramientas GDAL para convertir un GeoTiff a GPKG



Como segundo paso empezaremos a cargar las capas vectoriales en base al archivo convertido, para ello tenemos dos opciones para hacerlo. El primero directamente realizando el "Guardar como..." (Ver Fig. 3), el segundo apoyados por el "Administrador de BBDD" (Ver Fig. 4).


Fig. 3: Opción para generar un Geopackage desde un Shapefile existente

Fig. 4: Opción de importar capas vectoriales con el Administrador de BBDD



Por cualquiera de las opciones, debemos repetirlo por cada capa vectorial de nuestro proyecto, al final debemos tener algo parecido a esto.

Fig. 5: Resultado de importar capas dentro de un Geopackage

Generando Estilos


Un paso importante es la generación de estilos, si bien como lo mencionamos antes, nuestro proyecto ya presentaba sus propios estilos, lo que debemos hacer es guardarlo dentro de nuestra base de datos, repitiendo este procedimiento para cada capa vectorial.

Fig. 6: Guardando estilos en una base de datos Geopackage


La ventaja de este procedimiento, es que lo manejamos los estilos dentro de una base de datos, lo que permite tener más de un estilo y cargarlo dependiendo nuestro requerimiento, por ello se crea una tabla exclusiva para los estilos.

Fig. 7: Detalle de la tabla de estilos generados


Uso del Plugin GeoPackage QGIS


Una vez que tenemos nuestras coberturas en un solo archivo gpkg, existe la posibilidad de guardarlo y compartirlo, pero si lo queremos volver a verlo, simplemente con "añadir una capa vectorial", seleccionamos la lista de coberturas que deseamos insertar. Ahora, existe una alternativa si instalamos un plugin denominado QGIS map styling GeoPackage extension, a través del cual, tenemos la opción de guardar a nivel de nuestro proyecto, es decir podemos empaquetar mejor nuestro proyecto.

Fig. 8: Instalación del Plugin



Luego de ser instalado y habilitado, en la barra de herramientas se visualiza los iconos que nos permitirán, primero empaquetar el proyecto y luego supongamos que lo hemos compartido o lo deseamos abrir en otra máquina, tenemos la opción de leer nuestro archivo gpkp.

Fig. 9: Iconos del plugin




Bueno, es una opción interesante, sobre todo porque un proyecto tiene la opción no solo de establecer los estilos por defecto, sino que nos permite generar un diseño de mapa y cuando lo empaquetamos, tendremos la opción de recuperar ese detalle.
Los invito a probar el plugin y me indican si han tenido problemas, sobre todo sería interesante saber si alguien lo puede abrir empleando otros software SIG. Les dejo el resultado final para que lo puedan descargar desde aquí.


martes, 12 de septiembre de 2017

R + SAGA Geoprocesamiento con RSAGA Package





En la presente entrada trataré un tema un poco diferente a lo acostumbrado, sobre todo porque será la primera vez que me refiero al Software R, al que de un tiempo muy reciente lo estoy practicando; por otro lado, aunque tampoco me acuerdo haber discutido sobre SAGA GIS específicamente, es un software del cual ya tengo muchos años trabajándolo, y en donde me siento más cómodo, sobre todo porque se complementa muy bien con el QGIS.

Bueno, en esta aventura voy a mostrar mi experiencia probando el package "RSAGA", por el que me animé luego de leer este enlace, a partir de ello, estuve revisando otras fuentes y decidí intentarlo empleando solamente una capa raster de elevación, el cual será nuestro punto de partida.

Fuente de Datos:


Para esta oportunidad como lo indicaba se empleará una capa raster tipo DEM, el cual está disponible a través del Modelo Digital de Superficie ALOS World 3D -30m (AW3D30), solamente se tienen que registrar y podrán descargar los datos, para el presente ejemplo se seleccionó la zona que comprende el Departamento de Lima-Perú.

Figura 1: DEM (30 m) de la cuenca del río Rimac 


Pasos Previos


Debemos tener en cuenta que el package "RSAGA", al parecer por temas de actualización no funciona con las últimas versiones de SAGA, por lo tanto, es recomendable instalar las versiones 2.14 o  2.2. En relación a R, se recomienda que instalen el RStudio, sobre todo para tener un entorno que nos facilite nuestro trabajo, como por ejemplo la instalación de otros paquetes adicionales requeridos.



Manos a la Obra


Paso 1: Como primer paso, una vez dentro de RStudio, debemos definir el directorio de trabajo, para ello, lo podemos hacer desde la consola con  setwd("Ruta del Directorio"), o también te puedes activar el menú de "Session", y luego dirigirte a "Choose Directory", tal como se aprecia en la figura 2.

Figura 2: Definiendo nuestro directorio de trabajo


Paso 2: Instalar y Activar el Package RSAGA

install.packages("RSAGA")
library ("RSAGA")

Paso 3: Quizás el más importante, porque ahora debemos establecer un ambiente en R. La finalidad es poder usar el objeto, en este caso "env_test" para dirigir las funciones RSAGA. En algunos casos podemos indicar en donde tenemos ubicado nuestro software SAGA.







Paso 4: Vamos a importar nuestro archivo raster que está en formato tif (dem_rimac.tif), para convertirlo en el formato de SAGA (dem_test.sgrd)

rsaga.import.gdal("F:/WORKS/SAMPLES/rtest/dem_rimac.tif", "dem_test.sgrd", env = env_test)


Paso 5: Verificamos la lista de la librería de módulos disponibles con las que podemos trabajar, es decir, todas las herramientas que a través de SAGA podemos ejecutar dentro del ambiente de R. Para nuestro caso vamos a incidir en aquellos relacionados al análisis del territorio. Es importante revisar los nombres, porque deberán ser considerados en nuestra línea de código para cuando sea requerido un módulo en específico.

rsaga.get.libraries(path=env_test$modules)

Figura 3: Lista de la librería de módulos


Paso 6: Vamos a lista la lista de funciones de geoprocesamiento que trabajaremos, teniendo en cuenta lo remarcado en la Figura 3. Por ahora nos dedicaremos a lo relacionado a "ta_morphometry".

rsaga.get.modules(lib = "ta_morphometry", env=env_test)


Figura 4: Funciones relacionados a morfometría

Paso 7: Configurar las herramientas de geoprocesamiento llamando a los módulos dentro de la biblioteca "ta_morphometry". Se pueden emplear cualquiera de los módulos que fueron listados previamente, solo se debe cambiar en "module = _ _ ". Tener en cuenta que también se puede colocar el número de código asignado, por ejemplo para "TPI Based Landform Classification", podemos ingresar "19".

rsaga.get.usage(lib= "ta_morphometry", module = "Slope, Aspect, Curvature", env = env_test)

rsaga.get.usage(lib= "ta_morphometry", module = 19, env = env_test)


Al ejecutar tendremos una vista de la lista de los parámetros (entrada y salida) a considerar, sobre todo, es importante verificar aquí las opciones que tenemos para personalizar nuestros resultados. También nos ayuda a revisar los formatos de ingreso (si es un texto o número), las unidades con los que se trabaja y cuales son las opciones por defecto, esto en caso que no ingresemos un parámetro. Para el primero se tendrá un resultado similar al siguiente.

> rsaga.get.usage(lib= "ta_morphometry", module = "Slope, Aspect, Curvature", env = env_test)
library path: C:\PROGRA~1\SAGA-GIS\modules\
library name: ta_morphometry
library     : Morphometry
Usage: saga_cmd ta_morphometry 0 -ELEVATION [-SLOPE ] [-ASPECT ] [-C_GENE ] [-C_PROF ] [-C_PLAN ] [-C_TANG ] [-C_LONG ] [-C_CROS ] [-C_MINI ] [-C_MAXI ] [-C_TOTA ] [-C_ROTO ] [-METHOD ] [-UNIT_SLOPE ] [-UNIT_ASPECT ]
  -ELEVATION:   Elevation
Grid (input)
  -SLOPE:       Slope
Grid (output)
  -ASPECT:     Aspect
Grid (output)
  -C_GENE:     General Curvature
Grid (optional output)
  -C_PROF:     Profile Curvature
Grid (optional output)
  -C_PLAN:     Plan Curvature
Grid (optional output)
  -METHOD:     Method
Choice
Available Choices:
[0] maximum slope (Travis et al. 1975)
[1] maximum triangle slope (Tarboton 1997)
[2] least squares fitted plane (Horn 1981, Costa-Cabral & Burgess 1996)
[3] 6 parameter 2nd order polynom (Evans 1979)
[4] 6 parameter 2nd order polynom (Heerdegen & Beran 1982)
[5] 6 parameter 2nd order polynom (Bauer, Rohdenburg, Bork 1985)
[6] 9 parameter 2nd order polynom (Zevenbergen & Thorne 1987)
[7] 10 parameter 3rd order polynom (Haralick 1983)
Default: 6
  -UNIT_SLOPE: Slope Units
Choice
Available Choices:
[0] radians
[1] degree
[2] percent
Default: 0
  -UNIT_ASPECT: Aspect Units
Choice
Available Choices:
[0] radians
[1] degree 


Paso 8: Ejecutar el Geoprocesamiento, para lo cual existen dos maneras fundamentalmente, el primero, cuando existe una función específica del RSAGA, tenemos la opción de obtener nuestro resultado. Para nuestro ejemplo, puede darse el caso que deseamos obtener la pendiente, el aspecto y la curvatura en un mismo procedimiento, para ello podemos escribir:

rsaga.slope.asp.curv("dem_test.sgrd", out.slope = "slope_dem1", out.cprof = "cprof_dem1", out.cplan = "cplan_dem1", method = "poly2zevenbergen", env=env_test)

También se pude realizar de manera individual, es decir cuando existe la función para calcula la pendiente:

rsaga.slope("dem_test.sgrd", "slope_dem2", method = "maxslope", env=env_test)

Por último existe la opción, el cual me parece más interesante, porque tenemos la posibilidad de obtener el mismo resultado si ejecutamos la función del Geoprocesador, para lo cual debemos guiarnos de lo mostrado como producto del Paso 7.

rsaga.geoprocessor(lib = "ta_morphometry", module = 0, param = list(ELEVATION = "dem_test.sgrd",SLOPE = "slope_dem3.sgrd", ASPECT = "aspect_dem2.sgrd", C_GENE= "curv_gener1.sgrd", METHOD= "0", UNIT_SLOPE="percent", UNIT_ASPECT="degree"), env = env_test)

Figura 5: Salida del Geoprocesamiento realizado


Paso 9: Ahora vamos a realizar un paso previo para lograr visualizar nuestros resultado. Como vieron en la Figura 5. los archivos se guardaron en formato de SAGA (*.sgrd), el cual lo podemos abrir no solo en ese Software, sino también en QGIS por ejemplo, pero para hacerlo más interesante lo vamos a convertir a un formato tipo ASCII (*.asc). Para ello, volvamos a revisar la Figura 3 e identifiquemos el módulo que requerimos, en este caso hablamos de "io_grid"

rsaga.get.modules(lib="io_grid", env=env_test)

Figura 6: Módulos para gestión de archivos raster


rsaga.get.usage(lib = "io_grid", module =0, env=env_test)

rsaga.geoprocessor(lib="io_grid",module=0,param=list(GRID="dem_fill1.sgrd",FILE="dem_esri.asc"),  env=env_test)


rsaga.geoprocessor(lib="io_grid",module=0,param=list(GRID="slope_dem4.sgrd",FILE="dem_slope.asc"), env=env_test)

rsaga.geoprocessor(lib="io_grid",module=0,param=list(GRID="aspect_dem4.sgrd",FILE="dem_aspect.asc"), env=env_test)


En caso se tengan muchos archivos, existe también una manera más rápida que nos permite realizar este proceso de conversión, a continuación muestro un ejemplo que logré ejecutar, considerando que estuve probando otros módulos.

rsaga.sgrd.to.esri(in.sgrds = c("cprof_dem4", "cplan_dem4", "carea1", "wetindex1", "hillshade1", "direction_dem3","connet_dem3", "order_dem3", "basin_dem3"), out.grids = c("esri_cprof", "esri_cplan", "esri_carea", "esri_wetindex", "esri_hillshade", "esri_direction", "esri_connect", "esri_order", "esri_basin"), out.path = getwd(), format = "ascii", env = env_test)

Paso 10: Vamos a definir los archivos raster para que podamos plotearlos


Es importante tener instalado y activado el Package "raster" y "sp"












plot(elevation)






plot(slope)







plot (aspect)







Visualización en Google Earth


Si bien no lo considero un paso adicional, me encontré con el siguiente enlace, a partir del cual traté de realizar el procedimiento, aunque no me siento muy satisfecho con los resultados, si alguien que lo intente a ver si le sale mejor, lo pueda compartir. En sí, primero debemos remontarnos a nuestra Figura 6, para definir nuestro módulo, en este caso será el "10", porque nuestro objetivo es convertirlo a un archivo PNG (que nos permitirá hacer transparencias).


Es importante tener instalado y activado el Package "rgdal", "maptools"

rsaga.get.modules(lib="io_grid", env=env_test)

rsaga.get.usage(lib= "io_grid", module = "10", env=env_test)


# Generando nuestro archivo tipo PNG

rsaga.geoprocessor(lib="io_grid", module=10, param=list(IMAGE="aspect_dem4.sgrd", FILE="aspect1.png"))

# Definiendo nuestro raster









# Creando nuestro objeto KML








# Creando nuestro archivo KML, con la función kmlOverlay, para mayor detalle revisar aquí.



kmlOverlay(aspect.kml, kmlfile="aspect1.kml", imagefile="aspect1.png", name="Aspecto_rimac")


Figura 7: Salida en Google Earth 


Muy bien, por mi parte seguiré investigando sobre las ventajas que se tiene el poder trabajar dentro de R, sobre todo a partir de nuestros productos obtenidos, aprovechando las ventajas de funciones estadísticas que podemos explotar. Espero que se animen a probarlo.




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/