Si se tiene instalado el módulo GeoPandas de Python es muy sencillo realizar este proceso mediante el método 'sjoin' y su parámetro (opción) 'intersects'. Con el ejemplo de la imagen siguiente:
se tiene que el código a continuación produce un shapefile con el resultado esperado.
1 2 3 4 5 6 7 | from geopandas import gpd points = gpd.GeoDataFrame.from_file('/home/zeito/pyqgis_data/random_points.shp') polys = gpd.GeoDataFrame.from_file('/home/zeito/pyqgis_data/polygon8.shp') polyWithPoints = gpd.sjoin(polys, points, op='intersects') polyWithPoints.to_file('/home/zeito/pyqgis_data/polyWithPoints.shp') |
Esto puede ser visualizado en la imagen siguiente cuando se carga el shapefile (en azul) en el Map Canvas de QGIS.
Sin embargo, a pesar de ser un procedimiento muy expedito produce un shapefile con registros repetidos (tantos como puntos existan dentro de los rasgos del polígono):
Para que sea más útil habría que eliminar los registros repetidos antes de grabar como shapefile (disponer de sólo 4 registros en lugar de los 6 mostrados).
No hay comentarios:
Publicar un comentario