Curso de gvSIG 1.1.2

© 2008 Conselleria de Infraestructuras y Transporte. Generalitat Valenciana

Este documento se distribuye con la licencia GNU GPL 2

4as Jornadas gvSIG Valencia, 3, 4 y 5 de Diciembre de 2008

Conselleria de Infraestructuras y Transporte
C/ Blasco Ibáñez Nº 50 , 46010 VALENCIA E-Mail : gvsig@gva.es Web: www.cit.gva.es

Web's del proyecto: http://www.gvsig.gva.es , https://www.gvsig.org

Listas de Distribución

Existen tres listas de distribución con el objeto de facilitar la comunicación entre todos los interesados en el proyecto gvSIG. Las dos primeras, la de usuarios y la de desarrolladores, están principalmente orientadas a la comunidad de habla hispana, siendo el castellano el idioma preferente a utilizar en las mismas. La tercera de ellas, lista internacional, está orientada principalmente al resto de comunidades y la lengua preferente a utilizar es la inglesa.

- Lista de usuarios. Aquí podéis hacer llegar vuestra opinión sobre el funcionamiento, que cosas os gustaría que se desarrollaran, dudas en el uso de gvSIG y todo aquello que penséis que tiene cabida en una lista de usuarios. El enlace para la suscripción a la lista de usuarios es:

http://runas.cap.gva.es/mailman/listinfo/gvsig_usuarios

- Lista de desarrolladores. Esta orientada para todos los interesados en concocer como está desarrollado el gvSIG. El enlace para la suscripción a esta lista esa:

http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores

- Lista internacional. Esta orientada tanto para usuarios como para desarrolladores de habla no hispana. El idioma a utilizar será preferentemente inglés. El enlace para la suscripción a esta lista es:

http://runas.cap.gva.es/mailman/listinfo/gvsig_internacional

Todos los nombres propios de programas, sistemas operativos, equipo hardware etc., que aparecen en este curso son marcas registradas de sus respectivas compañías u organizaciones.

© 2008 Conselleria de Infraestructuras y Transporte

Este manual se distribuye con la licencia GNU GPL2.

Índice de contenido

1. Qué es gvSIG	8

2. LiveDVD	10

Instalación del LiveDVD	10

Requerimientos mínimos	10

Configuración de la salida a internet	10

3. gvSIG como cliente SIG	12

Ejercicio 1: Configuración de Preferencias	12

Configuración de Preferencias	12

Ejercicio 2: Visualización de la información	17

Trabajar con una vista	18

Simbología	20

Navegación	21

Medición de áreas y distancias	23

Localización por atributos	23

Reproyección de capas vectoriales	24

Añadir capa de eventos	25

Transparencia de una imagen	26

Ejercicio 3: Análisis visual	28

Crear una vista nueva	28

Leyenda predefinida	28

Exportar a imagen	29

Herramientas de selección	29

Explorar una tabla de atributos	30

Leyenda por intervalos	31

Unir y enlazar tablas. Selección por atributos	32

Ejercicio 4: Edición	33

Crear una nueva capa	33

Empezar con la edición	34

Asignar atributos a las áreas rellenas	35

Más edición	36

Leyendas con imágenes	37

Usar edición de atributos para crear hiperenlaces	38

Ejercicio 5: Calculadora de campos	40

Introducción	40

Acceso a la calculadora de campos en gvSIG	41

Descripción “Calculadora de Campos”	42

Cálculo del Área	44

Cálculo de coordenadas (X,Y)	46

Rellenado de campos por selección	48

Ejercicio 6: Geoprocesamiento	53

Introducción	53

Ejecución de los geoprocesos desde gvSIG	54

Área de influencia (Buffer)	54

Intersección	57

Recortar (Clip)	59

Disolver (Dissolve)	61

Convex hull (Polígono convexo envolvente)	64

Enlace espacial (Spatial join)	67

Diferencia	69

Ejercicio 7: Georreferenciación raster	70

Cargar y georreferenciar una imagen	71

Salvar a raster georreferenciado	72

Ejercicio 8: Constructor de mapa	73

Crear un Mapa en el Proyecto	73

Cargar una plantilla de Mapa	74

Añadir vistas al Mapa	74

Añadir leyendas al mapa	74

Otros elementos del mapa	75

Publicar e imprimir	76

Ejercicio 9: Capa de anotaciones	77

4. gvSIG como cliente IDE	80

Ejercicio 10: Visualización y consulta de I.G. vectorial y raster	80

Servidor WMS (Web Map Service)	80

Exportar a Web Map Context	81

Más sobre servidores WMS (Web Map Service)	82

Importar un Web Map Context	83

Ejercicio 11: Acceso avanzado a I.G. vectorial	83

Servidor WFS (Web Feature Service)	83

Acceso a BBDD espaciales (PostGIS)	85

Ejercicio 12: Acceso avanzado a I.G. raster	87

Servicio WCS (Web Coverage Service)	87

Ejercicio 13: Búsqueda de I.G. por catálogo	87

Ejercicio 14: Localización por topónimo	89

Ejercicio 15: Otros servicios	90

Servicio ECWP	90

Servicio ArcIMS	92

5. Bibliografía	93

6. Anexos	94

Anexo 1: Caso práctico sobre gestión de sistemas de referencia (JCRS)	94

Carga de capas	94

Digitalización de elementos	96

Reproyección de capas	98

Geoprocesamiento: Juntar	99

Geoprocesamiento: Unión	100

Anexo 2: Piloto de raster (no se adjunta la cartografía en el LiveDVD)	101

Casos prácticos del piloto de raster	101

Añadir las 7 bandas en una misma capa	103

Análisis multiespectral básico	105

Realce de la imagen	107

Transparencia sobre la imagen	108

Cálculo de histogramas	108

Filtros sobre la imagen multibanda	111

Paleta de color	112

Recorte de imágenes	116

Fusión de imágenes	117

Anexo 3: Piloto de redes (ejercicios a realizar con la versión de gvSIG que incluye el piloto de redes)	119

Nota: La capa utilizada en este ejercicio no está disponible en el Live-DVD. Puede realizarse la mayoría de los apartados del ejercicio con la capa Callejero_Valencia.shp, que se encuentra en la carpeta Valencia.	119

Cálculo de rutas óptimas	119

Anexo 4: Personalización de gvSIG ( Lenguaje de scripting)	129

Crear una extensión en gvSIG	129

Anexo 5: PostgreSQL con la extensión PostGIS como Base de Datos Espacial	131

Introducción	131

Instalación de Postgres 8.2.4-1	132

Exportar una capa a PostGIS desde gvSIG	135

Cargar una capa PostGIS en gvSIG	137

Anexo 6: Esquema de conectividad gvSIG-IDE	140

Anexo 7: Scripting (Centrar vista sobre un punto)	141

2.1 config.xml	141

2.2 centrarVistaSobreUnPunto.xml	142

2.3 centrarVistaSobreUnPunto.py	143

2.4 limpiarElGraphics.py	145

Anexo 8: GNU GENERAL PUBLIC LICENSE	146

1. Qué es gvSIG

gvSIG es una herramienta orientada al manejo de información geográfica. Se caracteriza por una interfaz amigable, siendo capaz de acceder a los formatos más usuales de forma ágil, tanto raster como vectoriales, pudiendo integrar en una vista datos tanto locales como remotos.

La aplicación está orientada a usuarios finales de información de naturaleza geográfica, sean profesionales o de administraciones públicas (ayuntamientos, diputaciones, consejerías o ministerios) de cualquier parte del mundo (actualmente dispone de interfaz en castellano, valenciano, inglés, alemán, checo, chino, euskera, gallego, francés, italiano, polaco, portugués y rumano), siendo, además, gratuita.

Dada su naturaleza de software libre (open source), es de gran interés para la comunidad internacional de desarrolladores y, en concreto, para los ambientes universitarios por su componente I+D+I. De hecho se ha hecho un especial hincapié en la extensibilidad del proyecto de forma que los posibles desarrolladores puedan ampliar las funcionalidades de la aplicación fácilmente, así como desarrollar aplicaciones totalmente nuevas a partir de las librerías utilizadas en gvSIG (siempre y cuando cumplan la licencia GPL).

Aunque gvSIG se mostró al público, a través de su portal web www.gvsig.gva.es por primera vez en el año 2004, su nacimiento podría situarse a finales de 2002, momento en el cual la Conselleria de Infraestructuras y Transporte (CIT, en adelante) inicia el análisis de lo que será el proceso de migración a sistemas abiertos bajo Linux de toda la informática de su organización. Durante esta primera fase se analizan los distintos tipos de software propietario de las distintas áreas de la informática que se usan en la CIT, estudiando sus equivalentes en el mundo del Software Libre. En el análisis concreto del área de Sistemas de Información Geográfica, se concluye que no hay una aplicación que pueda sustituir a los programas comerciales utilizados, principalmente tecnología de ESRI y Autodesk, pero que sí existen los suficientes desarrollos en la comunidad del Software Libre como para llevar a cabo el desarrollo de un SIG libre con garantías de éxito.

Como se ha comentado anteriormente, el análisis ha dado como resultado la inexistencia de un proyecto libre de SIG que cumpliera con los requisitos de los trabajadores de la Conselleria. Por un lado, debía ser un proyecto de fácil manejo y, por otro, lo suficientemente potente para cubrir las necesidades de los arquitectos e ingenieros de la CIT.

Para ello se realizaron una serie de encuestas a los técnicos usuarios de SIG de la Conselleria, a partir de las cuales se elaboró un informe de requerimientos. Es importante reseñar que una de las conclusiones del informe es que el 90% de los usuarios de información geográfica usaban un 20% de las funciones de los programas SIG instalados, mientras que sólo un número muy reducido explotaba al máximo la herramienta.

Gracias a los datos obtenidos mediante la realización de dicho informe y la evaluación de los desarrollos utilizables en la comunidad libre en materia de SIG, se llegó a la conclusión de que era abordable el desarrollo de una solución.

Del mismo modo que se iban a utilizar soluciones inventadas por otros en las distintas áreas de la informática, en el caso del SIG, al no haberla, se inventaba, con la firme intención de compartir con la comunidad los Resultados obtenidos.

El concurso público, de expediente 2003/01/0090 y denominado “Desarrollo de aplicaciones SIG para la COPUT utilizando Software Libre”, pedía la realización de un piloto que permitiera tanto la selección de la empresa como del lenguaje de programación, para lo que el piloto debía estar tanto en C como en Java. El adjudicatario fue la empresa IVER Tecnologías de la Información, S.A., y el lenguaje seleccionado Java.

Así, la primera versión de gvSIG que se publicó fue la 0.2 en octubre de 2004. Durante el desarrollo del proyecto han ido publicándose constantemente nuevas versiones con nuevas funcionalidades, hasta llegar a la actual, la 1.1.2.

Como se ha comentado, gvSIG permite cargar datos de origen local y de origen remoto. Como datos locales, gvSIG permite trabajar con formatos vectoriales como el .SHP (shape), .DXF (formato de intercambio de AutoCAD), .DWG (formato propio de AutoCAD) y .DGN (formato de MicroStation), y con formatos raster como el .ECW, el MrSID, el GeoTIFF o el JPEG2000 entre otros.

El nacimiento del proyecto coincide en el tiempo con la aparición, cada vez más frecuente, de un concepto: Infraestructuras de Datos Espaciales (IDE). Éste se proclama como nuevo paradigma de gestión de la información geográfica y consiste, básicamente, en utilizar la red (Internet/Intranet) y los estándares para adquirir, procesar, almacenar y distribuir información geográfica (en forma digital), pudiendo “cruzarla” con cualquier otra información publicada con las mismas características. Frente al modelo clásico de centralizar la información se pasa a un modelo de red descentralizado. gvSIG se adapta a este nuevo modelo permitiendo cargar datos remotos a través de un origen WMS (Web Map Service), WCS (Web Coverage Service) o WFS (Web Feature Service), y también de bases de datos espaciales como PostGIS y MySQL.

Las principales funcionalidades que incorpora gvSIG 1.1.2 son:

Visualización (zoom, pan, etc.)

Gestión de capas y leyendas

Herramientas de navegación

Medición de áreas y distancias

Constructor de mapas

Impresión

Transparencia (vectorial / raster)

Reproyección

Capa de eventos (desde tabla de coordenadas)

Enlace y unión de tablas

Edición gráfica y de tablas

Geoprocesamiento

Georreferenciación

Análisis de redes

Análisis del territorio (SEXTANTE)

3D

Publicación

2. LiveDVD

Instalación del LiveDVD

Para arrancar el LiveDVD debemos seguir los siguientes pasos (si la versión el LiveDVD es Xubuntu):

Asegúrese de que la BIOS permite arrancar desde la unidad de DVD.

Introducir el DVD en la unidad y reiniciar el ordenador.

Cuando aparezca la primera pantalla, presione Enter.

Nota: Si desea cambiar el idioma presione F2, y si desea cambiar el teclado presione F3. Presione F1 si desea obtener más ayuda.

Requerimientos mínimos

Los requerimientos mínimos para el óptimo funcionamiento del LiveDVD son:

CPU compatible Intel (i486 ó superior)

Mínimo: 256 MB RAM; Recomendado: 512 MB RAM

Lector DVD arrancable (IDE/ATAPI, Firewire, USB o SCSI)

Tarjeta gráfica estándar compatible con SVGA

Configuración de la salida a internet

Si la salida a internet del ordenador donde se está ejecutando el LiveDVD es por DHCP no es necesario configuración alguna. En caso contrario, hay que seguir estos pasos con los datos que le haya proporcionado el administrador de la red:

Ir a Applications / Sistema / Red

En la pestaña Conexiones, seleccionar Conexión cableada, y después Propiedades.

Sobre la ventana que se abre, desactivar la opción “Activar el modo itinerante”

Seleccionar en Configuración la opción Dirección IP estática

Insertar la dirección IP del ordenador, la máscara de red y la puerta de enlace predeterminada según los datos proporcionados por el administrador de la red.

Abrir el explorador Mozilla Firefox y comprobar la conexión a internet.

3. gvSIG como cliente SIG

El objetivo de este taller es presentaros las principales funcionalidades incluidas en la aplicación. Esta guía pretende introduciros en las herramientas SIG y sus procesos, como también en las herramientas más innovadoras disponibles en gvSIG.

gvSIG dispone de herramientas básicas para visualización y para navegación de la información espacial. gvSIG es capaz de leer y visualizar los tipos (extensiones) de ficheros mas comunes, incluyendo formatos en raster y vectorial, base de datos geoespaciales y los estándares de servicios remotos del OGC (Open Geospatial Consortium).

Las herramientas básicas nos permiten navegar a través de las capas por medio de múltiples vistas gráficas, explorar registros de las tablas y hacer composición de mapas.

Ejercicio 1: Configuración de Preferencias

Cuando abrimos gvSIG, nos encontramos directamente con la ventana Gestor de Proyectos.

La aplicación gvSIG puede administrar tres tipos de documentos en cada proyecto creado. Por un lado están las Vistas, donde se visualizan las capas añadidas, por otro lado las Tablas, que incluyen los conjuntos de registros asociados a las capas vectoriales y a su vez tablas alfanuméricas autónomas, y por último los Mapas, que son composiciones gráficas donde es posible combinar varias vistas y otros elementos como leyendas, nortes y escalas, generalmente creados para ser impresos.

Configuración de Preferencias

Podemos modificar la configuración de nuestro proyecto con Preferencias , o desde el menú Ventana/Preferencias. Desde aquí podemos elegir la apariencia de nuestra interfaz, seleccionar las carpetas donde tenemos los proyectos, datos y plantillas, cambiar el idioma, seleccionar el sistema de referencia que queremos que nos cargue por defecto en las vistas, etc. Vamos a modificar algunas propiedades de nuestro proyecto. Una vez accedemos a la herramienta nos aparecerá un esquema con las propiedades que podemos modificar. El esquema es el siguiente:

Primero modificaremos algunas propiedades de la Edición.

En este apartado podemos cambiar los colores de edición para selección, modificado y dibujado de los distintos elementos, además de diferenciar entre Relleno, Borde y Alpha (Transparencia). Los cambios que efectuemos sobre esta ventana afectarán a las modificaciones que hagamos sobre una capa en edición, es decir, no influyen en las características propias de la capa o la vista, sino que destacan y cambian el color de los elementos (puntos, líneas o polígonos) sobre los que en ese momento estamos cambiando su forma. Cambiaremos por ejemplo el color de relleno y de borde del dibujado. Para que visualicemos mejor los elementos que dibujamos, también le daremos menos transparencia, moviendo el cursor del valor “Alpha” hacia la derecha. También cambiaremos el color de relleno de la selección a otro color para distinguirlo del de la selección sobre las capas que no estén en edición.

A continuación modificaremos las propiedades de los Mapas. En este apartado podemos establecer si deseamos o no Activar y Visualizar la malla además de indicar su espaciado horizontal y vertical.

Para ver los cambios que se producen tras modificar las propiedades del mapa, crearemos uno nuevo y lo abrimos (desde el Gestor de proyectos). Maximizamos la ventana del Mapa y observamos que la malla es visible, tiene un espaciado tanto horizontal como vertical de 0,25cm., y la regla es visible. Ahora volvemos al Gestor de Proyectos/Preferencias/Mapa y efectuamos los siguientes cambios: Espaciados de malla 1, Desactivar la regla/ Aceptar.

Creamos un nuevo Mapa y vemos los cambios: La regla ha desaparecido y el espaciado es 4 veces mayor que el anterior.

Ahora vamos a ver la configuración de las Vistas. En este apartado podemos establecer varios valores como los referentes a los zooms o a los colores de las vistas, o seleccionar el sistema de referencia de las mismas.

Los “Factores de zoom” establecen el escalado de la visualización de las capas en pantalla. Podemos modificar el valor de “Factor zoom menos” a 1.

También podemos desde aquí elegir tanto el “Color de fondo” como el “Color de selección”, que por defecto es el “Amarillo”, además de establecer las “unidades de medida” con las que vamos a trabajar.

Desde esta ventana también podemos cambiar la proyección de la vista, ya que nos permite escoger el sistema de referencia de éstas. Éste será independiente del sistema de referencia utilizado por las capas. Si cambiamos aquí el sistema de referencia, a partir de entonces, cada vista que creemos nueva se creará con el sistema de referencia que hayamos escogido. Picaremos sobre “Proyección actual” y nos aparece una ventana en la que podemos seleccionar el sistema deseado. En este caso lo dejaremos en el que hay por defecto (EPSG23030).

En el apartado General/Carpetas podemos configurar las Carpetas en las que tenemos nuestros ficheros. Desde esta opción podemos crear un acceso rápido a las carpetas donde tenemos guardados nuestros proyectos (.gvp), datos (raster o vectoriales) o plantillas (.gvt). Nosotros añadiremos únicamente la ruta a la carpeta de datos, donde tenemos la cartografía del curso.

En el apartado General/Idioma podemos seleccionar el Idioma con el que queremos trabajar en gvSIG. Actualmente son 13 los idiomas disponibles. Si cambiamos a un idioma distinto del que tenemos deberemos reiniciar gvSIG para que se ejecute el cambio.

En el apartado Red/”Firewall/Proxy” podemos configurar la Red. Por ejemplo, si trabajamos con gvSIG desde una empresa o administración que tiene salida a internet a través de proxy, desde aquí podremos configurarlo. Podríamos intuir cuáles son los parámetros de conexión para el proxy copiándolos desde las propiedades proxy de nuestro navegador.

Ejercicio 2: Visualización de la información

Al abrir gvSIG, nos encontramos directamente con la ventana Gestor de proyectos (si es necesario volver a abrir esta ventana, debemos pinchar en Ver/Ventana de proyecto).

Trabajar con una vista

Debemos tener seleccionado el tipo de documento Vistas en el Gestor de proyectos, luego pinchar en Nuevo. Seleccionamos la nueva vista y pinchamos en Renombrar para poder cambiar el nombre que tiene por defecto la vista (por ejemplo, lo cambiamos a VISTA1).

Pinchamos sobre Abrir para abrir la vista o simplemente pinchamos 2 veces sobre su nombre. La vista se abrirá enseñando 3 zonas: la zona de la derecha denominada Vista geográfica, la zona superior izquierda denominada TOC (Table of Contents) donde aparecerán las capas añadidas y la zona inferior izquierda llamada Localizador.

Usamos la herramienta de Añadir capa que encontraremos en la barra de herramientas o en Vista/Añadir capa. Se abrirá la ventana de Añadir capa. En la pestaña Archivo pinchamos en el botón Añadir para abrir el explorador de ficheros. Teniendo seleccionado el driver correspondiente a gvSIG shp será posible seleccionar la capa esp_provincias.shp disponible en la carpeta de España del directorio de cartografía del CD (/cdrom/data/cartografia).

La capa shp se cargará en el TOC y se visualizarán las provincias de España en la Vista gráfica. Veremos además, en la barra de estado, la escala de la vista (pudiendo modificarla), la unidad de medida, las coordenadas del puntero y el sistema utilizado en la vista. Para activar la capa añadida hará falta pinchar sobre el nombre que aparece en el TOC. Muchas de las herramientas de gvSIG se aplicarán solamente sobre la/las capa/s activa/s.

Simbología

Haciendo botón derecho sobre el nombre de la capa se desplegará el menú contextual. Seleccionamos Propiedades, vamos a la pestaña Simbología y seleccionamos la opción Valores únicos. Seleccionamos NOMBRE99 en la lista Campo de clasificación y seguidamente pinchamos en Añadir todos y luego en Aplicar y Aceptar. De este modo cada provincia aparecerá con una simbología (color) diferente.

De nuevo sobre Propiedades, vamos a la pestaña Simbología y pinchamos sobre la opción de Etiquetados y seleccionamos Habilitar etiquetado. Seleccionamos NOMBRE99 como campo de texto para el etiquetado y una altura de texto fija de 10 pixeles. Al pinchar sobre Aceptar los polígonos de las Provincias serán etiquetados con sus respectivos nombres. En esta opción de etiquetado, además, es posible definir un campo específico para la altura del texto a visualizar (para poder ver el texto con tamaños relativos diferentes) y otro para la rotación del mismo. Se puede definir también el tipo de fuente, el color y el tamaño en metros o en pixeles (ambos valores enteros).

Navegación

Primeramente configuraremos el Localizador. Para ello hacer Vista/Configurar Localizador, pinchamos en Añadir capa y seleccionamos el fichero esp_localizador.shp del directorio de cartografía. Un mapa de España aparecerá en la zona del Localizador. Podemos desplazarnos al lugar que deseemos pinchando o arrastrando el rectángulo que aparece en el Localizador.

En la Vista añadimos la capa Centro_2002.jp2 y Puerto_1980.jp2, seleccionando antes el driver de imagen. Es posible hacer un zoom a la capa que acabamos de añadir gracias a la herramienta del menú contextual Zoom a la capa. Para ello hay que hacer botón derecho sobre el nombre de la capa, a la que previamente habremos puesto como capa activa. Notar que la posición de la cruz del navegador acompaña los movimientos que hacemos en la vista, dando una situación aproximada de donde nos encontramos respecto del mapa de España.

Ahora añadiremos en la misma vista otra capa, llamada parcelas_Valencia.shp, para ello será necesario seleccionar el driver shp en el explorador de ficheros.

Ponemos activa la capa, y pinchando con el botón derecho del ratón sobre el nombre de la capa seleccionamos Propiedades en el menú contextual desplegado, vamos a la pestaña Simbología y sobre la opción Símbolo único quitamos el relleno y cambiamos la línea a un color más visible respecto a la ortofoto (a rojo por ejemplo).

Realizamos un zoom a la zona del puerto de Valencia.

Seleccionamos la herramienta de Gestión de encuadres (Vista/Navegación/Encuadre) para poder almacenar una determinada vista con un nombre que le permitirá restaurarla más adelante.

Cerramos la ventana de Gestor de encuadres y sobre la imagen anterior del Puerto de Valencia (de 1980) añadimos ahora una nueva imagen, de la misma zona, correspondiente al año 2002 (Puerto_2002.ecw). En la ventana del explorador de ficheros tendremos que haber seleccionado el driver correspondiente a imágenes: gvSIG image driver.

Utilizamos la herramienta Centrar la vista sobre un punto sobre las coordenadas (X: 725830; Y: 4372060), que corresponden a la Plaza de toros de Valencia. Con esta herramienta, si tenemos una capa vectorial activa en ese momento nos sacará la información asociada al elemento sobre el que está el punto buscado, y si la capa activa es una imagen nos mostrará la información del pixel en concreto.

Seleccionamos de nuevo la herramienta de Gestión de encuadres y almacenamos el nuevo marco. Dentro del mismo cuadro de diálogo seleccionamos el encuadre anterior (el del puerto de Valencia) y pinchamos a Seleccionar. Vemos cómo la Vista se encuadra sobre la zona anterior.

Medición de áreas y distancias

Sobre una vista podemos medir tanto Áreas como Distancias . En el caso de áreas obtenemos el área y el perímetro del polígono que dibujamos sobre la vista. En distancias podemos ver tanto las distancias parciales de los tramos que vamos dibujando como la distancia total.

Localización por atributos

Para poder navegar hacia una zona específica de la vista se utiliza la herramienta Localizador por atributo (Vista/Localizador por atributo). En esta herramienta deberemos de especificar la capa a utilizar y el atributo por el cual se desea localizar. Por ejemplo se podrá buscar sobre la capa esp_provincias.shp la localización de la provincia de Valencia. Pinchando sobre el botón Zoom la vista nos llevará a la zona a localizar.

Notar que en todo momento es posible controlar la escala de la vista a partir del control de escala de la barra de estado, ya sea por selección de una de las escalas predefinidas o introduciendo la escala deseada.

Reproyección de capas vectoriales

Esta vez añadiremos al proyecto actual la capa esp_4326.shp en donde ya tenemos el mapa de España en el sistema de referencia 23030, coincidente con el de la vista.

En la vista VISTA1 pincharemos en Añadir capa, añadimos la capa esp_4326.shp. Notar que en la ventana de Añadir capa está seleccionada la Proyección 23030, lo que indica que la capa será añadida a nuestra vista en dicho sistema de referencia.

Una vez le damos a Aceptar y hacemos un Zoom a la capa (utilizando el menú contextual) se puede comprobar que las coordenadas del mapa de España no son las que deberían en el sistema de referencia 23030. Esto se explica porque hemos añadido la capa esp_4326.shp. cuyas coordenadas están en el sistema 4326, pero no se lo hemos indicado a la aplicación en la ventana de Añadir capa.

Eliminamos esta capa que ha sido añadida de forma incorrecta (botón derecho del ratón sobre ella, Eliminar capa), y pinchamos nuevamente Añadir capa. Seleccionamos la misma capa esp_4326.shp, pero esta vez tendremos la precaución de indicarle a gvSIG que se encuentra en el sistema de referencia 4326 (Datum wgs 84 y coordenadas geodésicas). Para ello entramos en el menú de Proyección actual, y en la ventana que se abre seleccionamos el “Tipo” EPSG, el “Criterio de búsqueda” debe ser Por código, y en el cuadro de texto escribimos 4326. En el cuadro de la parte inferior seleccionamos la opción Transformación EPSG, le damos a Siguiente, seleccionamos el código de transformación 1633 (Spain – Mainland except northwest).

Finalmente, dándole a Finalizar, y en la ventana de Añadir capa a Aceptar veremos la capa de España que teníamos en coordenadas geodésicas en el mismo sistema de referencia que el resto de capas de la vista (UTM huso 30).

Añadir capa de eventos

En una vista podemos añadir una capa de puntos a partir de una tabla de coordenadas. Para ello tendremos que añadir al proyecto dicha tabla.

Desde el Gestor de proyectos (Ver/ Ventana de proyectos), seleccionamos Tablas como tipo de documento, pinchamos en Nuevo y luego en Añadir para poder seleccionar la tabla XY_mun.dbf (recordar que hace falta seleccionar el driver correspondiente para este tipo de ficheros).

Una vez cargada la tabla nos vamos a la vista en la que estábamos, pinchamos sobre Añadir capa de eventos y seleccionamos la tabla XY_mun.dbf de la carpeta Valencia, el campo XUTM para las X, y el YUTM para las Y.

Pinchamos Aceptar y vemos los puntos sobre la vista anterior.

La capa que hemos insertado es una capa virtual, es una visualización de puntos únicamente. Si queremos guardar los puntos como un fichero shp deberemos poner activa la capa, y sin seleccionar ningún punto exportarlo con Capa/Exportar a.../SHP. Así crearemos un shape de puntos. Si no se selecciona ningún punto se exportarán todos, y si se seleccionan algunos puntos, sólo se exportarán esos elementos seleccionados.

Transparencia de una imagen

En la misma Vista, ponemos las dos capas de España como no visibles, y como activa la capa de Puerto_2002.ecw y haciendo botón derecho sobre ella se abrirá el menú contextual en donde se pinchará sobre la opción Zoom a la capa.

Lo siguiente será ir a las Propiedades del ráster de la capa Puerto_2002.ecw a través del menú contextual. Se abrirá la ventana de Propiedades de la imagen ráster en donde tendremos 5 pestañas disponibles: Información, Bandas, Transparencia, Realce y Pansharp.

Pincharemos sobre la pestaña Transparencia para poder modificar la opacidad de los pixeles de la imagen. Se activará dicha opción, en la parte inferior de la ventana, y se seleccionará un porcentaje igual a 35, bien con la barra o introduciendo el valor numérico. Así veremos las diferencias en las infraestructuras portuarias entre las dos imágenes.

Ejercicio 3: Análisis visual

En este ejercicio trabajaremos con leyendas, selecciones, consultas y tablas para introducirnos en ellas.

Crear una vista nueva

Desde el Gestor de Proyectos (Ventana/Gestor de proyectos) abrimos una vista nueva. Le ponemos como nombre Andalucia1.

Abrimos la vista y vamos a Añadir capa. Las capas que vamos a añadir están en UTM30, por lo que primero deberemos poner como sistema de referencia el EPSG 23030 (Datum: European 1950; Proyección: UTM; Huso 30), ya que la última capa que habíamos insertado era en 4326, y esta queda memorizada. Luego añadimos los siguientes shp: municipiosAndal.shp, hidro_andalucia.shp y ferrocarrilAndal.shp (para todos deberá estar activado el driver de shp). Para continuar con el ejercicio dejaremos visibles solamente las capas de municipios (municipiosAndal.shp) y de hidrografía (hidro_andalucia.shp).

Leyenda predefinida

Para definir la forma de visualización de la capa llamada hidro_andalucia.shp vamos a utilizar una leyenda predefinida. Estas leyendas son ficheros con extensión gvl generados por el propio gvSIG a partir de una leyenda definida en una capa cualquiera.

Activamos la capa hidro_andalucia.shp y accedemos a la ventana de Propiedades, solapa Simbología.

Pinchamos sobre el botón Recuperar Leyenda para poder añadir la leyenda predefinida. Seleccionamos el fichero jerarquia.gvl y aceptamos. Esta leyenda nos muestra los ríos en función de su jerarquía.

Exportar a imagen

Con gvSIG podemos exportar una vista a una imagen sin georreferenciar. Para ello, teniendo la vista que queremos exportar como activa, vamos a Vista/Exportar/Imagen, pudiendo salvar a formato jpeg, bmp ó png. Esta imagen se puede incorporar posteriormente a documentos de texto o a presentaciones.

Herramientas de selección

Es importante recordar que cada capa tiene su propia selección de elementos, y para poder hacerlo debe de estar como capa activa. Se podrá usar la herramienta Seleccionar por punto para seleccionar uno o más elementos (utilice la tecla Ctrl para una selección múltiple), la herramienta Seleccionar por rectángulo para seleccionar a la vez todo lo que quede dentro del rectángulo y la herramienta de Selección por polígonos con la que podremos delimitar un polígono cualquiera para hacer la selección.

Otras herramientas de selección más complejas son el Filtro y la Selección por capa (Vista/Selección/Selección por capa).

Ponemos visibles sólo las capas municipiosAndal.shp y ferrocarrilAndal.shp (dejamos la de ferrocarriles por encima), y ponemos la de ferrocarrilAndal.shp como activa.

Vamos a Filtro y hacemos la consulta “COD_ENT” = “V10” y pinchamos a Nuevo conjunto. En la vista veremos el tramo seleccionado, que se corresponde con el tren de alta velocidad.

Después de realizar una selección (teniendo los elementos seleccionados) podríamos realizar una nueva selección, bien añadiéndola a la anterior (con Añadir al conjunto) o bien seleccionando elementos del conjunto anterior que cumplan otra condición (con Seleccionar del conjunto).

Ahora realizaremos una selección por capa. Queremos saber por ejemplo los municipios por los que pasa el tren de alta velocidad. Para ello, sin quitar la selección anterior, pondremos activa la capa municipiosAndal.shp, e iremos al menú Vista/Selección/Selección por capa. Realizamos la consulta:

Seleccionar de las capas activas los elementos que...

Intersecten con

elementos seleccionados de la capa

ferrocarrilAndal.shp

Pinchamos a Nuevo conjunto y veremos seleccionados los municipios por los que pasa el tren de alta velocidad.

Es posible guardar la selección que hemos conseguido en la capa shp en un fichero independiente o en una base de datos. Para ello cerrar ambas tablas y con la capa shp activa seleccionar Capa/ Exportar a /SHP o DXF o PostGis o GML. La aplicación nos avisará del total de elementos que se guardarán en la nueva capa y nos pedirá una ruta para el fichero nuevo. Al crear el fichero nos preguntará si lo queremos añadir al proyecto actual para poder trabajar con él.

Explorar una tabla de atributos

En algunas aplicaciones es muy útil visualizar directamente el contenido de la tabla de atributos asociada a nuestra cartografía.

Activamos la capa de municipiosAndal.shp si no la teníamos activa. En ella tendremos seleccionados los municipios por los que pasaba el tren de alta velocidad.

Abrimos su tabla de atributos (Capa/ Ver tabla de atributos). En ella se verán algunos de los registros seleccionados, y para poder ver todos los seleccionados en la parte superior de la tabla utilizamos la herramienta Mover arriba la selección .

También se puede seleccionar los registros complementarios seleccionando la herramienta Invertir selección

Notar que la selección se efectúa tanto en la tabla (registros de color amarillo) como en la vista. Existe una herramienta, Zoom a lo seleccionado (Vista /Navegación /Zoom a lo seleccionado), que permite ir directamente a los elementos que se encuentran seleccionados.

Para dejar sin efecto una selección de registros basta pinchar sobre la herramienta Borra selección .

Sobre la vista también podemos obtener la información asociada a los elementos que estén en ella mediante la herramienta Información .

Leyenda por intervalos

Con gvSIG podemos copiar vistas, tanto dentro de un mismo proyecto como entre proyectos distintos. Para este apartado y el siguiente haremos una copia de la vista VISTA1, donde tenemos añadida la capa de España llamada esp_provincias.shp, y trabajaremos sobre ella. Para ello iremos al Gestor de proyectos/Vista, y pincharemos con el botón derecho del ratón sobre la vista VISTA1. Le damos a Copiar, y con el botón derecho del ratón sobre la ventana donde tenemos las vistas del proyecto le damos a Pegar. Con esto tendremos una copia de la vista anterior.

Cuando tengamos una capa con un campo numérico podemos hacer una leyenda por intervalos. En este caso haremos una leyenda en función del área de cada provincia.

Para ello, teniendo activa la capa, vamos a Propiedades, y aquí a la pestaña Simbología, y seleccionamos la opción Intervalos. Seleccionamos AREA en la lista Campo de clasificación, Intervalos iguales como Tipo de intervalo, y le seleccionamos el color blanco como Color de inicio, un rojo oscuro como Color final, y 25 como Nº de intervalos. Seguidamente pinchamos en Calcular intervalos y luego en Aplicar y Aceptar.

De este modo cada provincia aparecerá con un color gradual en función del área.

Unir y enlazar tablas. Selección por atributos

Teniendo activa la capa anterior de esp_provincias.shp abriremos su tabla asociada (Capa/ Ver tabla de atributos) para identificar el campo PROVINCIA que contiene un índice de provincias de España (es un valor numérico que va del 1 al 52).

Añadiremos al proyecto una tabla en formato .csv: para ello vamos al Gestor de proyectos (Ver/ Gestor de proyectos) y seleccionando Tablas como tipo de documento, pincharemos en Nuevo y luego en Añadir para poder seleccionar la tabla PoblacionINE.csv (deberemos seleccionar el driver correspondiente para este tipo de ficheros). En esta tabla encontraremos datos poblacionales de las 52 provincias.

Para proceder a la unión de las tablas es necesario identificar un campo común en ambas tablas, dicho campo en el shp de provincias será DPROV y en la tabla de población será codigo. Hace falta tener abierta una tabla (la de población del INE por ejemplo) para que la herramienta de Unión aparezca en la barra de herramientas.

Seleccionamos Unir (Tabla/ Unir) con lo que aparecerá la ventana para selección de tablas y campos. Primeramente seleccionamos la capa esp_provincias.shp y el campo DPROV; luego la tabla PoblacionINE.csv y el campo codigo. De este modo estamos añadiendo los campos de la tabla del INE a la tabla asociada al shp. Los nombres de los campos añadidos serán del tipo link_nombrecampo.

Para quitar la Unión se quitaría desde Tabla/ Quitar uniones y con ellos ambas tablas volverán a tener la apariencia inicial.

El enlace de tablas (Tabla/ Enlace) es una herramientas similar, solo que los campos de ambas tablas son enlazados virtualmente. Se realizaría desde el icono de Enlazar . A diferencia de la unión, en el enlace no cambiará la apariencia de las tablas, ya que es un proceso virtual.

Ejercicio 4: Edición

En este ejercicio vamos a realizar una digitalización del Ayuntamiento de Valencia y de dos manzanas colindantes. A estos elementos le asignaremos información alfanumérica.

La segunda parte de este ejercicio, será utilizar la herramienta Hiperenlace, para asignar a algunos municipios de Andalucía imágenes.

Crear una nueva capa

Creamos una nueva Vista, la renombramos como Edición, y la abrimos.

Cargamos la imagen del centro de la ciudad de Valencia (Centro_2002.jp2). Utilizamos la herramienta Centrar la vista sobre un punto sobre las coordenadas (X: 725704; Y: 4372413). Esta zona corresponde al Ayuntamiento de Valencia. Ponemos una escala de 1:1000.

Creamos una nueva capa con Vista / Nueva capa / Nuevo SHP

Seleccionamos Polígono como tipo de geometría. Click Siguiente.

Añadimos un campo llamado Uso, deja por defecto tipo (String) y tamaño.

Salvamos en disco la capa como ProyectoCentro.shp (debemos guardarla sobre un directorio escribible, que en el LiveCD puede ser /home/ubuntu)

Deberemos ver una nueva capa añadida en el TOC, y marcada en rojo, para mostrar que la capa está en edición. Además, veremos la consola abierta en la parte inferior de la vista y nuevos botones en la barra de herramientas.

Empezar con la edición

Ponemos activa la capa nueva ProyectoCentro.

Seleccionamos la herramienta Polilínea

Click en la posición del primer punto del elemento a dibujar. Click después en los nuevos vértices de la polilínea. Para cerrar el polígono, utilizamos la opción del menú contextual Cerrar Polilínea o con la letra C en la consola de edición.

Veremos que el nuevo polígono se ilumina con el color de selección. Podemos crear más polígonos y crear nuevos edificios, y también otros polígonos para áreas de recreo de nuestro proyecto. Además podemos probar a combinar líneas y arcos seleccionando estas opciones en el menú contextual. También, podemos activar el snapping que nos ayudará a situar nuevos puntos en vértices previos o en nuestros polígonos ya dibujados, y así podemos fácilmente evitar errores.

Si queremos cambiar la posición de algunos vértices, utilizaremos la herramienta de selección . Click en el vértice que deseamos mover, liberamos el botón del ratón y después click en la nueva posición del vértice.

Podemos usar la herramienta Deshacer/Rehacer, o abrir la herramienta Pila de Comandos para volver a estados de edición anteriores.

Cuando estemos haciendo esto, debemos asegurarnos que la capa está seleccionada en el TOC y entonces utilizamos la opción Capa/Terminar edición, escogiendo Sí cuando deseemos salvar los cambios.

Asignar atributos a las áreas rellenas

Seleccionamos la capa ProyectoCentro en el TOC y escogemos Capa/Comenzar Edición.

Elegimos Capa/Ver Tabla de Atributos. Para cambiar el valor de un campo, click en la celda de la tabla, introducimos el nuevo valor y presionamos la tecla Enter. El polígono cuyos atributos estamos editando será seleccionado cuando pulsemos sobre la tabla, y viceversa.

Por ejemplo, asignamos valores como el Ayuntamiento, Edificio y Verde al campo de Uso.

Cerramos la tabla de atributos y terminamos edición, salvando los cambios. Para una visión más agradable, escogemos una leyenda de Valor Único para esta capa y asignamos colores apropiados a cada valor de Uso.

Más edición

Con gvSIG se puede crear una capa multipunto, de forma que podemos digitalizar varios puntos, y que todos ellos sean un único registro en la base de datos.

Primero utilizamos la herramienta Centrar la vista sobre un punto sobre las coordenadas (X: 725945; Y: 4372160), y pondremos una escala de 1:1000. En esta zona podemos ver algunas calles con árboles, que vamos a digitalizar.

Para crear una capa multipunto vamos a Vista / Nueva capa / Nuevo SHP

Seleccionamos Multipunto como tipo de geometría, y Árboles como nombre de la capa. Click en Siguiente.

Añadimos un campo llamado Calle, deja por defecto tipo (String) y tamaño (para que se añada hay que darle a Intro).

Salvamos en disco la capa como Arboles.shp (debemos guardarla sobre un directorio escribible, que en el LiveDVD puede ser /home/ubuntu). Le damos a Fin.

Deberemos ver una nueva capa añadida en el TOC, y marcada en rojo, para mostrar que la capa está en edición. Además, veremos la consola abierta en la parte inferior de la vista.

Ponemos activa la capa nueva Arboles.

Seleccionamos la herramienta Multipunto , que es la única habilitada de la barra de herramientas de dibujo.

Queremos que cada registro de la base de datos pertenezca a una calle distinta (que contenga a todos los árboles de esa calle). Así empezamos a dibujar los árboles de una misma calle. Una vez los hemos dibujado le damos al botón derecho del ratón y a Terminar. Así tendremos todos los árboles de esa calle como un único registro. Hacemos lo mismo con otra calle, dándole a la herramienta Multipunto y dibujando los árboles.

Una vez hemos digitalizado todos los puntos, abrimos la tabla de atributos de nuestra capa y rellenamos el campo Calle con sus datos correspondientes.

Al final volvemos a la vista, y con el botón derecho del ratón sobre la capa Arboles.shp le damos a Terminar edición.

A diferencia de otros paquetes de SIG, gvSIG nos permite corregir múltiples capas al mismo tiempo. También podemos editar cualquier elemento mientras gvSIG pueda leerlo (incluyendo WFS) y después salvar los resultados a formatos escribibles usando el menu Capa / Exportar a....

Leyendas con imágenes

A una capa de puntos podemos asignarle una leyenda por imagen.

Sobre la capa anterior activa, vamos a Propiedades, y aquí a la pestaña Simbología, y en Símbolo único seleccionamos Imagen como Tipo de símbolo, le damos un tamaño de 4, seleccionando metros como unidad, y seleccionamos la imagen arbol.gif que estará en el directorio /cdrom/data/Plantillas . Le damos a Aplicar y a Aceptar y veremos como los puntos dibujados anteriormente se visualizan con una imagen de un árbol.

Usar edición de atributos para crear hiperenlaces

Podemos asociar texto o imágenes a entidades y tener acceso a esta información usando la herramienta de Hiperenlace. Veremos como crear este hiperenlace.

Cargamos la capa municipiosAndal.shp y hacemos y Zoom a la capa (con el botón derecho del ratón sobre ella).

Si el estado de la capa es no escribible (como un CD), la aplicación nos advertirá. Para pasar la capa a estado escribible la exportaremos a un nuevo shp y trabajaremos sobre él. Para ello ponemos activa la capa y vamos al menú Capa/Exportar a.../SHP. Guardamos la capa en el directorio que sale por defecto (se guardarán los datos hasta que reiniciemos el PC) y diremos que nos la añada en la Vista. Ponemos la nueva capa activa y comenzamos la edición.

Abrimos la tabla de atributos, y accedemos a Tabla / Modificar estructura de tabla. A continuación creamos un campo nuevo, llamado Enlace y de tipo String. Aceptamos.

Localizamos el campo de Enlace. Escribimos en cada celda la ruta correspondiente a la imagen enlazada (sin extensión), en nuestro caso escribiremos la ruta de la imagen de Granada (/cdrom/data/cartografia/Andalucia/granada.jpg).

Volvemos a la vista y terminamos la edición de la capa.

Seleccionamos sobre la tabla el registro que hemos editado (Granada) y usamos la herramienta Zoom a la selección para encontrarlo en la vista.

También debemos configurar el hiperenlace de la capa. Vamos a las propiedades de la capa y seleccionamos el campo Enlace como el campo de hiperenlace. Pinchamos sobre el botón Aceptar.

Ahora podemos utilizar la herramienta Hiperenlace (Vista / Consulta / Enlace) desde el menú desplegable. Una ventana con la imagen aparecerá sobre la vista.

Este procedimiento lo podemos hacer con todas las entidades de la capa y asignar a cada elemento una imagen. En este ejemplo, enlazaremos también las imágenes de Córdoba y Cádiz.

Ejercicio 5: Calculadora de campos

Introducción

Una de las nuevas funcionalidades que va a formar parte de gvSIG es la Calculadora de Campos, dicha funcionalidad permite realizar distintos cálculos sobre los campos de una tabla.

Las operaciones que podemos utilizar se pueden agrupar en tres grandes bloques:

Operadores Numéricos (para campos tipo Entero y Doble).

abs, acos, area, asin, atan, ceil, cos, <> (distinto), /, e, = = (igual lógico), exp, <=, <, log, mmax, min, -, >=, >, pi, +, x, y, pow, random, row, sin, sqrt, tan, *, toDegrees, toNumber, toRadians, toString.

Operadores Cadena (para campos tipo String).

<>, endsWith, = =, equals, indexOf, isNumber, lastIndexOf, lenght, +, replace, startsWith, subString, toLowerCase, toUpperCase, trim.

Operadores Fecha (para campos tipo Date).

after, before, <>, = =, equals, getTimeDate, setTimeDate, toDate, toString.

Acceso a la calculadora de campos en gvSIG

Para acceder a esta funcionalidad debemos, en primer lugar, iniciar una sesión de edición en gvSIG. Esto lo podemos efectuar de forma distinta dependiendo de la tarea que estemos realizando en ese momento.

Si deseamos activar la edición de una capa cargada sobre una vista acudiremos al menú contextual de la capa. Botón derecho del ratón/ Comenzar edición.

Si, en cambio, lo que deseamos es activar la edición sobre una tabla recién cargada lo haremos desde Menú Tabla/ Comenzar edición.

Importante: Una vez tengamos la sesión de edición abierta, y activada la tabla de atributos sobre la que queremos trabajar, es imprescindible que seleccionemos uno de los campos (hacer click sobre la cabecera del campo). En ese momento se activará el icono en la barra de herramientas, el cual da acceso a la calculadora de campos.

Descripción “Calculadora de Campos”

La primera vez que iniciemos esta funcionalidad en una nueva sesión de gvSIG, nos aparecerá una ventana de aviso que indica que la calculadora está “Cargando los operadores”. Una vez finalizado el proceso aparecerá la ventana que nos va a permitir operar con los distintos campos.

“Operator”. Indica el comando seleccionado y la expresión que permite ejecutarlo.

“Parámetro”. Puede ser de tres clases y nos indica el tipo de campo que debemos introducir en la expresión para realizar el cálculo.

Valor numérico: Debemos introducir un campo tipo Double o Integer.

Valor cadena: Debemos indicarle un campo tipo String.

Valor fecha: Debemos indicarle un campo tipo Date.

“Devuelve””. Indica que tipo de valor vamos a obtener como resultado de los cálculos.

Valor numérico: El resultado debe dejarse caer sobre un campo tipo String, Double o Integer.

Valor booleano: El valor booleano devuelve una respuesta true/false (verdadero/falso) sobre la consulta. Si el resultado de la consulta cae sobre un campo tipo numérico, el resultado será entonces 1/0 dependiendo de si la respuesta es cierta o falsa respectivamente.

Pestañas General/Avanzada

General. Nos da información sobre:

* Campos: En el cuadro de texto aparecerán todos los campos de la tabla sobre la que estemos trabajando.

* Tipo: En función del check seleccionado tendremos acceso a unos comandos u otros.

* Comandos: Son los operadores que permiten construir expresiones para realizar los cálculos que deseemos.

Avanzada. Nos permite abrir un diálogo de búsqueda de una expresión que tengamos guardada en un fichero.

Apartado “Expresión”

Al lado del texto “Columna” encontramos el nombre del campo sobre el que dejaremos caer los cálculos que son resultado de las expresiones que introduzcamos en el cuadro de texto.

Nota: Las expresiones sólo se calcularán sobre los registros seleccionados en la tabla.(Si no se ha seleccionado ningún registro el cálculo se hará sobre todos los registros del campo seleccionado). Además deberán estar escritas en lenguaje de programación Python.

Cálculo del Área

Para explicar el funcionamiento de la calculadora de campos seguiremos un ejemplo sencillo sobre el cálculo de áreas. Para ello utilizaremos la capa de polígonos que acabamos de crear del centro de la ciudad de Valencia, en la que deseamos obtener el área de las manzanas dibujadas.

Para realizar este ejemplo ponemos activa la capa ProyectoCentro.shp, y con el botón derecho del ratón pinchamos sobre “Zoom a la capa”.

Con el botón derecho del ratón sobre la misma capa le damos a “Comenzar edición”.

Abrimos la tabla de atributos de la capa y vamos al menú Tabla/ Modificar estructura de tabla.

Añadimos un campo nuevo llamado Area, que sea de tipo Double, y le damos a Aceptar. (Hacer notar que los nombres no pueden tener más de 10 caracteres)

Seleccionamos la cabecera del campo de “Area” y activamos la calculadora de campos mediante su icono . Nos aparece la siguiente ventana:

En la pestaña “General” encontramos:

“Campo”: tenemos los distintos campos que forman parte de la tabla sobre la que estamos actuando.

“Tipo” de campo seleccionado. En función del tipo de campo tendremos acceso a unos comandos u otros.

“Comandos” que podemos utilizar en los cálculos.

En el apartado “Información” encontramos que:

Si en la pestaña “General” hemos seleccionado el comando “Área”, en la ventana de información aparecerá una breve descripción del mismo.

Si en el apartado “General” hemos seleccionado el campo “Área”, la ventana de información nos devuelve un mensaje con información sobre el tipo de campo.

En el área “Expresión” encontraremos el nombre de la columna sobre la que estamos realizando el cálculo y un cuadro de texto destinado a recoger la sentencia de cálculo que deseamos utilizar.

En nuestro caso haremos doble click sobre el comando área.

Pinchamos a Aceptar, y comprobamos que la tabla asociada a nuestra capa se ha rellenado con el valor del área correspondiente a cada polígono. Si en la tabla tenemos registros seleccionados sólo se rellenarán estos registros.

Finalmente sobre la capa ProyectoCentro.shp en el Toc, con el botón derecho del ratón le damos a Terminar edición/ Guardar cambios.

Con dicha capa seleccionada en el Toc, abrimos su tabla asociada de nuevo y observamos que contiene el campo que hemos creado (campo Área).

Cálculo de coordenadas (X,Y)

En este caso lo que vamos a realizar mediante la calculadora es la obtención de las coordenadas X e Y correspondientes a una determinada capa de tipo puntual.

Para realizar este ejemplo vamos a abrir una vista nueva y a cargar las siguientes capas “municipiosAndal.shp” y “puertos_andalucia.shp” que, respectivamente, se tratan de una capa de polígonos de los municipios de Andalucía, y una capa puntual de sus puertos (pesquero, deportivo, comercial).

En primer lugar exportaremos la capa de “puertos_andalucia.shp” a un nuevo shape para poder editarlo. Para ello la pondremos activa e iremos al menú Capa/Exportar a/SHP, y le pondremos como nombre “Puertos.shp“ (tenemos que guardarla en /home/ubuntu)

Ponemos en Edición la capa nueva “Puertos.shp” y abrimos su tabla asociada. Seleccionamos uno de sus campos y vamos al menú Tabla/ Modificar estructura de tabla.

Añadimos dos campos nuevos llamados Coord_X y Coord_Y, ambos de tipo Double, y le damos a Aceptar. (Hacer notar que los nombres no pueden tener más de 10 caracteres)

Seleccionamos la cabecera del campo de “Coord_X” y activamos la calculadora de campos mediante su icono. Rellenando los espacios de la ventana según la imagen siguiente, obtendremos como resultado los valores correspondientes a las coordenadas de los puntos. Este mismo proceso lo realizaremos con el campo “Coord_Y”.

Una vez realizadas estas operaciones, terminada la edición y guardados los cambios, volvemos a visualizar la tabla de atributos asociada a la capa y observamos que ahora dispone de esos nuevos dos campos con el valor de las coordenadas.

Rellenado de campos por selección

Lo que vamos a realizar en este ejemplo es rellenar un nuevo campo con valores tipo Cadena que identifiquen una serie de registros previamente seleccionados.

Para realizar este ejemplo, cargaremos la capa “comunicaciones_andalucia.shp” y hacemos un Zoom a la capa.

En primer lugar exportaremos la capa de “comunicaciones_andalucia.shp” a un nuevo shape. Para ello la pondremos activa e iremos al menú Capa/Exportar a/SHP, y le pondremos como nombre “Comunicaciones .shp“ (tenemos que guardarla en /home/ubuntu).

Ponemos en Edición la nueva capa “Comunicaciones.shp” y abrimos su tabla asociada. Seleccionamos uno de sus campos y vamos al menú Tabla/ Modificar estructura de tabla, y añadimos un nuevo campo llamado “TIPO_VIA”, éste será el que vamos a rellenar con la definición de los códigos de carretera que aparecen en el campo “COD_ENT”.

Le damos a Terminar edición y salvamos cambios. Volvemos a abrir la tabla y vemos que se ha generado un nuevo campo, y que está vacío.

Comenzamos edición, de nuevo, abrimos la tabla asociada y, para realizar una determinada selección por atributos vamos a emplear la herramienta de filtro. A esta herramienta podemos acceder mediante el menú Tabla/ Filtro ó por su icono .

En primer lugar vamos a seleccionar todos los registros pertenecientes al campo COD_ENT, que contengan V1. Lo haremos según indica la siguiente figura, y cuando tenemos esa expresión le damos a Nuevo Conjunto y cerramos la ventana de filtro.

Para comprobar que la selección se ha realizado correctamente vamos a emplear la herramienta de “Mover arriba la selección” , de este modo, como el nombre indica, todos los registros seleccionados de la tabla se situarán en la parte superior de ésta.

Una vez seleccionados los registros deseados, y con la cabecera del campo “TIPO_VIA” activada, vamos a utilizar la Calculadora de Campos. En el espacio destinado a Expresión es donde debemos introducir la definición correspondiente. Importante: tener en cuenta que tanto al inicio como al final de la cadena de caracteres es imprescindible poner comillas dobles.

Las definiciones que utilizaremos son:

V1--> Red de Interés General del Estado.

V2--> Carretera Red básica estructurante.

V3--> Carretera Red básica articulante.

V4--> Carretera Red intercomarcal.

Tras darle a Aceptar, observamos como se rellenan los registros seleccionados.

Este mismo proceso lo realizaremos con todos los registros restantes (V2, V3 y V4).

Para una mejor visualización de los resultados, vamos a añadir al Toc una leyenda en la que diferenciaremos cada tipo de carretera por su nombre y color.

Haciendo click sobre la capa con el botón derecho del ratón entramos en Propiedades/ Simbología/ Valores únicos. Seleccionamos el campo “TIPO_VIA”, le damos a Añadir todos y a Aceptar.

Finalmente, el aspecto de la leyenda en el Toc quedará:

Ejercicio 6: Geoprocesamiento

Introducción

La extensión de geoprocesamiento de gvSIG permite aplicar una serie de procesos estándar sobre las capas de información vectorial cargadas en el árbol de capas de una vista de gvSIG (TOC), dando como resultado nuevas capas de información vectorial que aportarán una nueva información, adicional a las capas de partida.

En la primera versión de la extensión de geoprocesamiento se han implementado los siguientes geoprocesos:

Área de influencia (buffer).

Recortar (clip).

Dissolve (agrupar por adyacencia y criterios alfanuméricos).

Juntar (merge).

Intersección.

Unión.

Enlace espacial (Spatial Join).

Convex Hull (mínimo polígono convexo).

Diferencia.

El formato de la capa de salida será alguno de los formatos de escritura soportados por gvSIG (actualmente solo se puede guardar en formato shp).

Ejecución de los geoprocesos desde gvSIG

Podemos ejecutar los geoprocesos disponibles en gvSIG de dos formas: lanzando el asistente de geoprocesamiento actuando sobre el botón de la toolbar siguiente:

o desde el menú Vista / Gestor de geoprocesos.

Al pulsar el botón de "Asistente de geoprocesamiento" se nos muestra el siguiente diálogo:

Área de influencia (Buffer)

Este geoproceso actúa sobre una capa vectorial de puntos, líneas o polígonos generando una nueva capa de polígonos resultantes de aplicar un área de influencia sobre todos los elementos -o sobre una selección- de la capa de entrada.

En primer lugar debemos tener en cuenta que, para acceder al Gestor de Geoprocesos, es necesario haber cargado ya al menos una capa en el ToC., por lo que empezaremos por ahí.

Al abrir el geoproceso de Área de influencia, el asistente está estructurado en las siguientes partes:

Selección de los elementos cuya área de influencia se va a calcular. Consta de una lista desplegable, en la que el usuario podrá seleccionar una capa vectorial sobre la que se va a aplicar el cálculo. Opcionalmente, el usuario puede marcar el cuadro de selección "Usar solamente los elementos seleccionados", de forma que el proceso sólo calculará las áreas de influencia de los elementos actualmente seleccionados en la capa especificada.

Introducción de las características del área de influencia a calcular. El usuario podrá optar por introducir el radio del área de influencia (en el primer cuadro de entrada de texto) o por especificar un campo de la capa de entrada, del que se tomará el valor de radio de área de influencia a aplicar. Esta segunda opción permite aplicar diferentes radios de área de influencia para diferentes elementos vectoriales (mientras que la primera opción aplica el mismo radio a todos los elementos de la capa de entrada).

La opción "Disolver entidades" permite que, una vez generada el área de influencia de todos los elementos de la capa de entrada, en una segunda pasada se fusionen aquellos elementos cuya geometría se toque.

La opción "No usar borde redondeado" permite generar buffers con bordes perpendiculares (no suavizados), al estilo de la siguiente figura.

Selección del número de buffers concéntricos, y de la situación de éstos respecto de la geometría original. El geoproceso "Área de Influencia" de gvSIG permite génerar varias áreas de influencia, equidistantes de la geometría original (por ejemplo, si la distancia de buffer a aplicar es 200 m., y se elige generar dos anillos concéntricos, el segundo anillo estará a una distancia de buffer de entre 200 m. y 400 m. Actualmente, por razones de eficiencia, se ha limitado el número de anillos de buffer concéntricos a generar a tres.

En el caso de que la capa vectorial sobre la que estamos trabajando sea de polígonos, la opción "Crear Buffer..." aparecerá habilitada, permitiendo al usuario que los buffers se generen fuera del polígono original, dentro, o tanto fuera como dentro.

Introducción de las características de la capa resultado. Actualmente el resultado de la ejecución de un geoproceso solo puede ser guardado en ficheros shp. Por esta razón, se permite al usuario la opción de seleccionar un fichero shp ya existente, para sobreescribirlo, o bien especificar uno nuevo. Conforme se vayan soportando nuevos formatos para guardar el resultado de los geoprocesos, se irán proporcionando asistentes para indicar las características de estos soportes.

Creamos una vista nueva, a la que renombraremos como Andalucía2.

Cargamos las capas ferrocarrilAndal.shp y municipiosAndal.shp.

Abrimos el Gestor de geoprocesos (o desde Vista / Gestor de geoprocesos)

Seleccionamos la operación Área de influencia, y en la nueva página, introducimos ferrocarrilAndal.shp como capa de entrada.

Seleccionamos la opción Área de influencia definida por una distancia, e introducimos la distancia (por ejemplo 100 metros). Seleccionamos la opción Disolver entidades.

Definimos la ubicación y el nombre de la capa de salida (el fichero contendrá el resultado). Click en Aceptar.

Deberíamos ver una nueva capa añadida en el TOC, la cual contiene el área de influencia. Podemos utilizar un valor de transparencia en la leyenda para visualizar la afección sobre los municipios de Andalucía.

Intersección

Ahora veremos la zona de afección del ferrocarril que afecta a cada municipio de Andalucía, para lo que intersectaremos la capa anterior del área de influencia y la de los municipios.

Abrimos de nuevo el asistente de geoprocesamiento y seleccionamos la operación Intersección.

Seleccionamos los municipios (municipiosAndal.shp) como capa de entrada, el área de influencia realizada en el paso anterior como capa de recorte, y definimos una ruta y nombre conveniente para la capa de salida. Click en Aceptar. No necesitaremos el índice espacial para el resultado.

Deberíamos ver una nueva capa añadida en el TOC que contiene los municipios afectados por el área de afección del ferrocarril.

Si consultamos la tabla de atributos de la capa obtenida en este último paso, vemos como aparece el área de afección por cada municipio al que afecta el paso del ferrocarril.

Recortar (Clip)

Este geoproceso es de utilidad para extraer de una capa de cartografía vectorial un subconjunto de elementos, que recaigan dentro de una región determinada (definida por la unión de todos los elementos de una segunda capa vectorial, denominada "capa de recorte").

Supongamos que tenemos la cartografía completa de una serie cartográfica, por ejemplo el MTN25 (Mapa Topográfico Nacional español, a escala 1:25000), y que un ayuntamiento, para la redacción de su PGOU (Plan General de Ordenación Urbana), desea trabajar con las capas del MTN25 pero solo con los elementos contenidos dentro de su término municipal.

Para realizar este ejemplo vamos a abrir una vista nueva y a cargar las capas “hidro_andalucia.shp” y “municipiosAndal.shp”

Seleccionamos la capa de municipios “municipiosAndal.shp”, abrimos su tabla asociada y seleccionamos el municipio de Nombre Córdoba (quedará destacado en color amarillo tanto la fila de la tabla como su lugar en el mapa). Para ampliar su imagen pincharemos en el icono Zoom a lo seleccionado .

La pantalla quedará de esta forma:

Ejecutamos el Gestor de Geoprocesos mediante su icono o desde el menú Vista/ Gestor de geoprocesos, una vez seleccionado Recortar se muestra el siguiente diálogo:

Queremos extraer un subconjunto de la capa “hidro_andalucia.shp” para el municipio seleccionado (de amarillo), por lo que seleccionaremos la capa "hidro_andalucia.shp" como capa a recortar, la capa “municipiosAndal.shp” como capa de recorte, y pondremos que se utilice como polígono de recorte la unión de solamente los elementos seleccionados (que es el municipio de Córdoba). Por último, al igual que con el resto de geoprocesos de la extensión de geoprocesamiento de gvSIG, definiremos el tipo de almacenamiento donde será guardada la capa de resultado (de momento sólo podemos guardar en ficheros shp). Le pondremos recorte.shp al fichero de salida.

El geoproceso Recortar es un geoproceso definido: de antemano no sabemos cuantas geometrías recaerán dentro del polígono de recorte, pero sí que sabemos que tenemos que procesar todas las geometrías (o al menos las seleccionadas). Por eso se nos muestra una barra progresiva y un texto que nos informa del progreso del proceso. Podríamos cancelar el geoproceso en cualquier momento actuando sobre el botón "Cancelar", o seguir trabajando tranquilamente, pues el proceso se ejecuta en segundo plano.

Disolver (Dissolve)

Este geoproceso actúa sobre una sola capa de entrada, cuyo tipo de geometría ha de ser forzosamente de polígonos. El proceso analiza cada polígono de la capa de entrada, de tal forma que fusionará en un solo polígono aquellos polígonos que tomen idéntico valor para un campo especificado.

Además, permite introducir el criterio espacial en la decisión de fusionar varios polígonos. De esta forma, podemos seleccionar que para que dos polígonos sean fusionados, además de tomar idéntico valor en el atributo especificado deban ser adyacentes espacialmente.

Esto puede ser de utilidad en múltiples situaciones. Supongamos, por poner un ejemplo, que disponemos de una capa de polígonos que representa los municipios de una determinada comunidad autónoma (en este caso Andalucía), y necesitamos, para realizar un informe, disponer de una capa de polígonos con las provincias, pero en ese momento no tenemos esta información.

Para realizar este ejemplo abriremos una vista nueva y cargaremos la capa “municipiosAndal.shp”

Ejecutamos el Gestor de Geoprocesos mediante su icono o Menú/ Vista/ Gestor de geoprocesos, y entramos en Análisis/Agregación/Disolver. Se muestra el siguiente diálogo:

Al seleccionar “Abrir geoproceso”, se nos muestra el formulario en el que seleccionaremos como capa de entrada qué capa deseamos disolver (pudiendo trabajar solamente con una selección), que en nuestro caso es “municipiosAndal.shp”, seleccionaremos el atributo de la capa que se va a emplear como criterio para fusionar polígonos adyacentes, que será el atributo "PROVINCIA", señalaremos que los polígonos que se van a fusionar, además de tomar idéntico valor para el atributo de disolución sean adyacentes (criterio espacial), mediante la selección de “Sólo disolver adyacentes”.

El módulo de geoprocesamiento de gvSIG permite conservar un resumen de los atributos de los polígonos de la capa de entrada una vez fusionados. Para ello, se introduce el concepto de "Función resumen". Como cada polígono de la capa resultado del geoproceso disolver es el producto de unir varios polígonos de la capa de entrada, se puede aplicar una función resumen sobre los atributos numéricos de los polígonos fusionados.

Las funciones resumen soportadas son máximo, mínimo, media y sumatorio. Para los atributos numéricos de los que se haya seleccionado alguna función resumen, se incluirá un campo en la capa resultado para cada función resumen seleccionada. De este modo, en el caso del campo POB91, una vez fusionados los municipios en provincias, para cada provincia tendremos la población máxima, mínima, sumatorio y media de todos sus municipios.

Finalmente seleccionaremos la ruta y el nombre del fichero resultante (disolver.shp), pincharemos sobre Aceptar. El resultado final será el siguiente, en el cual hemos modificado las propiedades de las capas para una mejor visualización.

Nota: La capa resultado la dibujamos sin relleno, con línea de borde marrón y grosor cinco veces mayor de lo normal. La capa de entrada, de municipios, la dibujamos con una simbología de valores únicos a partir del campo utilizado para realizar el Dissolve (PROVINCIA). Como podemos ver, el perímetro de los polígonos de la capa resultado concuerda perfectamente con el cambio de color (valor del campo PROVINCIA) de la capa de entrada.

Convex hull (Polígono convexo envolvente)

Este geoproceso actúa operando con una sola capa, y genera como resultado del mismo una capa que contiene el polígono convexo envolvente de todas las geometrías de la capa de entrada, normalmente conocido por su término inglés Convex Hull.

El Convex Hull es un polígono que viene a resolver un problema geométrico: dado un conjunto de puntos en el espacio (representado por una colección de geometrías de cualquier tipo: puntos, líneas o polígonos) el convex hull es el polígono convexo que ocupa menor superficie que contiene a todos los puntos de este conjunto de entrada.

En este caso utilizaremos la capa “hidro_andalucia.shp”.

Ejecutamos el Gestor de Geoprocesos mediante su icono o en el menú Vista/ Gestor de geoprocesos, una vez seleccionado Convex Hull se muestra el siguiente diálogo:

Cuando abrimos el geoproceso "Convex Hull", se nos muestra el siguiente formulario:

Seleccionamos la capa “hidro_andalucia.shp”, y ponemos como capa de salida “convex.shp”. Dándole a Aceptar, el resultado tras aplicar el geoproceso quedará:

Nota: A la capa resultado le aplicamos una cierta variación en su transparencia para poder visualizar al mismo tiempo todas las capas activas. Este cambio se hace picando sobre la nueva capa “convex.shp” , en el Toc, con el botón derecho del ratón y seleccionando Propiedades/ Simbología/ Símbolo único/ Transparencia.

Enlace espacial (Spatial join)

Este geoproceso, al igual que un join entre tablas, permite transferir los atributos de una capa a otra en base a una característica común. A diferencia del join de las bases de datos relacionales, en este caso la característica común no es un que un campo de las dos tablas tome el mismo valor (la clave del join), sino que los elementos relacionados de las dos capas cumplan unos criterios espaciales.

El geoproceso Enlace Espacial implementado por la extensión de geoprocesamiento de gvSIG permite seguir dos tipos de criterios espaciales para establecer el enlace espacial:

Vecino más próximo (relación 1->1). Asigna a un elemento de la capa origen los atributos del elemento más próximo de la capa enlazada. En el caso de que el elemento más próximo intersecte (o esté contenido para el caso de polígonos) al elemento original, habiendo por tanto varias intersecciones, el algoritmo tomará el primer elemento analizado de las posibles intersecciones.

Contenido en (relación 1->M). Relaciona un elemento de la capa origen con varios elementos de la capa destino (en concreto, con aquellos que son intersectados). En este caso la capa origen no heredará los atributos de la capa relacionada, sino que la operativa será muy parecida a la del geoproceso Disolver. Para los M elementos relacionados con un elemento de la capa origen, se dará al usuario la posibilidad de escoger una o varias funciones resumen (media, mínimo, máximo, sumatorio) que se aplicarán sobre los atributos numéricos de la capa enlazada.

Añadimos la capa “urb_andalucia.shp” en la vista, y aplicaremos el proceso con las capas “municipiosAndal.shp” y “urb_andalucia.shp”.

Ejecutamos el Gestor de Geoprocesos mediante su icono o desde el menú Vista/ Gestor de geoprocesos, y una vez seleccionado Enlace Espacial se muestra el siguiente diálogo:

Cuando seleccionamos el geoproceso "Enlace Espacial", se nos muestra el siguiente formulario:

Este diálogo es prácticamente igual a los diálogos de los geoprocesos de solape (Unión, Diferencia, Intersección) con una excepción: se permite al usuario escoger si quiere realizar una relación 1-1 (mediante el criterio espacial de vecino más próximo) o realizar una relación 1-N (mediante el criterio espacial 'Intersecta' o 'Contenido en').

Seleccionamos como capa de entrada “urb_andalucia.shp”, y como capa de recorte “municipiosAndal.shp”. Dejaremos desmarcados el cuadro de selección “Usar solamente los elementos seleccionados” y marcaremos el de "Usar el más próximo".

En el caso de que, una vez seleccionada la capa de origen y la capa a relacionar, se lance el geoproceso sin marcar el cuadro de selección "Usar el más próximo", se mostrará un cuadro de diálogo en el que el usuario podrá seleccionar, para cada atributo numérico de la capa a relacionar las funciones resumen que desea aplicar:

Las funciones resumen son las mismas que para el geoproceso "Disolver".

De este modo, los atributos transferidos a la capa de origen serán el resultado de las funciones resumen seleccionadas para cada campo numérico. Si el geoproceso se lanza marcando la opción "Usar el más próximo", no se muestra este cuadro de diálogo y se ejecuta directamente.

Pinchando a Aceptar se ejecutará el proceso.

Diferencia

Vamos a aplicar este geoproceso entre dos capas de polígonos: el del núcleos urbanos de Andalucía y el de municipios de la misma Comunidad.

Añadiremos las capas de “municipiosAndal.shp”, y “urb_andalucia.shp” a una vista nueva. Abrimos el gestor de geoprocesos y en el submenú de Análisis/Solape seleccionamos Diferencia.

Para que el geoproceso no tarde demasiado, haremos una selección de polígonos de urb_andalucia.shp. Para ello haremos un Filtro seleccionando los núcleos urbanos de más de 3.000.000 m2, mediante la expresión “AREA > 3000000”. Después hacemos un Zoom ventana a una zona que contenga polígonos seleccionados para ver bien el resultado de la selección.

Abrimos el geoproceso Diferencia, en capa de entrada ponemos municipiosAndal.shp y en la capa de recorte ponemos urb_andalucia.shp. Seleccionamos de la capa de recorte la opción “Usar solamente los elementos seleccionados” y seleccionamos también la ruta de salida.

Le damos a Aceptar. Al finalizar el geoproceso tendremos una capa como la siguiente y cuya tabla de atributos coincidirá con la original de la capa de entrada:

Ejercicio 7: Georreferenciación raster

En gvSIG se puede georreferenciar una imagen raster, o salvar una imagen a raster georreferenciado.

Cargar y georreferenciar una imagen

Lo primero que haremos, si estamos trabajando desde Live-CD es abrir un explorador de archivos y copiar la imagen fotografia_puerto_Valencia_actual.jpg del directorio /cdrom/data/cartografia/Valencia al directorio /home/ubuntu, ya que la georreferenciación necesita un directorio escribible para ir guardando ficheros durante el cálculo.

Creamos una nueva vista y la llamamos Georreferenciación. Cargamos la ortofoto Puerto_2002.ecw.

Como vamos a georreferenciar una subimagen muy similar a la ortofoto, podemos cambiar la asignación de bandas de la imagen de referencia, y de esta manera podemos distinguir ambas claramente. Para hacer esto, iremos a Propiedades del raster/Bandas y cambiaremos el orden de las bandas RGB.

Ahora necesitamos cargar la imagen, la cual inicialmente aparecerá centrada en la vista. Sabemos que esta imagen está localizada en el Sur. Por esto, primero haremos un zoom al Sur de la orto y luego iremos a Añadir Capa. En el diálogo de Añadir Capa, abrimos la pestaña Georreferenciar y cargamos la copia de la imagen creada en el punto anterior.

Usamos la herramienta Mover imagen a georreferenciar sobre la imagen recién añadida para colocarla cerca del área donde debe ser colocada.

En el diálogo de Georreferenciar, pinchamos sobre el botón con una flecha hacia abajo, para extender la ventana. Después click en el botón Nuevo punto de control y a continuación pinchamos sobre una marca claramente identificable en la imagen a georreferenciar.

Veremos que la imagen desaparecerá para permitir ver la imagen de referencia más claramente. Localizamos el mismo punto de control en la orto y pinchamos sobre ella. Cuando hace esto, puntos de control (GCP) homólogos serán marcado sobre la vista (en diferente color). Para ajustar mejor la ubicación de los puntos de control, la ventana de Georreferenciación posee dos subventanas de detalle.

Usamos el botón de + y – en las vistas de detalle para afinar la posición de los GCP, ya que con el ratón podremos mover los GCP inicialmente marcados.

Click de nuevo sobre el botón Nuevo y añadimos más puntos de control homólogos (se requiere un mínimo de tres para georreferenciar).

En todo momento, podemos ir comprobando los errores (RMS) en conjunto o individualmente para cada punto.

Para obtener el resultado final, pulsamos sobre el botón de Aceptar. Si el resultado no es aceptable, podemos añadir nuevos puntos, o refinar su posición. Una vez que estamos satisfechos, pinchamos sobre el botón Aceptar y terminamos el proceso.

Para comprobar que la imagen está georreferenciada, eliminamos la capa fotografia_puerto_Valencia_actual.jpg y la añadimos otra vez como una imagen común (Vista/Añadir capa). Ahora debería aparecer automáticamente en la posición correcta.

Además, señalar la posibilidad de exportar la lista de puntos de control a fichero de texto, así como importar listas de puntos de control.

Salvar a raster georreferenciado

Para salvar una zona de una vista a raster con georreferenciación debemos acceder a través de Salvar a raster georreferenciado .

Después de pinchar sobre el icono anterior debemos seleccionar sobre la vista el área a guardar. Haremos un recuadro pequeño para que no tarde en procesar.

Una vez hecho el recuadro se abre un cuadro de diálogo donde debemos seleccionar las características de la imagen. Podemos darle una escala concreta, el número de metros por píxel o el tamaño final de la imagen (en ancho por alto). Podremos seleccionar también la resolución. Seleccionaremos una escala de 5000, dejaremos una resolución de 75, y guardaremos el fichero en /home/ubuntu, con el nombre Recorte, y como formato tiff.

Después de crear la imagen, la abriremos desde Añadir capa y pondremos la capa que teníamos de fondo como no visible para ver la nueva imagen.

Ejercicio 8: Constructor de mapa

La creación de mapas que muestra información precisa y significativa es una de las funcionalidades claves de cualquier SIG profesional. Nosotros veremos de un vistazo como hacer esto con gvSIG.

Crear un Mapa en el Proyecto

Desde la ventana de Gestor de proyectos, seleccionamos tipo de documento Mapa y hacemos click en Nuevo. Lo renombramos como Mapa de Andalucía.

Doble click sobre el nombre del mapa o usamos el botón de Abrir. Comprobamos que un nuevo menú de Mapa y muchos nuevos instrumentos están ahora disponibles.

Cargar una plantilla de Mapa

Aparte de crear mapas nuevos, podemos cargarnos una plantilla que ya tengamos creada. Estos ficheros tienen extensión .gvt. en gvSIG. Para ello, iremos a Archivo/Abrir plantilla, y del directorio /cdrom/data/Plantillas abriremos el fichero Plantilla4.gvt.

Añadir vistas al Mapa

Ahora sobre la plantilla podemos empezar a insertar elementos.

Click en Mapa/Insertar/Vista y dibujamos un rectángulo sobre el recuadro grande del mapa. Aparecerá una ventana de diálogo para seleccionar una de las vistas del proyecto. Seleccionamos Andalucía1. Después Aceptar, y la vista seleccionada aparecerá en el rectángulo del mapa. Podemos repetir el mismo proceso con otras vistas.

Podemos navegar por el mapa usando las herramientas de Navegación del mapa:

También podemos cambiar la extensión de la vista desde dentro de mapa, usando las herramientas de Zoom sobre la Vista (asegúrese que la Vista está seleccionada):

Además, podemos Rotar una vista en el mapa. Seleccionamos y accedemos a las Propiedades desde el menú contextual (botón derecho del ratón). En la esquina inferior derecha podemos especificar y previsualizar el ángulo de rotación.

Añadir leyendas al mapa

Generalmente se añade una leyenda para mostrar que símbolos son aplicados a las capas en su vista. Para hacer esto, usamos la herramienta de Añadir Leyenda y dibujamos un rectángulo sobre el recuadro correspondiente. La ventana siguiente aparecerá para seleccionar la vista y las capas.

Una vez es dibujada la leyenda, podemos afinar su diseño trabajando con sus elementos individualmente. Para hacer esto, seleccionamos la leyenda y usamos Mapa / Gráficos / Simplificar Leyenda.

Otros elementos del mapa

Un elemento común del mapa es la Escala, asociada a una vista. Podemos añadir la escala al mapa haciendo Click sobre la herramienta de Escala	y dibujando un rectángulo sobre el mapa. En el diálogo siguiente nos dejará escoger algunas propiedades para la visualización de escala:

Otro elemento es Insertar Norte, que puede ser añadido de la misma forma pero seleccionando la herramienta de Insertar Norte . Si rotamos la vista, veremos como rota también su norte asociado.

Además podemos añadir al mapa elementos gráficos como texto, rectángulos, líneas, etc. usando las correspondientes herramientas. También se pueden insertar ficheros de imagen.

Los elementos del mapa pueden ser agrupados o movidos y cambiados de orden de visualización, usando las correspondientes herramientas.

Las propiedades de algunos elementos del mapa, como el color de un elemento gráfico, pueden ser modificadas seleccionando y usando la opción de Propiedades, desde el menú contextual.

La figura siguiente muestra un ejemplo de combinación de los elementos de mapa más comunes.

Publicar e imprimir

El mapa puede ser exportado a PDF y PostScript usando las opciones bajo el menú Archivo.

Podemos también imprimir desde el menú Mapa/Imprimir.

Ejercicio 9: Capa de anotaciones

gvSIG tiene la posibilidad de generar capas con textos a partir de los textos definidos en un campo de una tabla. Estas capas son las que llamamos capas de anotaciones.

Crearemos una nueva vista llamada ANOTACION en el CRS 31981 donde añadiremos las siguientes capas: poligono_Mtdeo.dxf, barrios.gml y algunas_avenidas.shp. Para la selección de cada tipo de dato hará falta seleccionar el driver correspondiente de la ventana Abrir.

Una vez tenemos estas 3 capas cargadas, hacemos un Zoom a las zonas de las Avenidas de la cartografía. Es posible que haga falta cambiar el color y el grosor de la capa lineal de avenidas para su mejor identificación.

Al abrir la tabla de atributos de la capa algunas_avenidas.shp se pueden ver los atributos definidos de cada entidad: un identificador único, un campo de nombres, la altura del texto, la rotación del mismo y el tipo de fuente.

Es posible etiquetar la capa que hemos cargado haciendo botón derecho sobre el nombre de la capa en el TOC, y luego Propiedades/Simbología/Etiquetado. Habilitar el etiquetado, luego seleccionar Nombre como campo por el cual etiquetar, el campo Rotacion para el ángulo del texto y una altura fija de 7 pixeles. El resultado es meramente visual sobre la capa que tiene definidas las avenidas.

Para poder editar la posición, tamaño, rotación, y demás propiedades del texto (y no de las entidades geométricas asociadas) se debe generar una capa de anotaciones en disco duro. Para ello, teniendo seleccionada la capa algunas_avenidas.shp hacer desde el menú Capa/Exportar a.../Anotacion .

Los parámetros a seleccionar son los siguientes:

Control de duplicados ----> Ninguno

Campo a etiquetar ----> Nombre

En caso de seleccionar como control la opción Centrar se obtendrá un único registro de Nombre y centrado respecto de la posición de las etiquetas duplicadas.

La siguiente pantalla muestra los parámetros de los siguientes campos a seleccionar:

Por último guardamos la nueva capa en el Desktop del LiveDVD para poder hacer modificaciones sobre ella desde gvSIG. Aceptamos el cuadro de diálogo que nos pregunta si queremos añadir la capa de anotaciones.

Desde las Propiedades de algunas_avenidas.shp. , deshabilitamos el etiquetado de esta capa. Algunas de las anotaciones presentan posiciones erróneas, tamaños inadecuados, duplicidades y rotaciones erróneas también. Para editar las propiedades de estos textos y su posición asociada hace falta poner la capa en edición. Hacemos botón derecho sobre anotaciones_avenidas.shp.y seleccionamos Comenzar edición.

Hacemos un Zoom al entorno del texto Av. Italia para poder ver los 2 textos no completamente superpuestos. Aquí tenemos 2 etiquetas que debemos separar, cambiar el ángulo de rotación y incluso hacer más grande por la importancia relativa de esta vía.

Para cambiar la posición de la etiqueta utilizaremos la herramienta Desplazamiento. Luego de pinchar sobre el icono, dibujamos un rectángulo que abarcará uno de los 2 textos. Seleccionamos un punto de desplazamiento cercano al texto, y un segundo punto de desplazamiento que será la posición final del texto. Podemos volver a repetir la operación para separa aún más ambos textos.

Para poder modificar los atributos de cada texto es necesario utilizar la herramienta Modificar Anotacion que se activa en la barra de meús de edición o mediante la opción de menú Capa/Modificar anotación. Pinchamos sobre el icono y nos saldrá la ventana Modificar anotación en donde modificaremos los valores de altura de texto y tamaño como puede verse en la siguiente imágen. Aceptar los cambios para verlos en la vista gráfica.

Al acabar con todas las modificaciones sobre la capa de anotaciones, se debe terminar la edición de la capa desde botón derecho sobre el nombre de la capa Terminar edición. Para más comprobación, siempre es posible abrir la tabla de atributos asociada a la capa anotaciones_avenidas.shp.

4. gvSIG como cliente IDE

gvSIG es cliente de IDE (Infraestructuras de Datos Espaciales) y gracias a ello podemos trabajar de forma remota con información geográfica. La información remota será devuelta a través de servicios web OGC (Open Geospatial Consortium) como WMS, WCS, WFS. gvSIG también puede buscar información geográfica mediante servicios de catálogo o realizar localizaciones de topónimos mediante servicios de nomenclátor. Por último gvSIG puede también acceder a otros servicios web que proveen información espacial como pueden ser ArcIMS y ECWP.

Un tercera forma de obtener información remota es a través de bases de datos espaciales remotas como pueden ser PostGIS o MySQL por medio de JDBC (Java Database Connectivity).

De este modo gvSIG actúa como punto de encuentro en donde acceder y usar diferentes tipos de servicios geográficos (incluidos en el OGC o no).

Ejercicio 10: Visualización y consulta de I.G. vectorial y raster

Servidor WMS (Web Map Service)

En una vista, vamos a superponer a un fichero en local varios recursos de WMS.

En gvSIG podemos copiar capas de una vista a otra, y vistas y tablas dentro del mismo proyecto y de un proyecto a otro. Ahora vamos a realizar una copia de una vista que ya teníamos, y a la nueva vista le añadiremos los servicios WMS.

Para ello iremos al Gestor de proyectos a la parte de Vistas. Haremos una copia de la VISTA1. Seleccionándola, le daremos al botón derecho del ratón sobre ella y en el menú contextual que nos aparece pinchamos a Copiar. Después, sobre el cuadro del Gestor de proyectos donde están todas las vistas le damos al botón derecho del ratón y después a Pegar. Cambiamos el nombre a la nueva vista a WMS y la abrimos.

Dejamos activa sólo la capa de Centro_2002.jp2.

Después, para añadir un servicio WMS, utilizaremos el icono de Añadir capa, y en la ventana que se abre seleccionaremos la solapa WMS. Escribimos esta URL para poder conectarnos al servicio remoto: http://localhost/mapserver/wms y pulsamos sobre el botón Conectar. Luego de unos segundos aparecerá una descripción sobre dicho servicio.

Pinchando el botón Siguiente llegaremos a la solapa Capas, donde seleccionaremos la capa Constructions in Valencia y pinchamos sobre Añadir. En la solapa de Estilos le damos a Siguiente, y en la de Formatos seleccionamos png y como sistema de referencia el 23030. Le damos al botón Aceptar para poder añadir la capa al TOC de la vista.

Al visualizar la capa WMS en nuestra vista podemos ponerla como activa y a través del menú contextual cambiarle la opacidad (Propiedades del raster/ Transparencia) para poder ver la ortofoto bajo las parcelas.

También podemos usar la herramienta de información para poder ver la información de los elementos de la capa WMS, siempre que lo permita el administrador del servidor. En nuestro caso se podrá consultar, por ejemplo, las alturas de cada parcela, las cuales se encuentran en el campo Constru.

Exportar a Web Map Context

Si tenemos una capa WMS cargada en una vista, con un encuadre concreto, podemos guardar dicha información, y reproducirla en otra vista, otro proyecto u otro programa que permita este formato. Esta información se guarda en un fichero Web Map Context, con formato .cml.

Haremos uso de la herramienta Centrar la vista sobre un punto con las coordenadas UTM X= 726300 e Y= 4372900, y además (y en este orden) pondremos la escala (en la barra de estado) a 1: 1000.

Iremos a Vista/Exportar/Web Map Context, y pondremos Valencia como título y el valor 1 como ID. Pinchamos a Examinar para ponerle nombre al fichero. Le ponemos de nombre Valencia, y como ruta del fichero vamos a /home/ubuntu. Le damos a Abrir. En Extensión seleccionamos Usar extensión de la vista, y le damos a Aceptar. Habremos guardado el Web Map Context.

Más sobre servidores WMS (Web Map Service)

Otra fuente de información puede ser la catastral. para acceder a ella debemos de conectarnos al servidor: http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx (esta URL está por defecto en el listado de servidores remotos). Al conectarnos podremos seleccionar la única capa disponible llamada Catastro. Seleccionar el formato png con el sistema 23030.

La herramienta de información nos proporciona la referencia catastral. Para ello debemos tener la precaución de activar la capa de catastro para hacer la consulta.

Algunos servicios WMS nos permiten seleccionar cartografía de una misma zona pero en función de una dimensión, por ejemplo el tiempo, la elevación, etc. Para ver un ejemplo volveremos a conectarnos al servicio WMS anterior: http://localhost/mapserver/wms. Pulsamos sobre el botón Conectar, después sobre el de Siguiente y llegaremos a la solapa Capas, donde seleccionamos la capa Valencia Ortophoto, years 1980, 1992 and 2002 y pinchamos sobre Añadir. Al añadir esta capa vemos cómo se habilita la pestaña Dimensiones. Esto es porque esta capa nos permite la visualización de la misma zona en épocas distintas, a través de la dimensión TIME. En esta pestaña, seleccionamos el texto TIME, y con las flechas del control situado a la derecha del cuadro buscamos la imagen que queremos insertar, seleccionándola con el botón Añadir, y después a Establecer. En este caso insertaremos la imagen de 1980. En la solapa de Formatos seleccionamos jpg y como sistema de referencia 23030 y le damos a Aceptar.

Del mismo modo podríamos añadir la imagen de la misma zona pero del año 2002, siguiendo los mismos pasos que para la imagen anterior. Tanto a las imágenes en local como a las que hemos cargado vía WMS podríamos darle transparencia para poder ver la diferencia entre épocas distintas. Esto lo haríamos poniendo la capa que tengamos en la parte superior como activa y cambiándole la opacidad a través del menú contextual (Propiedades del ráster/ Transparencia).

Importar un Web Map Context

Vamos a recuperar el fichero Web Map Context que hemos guardado antes en otra vista. Para ello volveremos a la vista Edición que habíamos creado anteriormente a través del menú Ventana/Edición.

Accedemos a Vista/Importar/Web Map Context, buscamos el fichero Valencia.cml en /home/ubuntu y le damos a Abrir. Ponemos la capa activa y hacemos Zoom a la capa. Vemos como se nos ha cargado la información anterior.

Ejercicio 11: Acceso avanzado a I.G. vectorial

Servidor WFS (Web Feature Service)

La especificación WFS (Web Feature Service) es una interfaz que nos permite trabajar con elementos geográficos en formato vectorial a través de la web. Es altamente interoperativo ya que utiliza el formato GML basado en XML para la definición de la geometría y el intercambio de la información.

Crearemos una vista nueva, y en Añadir capa seleccionaremos la solapa de WFS y la URL: http://localhost:8180/geoserver/wfs . Haremos uso de una de las capas disponibles, como por ejemplo la de Railway lines of Andalucia. Este servicio nos proporciona una capa vectorial de geometría de líneas. La seleccionamos, y en la solapa de Atributos seleccionamos todos los campos de la capa para que se añadan a la tabla de atributos asociada a la información vectorial. En la solapa de Opciones dejamos el cuadro de Máx. Features con el valor 1000 (es el máximo que permite cargar gvSIG por la cantidad de información que supone). En la solapa de Filtro podríamos decir que cargase los elementos que estén incluidos en una consulta. En nuestro caso no realizaremos ningún filtro. Finalmente pinchamos a Aceptar.

Igual que cualquier capa vectorial que tengamos en local podemos cambiar la leyenda de una capa WFS. Para ello, entramos en Propiedades de la capa, y en la pestaña Simbología vamos a Valores Únicos. Hacemos la leyenda por el campo cod_ent.

La capa WFS que acabamos de añadir actúa, dentro de la aplicación, como una capa cualquiera de información geográfica. De hecho se pueden exportar elementos de esta capa en diferentes formatos (SHP, DXF, PostGIS o GML). Es posible editar dicha capa remota o aplicarle algún tipo de geoprocesamiento y salvar los cambios en un ficheros de datos en local.

Notar también que se pueden hacer cambios en las propiedades de las capas (en menú contextual, Propiedades WFS) remotas WMS, WCS y WFS sin necesidad de añadir otra capa remota. Por ejemplo, para cambiar los parámetros de elementos máximos a descargar debemos acceder a la pestaña de Opciones de la ventana Ajustar capa WFS.

Acceso a BBDD espaciales (PostGIS)

Otra forma de acceder a información geográfica vectorial es mediante el acceso a BBDD espaciales (PostGIS). Para realizar esta conexión, seguiremos estos pasos:

Sobre la vista anterior, accedemos a Vista / Añadir capa / GeoBD, y pinchamos sobre el botón de Añadir conexión .

En la ventana que se abre introducimos los siguientes parámetros:

Driver:	PostGIS JDBC Driver

Url del servidor:	localhost

Puerto:	5432

Nombre de BD:	postgres

Usuario:	postgres

Contraseña:	postgres

Al pulsar el botón de Aceptar se nos mostrarán las tablas o capas disponibles en el catálogo seleccionado. También podremos seleccionar sólo una porción definida por un área. En nuestro caso, seleccionamos public.poblacion. En cuadro de Columnas de la tabla se nos muestran los campos disponibles para la tabla seleccionada. Podremos seleccionar uno, varios o todo el conjunto de campos. Seleccionamos todos los campos. En el cuadro de Campo con ID seleccionaremos el campo que contiene el campo único, en este caso gid. En el cuadro de Campo geométrico debemos seleccionar el campo que contiene las geometrías, que en nuestro caso es the_geom.

También podríamos seleccionar que nos muestre los elementos de un área concreta. Nosotros dejaremos que nos muestre todos los elementos. Al final pulsaremos el botón Aceptar y aparecerá a continuación la capa cargada en la vista, con las poblaciones de Andalucía.

Además podremos acceder a la tabla de atributos asociada a la capa.

Ejercicio 12: Acceso avanzado a I.G. raster

Servicio WCS (Web Coverage Service)

Las especificaciones WCS (Web Coverage Services) permiten acceder a coberturas geoespaciales o a conjuntos de datos raster que representan valores o propiedades (valores de las celdas) con una localización geográfica determinada. Al añadir una capa WCS se podrá trabajar con ella como con cualquier otra capa añadida a gvSIG, incluyendo las Propiedades del ráster que hemos visto en otros ejemplos.

Para este ejemplo abriremos otra vista y pincharemos sobre Añadir capa. Esta vez seleccionaremos la solapa de WCS y escribiremos esta URL: http://localhost/mapserver/wcs. Seleccionamos una de las imágenes disponibles, por ejemplo la de 90m DTM of South West section of the Iberian Peninsula. En la pestaña de Formato seleccionaremos el formato GEOTIFF y el sistema de referencia disponible. La última solapa es de selección de parámetros, como por ejemplo las bandas de la imagen. En este caso seleccionaremos la única banda que tiene la imagen. Finalmente pinchamos sobre Aceptar y aparecerá la imagen sobre la vista.

Ejercicio 13: Búsqueda de I.G. por catálogo

El servicio de catálogo permite buscar información geográfica por Internet. gvSIG ofrece una interfaz cómoda que permite encontrar geodatos y cargarlos en la vista siempre y cuando la naturaleza de los mismos lo permita.

Para ver el funcionamiento de esta herramienta, vamos a realizar un ejemplo práctico:

Abrimos una vista nueva y la renombramos con el nombre Poblaciones de Andalucía.

Accedemos al servicio de Catálogo y nos conectamos al servidor http://localhost/geonetwork/srv/csw según el protocolo CSW.

En la búsqueda de geodatos, escribimos la palabra Andalucia (se debe escribir la palabra sin acento). Click en el botón Buscar.

A continuación, nos aparece una ventana con el resultado de la búsqueda. Vamos al geodato “Populated places of Andalucia”. Si pinchamos sobre el botón de Descripción accedemos a los metadatos de la cartografía. Pinchando sobre Añadir capa vemos los posibles servicios en los que está disponible el recurso encontrado. De las opciones mostradas seleccionaremos Mapa, cargándose las Poblaciones de Andalucía en WMS.

Ejercicio 14: Localización por topónimo

Un nomenclátor es un conjunto de datos en el que se establece una relación entre un topónimo y las coordenadas geográficas donde se encuentra. gvSIG dispone de un cliente de nomenclátor que permite hacer una búsqueda por topónimos y centrar la vista en el punto deseado. Para ver el funcionamiento de esta herramienta, vamos a realizar un ejemplo práctico:

Sobre la vista anterior, utilizamos la herramienta de Nomenclátor y nos conectamos al servidor (http://localhost:8180/deegree/wfsg), según el protocolo WFS-G.

En la búsqueda, introducimos la palabra Sevilla. Click en Buscar.

Nos aparece una ventana con todos los resultados de la búsqueda. Seleccionamos el primer topónimo de la lista. Click en Localizar.

Observamos como en la vista ha hecho un zoom sobre un municipio.

Comprobamos que realmente se trata del elemento geográfico buscado. Para ello pondremos activa la capa WMS, y seleccionamos la herramienta de información . Pinchamos sobre el municipio encontrado y observamos como el campo “municipio” coincide con nuestra búsqueda.

Ejercicio 15: Otros servicios

Servicio ECWP

Sobre una vista nueva, que llamaremos Extremadura, accedemos a la ventana de Añadir capa, y en ella pinchamos sobre el botón Añadir. Seleccionaremos el driver de imagen: gvSIG image driver y se introducirá la siguiente dirección: ecwp://195.235.91.52/ortofotos/063001.ECW del servidor del SIGPAC y que corresponde con un mosaico de ortofotos de la Provincia de Badajoz.

Haremos lo mismo con la provincia de Cáceres: ecwp://195.235.91.52/ortofotos/103001.ECW.

Al añadir la segunda imagen se puede ver que el mosaico de ortofotos tiene un borde de color claro (que no es completamente blanco) que habrá que eliminar si se quiere continuidad entre las dos imágenes de las dos provincias.

Para ello procedemos a usar la herramienta Transparencia por pixel que accedemos a través del menú contextual (botón derecho del ratón) y Propiedades del ráster de la capa ecw añadida con el protocolo ecwp.

El rango de valores RGB a aplicar la transparencia es: 230:255, para cada una de las bandas

Después de aplicar la transparencia se puede ver como el solape de las dos imágenes ha desaparecido.

Servicio ArcIMS

ArcIMS es un servicio remoto desarrollado por ESRI con un espectro de usuarios muy extendido, que provee mapas GIS y metadata publicados en Internet. gvSIG a partir de su versión 1.0 incluye la funcionalidad de cliente ArcIMS incorporando tanto servicios de imágenes (ImageServer) como vectoriales (FeatureServer).

Sobre una vista nueva, a la que le cambiaremos su sistema de referencia a EPSG 4326 (Coordenadas geodésicas en WGS84), abriremos una capa nueva seleccionando el servicio ArcIMS. Nos conectaremos al servidor http://gis.cbs.gov.il y con ello nos aparecerá un listado de servicios disponibles. Los servicios se clasifican en raster (ImageServer, que es similar al servicio WMS) o vectorial (FeatureServer, que es similar a WFS).

Seleccionaremos el servicio eng y pincharemos en siguiente para acceder a las capas disponibles de este servicio.

Seleccionamos la capa borders y le damos a Añadir, y seleccionamos el formato de la imagen que deseamos (JPG, GIF, PNG 8 bits o PNG 24 bits). Una vez visualizadas podremos usar la herramienta de Información sobre esta capa, asignarle transparencia desde las Propiedades del ráster, etc.

5. Bibliografía

- Carmen Muñoz-Cruzado García (Grupo Mercator, Dep. Ing. Topográfica y Cartográfica, UPM, Madrid) “Curso: Puesta en marcha y explotación de geoservicios del OpenGeospatial Consortium: Curso teórico-práctico con tecnologías Open Source”

6. Anexos

Anexo 1: Caso práctico sobre gestión de sistemas de referencia (JCRS)

Carga de capas

Vamos a ver un ejercicio en el que teniendo datos en dos sistemas de referencia distintos vamos a crear una capa que sea unión de las dos anteriores pero en el mismo sistema de referencia. Para ello, tenemos una capa con las manzanas de una parte de la ciudad de Valencia (manzanas_valencia.shp) que está en UTM 30 (EPSG: 23030), y recibimos los datos de un levantamiento de unas manzanas de la zona realizado con GPS. Estos datos están en una tabla dbf (levantamiento_gps.dbf), que contiene las coordenadas de los puntos, así como un campo que especifica los puntos que pertenecen a un mismo edificio.

Primero creamos una Vista nueva y la abrimos. Cambiaremos la Vista al sistema de referencia EPSG 4326 (Coordenadas geodésicas con Datum WGS84) a través del menú Vista/Propiedades. Entrando en Proyección actual, seleccionamos el “Tipo” EPSG, el “Criterio de búsqueda” debe ser Por código, y en el cuadro de texto escribimos 4326.

Desde el Gestor de proyectos, en “Tablas” pincharemos sobre “Nuevo” y añadiremos una nueva tabla. Seleccionamos el driver dbf y abrimos la tabla levantamiento_gps.dbf.

La tabla que hemos añadido contiene dos campos con la latitud y longitud de los puntos del levantamiento. En la Vista que hemos creado añadiremos estos puntos. Para ello volvemos a la Vista y vamos al menú Vista/Añadir capa de eventos (o también con el botón de la barra de herramientas).

Seleccionamos como tabla “levantamiento_gps.dbf”, como coordenadas X el campo x y como coordenadas Y el campo y.

Una vez nos aparece la capa en la Vista la etiquetaremos a partir del campo “Edificio”. Lo haremos poniendo activa la capa, y con el botón derecho del ratón sobre ella seleccionando “Propiedades”. Vamos a la pestaña “Simbología” y en ella al apartado “Etiquetados”. Seleccionamos el campo “Edificio” y le damos una altura en pixels de 10 unidades. Le damos a Aceptar.

Digitalización de elementos

Ahora crearemos una capa de polígonos en la que digitalizaremos los distintos edificios. Para ello vamos a Vista/Nueva capa/Nuevo SHP, le ponemos “Edificios” como nombre de la capa, seleccionamos el tipo “Polígono” y pinchamos sobre “Siguiente”. En la siguiente ventana, con “Añadir campo” añadiremos un campo en el que distinguiremos los edificios. Le ponemos de nombre “Edificio”, le damos a Intro y le ponemos de tipo “Integer”. Le damos a Siguiente y en la siguiente ventana seleccionaremos la ruta y el nombre del fichero, que será edificios.shp. Le damos a Fin.

Vemos que la capa edificios.shp se ha añadido en el TOC en color rojo, lo que indica que está en edición. Ponemos como activa solamente la nueva capa y con el botón derecho del ratón sobre ella seleccionamos “Propiedades de edición”. En la ventana que se abre le ponemos el check box a la capa levantamiento_gps.dbf, para así tener referencia a los objetos de esta capa, de forma que digitalicemos sobre los puntos de la misma. Le damos a Aceptar.

Ya sobre la vista seleccionamos la herramienta polilínea para empezar a digitalizar.

Comenzamos a digitalizar el Edificio 1, para lo que digitalizaremos en el orden 1a, 1b, 1c... Cuando lleguemos al último punto del Edificio 1, le daremos al botón derecho del ratón y seleccionaremos “Cerrar polilínea”.

Para asignarle un valor al elemento digitalizado abrimos la tabla de atributos con el botón , le asignamos el valor “1” al registro de la base de datos y le damos a Intro.

Realizamos los dos pasos anteriores para cada uno de los 6 edificios, digitalizando primero y rellenando la base de datos después (con los valores correspondientes a cada edificio: 2, 3...).

Después de digitalizar todos los edificios, con el botón derecho del ratón sobre la capa le damos a “Terminar edición” y salvamos los cambios, con lo que tendremos el shp de polígonos que queríamos.

Ahora crearemos una nueva vista desde el Gestor de proyectos. Después de abrirla, cambiaremos su sistema de referencia a EPSG23030 (UTM en huso 30 con Datum ED50) desde el menú Vista/Propiedades.

Sobre la nueva Vista, desde el menú Vista/Añadir capa pincharemos sobre Añadir y buscaremos la capa manzanas_valencia.shp en la ruta que corresponda. Desde la ventana de Añadir capa, en la parte inferior, donde indica la Proyección actual tenemos que indicarle que la capa que vamos a añadir está en EPSG23030 (UTM en huso 30 con Datum ED50). Posiblemente esté por defecto. Si no lo está, entramos en el menú de Proyección actual, y en la ventana que se abre seleccionamos el “Tipo” EPSG, el “Criterio de búsqueda” debe ser Por código, y en el cuadro de texto escribimos 23030. En el cuadro de la parte inferior dejamos la opción Sin transformación, y le damos a Finalizar. Finalmente, en la ventana de Añadir capa pinchamos sobre Aceptar y nos aparecerá la capa de manzanas de Valencia sobre la Vista.

Reproyección de capas

Ahora insertaremos la capa que hemos creado anteriormente. Para ello volveremos a entrar en el menú Vista/Añadir capa, pinchamos sobre Añadir y buscamos la capa edificios.shp en la ruta donde lo hemos guardado. Ahora tendremos que indicarle que la Proyección actual es EPSG4326 (Coordenadas geodésicas en WGS84), que es el sistema de referencia en el que está dicha capa. Para cambiarle el sistema de referencia entramos en el menú de Proyección actual, y en la ventana que se abre seleccionamos el “Tipo” EPSG, el “Criterio de búsqueda” debe ser Por código, y en el cuadro de texto escribimos 4326. En el cuadro de la parte inferior seleccionamos la opción Transformación EPSG, le damos a Siguiente, seleccionamos el código de transformación 1633 (Spain – Mainland except northwest).

Finalmente, dándole a Finalizar, y en la ventana de Añadir capa a Aceptar veremos la capa de las manzanas que teníamos en coordenadas geodésicas en el mismo sistema de referencia que el resto de manzanas de Valencia.

Geoprocesamiento: Juntar

Aunque tengamos las dos capas en el mismo sistema de referencia, hay una de ellas que está reproyectada, pero cada vez que la insertamos en una vista en UTM deberemos seleccionarle su sistema de referencia. Nuestro objetivo es tener todas las manzanas (las de las dos capas) en una sola capa y en un mismo sistema de referencia. Para ello, desde el Gestor de geoprocesos abriremos el menú Conversión de datos, y en él seleccionaremos el geoproceso Juntar y le damos a Abrir geoproceso.

Una vez abierta la ventana del geoproceso, seleccionaremos las dos capas que queremos juntar (manzanas_valencia.shp y edificios.shp), manteniendo la tecla Ctrl. pulsada y seleccionando las capas con el ratón. En “Usar los campos de la capa:” seleccionaremos manzanas_valencia.shp, y en “Capa de salida” seleccionaremos la ruta y el nombre del fichero resultante, que puede ser por ejemplo juntar_manzanas_valencia.shp. Al darle a Aceptar, procesará los datos, creando y añadiendo en la Vista la capa resultante. El Gestor de geoprocesos, que aún lo tendremos abierto, lo cerraremos pinchando sobre Cerrar. Si abrimos la base de datos, veremos que la capa resultante tiene únicamente los campos de la capa origen que hemos seleccionado (manzanas_valencia.shp).

Otra opción después de juntar las capas, sería poner la capa resultante en edición, abrir la tabla de atributos, y editar los valores de los registros correspondientes a la capa de edificios que hemos unido.

Geoprocesamiento: Unión

Ahora realizaremos una Unión para ver la diferencia respecto al geoproceso Juntar. Al realizar una Unión, los campos de la base de datos resultantes serán la suma de las dos bases de datos de las dos capas origen. En cambio, al realizar el geoproceso de Juntar, la capa resultante tendrá los campos de la capa origen que hayamos seleccionado. Desde el Gestor de geoprocesos abriremos el geoproceso Unión y le damos a Abrir geoproceso.

Una vez abierta la ventana del geoproceso, seleccionaremos como capa de entrada la capa manzanas_valencia.shp y como capa de recorte la de edificios.shp. En “Capa de salida” seleccionaremos la ruta y el nombre del fichero resultante, que puede ser por ejemplo union_manzanas_valencia.shp. Al darle a Aceptar, nos preguntará si deseamos crear un índice espacial, a lo que responderemos que Si. Después procesará los datos, creando y añadiendo en la Vista la capa resultante. A diferencia del geoproceso anterior, veremos que ahora la base de datos de la capa resultante tiene todos los campos de las dos capas origen. El Gestor de geoprocesos, que aún lo tendremos abierto, lo cerraremos pinchando sobre Cerrar.

Anexo 2: Piloto de raster (no se adjunta la cartografía en el LiveDVD)

Casos prácticos del piloto de raster

Los ejercicios prácticos que realizaremos están basados en imágenes monobanda, todas ellas de resolución igual a 25 metros. La zona que abarca la imagen es la siguiente:

Se tienen 7 imágenes de la misma zona, que equivalen a 7 bandas si se interpreta como una imagen multiespectral. Lo primero que haremos será añadir todas las bandas a una misma capa dentro de gvSIG para luego trabajar en distintas visualizaciones de la misma capa para poder interpretar sobre ella elementos como: vegetación, calles, ríos, etc.

Para realizar los ejercicios hará falta tener instalado el piloto raster sobre la versión 1.0.2 de gvSIG.

Imágenes monobanda

Cada una de las 7 imágenes está generada por energía que proviene de una zona concreta del espectro electromagnético, la siguiente tabla resume estos rangos de longitudes de onda y colores:

Banda1	0.45-0.52 μm	visible, azul
Banda2	0.52-0.60 μm	visible, verde
Banda3	0.63-0.69 μm	visible, rojo
Banda4	0.76-0.90 μm	infrarrojo cercano
Banda5	1.55-1.75 μm	infrarrojo medio
Banda6	10.4-12.5 μm	infrarrojo térmico
Banda7	2.08-2.35 μm	infrarrojo medio

A continuación se ve de forma general, las 7 imágenes, cada una por separado en una representación de escala de grises:

Evidentemente es posible añadir cada fichero (cada imagen) como una capa por separado a una misma vista o a diferentes vistas.

Primero añadiremos las imágenes una a una en una vista y veremos similitudes y diferencias entre ellas. También es posible añadir en una misma capa los ficheros que nos hagan falta: para poder componer, por ejemplo, una imagen RGB con las 3 primeras bandas (Banda1, Banda2 y Banda3).

Añadir las 7 bandas en una misma capa

Creamos una Vista nueva, y con Añadir capa y el driver de imagen, seleccionamos la imagen ch1.tif.

Una vez añadida la primera, hacemos botón derecho sobre el nombre de la capa en el TOC y seleccionamos Propiedades del Raster y en la solapa de Bandas pinchamos sobre Añadir para añadir las 6 otras bandas (ch2.tif, ch3.tif, ch4.tif, ch5.tif, ch6.tif, ch7.tif).

Además debemos de seleccionar qué bandas queremos que se visualicen en la vista. Para ver la imagen en color verdadero configuraremos la banda ch3.tif en el rojo, la ch2.tif en el verde y la ch1.tif en el azul. Las propiedades se verán de este modo:

Con esto lo que hemos conseguido es crear una imagen multibanda a partir de las 7 imágenes monobanda de la misma zona geográfica hechas con el mismo sensor.

Para probar otra combinación de bandas, por ejemplo la denominada composición falso color (o también pseudocolor), que corresponde a cualquier combinación que no sea la que hemos hecho anteriormente de RGB. Haremos por ejemplo una composición con la banda4 correspondiente al infrarrojo cercano, poniendo esta banda en el color de visualización del rojo. Con esto conseguimos que todo lo que resalte de color rojo sea lo captado por el sensor de infrarrojos cercano.

Además más elementos se encuentran cambiados de color: notamos los ríos que han pasado de una color amarronado grisáceo a un verde bastante intenso.

Análisis multiespectral básico

Con lo que hemos visto anteriormente resulta sencillo buscar una combinación de bandas que nos permita interpretar los diferentes elementos que aparecen en nuestra imagen satelital. Del mismo modo que hemos hecho antes, pondremos la combinación de visualización RGB a las bandas 7, 4 y 2. Nuestra imagen se verá con los siguientes colores:

En este caso, vemos reflejado los contenidos de humedad, ya que la banda del infrarrojo cercano nos da información sobre este tipo de fenómeno.

Con esta composición intentamos reconocer las formas que se representan en rojo o rosa o verde, como zonas de vegetación y cultivos. Por ejemplo:

Identificaremos también las zonas urbanizadas como aquellas con colores intermedios entre los rojos (vegetación) y los azules oscuros (agua):

Realce de la imagen

gvSIG dispone de la herramientas de realce para poder modificar los valores de los pixeles que conforman la imagen digital.

Haremos botón derecho sobre la imagen en infrarrojos y seleccionaremos Propiedades del raster. Vamos a la solapa de Realce y activamos las opciones de Brillo y Contraste y de Lineal Directo para hacer pruebas sobre la imagen.

Tendremos en cuenta que si tenemos seleccionada la opción de Previsualización podremos ir viendo en tiempo real las transformaciones que estamos aplicando a los valores de los pixeles de la imagen.

Transparencia sobre la imagen

Desde las mismas Propiedades de raster pero en la solapa de Transparencia podemos definir los valores de los pixeles que queremos que se vean con transparencia. Además podremos definir una opacidad que será aplicada a toda la imagen por igual:

Haremos varias pruebas de transparencia por pixel teniendo en cuenta que el rango de valores de las componentes RGB a trasparentar es de [0-255].

Cálculo de histogramas

Los histogramas son gráficos que relacionan los posibles valores de los pixeles (rango de [0-255]) con la frecuencia de aparición de los mismos en la imagen. Con gvSIG es posible calcular los histogramas tanto en forma de frecuencia no acumulada como de frecuencia acumulada.

Con la misma imagen del apartado de análisis multiespectral básico, hacemos botón derecho sobre ella en el TOC y seleccionamos Histogramas en el menú que nos aparece.

Tenemos 3 opciones de cálculo de histograma: completo sobre toda la imagen, sobre los datos visualizados (que es lo mismo que sobre la vista pero siempre en RGB) y sobre la extensión de la vista (pero con las bandas que se tengan seleccionadas). En este caso calcularemos el histograma de toda la imagen completo, y gracias a ello se generará un fichero de extensión .rmf permanente en nuestro directorio de cartografía que contendrá los datos de histograma completo por cada banda:

Notaremos que en la parte inferior tenemos las estadísticas de cada banda del histograma: valores mínimo, máximo, media, mediana y cantidad total de pixeles.

Hacemos botón derecho sobre el gráfico y así nos saldrá el menú contextual. Gracias a él podemos cambiar tanto las propiedades de escalas, colores, trazos, etiquetas. etc. También es posible guardar este gráfico a fichero en formato .png.

Pincharemos en Crear Tabla, para que los datos del histograma de cada banda se añada a una tabla dentro de gvSIG. Nos pedirá la ruta a donde queremos guardar el fichero dbf a crear. Para manipular la tabla generada hace falta cerrar la ventana de Histograma. La tabla se verá así:

Abriremos nuevamente la ventana de Histograma (botón derecho sobre el TOC) y para modificar el rango de cálculo de los valores de los pixeles modificaremos los valores de los cuadros de texto que están debajo del gráfico. Al hacerlo vemos que que las estadísticas de cada banda cambian:

Filtros sobre la imagen multibanda

gvSIG tiene herramientas de filtrado para detección de bordes y para suavizado de imágenes. Estos filtros pueden ser aplicados de uno en uno o en conjunto, haciendo doble click sobre ellos.

En una vista nueva, añadiremos una de las imágenes monobandas. Por ejemplo, la ch2.tif.

Hacemos botón derecho y seleccionamos la opción de Filtros. Aparecerá la siguiente ventana:

Seleccionaremos el filtro Sobel de tipo cuadrático con el cual podemos obtener una imagen contrastada de los bordes de los elementos presentes en la imagen. En nuestro caso los bordes de elementos lineales como son el río, alguna carretera y vías de ferrocarril se distinguen del resto de elementos.

Probaremos a utilizar la opción de umbral sobre el resultado del filtro: probamos valores como 150, 100 y 50. Comprobaremos que conforme disminuimos el valor del umbral, obtenemos más pixeles de color blanco en la imagen. Esto es porque gvSIG umbraliza a partir del nivel digital que se le introduce, hasta el valor límite superior de 255.

En la imagen se puede ver el filtro original y los sucesivos umbralizados, de valores 150, 100 y 50 respectivamente.

Para quitar el efecto de los filtros, en la ventana de filtros hacemos doble click sobre el filtro o los filtros que tengamos seleccionados. De esta forma la lista de filtros a aplicar se queda en blanco y haciendo Aplicar volvemos a obtener la imagen original.

El siguiente paso es aplicar un filtro de suavizado. Para ello seleccionaremos un filtro de Media con una tamaño de ventana de 7 y le damos a Aplicar. Al visualizar el resultado de la imagen filtrada vemos que es una imagen más borrosa, menos definida.

Paleta de color

Vamos a ver un caso en el que crearemos una paleta de color sobre una imagen. Para ello crearemos una vista nueva y añadiremos la capa srtm.tif, que es un modelo digital de terreno del norte de la Península Ibérica.

La imagen que hemos añadido tiene un realce aplicado. Para que la paleta de color tenga sentido deberemos quitárselo. Pondremos la capa activa, y con el botón derecho del ratón sobre ella accedemos a Propiedades del raster. Sobre la pestaña de Realce desactivaremos el realce Lineal directo.

Al darle a Aceptar vemos el resultado siguiente:

Volvemos a darle con el botón derecho del ratón a la capa y accedemos a Tablas de color. Seleccionamos la tabla predefinida MDT2. Vemos que esta tabla tiene valores positivos hasta 6000. La zona que hemos cargado es la parte oeste de los Pirineos, por lo que no hay valores de más de 3500 metros. Para ello cambiaremos los valores positivos, de forma que el rango que tenemos de 0 a 6000 lo modificaremos de forma que se quede de 0 a 3500. Podemos poner los siguientes valores:

Ahora iremos modificando los colores de cada valor, de forma que nos quede una escala entre blanco (valor 0 de la tabla) y marrón oscuro (valor 3000). Primero accedemos al color y vamos a la pestaña HSB. Movemos la barra vertical de la derecha al color naranja y en el cuadro de la izquierda del cuadro de diálogo movemos el círculo blanco al color que deseemos.

Vamos modificando los colores de forma que nos quede gradualmente entre blanco (zonas costeras) y marrón oscuro (zonas de alta montaña), como en la imagen siguiente (también se podría hacer con los valores RGB):

Finalmente le daremos a Aceptar, y veremos la imagen resaltada con los colores que le hemos dado.

Recorte de imágenes

Para recortar imágenes disponemos de la herramienta de Recorte, accediendo a ella desde el botón derecho sobre la capa en el TOC. Si expandimos la ventana de Recorte tendremos acceso a varias opciones como por ejemplo la resolución espacial de la imagen resultante, determinar su ancho y alto, elegir el algoritmo de remuestreo, las bandas a las que le queremos aplicar el recorte y si queremos generar un fichero multibanda (como el original en nuestro caso) o un fichero por cada banda (con lo cual se generarían 5 ficheros, en este caso).

Creamos una nueva Vista y añadimos la imagen ch2.tif. Vamos a recortar un trozo de ella.

Con botón derecho abrimos la herramienta de Recorte y pinchamos sobre el botón de selección interactiva desde la vista. Con ello se rellenarán los cuadros de texto de las coordenadas (pixel y reales) de la zona de recorte.

Expandiremos la ventana y seleccionaremos la resolución que pone por defecto (25 metros) y como algoritmo el de vecino más próximo. Aplicamos y se genera una nueva capa en el TOC con el recorte seleccionado. En caso de querer guardar permanentemente la imagen se podrá hacer con el botón Salvar y generaremos un fichero tif en disco duro.

En caso de estar recortando una imagen multibanda, tendremos la opción de separar dichas bandas en el recorte con lo cual generaremos tantos ficheros independientes como bandas tenga la imagen.

Fusión de imágenes

Una de las posibilidades que brinda gvSIG es la de fusionar imagenes mutiespectral con pancromática con el objetivo de mejorar la resolución de la imagen raster correspondiente.

Añadiremos en una vista nueva la imagen multiespectral.tif desde el disco duro.

Pinchamos con el botón derecho del ratón sobre la capa en el TOC y vamos a Propiedades del ráster nuevamente. En la pestaña de información miramos cuánto es la resolución del fichero. La resolución es de 2'4 mts.

Una vez añadida la imagen, vamos a la pestaña de Bandas y pinchamos en Añadir. Seleccionamos el fichero pancromatica.tif y comprobamos que se ha añadido una fila más al listado de bandas de la imagen. Esta fila es la correspondiente a la imagen pancromática que acabamos de añadir. Le damos a Aplicar.

Vamos a la solapa de Pansharp, lo activamos, y aplicamos el método HSL con coeficiente 0'2. Seleccionamos a su vez la banda pancromática (la última del listado) y le damos a Aplicar. El aspecto de la imagen es diferente, gracias a que hemos mejorado su resolución y por tanto se ha tenido que remuestrear la imagen. Se verá de la siguiente forma:

Por último haremos Zoom más hasta llegar al tamaño del pixel y comprobaremos que éste se ha reducido a una cuarta parte del valor inicial (aproximadamente 0'6 metros).

Anexo 3: Piloto de redes (ejercicios a realizar con la versión de gvSIG que incluye el piloto de redes)

Nota: La capa utilizada en este ejercicio no está disponible en el Live-DVD. Puede realizarse la mayoría de los apartados del ejercicio con la capa Callejero_Valencia.shp, que se encuentra en la carpeta Valencia.

Cálculo de rutas óptimas

Vamos a ver un caso en el que estableceremos una ruta óptima entre dos puntos. Para ello, en primer lugar crearemos una vista nueva, la abriremos y comprobaremos que su sistema de referencia es EPSG23030.

En la vista cargaremos la capa ejes.shp que representa un callejero de la ciudad de Madrid.

Una vez cargada generaremos su topología. Para ello ponemos activa la capa y abrimos el menú Red/Generar topología de red. Nos aparecerá una nueva ventana desde la que podremos generar la topología de la capa seleccionada.

En la ventana que se nos ha abierto mantendremos la opción “Calcular la red sobre la capa original” ya que es la primera vez que se va a generar topología de esa capa. Con el fin de asegurar que se crearán todos los nodos que se esperan para el futuro cálculo de rutas, marcaremos también la opción “Usar tolerancia para la creación de la topología de red” y elevaremos el valor de 0,01 que aparece por defecto a un valor de 0,05. A continuación pulsamos el botón “Siguiente”.

En la siguiente ventana seleccionaremos los distintos campos que deseamos asociar a cada una de las opciones. Los campos que escogeremos para generar la topología de la capa ejes.shp son:

Campo de tipo de vía: TIPORED

Campo de Longitud: LENGHT

Campo de coste: COST

Unidades de Coste: SEGUNDOS

Campo de Sentido: SEN

Todos los campos son de tipo numérico. Las unidades de coste están relacionadas con el campo al que hacen referencia. En este caso concreto el campo Coste está cuantificado en segundos.

Una vez seleccionados los campos pulsaremos Fin, con lo que se generará la topología.

Lo siguiente será cargar la topología que hemos generado, cosa que haremos desde el menú Red/Cargar topología de red previamente generada.

Nos aparecerá una nueva ventana que nos permitirá escoger el campo que contiene el nombre de la vía para crear el futuro informe de ruta (por defecto es Nombre)

Una vez generada la topología de red podemos iniciar el cálculo de rutas. Para ello en la barra de herramientas han aparecido cuatro nuevos botones:

Vamos a crear una ruta entre la zona norte y la sur de Madrid con un total de cinco paradas intermedias. Para ello, introduciremos las paradas con una de las herramientas para situar paradas . Una de ellas nos las sitúa entre nodos, y la otra en los nodos. Con el cursor nos situaremos sobre el punto de inicio de nuestra ruta, pinchando con el ratón sobre un punto del tramo o nodo deseado. La parada se situará automáticamente.

Repetiremos el proceso anterior situando el resto de paradas sobre la red. Como último punto seleccionamos el destino de nuestra ruta.

Si alguno de los elementos que hemos insertado cae fuera de la red, nos aparecerá un mensaje avisándonos del error, pulsamos Aceptar y continuamos normalmente.

Una vez hemos llegado al final de su trayecto acudimos de nuevo a la barra de herramientas y pulsamos sobre el botón que inicia el proceso para calcular el camino mínimo .

Al finalizar el proceso aparecerá sobre la vista de gvSIG la ruta a seguir en función de las paradas previamente establecidas y una nueva ventana con el informe de ruta.

En el cálculo de rutas podemos plantearnos establecer tramos prohibidos (por una calle en obras por ejemplo). Para verlo, vamos a borrar la ruta creada anteriormente y crearemos una nueva teniendo en cuenta los tramos prohibidos. Para ello, acudimos al menú Red/ Borrar/Borrar todas las rutas.

Una vez realizada esta acción podemos establecer los tramos prohibidos que consideramos necesarios. Para ello seleccionamos la herramienta de “Establecer tramo prohibido” y colocamos con el ratón los tramos prohibidos sobre la red. Pulsamos de nuevo sobre el botón que calcula el camino mínimo y vemos cómo se crea la nueva ruta en la Vista sorteando los tramos prohibidos.

A continuación se puede ver en detalle un tramo prohibido dentro de la ruta.

En nuestra ruta, también podemos habilitar y deshabilitar así como eliminar paradas de su ruta mediante el “Gestor de paradas”. Además podemos alterar el orden de colocación de las mismas en la ruta calculada y obtener un cálculo del coste total del recorrido. También podemos guardar rutas y paradas en los formatos shp, Postgis, dxf y gml, así como cargar un archivo de paradas para realizar nueva gestión. Accederemos a él desde el menú Red/Gestión de paradas. En la imagen que aparece a continuación se puede observar como las seis paradas insertadas sobre la red se han añadido al gestor de paradas.

Ahora utilizaremos el “Gestor de paradas” para calcular nuevas rutas. Si lo abrimos vemos todas las paradas que hemos insertado en nuestra ruta anterior:

Primero deshabilitaremos dos paradas:

Las consecuencias en el cálculo de la nueva ruta se aprecian en la imagen siguiente:

Podemos realizar otras acciones con las herramientas incluidas en el panel del “Gestor de paradas”, como eliminar una parada definitivamente de nuestra ruta utilizando el botón de la izquierda de la imagen, o alterar el recorrido a seguir si alteramos el orden de la parada que seleccionemos en la lista utilizando las flechas.

En la imagen siguiente se aprecia cómo afecta al cálculo de la ruta al eliminar dos paradas y alterar el orden de una de ellas.

También podemos salvar las paradas insertadas o las rutas creadas. Se puede hacer con las opciones “Salvar paradas” o “Salvar ruta”, con las que nos aparecerán los cuadros de diálogo siguientes:

Si desplegamos la pestaña de selección de formatos nos aparecerán los distintos formatos en los que podemos salvar el fichero (shp, dxf, Postgis y gml). Si pulsamos “Aceptar” se abrirá un cuadro de diálogo para guardar el fichero creado. Podemos salvar las paradas de la imagen anterior con el nombre paradasMadrid.shp.

Una vez pulsado el botón “Guardar”, gvSIG iniciará el proceso de creación de este nuevo fichero. Cuando finaliza el proceso podemos insertar la capa creada en la vista sobre la que estamos trabajando.

Otra opción en el manejo de paradas es que podemos cargar paradas que hayamos guardado anteriormente. Lo haremos con la opción “Cargar paradas”. En el desplegable aparecerá la capa que acabamos de crear.

Si pulsamos el botón “Aceptar” se cargará el shp de paradas creado en la vista (la simbología se ha alterado para facilitar el visionado de las paradas sobre la red).

Anexo 4: Personalización de gvSIG ( Lenguaje de scripting)

Crear una extensión en gvSIG

gvSIG se presenta como un framework que junto con el motor de scripting permiten dotarlo de nuevas funcionalidades sin un conocimiento amplio del core de la aplicación. gvSIG está construido a modo de capas que se integran usando unos mecanismos ya definidos llamados extensiones, a su vez, cada extensión puede definir sus propios puntos de extensión. Este modelo, permite a los desarrolladores añadir gran variedad de funcionalidades a la base de gvSIG, de forma que los artefactos de cada herramienta, como pueden ser los distintos tipos de capas, o botones, se presentan al usuario desde una plataforma común.

gvSIG soporta varios lenguajes de programación para realizar los script, entre ellos el lenguaje de programación Python versión 2.1 en su implementación para la maquina virtual de java (Jython), en el que está el ejemplo que vamos a ver.

El ejemplo que vamos a ver ya está desarrollado, pero vamos a ver de qué ficheros se compone y las carpetas en las que se trabaja. La extensión creada nos permite centrar la vista sobre un punto que introducimos por coordenadas, dibuja un punto sobre la vista y nos permite después borrar dicho punto. Para ver más ejemplos, recomendamos acudir a la web de gvSIG, donde en el apartado de Descargas de gvSIG 1.0 hay un manual de scripting en el que se hay varias extensiones detalladas.

Lo que haremos para que funcione la extensión es copiar la carpeta centrarVistaSobreUnPunto, que está en el directorio /cdrom/data/cartografia/Scripting, a la carpeta /home/ubuntu/gvSIG_1.1.2/bin/extensiones

La carpeta centrarVistaSobreUnPunto está formada por los siguientes ficheros (Ver Anexo):

config.xml: Contiene el directorio donde están alojadas las librerías de scripting y el lugar donde se añadirá la entrada a la barra de menús (en este caso en el menú Archivo/Scripting).

centrarVistaSobreUnPunto.xml: Define la ventana que se va a mostrar cuando se pulse sobre la entrada del menú anterior.

centrarVistaSobreUnPunto.py: Contiene la función que recogerá los valores de la ventana y centrará la vista sobre las coordenadas que hemos puesto. Contiene también la función que dibuja un punto sobre las coordenadas introducidas.

LimpiarElGraphics.py: Contiene la función que borrará el punto dibujado.

También contiene una carpeta images, donde está el fichero default.png, que es la imagen utilizada para ejecutar la extensión desde gvSIG.

Para que la extensión sea cargada en gvSIG deberemos reiniciar la aplicación, por tanto la cerraremos y la volveremos a abrir.

Añadimos la capa de Centro_2002.jp2 de la carpeta /cdrom/data/cartografia/Valencia mediante el menú Vista/Añadir capa.

Entramos en el menú Archivo/Scripting/Centrar vista en un punto, que es la extensión que hemos añadido. Nos aparece una ventana en la que debemos insertar las coordenadas de un punto.

Insertamos por ejemplo X=728000, Y=4371000, correspondientes a la Ciudad de las Artes y las Ciencias de Valencia.

Vemos que nos centra la vista en dicho punto, dibujando un cuadrado sobre él y manteniéndonos el zoom que teníamos en la vista. Le damos a Cerrar a la ventana del Scripting para quedarnos ya en la vista. Podemos cambiar la escala a 1:5000 para ver la imagen con más detalle.

Si queremos borrar el punto que nos ha dibujado deberemos entrar al otro script que habíamos añadido con Archivo/Scripting/Borrar puntos.

Anexo 5: PostgreSQL con la extensión PostGIS como Base de Datos Espacial

Introducción

PostgreSQL es un potente sistema de base de datos relacional libre, liberado bajo la licencia BSD. Es una alternativa a otros sistemas de bases de datos de código abierto (como MySQL, Firebird y MaxDB), así como sistemas propietarios como Oracle o DB2. En 1986, Michael Stonebraker comienza el proyecto que dará como resultado la obtención de Postgres en la Universidad de Berkeley.

PostgreSQL corre en la mayoría de los Sistemas Operativos más utilizados incluyendo, Linux, varias versiones de UNIX y Windows, y utiliza principalmente como lenguaje de consulta a la base de datos SQL (Structured Query Language).

PostgreSQL admite varios lenguajes procedurales como Java, Perl, Python, Ruby, Tcl, C/C++, así como su lenguaje nativo (PL/PGSQL) que es muy similar al PL/SQL de Oracle.

PostGIS es un módulo que añade soporte de objetos geográficos a la base de datos relacional PostgreSQL para su utilización en Sistema de Información Geográfica. Es software libre (GPL) y es un importante componente para los Sistemas de Información Geográfica y los proyectos Open Source con componente espacial.

Tipos de geometrías:

POINT(0 0 0)

LINESTRING(0 0,1 1,1 2)

POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))

MULTIPOINT(0 0 0,1 2 1)

MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))

MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))

GEOMETRYCOLLECTION(POINT(2 3 9),LINESTRING((2 3 4,3 4 5))

Consultas espaciales utilizando SQL:

Se pueden utilizar expresiones SQL simples para determinar relaciones espaciales y operaciones espaciales:

distancia

contigüidad

contenido

área

longitud

intersección

unión

buffer

Ejemplos de consultas:

¿Qué capitales están más próximas al río Ebro? Logroño, Vitoria, Burgos, Huesca, Zaragoza, Pamplona, Santander y Tarragona.

¿Qué distancia hay entre Tarragona y Pamplona?

...

Instalación de Postgres 8.2.4-1

Para instalar Postgres, si tenemos cywin en el path nos dará un error. Lo quitamos desde un explorador de archivos, dándole al botón derecho del ratón sobre MiPC, y en Propiedades/Opciones Avanzadas/Variables de entorno.

Primero descargaremos el fichero de instalación desde la página web de PostgreSQL. El instalable de Windows estará en http://www.postgresql.org/ftp/binary/v8.2.4/win32/. Hay que descargar el fichero postgresql-8.2.4-1.zip.

Una vez descargado lo descomprimiremos y ejecutaremos el fichero postgresql-8.2.msi.

Primero deberemos seleccionar el idioma. Como el español no está disponible podemos seleccionar el inglés. Le damos a Siguiente.

En la siguiente ventana seleccionamos "PostGIS Spatial Extensions" y le decimos que lo instale en nuestro disco duro local y le damos a Siguiente.

En la nueva ventana señalamos “Install as a service” para que arranque Postgres cuando arranca el sistema. También indicamos un nombre de usuario en el sistema, por ejemplo "postgres", y ponemos como password "postgres". Le damos a Siguiente.

Inicializamos el cluster, seleccionamos el puerto de escucha (5432), permitimos que se pueda acceder desde otras máquinas a la base de datos, seleccionamos el lenguaje (Español), seleccionamos la codificación por defecto de las instancias de bases de datos, indicamos un nombre para el superusuario de la base de datos (postgres), y finalmente le ponemos un password (postgres).

El resto de la instalación se completa pulsando a "Siguiente”.

Una vez finalizada la instalación, si queremos disponer de las herramientas de consola (shp2pgsql...), ponemos el directorio bin de la instalación de Postgres (C:\Archivos de programa\PostgreSQL\8.2\bin) en el path. Lo añadiremos desde un explorador de archivos, dándole al botón derecho del ratón sobre MiPC, y en Propiedades/Opciones Avanzadas/Variables de entorno.

Exportar una capa a PostGIS desde gvSIG

Después de instalar Postgres, ya podemos exportar una capa a PostGIS en nuestro PC. Para ello abriremos gvSIG si no lo teníamos abierto y crearemos una vista nueva.

En la Vista cargaremos un shape de las provincias de España (esp_provincias.shp).

Pondremos la capa activa e iremos al menú Capa/Exportar a/PostGIS, y pondremos como nombre de la tabla Provincias. Le damos a Aceptar.

Rellenamos la siguiente ventana poniendo localhost como Nombre de la conexión, localhost como Máquina, Puerto 5432, postgres como nombre de usuario, postgres como Clave, template_postgis como nombre de la base de datos y finalmente seleccionamos PostGIS JDBC Driver (con la extensión geoBD instalada no aparece esta opción).

Después de procesar los datos nos preguntará si queremos que se inserte la capa en la Vista, a lo que responderemos que sí. Veremos que se corresponde con el shp original que teníamos.

Cargar una capa PostGIS en gvSIG

Ahora vamos a cargar en una nueva vista la capa que hemos exportado anteriormente a PostGIS. Para ello creamos la Vista y la abrimos.

Vamos a Añadir capa y seleccionamos la pestaña JDBC.

Rellenamos los datos poniendo localhost como Nombre de la conexión, localhost como Máquina, Puerto 5432, postgres como nombre de usuario, postgres como Clave, template_postgis como nombre de la base de datos y finalmente seleccionamos PostGIS JDBC Driver. Le damos a Siguiente.

En la siguiente ventana seleccionamos la tabla Provincias, que es la que hemos creado en el ejercicio anterior. Le damos a Siguiente.

En la siguiente ventana seleccionamos todos los campos con “Seleccionar todos” y le damos a Siguiente.

Después seleccionamos the_geom como campo que contiene las geometrías y pinchamos sobre Siguiente.

Finalmente seleccionamos gid como campo único.

Al darle a Aceptar se cargará la capa que deseamos.

Anexo 6: Esquema de conectividad gvSIG-IDE

Anexo 7: Scripting (Centrar vista sobre un punto)

2.1 config.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<plugin-config>

<libraries library-dir="../org.gvsig.scripting"/>

<depends plugin-name="org.gvsig.scripting"/>

<resourceBundle name="text"/>

<extensions>

<extension class-name="org.gvsig.scripting.ScriptingExtension"

description="Extension de soporte para Scripts de usuario."

active="true">

<menu text="Archivo/Scripting/Centrar vista en un punto"

tooltip="Centrar la vista en un punto"

action-command = "show(fileName='gvSIG/extensiones/centrarVistaSobreUnPunto/centrarVistaSobreUnPunto.xml',language='jython',title='Centrar la vista a un punto',width=210,height=86)"

icon="images/default.png"

position="55"

/>

<menu text="Archivo/Scripting/Borrar puntos"

tooltip="Borrar puntos"

action-command = "run(fileName='gvSIG/extensiones/centrarVistaSobreUnPunto/limpiarElGraphics.py',language='jython')"

icon="images/default.png"

position="56"

/>

</extension>

</extensions>

</plugin-config>

2.2 centrarVistaSobreUnPunto.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- generated by ThinG, the Thinlet GUI editor -->

<panel columns="3" gap="3">

<script language="jython" method="init" src="centrarVistaSobreUnPunto.py"/>

<label colspan="3" text="Coordenadas para centrar la vista"/>

<label colspan="2" halign="right" text="Coordenada x:"/>

<textfield name="txtX"/>

<label colspan="2" halign="right" text="Coordenada y:"/>

<textfield name="txtY"/>

<panel colspan="3" gap="2" halign="right">

<button halign="right" name="botAplicar" text="Aplicar" action="clickAplicar(thinlet)"/>

<button halign="right" name="botCerrar" text="Cerrar"	action="thinlet.closeWindow()"/>

</panel>

</panel>

2.3 centrarVistaSobreUnPunto.py

import java.awt.geom.Point2D as Point2D

import java.awt.geom.Rectangle2D as Rectangle2D

import sys

from gvsiglib import *

mapContext = None

def getMapContext():

view = gvSIG.getActiveDocument()

if view == None:

print "No se puede acceder al documento activo."

return None

try:

mapContext = view.getModel().getMapContext()

except Exception, e:

print "El documento activo no parece ser una vista."

print "Error %s %s" % (str(e.__class__),str(e))

return None

return mapContext

mapContext = getMapContext()

def clickAplicar(thinlet):

global mapContext

if mapContext == None:

print "No se puede acceder al documento activo."

return

if mapContext.getLayers().getLayersCount() < 1:

print "El documento activo no tiene capas disponibles."

return

x = float(thinlet.getString(txtX, "text"))

y = float(thinlet.getString(txtY, "text"))

center = zoomToCoordinates(mapContext, x,y)

drawPoint(mapContext,center)

def zoomToCoordinates(mapContext, x,y):

try:

oldExtent = mapContext.getViewPort().getAdjustedExtent()

oldCenterX = oldExtent.getCenterX()

oldCenterY = oldExtent.getCenterY()

center=Point2D.Double(x,y)

movX = x-oldCenterX

movY = y-oldCenterY

upperLeftCornerX = oldExtent.getMinX()+movX

upperLeftCornerY = oldExtent.getMinY()+movY

width = oldExtent.getWidth()

height = oldExtent.getHeight()

extent = Rectangle2D.Double(upperLeftCornerX, upperLeftCornerY, width, height)

mapContext.getViewPort().setExtent(extent)

return center

except ValueError, e:

print "Se ha producido un error realizando zoom a las coordenadas (%s,%s). Error %s, %s" % (

repr(x),

repr(y),

str(e.__class__),

str(e)

)

return None

def drawPoint(mapContext, center, color=None):

"""

Esta función pintará un punto sobre la capa de gráficos

asociada al mapContext.

Todo mapContext además de las capas que tenga cargadas dispone

una capa graphics sobre la que dibujar elementos gráficos.

"""

if color == None:

import java.awt.Color as Color

color = Color.blue

layer=mapContext.getGraphicsLayer()

layer.clearAllGraphics()

theSymbol = FSymbol(FConstant.SYMBOL_TYPE_POINT,color)

idSymbol = layer.addSymbol(theSymbol)

geom = ShapeFactory.createPoint2D(center.getX(),center.getY())

theGraphic = FGraphic(geom, idSymbol)

layer.addGraphic(theGraphic)

def elDocumentoActivoEsUnaVistaValida():

global mapContext

if mapContext == None:

print “El documento activo nop parece ser una vista”

return False

if mapContext.getLayers().getLayersCount() < 1:

print "El documento activo no tiene capas disponibles."

return False

return True

if activeDocumentIsAValidView():

thinlet.setBoolean(botAplicar,"enabled",True)

else:

thinlet.setBoolean(botAplicar,"enabled",False)

2.4 limpiarElGraphics.py

from gvsiglib import *

def main():

view = gvSIG.getActiveDocument()

if view == None:

print "No se puede acceder al documento activo."

return None

try:

mapContext = view.getModel().getMapContext()

mapControl = view.getMapControl()

except Exception, e:

print "El documento activo no parece ser una vista."

print "Error %s %s" % (str(e.__class__),str(e))

return None

if mapContext == None:

return

layer=mapContext.getGraphicsLayer()

layer.clearAllGraphics()

mapContext.invalidate()

main()

Anexo 8: GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.,

51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Everyone is permitted to copy and distribute verbatim copies

of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your

freedom to share and change it. By contrast, the GNU General Public

License is intended to guarantee your freedom to share and change free

software--to make sure the software is free for all its users. This

General Public License applies to most of the Free Software

Foundation's software and to any other program whose authors commit to

using it. (Some other Free Software Foundation software is covered by

the GNU Lesser General Public License instead.) You can apply it to

your programs, too.

When we speak of free software, we are referring to freedom, not

price. Our General Public Licenses are designed to make sure that you

have the freedom to distribute copies of free software (and charge for

this service if you wish), that you receive source code or can get it

if you want it, that you can change the software or use pieces of it

in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid

anyone to deny you these rights or to ask you to surrender the rights.

These restrictions translate to certain responsibilities for you if you

distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether

gratis or for a fee, you must give the recipients all the rights that

you have. You must make sure that they, too, receive or can get the

source code. And you must show them these terms so they know their

rights.

We protect your rights with two steps: (1) copyright the software, and

(2) offer you this license which gives you legal permission to copy,

distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain

that everyone understands that there is no warranty for this free

software. If the software is modified by someone else and passed on, we

want its recipients to know that what they have is not the original, so

that any problems introduced by others will not reflect on the original

authors' reputations.

Finally, any free program is threatened constantly by software

patents. We wish to avoid the danger that redistributors of a free

program will individually obtain patent licenses, in effect making the

program proprietary. To prevent this, we have made it clear that any

patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and

modification follow.

GNU GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains

a notice placed by the copyright holder saying it may be distributed

under the terms of this General Public License. The "Program", below,

refers to any such program or work, and a "work based on the Program"

means either the Program or any derivative work under copyright law:

that is to say, a work containing the Program or a portion of it,

either verbatim or with modifications and/or translated into another

language. (Hereinafter, translation is included without limitation in

the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not

covered by this License; they are outside its scope. The act of

running the Program is not restricted, and the output from the Program

is covered only if its contents constitute a work based on the

Program (independent of having been made by running the Program).

Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's

source code as you receive it, in any medium, provided that you

conspicuously and appropriately publish on each copy an appropriate

copyright notice and disclaimer of warranty; keep intact all the

notices that refer to this License and to the absence of any warranty;

and give any other recipients of the Program a copy of this License

along with the Program.

You may charge a fee for the physical act of transferring a copy, and

you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion

of it, thus forming a work based on the Program, and copy and

distribute such modifications or work under the terms of Section 1

above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices

stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in

whole or in part contains or is derived from the Program or any

part thereof, to be licensed as a whole at no charge to all third

parties under the terms of this License.

c) If the modified program normally reads commands interactively

when run, you must cause it, when started running for such

interactive use in the most ordinary way, to print or display an

announcement including an appropriate copyright notice and a

notice that there is no warranty (or else, saying that you provide

a warranty) and that users may redistribute the program under

these conditions, and telling the user how to view a copy of this

License. (Exception: if the Program itself is interactive but

does not normally print such an announcement, your work based on

the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If

identifiable sections of that work are not derived from the Program,

and can be reasonably considered independent and separate works in

themselves, then this License, and its terms, do not apply to those

sections when you distribute them as separate works. But when you

distribute the same sections as part of a whole which is a work based

on the Program, the distribution of the whole must be on the terms of

this License, whose permissions for other licensees extend to the

entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest

your rights to work written entirely by you; rather, the intent is to

exercise the right to control the distribution of derivative or

collective works based on the Program.

In addition, mere aggregation of another work not based on the Program

with the Program (or with a work based on the Program) on a volume of

a storage or distribution medium does not bring the other work under

the scope of this License.

3. You may copy and distribute the Program (or a work based on it,

under Section 2) in object code or executable form under the terms of

Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable

source code, which must be distributed under the terms of Sections

1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three

years, to give any third party, for a charge no more than your

cost of physically performing source distribution, a complete

machine-readable copy of the corresponding source code, to be

distributed under the terms of Sections 1 and 2 above on a medium

customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer

to distribute corresponding source code. (This alternative is

allowed only for noncommercial distribution and only if you

received the program in object code or executable form with such

an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for

making modifications to it. For an executable work, complete source

code means all the source code for all modules it contains, plus any

associated interface definition files, plus the scripts used to

control compilation and installation of the executable. However, as a

special exception, the source code distributed need not include

anything that is normally distributed (in either source or binary

form) with the major components (compiler, kernel, and so on) of the

operating system on which the executable runs, unless that component

itself accompanies the executable.

If distribution of executable or object code is made by offering

access to copy from a designated place, then offering equivalent

access to copy the source code from the same place counts as

distribution of the source code, even though third parties are not

compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program

except as expressly provided under this License. Any attempt

otherwise to copy, modify, sublicense or distribute the Program is

void, and will automatically terminate your rights under this License.

However, parties who have received copies, or rights, from you under

this License will not have their licenses terminated so long as such

parties remain in full compliance.

5. You are not required to accept this License, since you have not

signed it. However, nothing else grants you permission to modify or

distribute the Program or its derivative works. These actions are

prohibited by law if you do not accept this License. Therefore, by

modifying or distributing the Program (or any work based on the

Program), you indicate your acceptance of this License to do so, and

all its terms and conditions for copying, distributing or modifying

the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the

Program), the recipient automatically receives a license from the

original licensor to copy, distribute or modify the Program subject to

these terms and conditions. You may not impose any further

restrictions on the recipients' exercise of the rights granted herein.

You are not responsible for enforcing compliance by third parties to

this License.

7. If, as a consequence of a court judgment or allegation of patent

infringement or for any other reason (not limited to patent issues),

conditions are imposed on you (whether by court order, agreement or

otherwise) that contradict the conditions of this License, they do not

excuse you from the conditions of this License. If you cannot

distribute so as to satisfy simultaneously your obligations under this

License and any other pertinent obligations, then as a consequence you

may not distribute the Program at all. For example, if a patent

license would not permit royalty-free redistribution of the Program by

all those who receive copies directly or indirectly through you, then

the only way you could satisfy both it and this License would be to

refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under

any particular circumstance, the balance of the section is intended to

apply and the section as a whole is intended to apply in other

circumstances.

It is not the purpose of this section to induce you to infringe any

patents or other property right claims or to contest validity of any

such claims; this section has the sole purpose of protecting the

integrity of the free software distribution system, which is

implemented by public license practices. Many people have made

generous contributions to the wide range of software distributed

through that system in reliance on consistent application of that

system; it is up to the author/donor to decide if he or she is willing

to distribute software through any other system and a licensee cannot

impose that choice.

This section is intended to make thoroughly clear what is believed to

be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in

certain countries either by patents or by copyrighted interfaces, the

original copyright holder who places the Program under this License

may add an explicit geographical distribution limitation excluding

those countries, so that distribution is permitted only in or among

countries not thus excluded. In such case, this License incorporates

the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions

of the General Public License from time to time. Such new versions will

be similar in spirit to the present version, but may differ in detail to

address new problems or concerns.

Each version is given a distinguishing version number. If the Program

specifies a version number of this License which applies to it and "any

later version", you have the option of following the terms and conditions

either of that version or of any later version published by the Free

Software Foundation. If the Program does not specify a version number of

this License, you may choose any version ever published by the Free Software

Foundation.

10. If you wish to incorporate parts of the Program into other free

programs whose distribution conditions are different, write to the author

to ask for permission. For software which is copyrighted by the Free

Software Foundation, write to the Free Software Foundation; we sometimes

make exceptions for this. Our decision will be guided by the two goals

of preserving the free status of all derivatives of our free software and

of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY

FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN

OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES

PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED

OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS

TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE

PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,

REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING

WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR

REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,

INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING

OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED

TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY

YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER

PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE

POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest

possible use to the public, the best way to achieve this is to make it

free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest

to attach them to the start of each source file to most effectively

convey the exclusion of warranty; and each file should have at least

the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>

Copyright (C) <year> <name of author>

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License along

with this program; if not, write to the Free Software Foundation, Inc.,

51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this

when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author

Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.

This is free software, and you are welcome to redistribute it

under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate

parts of the General Public License. Of course, the commands you use may

be called something other than `show w' and `show c'; they could even be

mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your

school, if any, to sign a "copyright disclaimer" for the program, if

necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program

`Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989

Ty Coon, President of Vice

This General Public License does not permit incorporating your program into

proprietary programs. If your program is a subroutine library, you may

consider it more useful to permit linking proprietary applications with the

library. If this is what you want to do, use the GNU Lesser General

Public License instead of this License.