Importación en Postgis de archivos vectoriales (shp, kml, csv) mediante ogr2ogr

Continuando con la exploración de métodos expeditos para poblar o explorar nuestras bases de datos PostgreSQL+Posgis por vías alternas a los comandos usuales de estos últimos, encontré el manual de un Curso realizado en Tegucigalpa, elaborado por Micho García y Jorge Arévalo, donde se detallan, entre otras, las formas de importar diferentes tipos de archivos vectoriales mediante el comando ogr2ogr.

Para la importación tomaré los vectoriales de ejemplo que allí se señalan para los archivos kml (0NnjVSu3.kml; renombrado como firenews.kml) y csv (Global_24h.csv). Para el shapefile, que no se menciona porque usan shp2pgsql, utilicé el correspondiente a las Capitales de Distrito del Perú (CCPP_CAPITAL.shp).

Para el shapefile, en consola de bash, se ejecuta el comando:

ogr2ogr -a_srs epsg:4326 -f "PostgreSQL" PG:"dbname=world_borders host=localhost user=zeito password=my_password port=5432" CCPP_CAPITAL.shp

y cuando conectamos a la base de datos con QGIS se tiene:

ogr2ogr1

Este es el comando para cargar el kml.

ogr2ogr -a_srs epsg:4326 -f "PostgreSQL" PG:"dbname=world_borders host=localhost user=zeito password=my_password port=5432" firenews.kml

Como siempre, en QGIS, varios campos NULL para los kml. En ArcGis generalmente no pasa pero, en este caso particular, no lo he probado. A continuación el resultado visualizado en QGIS:

ogr2ogr2

Finalmente, para el CSV, tenemos que crear el correspondiente archivo vrt (según las recomendaciones de http://www.gdal.org/drv_vrt.html):

<OGRVRTDataSource>
        <OGRVRTLayer name="Global_24h">
                <SrcDataSource>Global_24h.csv</SrcDataSource>
                <GeometryType>wkbPoint</GeometryType>
                <LayerSRS>EPSG:4326</LayerSRS>
                <GeometryField encoding="PointFromColumns" x="longitude" y="latitude"/>
        </OGRVRTLayer>
</OGRVRTDataSource>

el cual nombramos como incendios_modis.vrt. Con el archivo csv (Global_24h.csv) y el vrt (incendios_modis.vrt) en el mismo directorio ejecutamos el comando siguiente:

ogr2ogr -a_srs epsg:4326 -f "PostgreSQL" PG:"dbname=world_borders host=localhost user=zeito password=my_password port=5432" incendios_modis.vrt

El resultado lo tenemos a continuación en QGIS:

ogr2ogr3

Esta entrada fue publicada en Postgres+postgis, SIG. Guarda el enlace permanente.

2 respuestas a Importación en Postgis de archivos vectoriales (shp, kml, csv) mediante ogr2ogr

  1. Ito Vela dijo:

    Estimado José Guerrero. Felicitaciones por tu excelente trabajo de divulgación acerca QGIS. Quisiera preguntarte si has publicado un articulo similar o relacionado con la interrelación de QGIS con MySQL. Gracias: Ito Vela, ito@gmail.com

  2. Pingback: Importación en Postgis de shapefiles mediante ogr2ogr en un script de Python | El Blog de José Guerrero

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s