Convertir un Excel a un Shapefile de puntos con Python, Fiona y Pandas - Tutorial

fromExceltoShp.jpg

Hemos realizado un tutorial con un procedimiento alternativo en Python con Pandas y Fiona de un proceso común pero de varios pasos para crear shapefiles de puntos a partir de hojas de cálculo de Excel. El proceso implica algunas líneas de código para leer el archivo de Excel, definir la estructura del shapefile de salida y escribir los datos de puntos.

Código

Este es el código Python completo que se usa en este tutorial:

#import required packages
import fiona
import pandas as pd
from collections import OrderedDict
#open a total coliform table
totalColi = pd.read_excel('../tab/totalColiforms.xls', index_col=0)
totalColi.head()
X Y CF 4
ID
CAL-10 -77.211111 -12.063611 2.0
CAL-11 -77.167111 -12.052917 1.8
CAL-12 -77.193944 -12.063750 1.8
CAL-13 -77.175306 -12.063639 2.0
CAL-21 -77.189250 -12.100019 1.8
#check the data types
totalColi.dtypes
X       float64
Y       float64
CF 4    float64
dtype: object
#exporting resulting data as geopackage

#create schema and define crs
schema = {'properties': OrderedDict([('obsName', 'str'),('CF 4', 'float')]), 'geometry': 'Point'}
crs = {'init': 'epsg:4326'}

#open output shapefile
coliShp = fiona.open('../shps/totalColiforms.shp',mode='w',schema=schema,driver='ESRI Shapefile',crs=crs)

for index, line in totalColi.iterrows():
    feature = {
    'geometry':{'type':'Point','coordinates':(line.X,line.Y)},
    'properties':OrderedDict([('obsName',index),('CF 4',line['CF 4'])])
    }
    coliShp.write(feature)
coliShp.close()

Tutorial

Datos de entrada

Puede descargar los datos de entrada de este enlace.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Posted on November 19, 2020 and filed under TutorialQGIS, TutorialPython.