En esta entrada se va a considerar la creación de un shapefile tipo polilínea mediante la librería pyshp. Los valores a ser introducidos en la tabla de atributos se van a leer desde una hoja de cálculo xls que refleja la creación de un campo de nombre code en el shapefile con sólo dos rasgos.
La lista de puntos asociados a cada rasgo es la siguiente:[-40.5, -20.666],[-39.849998, -18.700001] [-39.849998, -18.700001],[-39.816002, -19.6]
El código completo se coloca a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import shapefile import pandas as pd df = pd.read_excel("NI.xls") df.head() w = shapefile.Writer(shapefile.POLYLINE) w.line(parts=[[[-40.5, -20.666],[-39.849998, -18.700001]]]) w.poly(parts=[[[-39.849998, -18.700001],[-39.816002, -19.6]]], shapeType=shapefile.POLYLINE) w.field('code','C','40') for i, row in df.iterrows(): w.record(str(row[0])) filename = "/home/zeito/pyqgis_data/routeNI7" w.save(filename) prj = open("%s.prj" % filename, "w") epsg = 'GEOGCS["WGS 84",' epsg += 'DATUM["WGS_1984",' epsg += 'SPHEROID["WGS 84",6378137,298.257223563]]' epsg += ',PRIMEM["Greenwich",0],' epsg += 'UNIT["degree",0.0174532925199433]]' prj.write(epsg) prj.close() |
Después de ejecutado en la Python Console de QGIS y cargado el shapefile resultante a la Map View de QGIS se obtiene el resultado esperado:
No hay comentarios:
Publicar un comentario