Differences between revisions 18 and 19
Revision 18 as of 2009-05-21 19:42:01
Size: 10296
Comment:
Revision 19 as of 2009-05-21 19:43:31
Size: 12783
Comment:
Deletions are marked like this. Additions are marked like this.
Line 106: Line 106:
== 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 "
 ALTER TABLE mytable ADD ID integer;
 CREATE SEQUENCE mytable_seq;
 UPDATE mytabe SET ID = nextval('mytable_seq');
 DROP SEQUENCE mytable_seq;
" | 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
(
 id serial NOT NULL,
 mytime timestamp DEFAULT now(),
 text varchar,
 wkb_geometry geometry,
 CONSTRAINT test_pkey PRIMARY KEY (id)
) WITHOUT OIDS;

# insert value
INSERT INTO test (text, wkb_geometry)
 VALUES ('Name',geometryFromText('POLYGON((600000 200000,650000
 200000,650000 250000,600000 250000,600000 200000))',-1));

# 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 \
         output=test type=boundary,centroid
v.db.select test
v.info -t test

Geometry Converters

    * PostGIS with shp2pgsql:
      shp2pgsql -D lakespy2 lakespy2 test > lakespy2.sql

    * e00pg: E00 to PostGIS filter, see also v.in.e00.

    * GDAL/OGR ogrinfo and ogr2ogr: GIS vector format converter and library, e.g. ArcInfo or SHAPE to PostGIS.

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.

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.

Licencia

Grass esta bajo la licencia GPL (Software libre) , la cual otorga 4 libertades esenciales al usuario, las cuales son:

  • Libertad 0: la libertad de usar el programa, con cualquier propósito
  • Libertad 1: la libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades.
  • Libertad 2: la libertad de distribuir copias, con lo que puedes ayudar a tu vecino.
  • Libertad 3: la libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie.

Grass fue diseñado y desarrollado principalmente para plataformas Unix, es por eso que puedes encontrarlo en los repositorios de varias distribuciones GNU/Linux tales como Debian y ubuntu, aunque existe actualmente un proyecto en curso para trabajar este software en el sistema windows llamado winGRASS GIS, la wiki se centrara y tendra mas enfasis a trabajos sobre sistemas GNU/Linux.

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).

Quantum GIS

Quantum GIS, o mas conocido como QGIS es un sistema libre para el trabajo de Sistemas de información de geografica y que además es multiplataforma, esta licenciado bajo la licencia GPL y es un proyecto oficial de OSGeo( Open Source Geospatial Foundation) Se trabajará paralelamente con QGIS, debido a que este software cuenta con un plugin para la integración del trabajo con GRASS, y porque su interfaz de desarrollo es un poco mas intuitiva y amigable, se encuentra en su vesión mas reciente 1.0.0

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:

  • H retrocede un carácter J avanza a la línea siguiente K vuelve a la línea anterior L avanza una carácter Space avanza carácter o borra caracteres

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

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 "

  • ALTER TABLE mytable ADD ID integer; CREATE SEQUENCE mytable_seq; UPDATE mytabe SET ID = nextval('mytable_seq'); DROP SEQUENCE mytable_seq;

" | 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 (

  • id serial NOT NULL, mytime timestamp DEFAULT now(), text varchar, wkb_geometry geometry, CONSTRAINT test_pkey PRIMARY KEY (id)

) WITHOUT OIDS;

# insert value INSERT INTO test (text, wkb_geometry)

  • VALUES ('Name',geometryFromText('POLYGON((600000 200000,650000 200000,650000 250000,600000 250000,600000 200000))',-1));

# 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 \

  • output=test type=boundary,centroid

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

Geometry Converters

  • PostGIS with shp2pgsql:
    • shp2pgsql -D lakespy2 lakespy2 test > lakespy2.sql

  • e00pg: E00 to PostGIS filter, see also v.in.e00.
  • GDAL/OGR ogrinfo and ogr2ogr: GIS vector format converter and library, e.g. ?ArcInfo or SHAPE to PostGIS.

Referencias


  • I renamed this page because the content is in Spanish, and the convention is to use CamelCase for page names.

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.