Académique Documents
Professionnel Documents
Culture Documents
RESUMEN
Entre los diversos programas utilizados para desarrollar un Sistema de Informacin
Geogrfica, suele coincidirse en que GRASS es uno de los ms potentes, pero al mismo tiempo
en que es uno de los ms complicados de manejar o incluso instalar.
En este trabajo se presenta una Interfaz Grfica de Usuario desarrollada para GRASS en
lenguaje python utilizando las libreras grficas wxpython.
El primer objetivo del programa es suavizar la curva de aprendizaje para alumnos de
asignaturas de SIG y para aquellos que se introduzcan por primera vez en el programa GRASS.
Ms adelante se pretende hacer una IGU modular configurable de manera que existan una serie
de perfiles de usuario a los que correspondern diferentes apariencias y potencialidades.
El propsito no es convertirse en una IGU exhaustiva con todos los comandos y opciones
de GRASS accesibles, sino ms bien ser una interfaz configurable para que aquellas personas
con pocos conocimientos acerca del programa puedan acercarse al mismo. Por tanto wxGRASS
no permite acceder a toda la potencialidad de GRASS;
Esta IGU ha sido ya probada con excelentes resultados en las asignaturas de SIG de las
licenciaturas de Geografa y Ciencias Ambientales de la Universidad de Murcia.
Palabras clave
SIG,Interfaz Grfica de Usuario,GRASS,python
ABSTRACT
GRASS is usually acknowledged as one of the most powerful Geographic Informatuon
System software but, as the same time, one of the most difficult to learn or even to install.
This work presents a Graphic User Interface to GRASS programmed with python
language and using the graphic libraries wxpython.
The first goal of this piece of software is to smooth the learning curve to students who
enters in GRASS program. The objective in the future is to develop a configurable GUI able to
present different working environments to different user profiles.
The purpose of the program is not to become a complete GUI with all the modules and
possibilities available from the main screen, but a very flexible interface for people starting to
use GRASS.
This GUI has already been tested with GIS students in university courses of Geography
and Environmental Science degrees.
Keywords
GIS, Graphic User Interface, GRASS, python
567
http://www.opengeospatial.org/
www.ec-gis.org/inspire/proposal/ES.pdf
www.idee.es
568
WXGRASS. UNA INTERFAZ GRFICA DE USUARIO PARA GRASS DESARROLLADA CON PYTHON Y WXPYTHON
necesidad de utilizar un ordenador (y por tanto uno o varios programas), mientras que
en estadstica, por poner un ejewmplo similar, bastara una calculadora, debido al
elevado nmero de datos que implica cualquier operacin entre capas de informacin
espacial; las consecuencias son varias.
Mientras que en la enseanza de la estadstica parece estar claro que resulta
imposible obtener buenos resultados de un programa de anlisis de datos sin los
conceptos tericos adecuados, en la enseanza de las TIG, que al fin y al cabo se basa
en gran parte en el anlisis de datos espaciales con herramientas que proceden en su
mayora de la estadstica espacial, tiende a sobreestimarse la importancia del programa
que se maneja mientras que se pasa por encima de los fundamentos tericos de los
procedimientos utilizados. En muchos casos se olvida que lo importante es ensear a
pensar con un SIG y no ensear a pulsar un serie de botones.
Otro problema que plantea el uso de un programa es el de la relacin, no siempre
fcil, del alumno con este. Suele plantearse si es preferible un programa potente y
complejo o uno sencillo y fcil. Se utilice el programa que se utilice, la interfaz con el
usuario no suele ser totalmente intuitiva. Por tanto, las diferentes interfaces de usuario
en entornos docentes constituyen una cuestin realmente relevante a tener en cuenta.
El poco tiempo que se destina a las TIG en la docencia, y la ya mencionada
acumulacin de contenidos, complica el problema. Es necesario reducir al mnimo el
perodo de adaptacin de los alumnos al sistema con lo que la interfaz a que se enfrenta
el alumno debe ser por una parte sencilla pero por otra permitir un rpido acceso a las
herramientas que va a utilizar. Esta IGU no puede ser igual que la que requiere un
experto en SIG cuando utiliza el programa en su vida profesional. Cabe plantear por
tanto la posibilidad de desarrollo de IGUs especficas para propsitos docentes.
1.1 El problema de las IGU en SIG
En realidad, el problema de la IGU en la docencia de las TIG no es ms que un
caso particular del problema ms general de las IGU para trabajar con un SIG que en
definitiva responde a la cada vez mayor popularidad de un tipo de programa que, por su
propsito y funcionamiento, resulta necesariamente complejo. En este sentido resulta
muy interesante la aportacin del proyecto BEST-GIS4. En el documento Guidelines for
Best Practicing in User Interface for GIS se plantea el problema de que todo el conjunto
de funcionalidades de los SIG no son accesibles a muchos de los potenciales usuarios
por la complejidad de las interfaces. Esta complejidad lleva a confiar su utilizacin a
expertos informticos con poca preparacin en los procesos ambientales o sociales que
se pretende estudiar.
Una de las ideas centrales del proyecto BEST-GIS es la necesidad de no
considerar la interfaz de usuario slo como un mdulo ms del programa, sino ms bien
disear los programas en funcin del usuario ya que para este la interfaz es el
programa.
El problema es que un mismo programa, gestionando un mismo conjunto de
datos, puede ser utilizado por diferentes usuarios con diferentes capacidades (un
programador, un experto en SIG, un experto en hidrologa, un gestor, etc.). La solucin
4
http://www.gisig.it/best-gis/Guides/main.htm
569
comercial ha sido en ocasiones el desarrollo de dos programas, uno para trabajar y otro
para ver los resultados. Curiosamente la consecuencia ha sido la estandarizacin del
visor, ms sencillo y barato, como SIG de trabajo con el apoyo de scripts en ocasiones
libremente accesibles en Internet. En definitiva, diferentes usuarios necesitan diferentes
entornos de trabajo para trabajar con un SIG en el mismo proyecto.
Tomlinson (2003) seala la necesidad de una adecuada planificacin de todo
proyecto de SIG y al mismo tiempo que queden claras las necesidades y los resultados
mediante una comunicacin constante entre los desarrolladores y los usuarios finales.
Evidentemente resulta necesario, como parte de esta comunicacin, la posibilidad de
que estos usuarios finales accedan a los avances mediante IGU no diseadas para
expertos en SIG.
El uso de sistemas grficos (MS-Windows o X-Windows) ha permitido la
creacin de IGU, ms intuitivas que la antigua terminal de texto; aunque en realidad
hasta hace algunos aos los programas ms potentes (ArcInfo o GRASS) seguan
requiriendo el uso de interfaces de texto.
Sin embargo, parece difcil que una IGU pueda dar acceso a toda la funcionalidad
de un SIG sin convertirse en algo tanto o ms complejo como el sistema cuyo uso
trataba de simplificar. Por otro lado, el desarrollo de las IGU no debe penalizar la
capacidad para acceder a toda la disponibilidad de mtodos y flexibilidad de parmetros
de estos, o la posibilidad de programar aplicaciones a partir de la multiplicidad de
mdulos que incluye un programa de SIG mediante lenguajes de macros o scripts.
Desde el campo del software libre la solucin pasa por desarrollar una IGU para
un programa ya existente en alguno de los lenguajes desarrollados para ello (TclTk,
Python o Ruby). En el caso de GRASS se ha desarrollado TclTk-GRASS5 ; se trata de
un proyecto avanzado pero en el que se ha apostado por introducir en la interfaz grfica
toda la funcionalidad del programa con lo que la deja de lograrse una IGU sencilla. Otra
posibilidad es programar aplicaciones en JAVA, como gvSIG6 .
1.2 Software libre e integracin de software
Una de las caractersticas ms interesantes del software libre es que, puesto que
las especificaciones de los programas y las libreras en que se basan son pblicas y
suelen estar bien documentadas, resulta sencillo disear programas que interacten unos
con otros. De este modo un entorno de trabajo basado en TIG incluye no slo un
programa de SIG sino tambin programas de anlisis de datos, bases de datos,
maquetadores de mapas etc.
Los programas ms comnmente utilizados para su integracin con GRASS son
(Bivand & Neteler, 2000; Neteler & Mitasova, 2002; Alonso y Palazn, 2004), R7
(programa de anlisis de datos), potgreSQL8 (servidor de bases de datos), gstat9
http://www.grass-kr.org/main_tclgrass.html
www.gvsig.gva.es/
7
cran.r-project.org
8
www.postgresql.org
9
www.gstat.org
6
570
WXGRASS. UNA INTERFAZ GRFICA DE USUARIO PARA GRASS DESARROLLADA CON PYTHON Y WXPYTHON
(maquetador de
10
gmt.soest.hawaii.edu
571
572
WXGRASS. UNA INTERFAZ GRFICA DE USUARIO PARA GRASS DESARROLLADA CON PYTHON Y WXPYTHON
2.3 Python
Python es un lenguaje de programacin orientado a objetos, sencillo pero de gran
potencia, que permite el desarrollo rpido de aplicaciones. Es un lenguaje interpretado y
altamente modular, por lo que la etapa de desarrollo se reduce considerablemente y,
adems, resulta muy sencillo aadir nuevos elementos a posteriori al programa (Bauer,
1996; Van Rossum & Drake, 2000).
Por otra parte, wxPython es una librera con cdigo programado en python que
establece enlaces a una librera para el desarrollo de aplicaciones grficas llamada
wxWindows. Esta ltima est programada en C++ y puede ejecutarse en Windows o
Unix. El aprendizaje de wxPython resulta muy sencillo comparado con otros sistemas
similares como Visual Basic o TclTk, el nico inconveniente es la falta de
documentacin en espaol.
En todo caso, el uso de python y wxPython permite escribir de forma sencilla u
rpida IGUs para aplicaciones diversas. En este caso se ha diseado una interfaz para
ejecutar los diferentes mdulos de GRASS generando previamente las rdenes a partir
de las entradas del usuario.2.3 Python
3 wxGRASS
Se trata de una interfaz grfica de usuario (IGU) para el SIG GRASS desarrollada
en lenguaje python utilizando wxpython como librera grfica.
El primer objetivo del programa es suavizar la curva de aprendizaje para alumnos
de asignaturas de SIG y para aquellos que se introduzcan por primera vez en el
programa GRASS. Ms adelante se pretende hacer una IGU modular configurable de
manera que existan una serie de perfiles de usuario a los que correspondern diferentes
apariencias y potencialidades.
El propsito no es convertirse en una IGU exhaustiva con todos los comandos y
opciones de GRASS accesibles, sino ms bien ser una interfaz configurable para que
aquellas personas con pocos conocimientos acerca del programa puedan acercarse al
mismo. Por tanto wxGRASS no permite acceder a toda la potencialidad de GRASS; en
aquellos casos en que se necesite utilizar un mdulo no disponible mediante la interfaz,
deber utilizarse la linea de comandos o escribir la orden en la caja de texto situada en
la parte inferior de la ventana principal (figura 1).
En todo caso, wxGRASS debe ejecutarse siempre en segundo plano (wxGRASS.py
&), dentro de una sesin de GRASS de manera que el usuario tenga en todo momento
acceso a la linea de comandos de GRASS.
wxGRASS no proporciona una ventana grfica propia sino que utiliza el sistema
de monitores grficos de GRASS. Tras iniciar el programa aparecen dos ventanas
(figuras 1 y 2) que contienen los cinco elementos fundamentales de trabajo (sistema de
mens, barra de herramientas, espacio de texto, insercin directa de rdenes y ventana
de regin. Puesto que el programa est an en desarrollo, los elementos aqu
mencionados pueden cambiar, as como aparecer nuevos elementos.
wxGRASS se desarroll para trabajar con GRASS 5.4, por lo tanto si se utiliza
con GRASS 6.x slo se podrn acceder a las funciones raster (y quizs no a todas
573
debido a los cambios en el conjunto de mdulos de unas versiones a otras). Una futura
versin de wxGRASS se adaptar a la versin 6.0.
El programa se plantea como una IGU, es decir todo lo que GRASS pueda hacer
se le deja hacer a GRASS. De este modo la IGU se basa en una ventana principal dotada
de un sistema de mens que permiten activar diversos mdulos de GRASS. Cuando se
pulsa sobre una opcin de men se abre la ventana correspondiente (figura 3) que
permite introducir los parmetros y opciones necesarios para ejecutar el mdulo. A
continuacin a pulsar el botn Ejecutar, el programa construye la orden de GRASS
correspondiente a partir de la informacin suministrada por el usuario y la ejecuta. Por
otra parte escribe la orden enviada en la ventana principal permitiendo al usuario
comprobar cual es la sintaxis en GRASS.
La IGU wxGRASS permite acceder no slo a los mdulos estandard de GRASS
utilizados en las asignaturas de SIG en cuya docencia se utiliza, sino tambin permite
lanzar consultas a una base de datos bajo PostgreSQL y scripts en lenguaje S al
programa R de anlisis de datos (concretamente se utiliza R para implementar algunos
algoritmos de interpolacin a partir de puntos no disponibles en GRASS. Adems
permite acceder a diversos mdulos de GRASS desarrollados por el autor de esta
comunicacin y que estn disponibles en www.um.es/geograf/sigmur.
De este modo permite integrar una gran diversidad de elementos de software, que
implementar diferentes tcnicas, en una sla interfaz de usuario concebida para facilitar
el aprendizaje de estas tcnicas.
Debido al carcter experimental del programa dispone de numerosas vas
alternativas para ejecutar una accin en previsin de que alguna falle. Concretamente,
permite acceder en cualquier momento a la terminal de texto para introducir las ordenes
mediante teclado. Adems puesto que la ejecucin de wxGRASS no afecta en nada a la
de GRASS, si aparece algn problema que afecte a la IGU esta puede eliminarse y
activar otra instancia sin que ello afecte a ningn proceso en marcha.
3.1 El sistema de mens
Como en toda interfaz grfica, el sistema de mens permite acceder a la mayora
de las funcionalidades de wxGRASS, cada opcin del men activa un comando de
GRASS pero que no todos los comandos de GRASS son accesibles a travs de
wxGRASS.
Base de datos Gestin de las bases de datos espacial y temtica. Acceso a la
informacin bsica de las diferentes capas,
Visualizar Gestin de monitores grficos, mscaras y paletas de color,
Estadsticos Estadstica de capas raster,
Transformaciones Cambio de unos formatos a otros,
lgebra Acceso a r.mapcalc y otros mdulos de lgebra de capas,
Interpolacin Acceso a herramientas de interpolacin de datos,
Ayuda
Acerca de wxGRASS Breve descripcin del programa
Manual Abre en el navegador las pginas de manual de GRASS
574
WXGRASS. UNA INTERFAZ GRFICA DE USUARIO PARA GRASS DESARROLLADA CON PYTHON Y WXPYTHON
Pintar una capa raster, se abrir una ventana que permite seleccionar que capa
pintar.
Pintar una capa vectorial de lineas, se abrir una ventana que permite
seleccionar que capa pintar.
Pintar una capa vectorial de polgonos, se abrir una ventana que permite
seleccionar que capa pintar.
Refresca el contenido del monitor grfico, til cuando por alguna razn el
monitor no se redibuja despus de un zoom.
575
Consulta los valores de una capa raster pinchando en diferentes puntos del
monitor grfico
Consulta los valores de una capa vectorial pinchando en diferentes puntos del
monitor grfico
576
WXGRASS. UNA INTERFAZ GRFICA DE USUARIO PARA GRASS DESARROLLADA CON PYTHON Y WXPYTHON
Sin embargo no todos los mdulos de GRASS pueden activarse mediante esta
opcin, aquellos que incluyen un sistema de mens en el terminal de texto deben ser
invocados directamente desde este (el caso de d.3d por ejemplo).
3.5 La ventana de regin
Uno de los conceptos ms complejos cuando se empieza a trabajar con GRASS es
el de regin de trabajo que permite controlar la extensin y resolucin de la misma
asignando directamente valores a los diferentes parmetros que la definen o utilizando
los valores asociados a las diferentes capas raster o vectoriales disponibles en la base de
datos. La ventana de regin aparece en la figura 2 y presenta los principales parmetros
de la regin de trabajo:
Esta ventana permite adems manipular los valores, puede modificarse cualquiera
de ellos (excepto el nmero de filas y columnas) y aplicarlos apretando al botn Grabar
datos. Adems de este aparecen otros tres botones:
El botn Re Albizua Huarte, L.; Lernoz Goi, A. I.; Zalba Almandoz, M.: Ferrer
Lors, V.; Donzar Dez de Ulzurrun, M.gin por defecto volver a la regin por
defecto.
El botn Capa raster Toma como lmites de la regin de trabajo los de una capa
raster. Estos pueden consultarse con la opcin correspondiente del men Base de
datos => Informacin sobre un raster.
El botn Lmites de vectorial Toma como lmites de la regin de trabajo los de
una capa vectorial. Estos pueden consultarse con la opcin correspondiente del
men Base de datos => Informacin sobre un vectorial.
577
4 RESULTADOS DOCENTES
Esta interfaz se ha probado durante dos cursos en la asignatura de Sistemas de
Informacin Geogrfica de la licenciatura de Ciencias Ambientales y durante uno en la
asignatura de Introduccin a los SIG de la licenciatura de Geografa. Ambas asignaturas
son cuatrimestrales.
Los alumnos se familiarizan rpidamente con el entorno y se minimizan los
problemas de sintaxis de las rdenes. Pueden de este modo centrarse en los conceptos
manejados y en el flujo de informacin espacial a travs de diferentes operadores que,
en definitiva, constituye el trabajo con un SIG.
En algunos casos se observa como la facilidad que proporciona la IGU reduce el
esfuerzo y atencin de algunos alumnos, especialmente cuando se trabajan los
conceptos ms avanzados, al fin y al cabo escribir conceptos es la mejor manera de
aprenderlos y las ordenes en modo texto son una forma de lenguaje con la que escribir
los conceptos del anlisis espacial.
Podra pensarse por tanto que esta IGU, aunque sea adecuada para cursos
introductorios, no lo es tant opara cursos avanzados, pero en cursos avanzados la
motivacin del alumno es mayor lo que minimizara el problema.
5 REFERENCIAS
Alonso Sarra,F., (1999): El uso de INTERNET en la enseanza del uso de Sistemas de
Informacin Geogrfica : una experiencia didctica / Francisco Alonso Sarria en
Papeles de geografa, ISSN 0213-1781, N 29, 1999, pags. 5-14
Alonso Sarra,F. & Palazn Ferrando,J.A., (2004): Software Libre para SIG Curso
impartido en el XI Congreso Nacional de Tecnologias de la Informacion
Geografica, Murcia
Bauer, J., (1996): An introduction to Python en Linux Journal, N21
(www.python.org/doc/lj21.html)
Bivand,R. & Neteler,M. (2000): Open source geocomputation: using de R data
analysis language integrated with GRASS GIS and PostgreSQL data base
systems in Geocomputation 2000 (reclus.nhh.no/gc00/geocomp2000.pdf)
B.O.E. (2006): Ficha tcnica de propuesta del ttulo universitario de grado en
Geografa
Real
Decreto
55/2005
de
21
Enero
de
2006
(www.ub.es/ub/europa/documents/directrius/geografia.pdf)
Chuvieco, E., Bosque, J., Pons, X., Conesa, C., Santos,J.M., Gutirrez Puebla, J.,
Salado, M.J., Martn,M.P, de la Riva, J., Ojeda, J., Prados, M.J. (2005) Son las
Tecnologas de la Informacin Geogrfica (TIG) parte del nucleo de la Geografa?
Boletn de la A.G.E. 40 pp 35-45.
Ministerio de Educacin y Ciencia (2003): La integracin del sistema universitario
espaol en el espacio europeo de enseanza superior. Documento marco en
wwwn.mec.es/univ/html/informes/EEES_2003/Documento_Marco.pdf
GISIG Guidelines for Best Practice in User Interface for GIS (http://www.gisig.it/bestgis/)
Van Rossum,G. & Drake, F.L. (2000): Gua de aprendizaje de Python
(es.tldp.org/Tutoriales/Python/Tutorial-Python/)
Tomlinson, R., 2003: Thinking about GIS. Geographic information system planning for
managers ESRI Press. 279 pp.
578