El módulo (librería) pyshp como soporte para leer/escribir archivos vectoriales en formato ESRI

Intercambiando impresiones con Óscar Martínez sobre las técnicas de desarrollo Geo espacial con Python, me entero de la salida reciente del libro de Joel Lawhead intitulado Learning Geospatial Analysis with Python. El autor también es el desarrollador del módulo pyshp de python que permite la lectura y escritura de archivos vectoriales en formato ESRI de una manera sencilla utilizando el lenguaje de scripts. Para acceder al módulo en mi sistema Linux Debian bastó con instalarlo, en cónsola y como super usuario, mediante la siguiente instrucción:

.
easy_install pyshp
.

Después de verificar que el módulo se cargaba en el intérprete con import shapefile, me dispuse a probar con un script propio basado en las muestras de código que se colocan en la página del proyecto. El código de prueba fue el siguiente:

#!/usr/bin/env python
#-*coding: utf-8

from os import system
import shapefile as sh

system("clear")

#Define el tipo de shapefile (en este caso de puntos)
w = sh.Writer(sh.POINT)

X = [20076.78391, 20252.80145, 20419.11952, 20459.53253, 20447.66752, 20543.65567, 20528.62193, 20633.37850,
	20623.42964, 20848.66798, 20916.47601, 	21006.62099, 21117.24933, 21157.42487, 21427.70648, 21711.36940,
	21140.45050, 20915.21678, 20814.26600, 	20504.08987, 20205.87493, 19885.44111, 19998.98929]

Y = [20311.38262, 20433.25285, 20463.07165, 20628.19823, 20650.20327, 20623.51222, 20558.22067, 20551.07500,
	20171.70543, 20004.10994, 19695.50159, 	19222.93258, 19116.26058, 19042.07013, 18619.99278, 18134.32407,
	17875.18022, 18197.90513, 18325.58839, 	18730.82569, 19118.79668, 19535.42304, 20001.72725]

#Añade los objeto punto a la capa a través de sus coordenadas 
for i in range(len(X)):
	w.point(X[i], Y[i])

#Identificadores de campo de la tabla atributiva
w.field('id','N','10')
w.field('x','N','40')
w.field('y','N','40')

#Escribe a la tabla atributiva
for i in range(len(X)):
	w.record(i+1, X[i], Y[i])

#Graba el shapefile en la ruta especificada (no requiere la extensión shp)
w.save('Desktop/python/shape_puntos')

con el cual, a su vez, se trata de obtener lo que se presenta en este post:

Point shapefile, con librería ogr de Python, a partir de un archivo de texto plano

Los resultados son los mismos; tal como se observa a continuación en la siguiente imagen:

pyshp

Observen como aproveché, de una vez, para copiar en la tabla atributiva las coordenadas de cada punto. El módulo está escrito en “Python Puro” (como refiere el autor) y se programa con mayor facilidad que con con el módulo ogr de GDAL.

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

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