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.