4 Añadir información geográfica
Para añadir información geográfica a Geoserver se usan tres conceptos:
- espacios de trabajo,
- almacenes de datos,
- capas.
El espacio de trabajo se puede entender como el espacio de nombres: el nombre que va a permitir agrupar toda la información geográfica que deseemos. Se añadirá como prefijo a los nombres de las capas que se utilicen.
Asociado a un espacio de trabajo, se pueden definir uno o varios almacenes de datos: el medio donde se almacena la información geográfica. Puede ser una carpeta, un archivo o una BD, entre otros.
Por último, podemos configurar las capas de información geográfica incluidas en cada almacén de datos. Para acceder a una capa concreta, deberemos indicar también el espacio de trabajo que tiene asociado (el almacén de datos resulta transparente).
4.1 Espacios de trabajo

Figura 4.1: Espacios de trabajo.
Para acceder a los espacios de trabajo, pulsamos sobre Datos > Espacios de trabajo (figura 4.1). Podemos ver una lista de los espacios de trabajo existentes en nuestra instancia de GeoServer. Además de poder eliminar cualquier espacio de trabajo, desde esta pantalla podemos crear nuevos espacios.

Figura 4.2: Nuevo espacio de trabajo.
Para crear un nuevo espacio de trabajo, pulsamos sobre el enlace Agregar un nuevo espacio de trabajo (figura 4.2) e introducimos los datos: el nombre y una URI. Ambos datos son obligatorios. La URI4 la usa para definir el espacio de nombres5 asociado al espacio de trabajo.
Podemos indicar que el nuevo espacio de trabajo sea el espacio de trabajo por defecto, marcando la opción correspondiente.
4.2 Almacenes de datos

Figura 4.3: Almacenes de datos.
Para acceder a los almacenes de datos, pulsamos sobre Datos > Almacenes de datos (figura 4.3). Podemos ver una lista de los almacenes de datos asociados a espacios de trabajo. Se puede observar que algunos espacios de trabajo están relacionados con varios almacenes de datos.

Figura 4.4: Nuevo almacén de datos.
Para crear un nuevo almacén de datos, pulsamos sobre el enlace Agregar un nuevo almacén (figura 4.3) y, según los datos sean vectoriales o ráster, seleccionamos el tipo de almacén (figura 4.4). También se pueden configurar servidores en cascada si se selecciona como origen de datos otro servidor.
En este ejemplo, se ha usado PostGIS como almacén de datos vectoriales y archivos GeoTIFF como almacén de datos ráster6.
4.2.1 PostGIS como almacén de datos

Figura 4.5: PostGIS como almacén de datos.
La página de configuración de PostGIS como almacén de datos se muestra en la figura 4.5. Se ha de indicar el espacio de trabajo (en este caso he indicado SIG
) y darle un nombre al origen de datos. Además, se indican los parámetros de conexión a la BD.

Figura 4.6: Lista de capas disponibles en el almacén de datos.
Una vez realizada la conexión, aparece una lista con las capas disponibles en el almacén de datos (figura 4.6). A esta lista también podemos acceder desde la opción Datos > Capas (la veremos en el apartado 4.3).
4.2.2 Archivo GeoTIFF como almacén de datos

Figura 4.7: Archivo GeoTIFF como almacén de datos.

Figura 4.8: Definición de un archivo GeoTIFF como almacén de datos.
En la figura 4.7, se muestra la selección de un archivo GeoTIFF como almacén de datos. En la figura 4.8, se definen los parámetros del nuevo almacén de datos. En este caso, los parámetros de conexión son solo la URL del archivo.

Figura 4.9: Capa disponible en el almacén de datos.
En este caso, la única capa disponible en el almacén de datos se muestra en la figura 4.9.
En el caso de que queramos publicar conjuntamente todas las bandas del archivo (MDT, ortofotografía, banda individual de satélite), podemos publicarlas directamente pulsando sobre el enlace Publicación (figura 4.9). En caso contrario (el archivo tiene varias bandas para publicar de forma individual o en subconjuntos), deberemos acceder a la publicación de las capas para publicar las bandas que nos interese seleccionar.
4.3 Capas
Una vez definido un almacén de datos, podemos gestionar la publicación de sus capas. Al añadir un nuevo almacén de datos, automáticamente se muestran las capas que contiene, como se presenta en las figuras 4.6 y 4.9.

Figura 4.10: Lista de capas publicadas.

Figura 4.11: Agregar una nueva capa.
También podemos acceder a la lista de capas de cualquier almacén pulsando sobre la opción Datos > Capas (figura 4.10) y pulsando, a continuación, sobre el enlace Agregar nueva capa. En la nueva pantalla a la que accedemos, seleccionamos el almacén de datos que contiene la nueva capa (figura 4.11)
4.3.1 PostGIS como almacén de datos
Si tenemos PostGIS como almacén de datos, nos aparece la lista de capas del almacén seleccionado: en este caso la lista de la figura 4.6.

Figura 4.12: Publicar una nueva capa.
Pulsando sobre el enlace Publicación, situado a la derecha del nombre de la capa que queremos publicar (figura 4.6), se abre la ventana donde podemos configurar los parámetros de publicación de la capa (figura 4.12).

Figura 4.13: Definir Encuadres.
Para las capas vectoriales, tenemos que definir necesariamente el apartado Encuadres (figura 4.13). Se puede definir fácilmente pulsando sobre los enlaces Calcular desde los datos y Calcular desde el encuadre nativo.
4.3.1.1 Publicación mediante la API REST de GeoServer
Podemos publicar las capas vectoriales almacenadas en PostGIS mediante la API REST de GeoServer.
A continuación se muestra el código ejemplo para una de las capas, una vez definida la base de datos como almacén de datos.
# acceso a GeoServer
geoserver_url <- "http://localhost:8080/geoserver"
user <- "admin"
password <- "geoserver"
# espacio de nombres y almacén de datos
workspace <- "lanjaron-jsamos"
data_store <- "lanjaron_jsamos"
# nombre de capa a publicar
layer_name <- "cc_manz_lanjaron_jsamos"
layer_config <- list(
featureType = list(
name = layer_name,
nativeName = layer_name,
title = layer_name
)
)
layer_config_json <- jsonlite::toJSON(layer_config, auto_unbox = TRUE)
url <- paste0(geoserver_url, "/rest/workspaces/", workspace, "/datastores/", data_store, "/featuretypes")
response <- httr::POST(
url,
httr::authenticate(user, password),
httr::add_headers("Content-Type" = "application/json"),
body = layer_config_json,
encode = "json"
)
if (httr::status_code(response) == 201) {
cat("Capa publicada.")
} else {
cat("Error:", httr::content(response, "text"))
}
Podemos definir una función y llamarla con el nombre de cada capa.
4.3.2 Archivo GeoTIFF como almacén de datos

Figura 4.14: Configurar una nueva vista de Cobertura.
Si tenemos un archivo GeoTIFF como almacén de datos y queremos publicar todas las bandas conjuntamente, pulsamos sobre el enlace Publicación o, si ya lo habíamos publicado antes y queremos volver a publicarlo cambiando la configuración, el enlace será Publicar de nuevo (figura 4.14).
Pero si queremos publicar una selección de las bandas contenidas en el archivo GeoTIFF, deberemos pulsar cobre el enlace Configurar una nueva vista de Cobertura que aparece en el texto explicativo (figura 4.14).

Figura 4.15: Crear nueva vista de cobertura.
En la ventana “Crear nueva vista de cobertura” (figura 4.15), seleccionamos las bandas de salida y le podemos asignar el nombre que corresponda según la selección realizada.
Los nombres de las bandas no aparecen, solo está disponible el índice de cada banda en la estructura del archivo GeoTIFF. Deberemos consultarlos usando QGIS o R, para asignarlos correctamente.
4.3.2.1 Publicación mediante la API REST de GeoServer
Podemos publicar las capas ráster en formato GeoTIFF mediante la API REST de GeoServer. Crea el almacén de datos y publica la combinación de sus bandas como una capa.
A continuación se muestra el código ejemplo para uno de los archivos.
# acceso a GeoServer
geoserver_url <- "http://localhost:8080/geoserver"
user <- "admin"
password <- "geoserver"
# espacio de nombres
workspace <- "lanjaron-jsamos"
# nombre del archivo y almacén de datos
geotiff_file <- "datos/Lanjaron/p03out/ort-lanjaron-bbox-jsamos.tif"
store_name <- "ort-lanjaron-bbox-jsamos"
url <- paste0(geoserver_url, "/rest/workspaces/", workspace, "/coveragestores/", store_name, "/file.geotiff")
response <- httr::PUT(
url,
httr::authenticate(user, password),
httr::add_headers("Content-Type" = "image/tiff"),
body = httr::upload_file(geotiff_file)
)
if (httr::status_code(response) == 201) {
message("Almacén de datos creado.")
} else {
message("Error: ", httr::content(response, "text"))
}
Para el MDT lo crea y publica la capa sin problemas. Para la ortofotografía, también crea el almacén de datos, da un error al publicar la capa pero, si lo comprobamos, la capa está publicada correctamente.
En las pruebas que he hecho, no he encontrado la forma de publicar individualmente las bandas de un archivo GeoTIFF mediante la API REST de GeoServer.
4.4 Previsualización de capas

Figura 4.16: Previsualización de capas.
Pulsando sobre Datos > Previsualización de capas accedemos a la pantalla que nos permite ver o descargar las capas en cualquiera de los formatos disponibles (figura 4.16). Por ejemplo, para ver una capa mediante OpenLayers, pulsando sobre el enlace OpenLayers situado a la derecha del nombre de la capa, en la figura 4.16, se muestra en una nueva pestaña del navegador la capa.