http://wiki.debian.org/DebianGis?action=AttachFile&do=get&target=debiangis_mollweide.png http://grass.itc.it/grass64/manuals/html64_user/grass_logo.png

Debido a la falta de alternativa de software y herramientas libres para trabajar asignaturas de Sistemas de Informacion Geografica (SIG) Se implementera el uso de tecnologias libres para el desarrollo pleno de esta, con la construcción de una arquitectura con las herramientas GRASS, PostgreSQL, QGIS, POSGIS, degree, mapserver, entre otras herramientas libres que ayuden a potenciar el trabajo de SIG.

GRASS es un proyecto de software, potenciado por la comunidad de software libre, con mucha aplicabilidad a la enseñanza de la geoinformatica, la geoestadistica, el geoprocesamiento, entre otras áreas similares, integradas al campo de los sistemas de información geográficos.

GRASS incluye herramientas para el almacenamiento, actualización, visualización y análisis de datos espaciales; así como para la introducción de diversas estrategias de modelización. El objetivo inicial con que fue diseñado era la planificación territorial, pero sus capacidades se han extendido a otros campos como la ingenieria, hidrología, geología, física, estadística, teledetección y aplicaciones empresariales.

El objetivo de estas páginas es proporcionar una referencia acerca de GRASS. Algunos de los contenidos se han adaptados de la página web de GRASS.

Como parte de la iniciativa de software libre, GRASS da la libertad de poder ser explorado, analizado, mejorado, extendido o reutilizado para ser integrado en soluciones informaticas más potentes, confiables y mejoradas, aplicables a diversidad de proyectos GIS e incluso en otras áreas que requieran el tratamiento avanzado de imágenes como la medicina, entre otras.

La arquitectura sera montada sobre la distribución Debian GNU/Linux en su versión numero 5 (Lenny), y además por el gran trabajo del Proyeco DebianGis por aportar grandes avances del trabajo de herramienas SIG dentro de esta gran distribución.

Introducción

GRASS es un programa completamente modular, es decir se basa en más de 350 módulos y herramientas que ejecutan tareas concretas y simples. Cuando se ejecuta GRASS no se carga un gran programa en memoria, sino que simplemente se cargan una serie de nuevas variables de entorno que permiten el acceso a los datos y a los módulos de GRASS.

Estos incluyen herramientas para el manejo de información en formatos raster y vectorial así como mapas de puntos, herramientas para el análisis de imágenes satelitales, para el enlace a bases de datos y paquetes estadísticos GIS, así como para la producción de gráficos.

Existe sin embargo una Interfaz Gráfica de Usuario basada en Tcl-Tk. Existe también una versión experimental de GRASS para Windows Cygwin. La ventaja del trabajo en linea de comando es que los diferentes módulos de GRASS pueden integrarse en scripts utilizando la shell, lo que permite a usuarios y programadores crear nuevas aplicaciones y enlazar GRASS con otros paquetes de software.

Fue inicialmente desarrollado como herramienta militar en los laboratorios de investigación del Cuerpo de Ingenieros del ejercito americano . A partir de estos orígenes GRASS ha evolucionado como una herramienta de gran potencia cuyo rango de aplicaciones abarca diversas ramas de la investigación científica. Se utiliza en el contextos académico, comercial y administrativo. Entre las organizaciones que lo utilizan destacan NASA, NOAA, USDA, el servicio americano de parques nacionales, la oficina americana de censos o el USGS.

Debido a la rápida expansión del programa, el equipo de desarrollo de GRASS se ha convertido en un a href="grassdevel.html">equipo internacional de desarroladores que ha permitido un rápido progreso del programa con el lanzamiento de nuevas versiones, documentación e investigación y desarrollo.

Existe además una API para C, incluyendo más de 800 librerias, completamente documentada que permite el desarrollo de nuevos módulos directamente en lenguaje C. Puesto que GRASS se encuentra disponible bajo licencia GNU GPL, el usuario recibe el código fuente así como una completa libreria de desarrollo de SIG que puede utilizarse para crear nuevos programas. Se dispone también de un Manual del programador de GRASS.

GRASS es el programa idela para usar en aplicaciones ingenieriles y de planificación territorial. Al igual que otros paqueted de SIG, puede visualizar y manipular datos vectoriales, como carreteras, rios, límites, etc. Puede también utilizase para la actualización de mapas uilizando sus herramientas de digitalización. Dispone también de capacidad para maenjar datos raster y para realizar transfortmaciones entre los formatos raster y vectorial. La potencia de GRASS reside en diversos campos:

Esquema

http://grass.itc.it/images/grass_solutions.png

Arquitecturas de procesador y Sistemas Operatvos compatibles con GRASS

Arquitecturas: Intel x86, Motorola PPC, SGI MIPS, Sun SPARC, Alpha AXP, HP PA-RISC, CRAY, others.

Sistemas Operativos: Linux/Intel, Linux/PowerPC,Solaris/SPARC, Solaris/i86, SGI IRIX, HP UX, Mac OS X (Darwin), IBM AIX, BSD-Unix variants, FreeBSD, CRAY Unicos, iPAQ/Linux y otras plataformas UNIX (32/64bit), adicionalmente, Windows NT/Cygnus.

GRASS está escrito en C con una bien documentada API, ofrece además una interfaz JAVA preliminar.

Que se necesita para correr GRASS

Puede ejecutarse en un sistema operativo tipo Unix con X-Windows (Openwin, KDE, GNOME, fvwm2, ...), e.g.: Linux (Intel or PowerPC), Solaris (SPARC or Intel), HP-UX (HP PA-RISC), FreeBSD (Intel, Alpha AXP), Mac OS X (PowerPC), or another UNIX-compliant system or MS-Windows (NT/2000/XP with cygwin) for the experimental winGRASS port.

Gestión de Datos con GRASS

Descarga

GRASS está disponible desde ITC-irst en Italia (http://grass.itc.it) y desde numerosos sitios espejo (Consultar http://grass.itc.it/mirrors.php).

Ejemplo Practico

Para el ejemplo se utilizara un modulo del vector Subredes red v.net.alloc, para el cálculo de subredes dentro de un vector de la red. Este cálculo es útil para determinar el alcance de varios puntos de interés dentro de una ciudad para optimizar su funcionamiento zona.

Datos

Los datos que voy a usar para este ejemplo son los datos vectoriales de la ciudad de Osnabrück . Estos datos geográficos de el proyecto FRIDA puede ser descargado desde el sitio web de Sitio Web de Frida

Al descargar el archivo frida-1.0.1-shp-joined.tar.gz Shapefiles, Attribut-Klassen eingebunden (650 KByte) de la Página del proyecto de Frida podemos iniciar el caso.

Para el ejemplo se debe abrir una terminal de comandos Comandos

Para un escritorio con gnome hacemos Aplicaciones -> Accesorios -> Terminal de <<Root>>

Empezamos una sesión de grass

$grass62 /home/jpablo/grass/spearfish60/user1/

Importamos el archivo descargado incluyendo la ruta

v.in.ogr dsn=/home/jpablo/Escritorio/frida-1.0.1-shp-joined/strassen-joined.shp \ output=strassen loc=frida

exit

Reiniciamos con la nueva location grass60 ~/grassdata/frida/PERMANENT

Importamos los sitios (hospitals, ...): v.in.ogr dsn=frida-1.0.1-shp-joined/poi-joined.shp output=points

Es necesario crear una nueva capa interno de la columna. Por lo tanto, es posible conectar diferentes tablas de atributos con la misma capa de mapa vectorial a través de las asignaciones. La entrada de la segunda capa se puede hacer por v.category module (Vector --> Change attributes --> Manage or report categories). Con la Configuración del modulo puede mostrarse una nota asi v.category input=points output=points_2f option=add layer=2

Es necesario crear una nueva capa interna de la columna antes de definir los nodos a los hospitales. Por lo tanto, es posible conectar diferentes tablas de atributos con la misma capa de mapa vectorial a través de las asignaciones:

Entrada de una segunda capa v.category points out=points_2f layer=2 op=add

Control v.category points_2f layer=1,2 op=print # -> layer 1 == layer 2

Extracción de los hospitales desde el punto de archivo Ahora voy a extraer los puntos del mapa points_2f que están asignados como hospitales de la región de Osnabrück.

Ejecutamos v.extract module (vector --> Query with attributes),y organizado esto hasta que tener el boton del modulo asi:

v.extract input=points_2f output=hospitals_pre type=point where=poiTypName='Klinik/Hospital' .

Activo v.select module (vector --> Query with another map), y la manipulación de mapas de hospitales (v.select ainput=points_2f atype=point binput=hospital_pre btype=point output=hospitals operator=overlap ).

Asignación de hospitales a la red

La asignación es llevada por dos operaciones, Los sitios son extendidos con la linea de datos a el nuevo mapa roads_hospitals y la tabla atributos es conectada con otras entradas.

Intersección de los datos:

v.patch in=roads,hospitals out=roads_hospitals (p.patch module can be activate via menu Vector → Overlay maps → Patch)

Definición de la base de datos si es necesario db.connect dr=dbf database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' (db.connect module can be activate via menu Databases --> Manage database --> Connect to database)

Mostrar en Pantalla los atributos de cada columna de los mapas

db.describe -c roads (db.describe module: Databases --> Database Information --> Describe database) in the output – Gis.m window you'll get: ncols:7 Column 1: cat Column 2: strShapeID Column 3: strID Column 4: strTypID Column 5: strSpuren Column 6: strEbene Column 7: strName

Conectar los atributos de las lineas con el mapa extendido

v.db.connect roads_hospitals dr=dbf data='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' table=roads layer=1 key=cat (v.db.connect module: Databases -->Vector <-> database connections --> Set vector – database connection)

Crear lineas de enlace entre los hospitales y carreteras v.distance -p from=hospitals to=roads output=roads_hospitals_connect upload=dist column=dist (v.distance module: Vector → Nearest features)

Ajustar las lineas de conexión entre las carreteras y hospitales

v.patch in=roads_hospitals,roads_hospitals_connect out=hospitals_net_pre (p.patch module:Vector → Overlay maps → Patch)

Topologia Correcta v.clean in=hospitals_net_pre out=hospitals_net tool=break,snap (v.clean module: Vector → Develop map → Clean vector)

Asignación de las regiones de optimo alcance

Despues que la base de datos ha sido edita, esta preparada para el calculo de las regiones v.net.alloc input=hospitals_net output=hospitals_alloc ccats=40-215 (v.net.alloc module: Vector → Network analysis → Allocate subnet)

Iniciar

Ahora ya con la información básica podemos empezar a iniciar en GRASS, para lo cual lo haremos esta vez desde la terminal, mas adelante mostrare como se puede abrir de manera gráfica. Ya en consola escribimos grass o grass63 ya que para el ejemplo utilizare la versión actual 6.3.0, el programa nos mostrara un mensaje de entrada, dependiendo si es la primera vez que se utiliza o ya se ha utilizado, si no se ha utilizado nunca saldrá el letrero de Bienvenida y para continuar solo necesitamos darle a <enter>. Inicialmente saldrá una pantalla compuesta principalmente por tres datos:

LOCATION :Es el nombre de la región o localidad con la que se va a trabajar, constituye una estructura de datos.

MAPSET:Cada sesión de trabajo se asocia a un MAPSET, en este se guardan todos los mapas generados

DATABASE:Es el directorio de trabajo, donde se almacenaran estas bases de datos.

En este lugar debemos tener cuidado con la digitación ya que si no conocemos la terminal podemos equivocarnos sobretodo al intentar modificar algo. Podemos utilizar una serie de combinaciones de teclas con <ctrl.> las cuales son:

Para confirmar los datos seleccionados debemos pulsar la tecla escape y enter. Si por el contrario queremos cancelar todo se utiliza la tecla <ctrl.> + c.

Cada location puede tener varios mapsets.La razón para tener varios mapsets es poder guardar mapas relacionados a algun aspecto del proyecto. Tambien podemos permitir el trabajo paralelo de usuarios a capas almacenadas dentro del mismo location, por ejemplo. Para trabajos en equipo, una base de datos de GRASS centralizada puede ser creada en un sistema de archivos de red. Además de acceder el propio mapset, cada usuario puede leer capas de otros mapsets, aunque cada usuario solo puede modificar o borrar las capas en su propio mapset.

Cuando se crea un nuevo location, GRASS automáticamente crea un mapset especial llamado PERMANENT donde la información principal del proyecto puede ser almacenada. Los datos en el mapset PERMANENT pueden ser solamente agregados, modificados o borrados por el propietario del mapset PERMANENT. Sin embargo,la información puede ser consultada, analizada y copiados por otros usuarios a sus respectivos mapsets. El mapset PERMANENT es útil para entregar información general, accesible pero protegida contra escritura de todos los usuarios que se encuentran trabajando en el mismo location del propietario de la base de datos. Para manipular o agregar datos al PERMANENT, el propietario debe iniciar GRASS y escoger el location y el "mapset" PERMANENT. Este mapset también contiene el archivo DEFAULT_WIND, el cual almacena los límites de la región por defecto para el location (los cuales todos los usuarios van a heredar cuando inicien la base de datos). Adicionalmente, un archivo WIND es mantenido en todos los mapsets para almacenar los límites actuales y la resolución de los mapas raster de la sesión. Los usuarios tienen la opción de regresar a la región por defecto en cualquier momento.

Instalando Base de Datos

Existen un par de localizaciones de ejemplo para GRASS disponibles para bajar de la red. En este tutorial de la wiki usaremos la localización Spearfish (http://grass.itc.it/download/data6.php), la cual se debe descomprimir en el nuevo directorio para la base de datos. Ejemplo:

cd /home/jpablo/grassdata/ tar -xvzf spearfish_grass60data.tar.gz

Funcionalidad

GRASS es un software para SIG completo, híbrido y estructurado modularmente con funciones ráster y vectoriales. Cada función SIG es administrada por su propio módulo. De esta forma el sistema es claramente estructurado y actúa en forma transparente. Otra ventaja de su modularidad es que únicamente son ejecutados los módulos necesarios, lo cual preserva los recursos del sistema. Actualmente hay disponibles tres interfaces gráficas de usuario de manera adicional a la tradicional consola de comandos. La GUI por defecto es el Administrador GIS (?GisManager). El visor de mapas NVIZ incluye soporte para información ráster y vectorial, visualización de volúmenes, animaciones, perfiles y más. Un proyecto externo, el visor de datos geográficos amigable con el usuario QGIS, proporciona soporte directo para GRASS. Desde la versión 0.7 de QGIS en adelante esta incluida una extensiva interfaz de GRASS con un digitalizador en pantalla y funcionalidades de SIG. También está incluida una nueva herramienta para la producción de mapas en papel. Finalmente, existe JAVAGRASS (JGRASS), que es una herramienta multiplataforma y multisesión. JGRASS prepara a GRASS para ser usado en ambientes de producción, de forma opuesta a los ambientes de investigación. La arquitectura de JGRASS sigue internamente un modelo cliente-servidor, separando la Interfaz Gráfica de Usuario del motor de procesamiento espacial. Esta separación permite el fácil desarrollo de mecanismos de acceso remoto.

Iniciar GRASS

Dependiendo de la versión de grass que instalamos iniciamos grass, para el ejemplo estoy trabajando con la version 6.2.3 y 6.3 asi que podras iniciar ya sea escribiendo en consola:

grass62 ó grass63

Si todo arranco sin problemas debe aparecer una interfaz de usuario,La ruta a la base de datos (“database”) debe ser ingresada en el primer campo. Si usted no conoce acerca de la existencia de bases de datos, cree un directorio nuevo, por ejemplo /home/jpablo/grassdata

Después podemos elegir entre un location existente, que para el ejemplo es spearfish60 o usted puede crear un nuevo location. Podemos ahora seleccionar spearfish60 y crear un nuevo mapset dentro de Spearfish tras ingresar un nuevo nombre, en la derecha de la pantalla de inicio y luego seleccionando el botón “Create”. El nombre del nuevo “mapset” aparecerá en la columna de la mitad; selecciónelo e ingrese a GRASS utilizando el botón Enter GRASS en la esquina inferior izquierda.

Administrador GIS

El administrador GIS debe abrirse automaticamente.Si no es así, inícielo desde la consola con:

'gis.m'

GRASS GIS Manager proporciona una interfaz gráfica interactiva de comandos de GRASS. Por defecto es iniciado automaticamente con cada sesion de grass. Se puede cerrar el administrador del SIG dando click Archivo-> Salir del menú de la parte de arriba.

El Administrador de SIG incluye una serie de menús desplegables para todas las funciones de 'Grass' dos filas de botones que gestionan las capas de pantalla, una ventana en la parte superior para mostrar que las capas se organizan, y una ventana inferior, que contiene las opciones para grupos de capas en la capa de árboles.

http://grass.itc.it/gdp/html_grass63/gm_gismgr.jpg

La parte superior izquierda el botón se abre un nuevo mapa visor. Cada mapa tiene un único conjunto de capas y para mostrar la configuración de región (zoom). Otros botones de añadir capas de diferentes tipos de visualización en el visor del mapa seleccionado.

Las capas se muestran como disponibles en la capa del árbol: la capa inferior se muestra en primer lugar y la parte superior se muestra el pasado, como si las capas se apilan una serie de superposiciones.

Cualquier capa puede ser cambiado de nombre por un doble clic sobre su nombre y escribir un nombre nuevo. Las capas se pueden organizar en grupos de enteros puede activarse o desactivarse para la visualización.Los grupos pueden ser guardados en un archivo y se abrirá en los períodos de sesiones posteriores, tanto la restauración de todas las capas y sus opciones de visualización.

Cuando una capa se selecciona con el mouse, las opciones se muestran en el panel debajo de la capa de árboles ventana. Ayuda para cada tipo de capa se puede acceder pulsando el botón de GRASS en la opción del panel. Cada mapa tiene una única capa de árboles y la configuración de región (zoom). Existen Botones en cada pantalla de mapa para gestionar el mapa en la pantalla, para proporcionar herramientas para la búsqueda y medición de la distancia, y la exportación o la impresión de la pantalla

http://grass.itc.it/gdp/html_grass63/gm_mapdisp.jpg

Una ventana de consola muestra todas las órdenes emitidas y todos los comandos de salida (ventana superior).. GRASS comandos (y cualquier otro Unix / Linux comandos) se puede ejecutar desde la consola (ventana inferior).

http://grass.itc.it/gdp/html_grass63/gm_gronsole.png

http://img269.imageshack.us/img269/2775/pantallazoazx.png

http://img297.imageshack.us/img297/1775/pantallazo1u.png

http://img23.imageshack.us/img23/7286/pantallazo2x.png

http://img297.imageshack.us/img297/1770/pantallazo3p.png

http://img40.imageshack.us/img40/1289/pantallazo4.png

http://img17.imageshack.us/img17/6051/pantallazo5x.png

PostgreSQL

PostgreSQL en GRASS

el nombre del driver es pg

Como se crea una base de datos en PostgreSQl?

Pues suponiendo que lo haremos todo en consola, creamos una base de datos con e el comando createdb

Conectar GRASS a PostgreSQL

db.connect driver=pg database="host=myserver.osgeo.org,dbname=mydb"

# La contraseña se pregunta interactivamente si no se especifica antes db.login user=myname [pass=secret] db.connect -p db.tables -p

Comandos SQL Todos los comandos SQL soportados por PostgreSQL se pueden utilizar dentro de GRASS para poder potenciar el uso de datos geometricos.

Todos los operadores disponibles en PostgreSQL estan para GRASS

Como adicionar una Columna

Importar el modulo vector requiere un unique ID columna la cual puede ser generada en una tabla PostgreSQL asi:

echo "

" | db.execute

Como convertir atributos

CSV importar dentro de PostgreSQL:

\h copy COPY t1 FROM 'filename' USING DELIMITERS ',';

pg2xbase: DBF to PostgreSQL converter.

Geometry import from PostgreSQL table v.in.db creates a new vector (points) map from a database table containing coordinates. See here for examples. PostGIS: PostgreSQL with vector geometry PostGIS: adds geographic object support to PostgreSQL. Example: Import from PostGIS In an existing PostGIS database, create the following table:

CREATE TABLE test (

) WITHOUT OIDS;

# insert value INSERT INTO test (text, wkb_geometry)

# register geometry column select ?AddGeometryColumn ('postgis', 'test', 'geometry', -1, 'GEOMETRY', 2);

GRASS can import this PostGIS polygon map as follows:

v.in.ogr dsn="PG:host=localhost dbname=postgis user=neteler" layer=test \

v.db.select test v.info -t test

Conversiones Geometricas

Referencias

Juan Pablo Barrera Maya Con la asesoria del Docente Carlos Castro

Especiales agradecimientos a cgs_bob del canal #grass de irc.freenode.net


CategoryProposedDeletion : I don't understand the purpose of this page. If the purpose is to present the software, then its duplicating its homepage (grass.itc.it). If the purpose is to analyse the packages, then it duplicates wikipedia. Finally since the software is packaged in Debian, it's Debian "homepage" is grass.