Mostrando las entradas con la etiqueta sigs. Mostrar todas las entradas
Mostrando las entradas con la etiqueta sigs. Mostrar todas las entradas

miércoles, septiembre 09, 2009

Migrando capas shape (.shp) a postgis

El tema de pasar capas .shp a postgis, no sé sí será una manía, pero el tema de acceso a bases de datos contra el acceso a archivos no lo creo...

Resulta que en el trabajo, hay un poco de gente haciendo capas y capas de mapas en software propietario... alguna vez pregunté (en pasillo) sí se habían puesto de acuerdo sobre algunas normas para hacer esas capas y me miraron como sí gubiera hablado en húngaro! y pensé... coño!

No me equivoqué... cuando me dieron la tarea de montar un servidor de mapas y empecé a pedir las capas, empezaron mis dolores de cabeza... ahora, me toca ver cómo hacer, y escribir (acá) para que la cosa funcione...

Vale decir que no tengo conocimientos en el tema de cartografía... por ahora...

Existen varias formas, una de ellas es con el comando shp2pgsql, otra con QGis y otra con gvSIG (esas son las que yo conozco)...

shp2pgsql: debería funcionar con algo parecido a esto
shp2pgsql -W UTF-8 .shp <schema>.<tablename> ><filename>.sql
pero yo obtuve un mensaje de error por la codificación en la que está hecha la capa, o la mala norma de los atributos

Finalmente amprendí algo sobre el estándar a seleccionar para que la cosa funcione. No significa que haya entendido, pero lo aprendí. Existe algo que se llama Sistema de Coordenadas Proyectadas y Sistema de Coordenadas Geográficas, ambas tienen como Sistema de Coordenadas de Referencia WGS84, pero la primera utiliza UTM y al segunda no, de manera que para la región Los Andes (Venezuela) sería para el primer caso SRC: EPSG 32619 que tiene WGS84 / UTM 19N y para el segundo caso SRC: EPSG 4326. De manera que es importante recordar este detalle para las propiedades de los proyectos y capas...

QGis:
  • verifico en las propiedades del proyecto que el Sistema de Referencia de Coordenadas (SRC) esté en WGS 84 (EPSG 4326 o 32619 según sea el caso)
  • Añado la capa vectorial (.shp)
  • verifico las propiedades de la capa que tenga el datum WGS 84
Importando la capa (.shp) a PostGIS:
  • Deseleccionar la opción Usar SRID por omisión o especificar aquí (que trae por defecto -1)
  • cambiar el -1 por 4326 (o el que corresponda)
  • añadir la capa
  • ok
gvSIG:
  • Agragar una vista nueva
  • Verificar en Propiedades la Proyección Actual, que por defecto viene en 23030 (España), con lo cual seleccionamos 4326 o 32619 (u otra, según sea el caso)
  • Click al botón Abrir, para añadir una capa .shp
  • Al seleccionar la opción de añadir una capa, verificamos que tenga en Proyección Actual, el mismo valor que hemos puesto a la vista. Añadios la capa
  • Seleccionada la capa a exportar, menú -> capa -> exportar -> postgis
  • llenamos los datos que nos solicitan (nombre de la tabla, datos para la conexión con la BD) y listo!
En todo esto, seguro hay algunas otras consideraciones a tomar en cuenta. Sí algiuen las sabe, paselas, sino, esperémos a descubrirlas...

martes, septiembre 08, 2009

Preparando un entorno SIG en Debian Lenny

Para la presentación de datos georeferenciados, a través de un servicio web, voy a instalar un servidor de mapas. Ahora no recuerdo los detalles porque ya lo tengo instalado, pero trataré de ir corrigiendo en caso de que haga falta.

aptitude install cgi-mapserver mapserver-bin mapserver-doc gdal-bin proj proj-bin proj-data php5-mapscript

Sí algo me falta, es probable que aptitude se los traiga. con esto ya quedaría instalado el servidor de mapas.

Cómo accederlo todavía estoy revisando la doc, pero en un navegador al teclear http://localhost/cgi-bin/mapserv te debería devolver algo como No query information to decode. QUERY_STRING is set, but empty.lo que dice que ya está funcionando. Una vez se tenga una capa para mostrar, también se puede cargar vía http://localhost/tu_path_al_template/

El qué y cómo mostrar, vienen en la próxima entrega del blog... generar el mapfile y trabajar con la plantilla, que por ahora, me tiro a OpenLayers

viernes, abril 17, 2009

Conectar Postgis a Postgresql

Hola... como siempre, esto es para yo tener dónde buscar cuando se me olviden las cosas... sí de paso le sirve a alguien, pues... quizás publique mi número de cuenta por sí quieren donar algo, jajajaja, es broma...

Para que una BD (en Postgresql), pueda servir a efectos de un SIG, debemos trabajar con Postgis, de manera que, creamos la BD:
CREATE DATABASE mapas;
CREATE LANGUAGE plpgsql;

Obviamente debemos tener instalado postgis, que en Debian es suficiente con aptitude install postgresql-tuversion-postgis (por si dudas, aptitude search postgis), con lo que en /usr/share/postgresql-miversion-postgis/ tengo los .sql necesarios.

psql -d mapas -f lwpostgis.sql
psql -d mapas -U carbonara -f spatial_ref_sys.sql

y listo! ya la BD mapas se puede utilizar como almacen de un SIG