Desarrollo Geoespacial con Python en Linux Debian

A raíz de la lectura del artículo de Martin Laloux sobre “Python, módulos espaciales, programas SIG y controversias”, descubrí el libro de Eric Westra titulado “Python Geospatial Development”. El libro es un excelente tutorial que, a través de 12 capítulos, enseña cómo acceder, manipular y desplegar datos geoespaciales de manera eficiente usando una amplia variedad de herramientas de Python y Open Source para el desarrollo SIG. El software requerido por el libro es el siguiente:

    • Python versión 2.x (minimo la 2.5)
    • GDAL/OGR versión 1.7.1 o posterior
    • GEOS versión 3.2.2 o posterior
    • Shapely versión 1.2 o posterior
    • Proj versión 4.7 o posterior
    • pyproj versión 1.8.6 o posterior
    • MySQL versión 5.1 o posterior
    • MySQLdb versión 1.2 o posterior
    • SpatiaLite versión 2.3 o posterior
    • pysqlite versión 2.6 o posterior
    • PostgreSQL versión 8.4 o posterior
    • PostGIS versión 1.5.1 o posterior
    • psycopg2 versión 2.2.1 o posterior
    • Mapnik versión 0.7.1 o posterior
    • Django versión 1.2 o posterior

el cual he podido comprobar que está completamente a la disposición en los repositorios de la versión estable de Linux Debian. Para introducir alguna de las más fáciles, pero no menos útiles, de las aplicaciones del libro vamos a referirnos al módulo pyproj. Este puede ser instalado en Debian, como superusuario, con el típico:

aptitude install python-pyproj

En Windows XP, como tengo instalada la versión 2.7 de Python, me funciona la siguiente:

pyproj 1.8.9 windows 32 bit installer for python 2.7

Con pyproj se va a probar el código que se encuentra al principio de la página 13 pero con condiciones propias para efectos de comparación. Este código determina la distancia entre dos puntos usando los valores de longitud y latitud (coordenadas geográficas en grados decimales) empleando como base para el cálculo el elipsoide WGS84. Las condiciones particulares corresponden a las de un vectorial de línea generado, mediante Python y GRASS-Script, a partir del centroide y su vértice más alejado en un polígono. Como el vectorial fue generado en ambiente de GRASS-QGIS se exportó como *.shp mediante el módulo v.out.ogr, se reproyectó a coordenadas geográficas-WGS84 y luego, en modo de edición y con el complemento Numerical Vertex Edit de QGIS, se copiaron las siguientes coordenadas:

-67.9766140755,9.36642904389
-67.4801781185,9.48364826587 

El script quedó finalmente de esta forma:

import pyproj
lat1,long1 = (9.36642904389,-67.9766140755)
lat2,long2 = (9.48364826587,-67.4801781185)
geod = pyproj.Geod(ellps="WGS84")
angle1,angle2,distance = geod.inv(long1, lat1, long2, lat2)
print "Distance is %0.2f meters" % distance

cuya ejecución produjo el siguiente resultado:

Distance is 56042.15 meters

que representa una diferencia de 8.73 metros con respecto al valor de 56033.42 m, es decir, de apenas 0.016 %.

Esta entrada fue publicada en Código Python, SIG, Software Libre. Guarda el enlace permanente.

2 respuestas a Desarrollo Geoespacial con Python en Linux Debian

  1. Pingback: Distancia entre dos puntos de la superficie terrestre mediante la fórmula de Haversine con Python |

  2. Pingback: Análisis preliminar de shapefiles usando módulo OGR de Python |

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