Geospatial Consortium OGC con Quamtum Gis y OpenGeo
Practica General Geog. Diego J. Padrn | diego.padron@uah.es
Configuracin y uso de Geoserver/OpenGeo como recursos de almacenamiento, difusin y visualizacin cartogrfica.
Uso de recursos Open Source para la integracin y publicacin de datos geoespaciales en Internet. El propsito fundamental de esta prctica es entregar herramientas para el anlisis y publicacin de Informacin espacial en Internet utilizando Software Libre.
Igualmente se plantea mostrar un panorama de los recursos disponibles en Sistemas de Informacin Geogrfica, Base de datos, Servidores de Mapas y herramientas auxiliares para el procesamiento de la informacin.
Para ello utilizaremos tcnicas de almacenamiento de datos en gestores de base de datos tipo (Postgres/Postgis), aprenderemos a otorgarle estilos visuales a esos datos convirtindolos en informacin, exportaremos e integraremos informacin con otros recursos gratuitos y procederemos a publicarlos de manera abierta en internet.
Objetivo General: Conocer el funcionamiento y alcance de Geoserver/OpenGeo Objetivos Especficos: Instalacin y configuracin de Geoserver/OpenGeo Conocer la estructura de la Suite OpenGeo (Geoserver) Exportacin de datos geoespaciales a Postgres/Postgis Invocar datos geoespaciales desde Geodatabase Postgres/Postgis Conocer las caractersticas de los visores ligeros Geoexplorer (OpenGeo)
Software a Utilizar:
OpenGeo Suite: http://opengeo.org/community/suite/download/ Qgis: http://www.qgis.org/ Datos a Utilizar:
OpenGeo Suite: OpenGeo es una suite informtica de software destinada a dar solucin a los requerimientos en materia de informacin espacial que puedan surgir. PostGis es un mdulo del mismo, una herramienta de porte de datos geogrficos, que los gestiona como una base de datos, almacenndolos, tratndolos, realizando consultas. 2
GeoServer: es un servidor de software escrito en Java que permite a los usuarios compartir y editar informacin geo-espacial. Diseado para una mxima interoperabilidad, publica datos utilizando estndares abiertos desde las mayores bases de datos espaciales y diversos formatos de archivos tanto vectoriales como raster.
PostGIS: es un mdulo que aade soporte de objetos geogrficos a la base de datos objeto- relacional PostgreSQL, convirtindola en una base de datos espacial para su utilizacin en Sistema de Informacin Geogrfica. Postgis ha sido desarrollado por la empresa canadiense Refraction Research, especializada en productos "Open Source" entre los que habra que citar a Udig. PostGIS es hoy en da un producto veterano que ha demostrado versin a versin su eficiencia. En relacin con otros productos, PostGIS ha demostrado ser muy superior a la extensin geogrfica de la nueva versin de MySQL, y a juicio de muchos, es muy similar a la versin geogrfica de la archiconocida Oracle.
phpPgAdmin: phpPgAdmin es una aplicacin web, escrita en PHP, para administrar bases de datos PostgreSQL. phpPgAdmin es un cliente web que provee una manera conveniente para los usuarios para crear bases de datos, tablas, alterarlas y consultar sus datos usando el estndar SQL. http://phppgadmin.sourceforge.net/
QGis: Quantum GIS (o QGIS) es un Sistema de Informacin Geogrfica (SIG) de cdigo libre para plataformas GNU/Linux, Unix, Mac OS y Microsoft Windows. Era uno de los primeros ocho proyectos de la Fundacin OSGeo y en 2008 oficialmente gradu de la fase de incubacin. Permite manejar formatos raster y vectoriales, as como bases de datos
Instalacin de aplicaciones necesarias
1.1.- Instalar OpenGeo Suite Community Ejecutar el archivo: C:/practica-webmapping/software/OpenGeoSuite-ce-2.5.exe y seguir los pasos que se indican durante su instalacin.
Como se indica en el mensaje de bienvenida, los parmetros de acceso a Geoserver son Usuario: admin Password: geoserver Para accede a Postgres/Postgis los parmetros de acceso son: Usuario: postgres Password: postgres 3
Culminada la instalacin, iniciamos el servicio de OpenGeo Suite en el botn (Start) Si salta un alerta de seguridad de Windows, validar el acceso y ejecucin de la aplicacin Clic en Aceptar
1.2.- Instalacin del SIG de escritorio QGis Ejecutamos el instalador ubicado en C:/practica-webmapping/software/QGIS-OSGeo4W-1.8.0-1-Setup
PASO 1 - PRACTIGA GENERAL Exportar datos geoespaciales a Postgres/Postgis Cuando realizamos la instalacin de OpenGeo Suite, se instal tambin el gestor de base de datos Postgres/Postgis de manera automtica. Pasamos a ejecutar el cliente PgAdmin III
Nos conectamos al servidor localhost haciendo doble click en el icono, nos solicitar la contrasea del usuario postgres (usuario de la base de datos), usuario: postgres password: postgres, al validarnos veremos una serie de objetos que se han creado en la instalacin , los ms importantes son: Bases de datos: son las instancias de bases de datos creadas, por defecto se crea la base de datos postgres y la base de datos con soporte geoespacial template_postgis. Esta instancia de base de datos contiene las funciones, procedimientos, tipos de datos y ms Invocamos el Cliente Administrativo PgAdmin III incorporado dentro de la Suite OpenGeo 4 objetos necesarios para manejar informacin vectorial georreferenciada. Esquemas: son los contenedores de informacin de una instancia de base de datos. Una base de datos puede tener varios esquemas. Entre bases de datos no se puede ver la informacin pero s entre esquemas dentro de la misma bd. Por defecto se crea un esquema public. Tablas: son las unidades contenedoras de informacin dentro de un esquema. Por defecto, se habrn creado dos tablas (tal como se especifica en la norma SFA: geometry_columns: tabla con informacin sobre las tablas que contienen alguna columna con geometras georeferenciadas. spatial_ref_sys: tabla con informacin sobre los sistemas de referencia empleados en la georreferenciacin de las geometras.
5 Pasamos a crear una instancia de base de datos PostGis para la carga de datos vectoriales en una tabla que utilizaremos en toda la prctica.
Crearemos una nueva base de datos empleando la plantilla que viene por defecto, template_postgis. El uso de esta plantilla nos garantiza que la instancia de base de datos creada tendr todos los objetos de postGIS (las tablas geometry_columns y spatial_ref_sys, funciones, tipos de datos, casts, ...) El primer paso es ejecutar la herramienta pgAdmin3 conectndonos con el usuario postgres. Sobre el icono Bases de datos, botn derecho del ratn Nueva Base de Datos ...
Aparecer un cuadro de dilogo en el que indicaremos los siguiente parmetros: Nombre: nombre de la instancia de base de datos, en nuestro caso le llamaremos postgis. Codificado: codificacin de los caracteres de la base de datos, en nuestro caso latin9 puesto que las fuentes de datos que emplearemos estn en esta codificacin. Es recomendable emplear la codificacin utf-8 como comentaremos ms adelante. De momento, y para simplificar, emplearemos esta obsoleta codificacin. Plantilla: emplearemos la plantilla que viene con la instalacin para la generacin de bases de datos postgis, template_postgis.
6 Pasamos a crear una capa postgis exportando un shape utilizando Qgis Ejecutamos Qgis 1.8 Agregamos una capa en formato shape denominada comunidades_espa.shp y ubicada en C:/data_spain/comunidades_espa.shp
Seguidamente Clic en men Complementos Importar (Spit) Importar archivos shape a PostgresSQL
Pasamos a crear una nueva conexin
Nombre: Localhost Postgis Servicio: Servidor: localhost Puerto: 54321 Base de Datos: postgis Modo SSL: deshabilitar Nombre de Usuario: postgres Contrasea: postgres Guardar usuario: SI Guardar contrasea: SI 7 Una vez creada la conexin y verificando que se haya realizado correctamente la misma, procedemos a la exportacin del archivo shape a postgres
Comprobamos que se encuentra en postgres la capa shape exportada, para ellos abrimos PgAdmin III e invocamos la base de datos creada y ubicamos en el apartado esquemas public tablas, la tabla comunidades_espa
Llegados a este punto ya hemos logrado un primer objetivo de exportar un archivo vectorial shape a una geodatabase en Postgres/Postgis. 1 2 3 8 Conceptos generales en Postgres/Postgis
Esquemas Hasta ahora hemos visto el concepto de instancia de base de datos y plantilla, adems de stos, veremos que una base de datos puede tener varios esquemas que son los que realmente contienen las tablas, procedimientos, etc ... Por defecto, cuando creas una base de datos se crea el esquema public. Algunas de las caractersticas de los esquemas son los siguientes: Objetos de diferentes esquemas puede verse siempre que estn en la misma instancia de base de datos. Objetos de distintas bases de datos no tienen acceso. Para acceder a un objeto de un esquema, en SQL se especifica como nombre_esquema.nombre_objeto. Si no especificas el esquema en una consulta, postgreSQL utilizar cualquiera de los esquemas especificados en la variable de usuario search_path.
Para crear un esquema con pgAdminIII basta con pulsar el botn derecho sobre los esquema y seleccionar Nuevo Esquema. Roles y privilegios Hasta el momento hemos empleado el DBA (postgres) como usuario para realizar todas las operaciones en la bases de datos. Sin embargo, esto no es recomendable ya que este usuario tiene privilegios totales sobre cualquier objeto de la base de datos. En una organizacin, lo ms habitual es que exista un conjunto de usuarios que tiene ciertos privilegios sobre ciertos objetos de la base de datos. En esta parte de la prctica veremos cmo aadir roles (usuarios o grupos de usuarios) y otorgar privilegios a dichos roles. En postgreSQL encontraremos dos tipos de roles, el rol de login y el rol de grupo. El primero identifica a un usuario y el segundo a un grupo. La nica diferencia significativa entre ambos es que el primero puede conectarse a la base de datos mientras que el segundo no puede. El segundo tipo de rol, el de grupo, lo emplearemos para agrupar los roles de login que comparten los mismos privilegios. En cuanto a los privilegios, se pueden diferenciar entre los privilegios en el esquema y los privilegios en los objetos del esquema (tablas, funciones, ...). Los privilegios en un esquema son de uso (puedo acceder al esquema) y creacin (puedo crear objetos en el esquema), mientras que los privilegios en los objetos son los tpicos SELECT, UPDATE, INSERT, etc.
Para familiarizarnos con estos conceptos emplearemos la base de datos creada anteriormente, postgis, donde crearemos dos roles de grupo, el primero llamado editores que tendr privilegios para crear y modificar objetos en el esquema public y el segundo, llamado consultores que slo tendr permisos de consulta. Una vez creado estos grupos, aadiremos un usuario consultorX al grupo consultores y un usuario (rol de login) llamado editorX al grupo de editores. La idea es que los usuarios de un grupo puedan leer la cartografa y los usuarios de otro grupo puedan modificarla.
9 Creacin de roles de grupo. En primer lugar nos conectamos a la base de datos del servidor localhost con el DBA que es el nico rol que existe por ahora. Tras conectarnos, pulsaremos con el botn derecho de nuestro ratn en Roles de grupo y seleccionamos Nuevo Rol de Grupo. Aparecer un dilogo como el de la figura en el que pondremos los datos de los nuevos roles de grupo 1 .
Creacin de roles de login Una vez creados los grupos, crearemos los roles de login editorX y consultorX que pertenecern al grupo editores y consultores respectivamente. Para crear los roles de login, pulsar con el botn derecho en Roles de Login -> Crear Nuevo Rol de Login. Aparecer un cuadro de dilogo igual al que utilizbamos para crear los roles de grupo, aqu es importante destacar que se debe marcar la casilla Hereda permisos de los roles padre, con sto todos los roles que pertenezcan a este tendrn los mismos privilegios. Tras indicar el nombre del rol nos situaremos en la pestaa Membresa del Role e indicaremos que el usuario es miembro del grupo correspondiente.
1 Los checkbox que aparecen son privilegios especiales del rol que no son heredados por los miembros de ese rol. 10 Asignar privilegios en un esquema. Una vez creados todos los roles, el siguiente paso ser asignar a los roles de grupo los privilegios en el esquema y en los objetos del esquema. Para dar permisos en el esquema, pulsaremos con el botn derecho en el esquema y seleccionamos Propiedades -> Privilegios, all aadimos el grupo correspondiente e indicamos el tipo de privilegios. En nuestro ejemplo aadiremos el grupo editores con todos los privilegios y el grupo consultores con privilegios de uso.
Asignar privilegios en un objeto de un esquema Tras asignar los privilegios en el esquema, debemos hacer los mismo para cada objeto concreto del esquema, para ello seleccionamos con el botn derecho del ratn el Asistente para permisos en el esquema. En l seleccionamos todos los elementos que nos interesan, en nuestro caso la tabla comunidades_espa y la tabla geometry_columns 2 , despus pasamos a la pestaa de privilegios donde elegimos todos los privilegios All para el grupo editores y Select para el grupo consultores.
2 Es importante dar permisos en esta tabla ya que las aplicaciones cliente, como Qgis, consultan esta tabla para averiguar datos referentes a las tablas que contienen cartografa.
11 Adems, para el grupo de editores deberemos dar todos los permisos en la secuencia de la tabla (comunidades_espa) ya que para crear nuevos elementos en la tabla se necesita el uso de dicha secuencia.
Comprobacin de los privilegios con Qgis Primero comprobaremos como el rol consultorX slo es capaz de visualizar una tabla (privilegio SELECT), para ello cargaremos la tabla comunidades_espa empleando una conexin con el usuario consultorX. Deber de visualizarse sin problemas. Tras ello seleccionaremos la capa y la pondremos en edicin para aadir un elemento, Qgis indicar un error que confirma nuestras sospechas, consultorX no tiene privilegios para modificar el objeto comunidades_espa. La segunda comprobacin ser poner en edicin la capa comunidades_espa para aadir un elemento pero en este caso con el usuario editorX. No deber dar problemas al terminar la edicin. Configuracin de parmetros (postgresql.conf) En este fichero podemos modificar los parmetros generales de configuracin de la instalacin de postgreSQL como el puerto de escucha, la opcin de autovacuum, etc ... Para modificarlo podemos utilizar pgAdmin3, Archivo -> Abrir postgresql.conf 3 .
3 En linux este fichero est en el direcotorio /etc/postgres y tiene permisos para el usuario y grupo postgres. Para modificarlo desde pgAdminIII debers tener permisos de escritura.
Illustration 1: Miembros de un grupo 12
Seguridad a nivel de red (pg_hba.conf) PostgreSQL dispone de un mecanismo para restringir el acceso por la red (a travs del puerto 5432). Para modificar dicho acceso tenemos el fichero pg_hba.conf que podemos manipular con pgAdminIII, Abrir -> Fichero pg_hba.conf.
Copias de seguridad Aunque existen varios mtodos para hacer copias de seguridad (fsica, lgica, fsica online, ...), en este punto nos centraremos en las copias de seguridad lgicas de una instancia de base de datos con pgAdminIII. Para realizar la copia de seguridad nos situamos con el ratn encima de la base de datos, en nuestro ejemplo postgis, y con el botn derecho seleccionamos Resguardo. Nos aparecer un cuadro de dilogo dnde seleccionaremos el fichero en el que se volcar los datos y otros parmetros. 13 Si todo el proceso ha sido correcto nos aparecer un mensaje indicando algo como: El proceso retorn el cdigo de salida 0 En segundo paso simularemos una cada de la base de datos y su posterior recuperacin con la copia de seguridad. Para ello, eliminaremos la base de datos postGIS, sobre la base de datos pulsaremos el botn derecho del ratn Borrar/Eliminar. Una vez borrada la base de datos la volveremos a crear con el mismo nombre, sobre ella pulsaremos el botn derecho del ratn y elegiremos la opcin Restaurar.
Podemos comprobar el resultado volviendo a cargar la tabla comunidades_espa con Qgis.
14 PASO 2 PRCTICA GENERAL Uso de la Suite OpenGeo
En esta parte de la prctica, procederemos a:
Configuracin de GeoServer Importar capas en formato shape en Geoserver Importar capas con origen en Postgres/Postgis Incorporar Estilos .sld a las capas Componer un Mapa Invocar Servicios WMS entre servidores locales
Abrimos el navegador e invocamos la siguiente direccin para acceder a GeoServer: http://localhost:8080/geoserver/web/
15
Otra alternativa es invocarlo desde el Dashboard de OpenGeo
Geoserver tiene una manera de organizar la informacin a travs de Espacios de Trabajo, Almacenes y Capas.
16 El primer paso ser incorporar la informacin de contacto asociada a los servicios WMS, WFS, WCS
Modificaremos de cada uno de los servicios los siguientes campos
Responsable de mantenimiento: Puede colocar una direccin URL o simplemente su nombre completo Recurso en lnea: Normalmente una URL asociada al servidor, en este caso http://localhost Ttulo: Servidor WCS Pedro Perez (cambien la denominacin WCS por WMS y WFS cuando sea el caso). Resumen: Bienvenido al servidor WCS de Pedro Perez (cambien la denominacin WCS por WMS y WFS cuando sea el caso).
Seguidamente pasamos a crear un Espacio de Trabajo
Como podr ver ya tenemos creado el espacio de trabajo Spain, igualmente encontrara otros 3 espacios creados por defecto cuando se instalo la Suite OpenGeo La Informacin que ac se define es el referente para ser identificado el servidor utilizando los protocolos estndares OGC. Name: Spain URI del espacio de nombres: http://localhost/spain Habilitamos la casilla de espacio de trabajo por defecto 17
Seguidamente pasamos a crear un Almacn de datos tipo Shape Directory of spatial files (shapefiles)
El propsito de crear un almacn de datos del tipo Shape Directory, es el de enlazar o indexar un directorio contentivo de capas en formato shape como origen de datos permanente dentro del espacio de trabajo anteriormente creado. Es importante decir que un Espacio de Trabajo, puede contener ms de un almacn de datos bien sea de origen Shape o PostGis.
Procedemos a complementar el formulario como se indica en la siguiente imagen
18
Geoserver nos listara el conjunto de archivos en formato shape validos que contiene el directorio data_spain, en la columna de la derecha se indica el estado de publicacin de la capa, indicando Publicacin para aquellas capas que an no han sido publicadas
En este caso ninguna de las capas han sido publicadas an, procedemos a publicar la correspondiente a comunidades_espa. Hacemos clic en publicacin de comunidades_espa
Se desplegara un formulario donde se deben complementar algunos campos obligatorios asociados a propiedades fsicas de la capa como el sistema de referencia, descripcin de la capa a publicar, metadato asociado y estilo SLD que define el aspecto visual de la capa.
19
Sistema de Referencia declarado Hacemos clic en Calcular desde los datos los encuadres nativos y lat/lon, esto se debe hacer cada vez que se declare un nuevo EPSG 20
An no debemos guardar, vamos a pasarnos a la pestaa Publicacin
En este apartado se definen aspectos relacionados con el renderizado de la capa, as como el aspecto visual de la misma es decir la asociacin de un estilo en formato SLD.
Lista el conjunto de campos o atributos asociados a la capa a publicar Estos parmetros los dejamos por defecto 21
Por defecto Geoserver identifica el tipo de dato y asocia un tipo por defecto en este caso Polygon, ms adelante procederemos a asociar un estilo creado por nosotros mismos Una capa puede tener asociado ms de un estilo de visualizacin, los estilos estn asociados con la leyenda de la capa o mapa. Por lo que una capa puede ser invocada en funcin de cualquier estilo que tenga asociado. Estos parmetros los dejamos por defecto En este apartado se definen aspectos relacionados con la autora del mapa, se puede asociar una filigrana o logo en la parte inferior del mapa, as como el nombre de la institucin o autor y la pgina Web. Si lo desea puede complementar estos campos 22
Llegados a este punto, ya hemos publicado en Geoserver una capa shape con origen en un directorio.
El siguiente paso ser crear un almacen con origen de datos PostGis
23
Una vez creado el almacen a PostGres/PostGis, se listan todas las capas almacenadas en forma de tablas dentro de la base de datos Postgis que creamos anteriormente. A partir de este momento cada capa que almacenemos dentro de la base de datos PostGis ser listada en el almacen, por lo que no hay necesidad de crear un almacen tipo PostGis por cada capa que ser almacene.
Seguimos el mismo proceso indicado anteriormente para publicar una capa de origen shape Solo deber cambiar el nombre de la capa comunidades_espa por cualquier otro por ejemplo comunidades_espana, esto se debe a que ya habiamos creado una capa con ese nombre.
El siguiente paso ser crear un estilo SLD y asociarlo a la capa creada, para ello utilizaremos el Sig de escritorio QGis.
Abrimos Qgis y cargamos la capa C:/data_spain/comunidades_espa.shp
Modificamos las propiedades de la capa, botn derecho del ratn propiedades
24
Cambiaremos el tipo de simbologa para la leyenda de Smbolo nico a Categorizado Clasificaremos la leyenda en funcin del campo COMUNIDAD 25 Seguidamente procedemos a exportar el estilo o leyenda en formato SLD a Geoserver
Lo primero que debemos hacer es instalar un complemento llamado SLD converter, para ello debemos habilitar los repositorios complementarios.
Luego iremos a la pestaa complementos y filtramos la busqueda por la palabra SLD, e instalamos el complemento SLD converter
Ir a men complementos y seleccionar la opcin Obtener complementos de Python Ir a la pestaa Opciones y habilitar la opcin Mostrar todos los complementos, incluso experimentales. 26 Para salvar el codigo que contiene el Estilo
La clave de acceso a Geoserver es: geoserver 27
Tambien tenemos la opcin de guardar el estilo en su formato .sld y luego importarlo en geoserver o bien copiar y pegar en una hola de estilo nueva en geoserver la estructura del cdigo mostrado en la ventana.
Para comprobar que ha sido creado correctamente el estilo, procedemos a verlo en Geoserver
Podemos observar que el estilo comunidades_espa ha sido creado correctamente. Nos queda ahora asociarle a la capa el estilo que corresponda en este caso comunidades_espa
Para ello accedemos nuevamente al apartado Capas y seleccionamos la correspondiente a comunidades_espa
Hacemos clic sobre el nombre de la capa, luego nos pasamos a la pestaa Publicacin
Podremos asociar el estilo creado comunidades_espa, tanto a la capa de origen shape como a la capa de origen postgis, recuerden que ambas capas son idnticas pero con origen distinto Cambiamos el estilo Polygon por comunidades_espa 28
Seguidamente procederemos a invocar las capas creadas desde el visor Geoexplorer incorporado dentro de la Suite Open Geo. Podremos localizar el vinculo al Geoexplorer desde el Dashboar de OpenGeo o bien invocando http://localhost:8080/geoexplorer/composer
Agregaremos la capa comunidades_espa que se encontrara dentro del repositorio Local Geoserver de nuestro servidor. 29
El aspecto final seria el siguiente
Para evaluar el aspecto interoperable de OpenGeo y en general de las tecnologias asociadas a infraestructura de datos espaciales, pasamos a invocar capas almacenadas en otros servidores WMS.
30
Agregamos una nueva fuente de datos de origen remoto En este caso invocaremos el servidor WMS del departamento de Geografa de la UAH
1.- Repetir el proceso con cartografa propia o que logre encontrar en Internet. Componer un conjunto de mapas temticos mnimo 10 mximo 15 del rea o territorio de su preferencia.
2.- Incorpore al informe una breve reflexin no ms de dos folios, sobre su impresin en el uso de las tecnologas WebMappig Server Servidores Cartogrficos e Infraestructura de Datos Espaciales. Cual considera usted ser el devenir de las tecnologas antes mencionadas.
La prctica debe ser enviada en formato PDF a la direccin: diego.padron@uah.es Antes del da 15 de noviembre de 2012