Un shapefile es un formato de archivo geoespacial utilizado para representar características geográficas en un sistema de información geográfica (GIS, por sus siglas en inglés).
Consiste en varios archivos relacionados entre sí, que en conjunto contienen información sobre la forma, la ubicación y las características de los elementos geográficos, tales como líneas, puntos o polígonos. Los archivos que componen un shapefile incluyen un archivo de coordenadas, que define las ubicaciones espaciales de los elementos, así como archivos de atributos, que contienen información sobre las características y propiedades de los elementos. Desde geopandas
podemos leer este formato de archivos y utilizar los datos que contenga.
Una de las desventajas de este formato es que al usar varios archivos por cada shapefile administrarlos puede llegar a ser complicado, por lo que guardarlos dentro de un archivo ZIP simplifica el manejo de los archivos y ahorra espacio, pero ya no podremos leerlos directamente desde geopandas
, para eso les comparto el código que nos permitirá cargar nuestros shapefiles (recuerda tener instalado geopandas esto dependerá de tu sistema operativo).
Dataset para hacer pruebas https://www.kaggle.com/datasets/nswitzer/usa-state-shapeflies
import geopandas as gpd
import io
import fiona # se instala junto con pandas
zipshp = io.BytesIO(open('./shapefile.zip', 'rb').read())
with fiona.BytesCollection(zipshp.read()) as src:
crs = src.crs
gdf = gpd.GeoDataFrame.from_features(src, crs=crs)
print(gdf.head())