Tengo un shapefile con muchos polígonos grandes y me gustaría procesar cada polígono individualmente porque las operaciones espaciales en todo el conjunto de datos son demasiado grandes para la memoria. Por ejemplo, iterar el shapefile, almacenar cada polígono, calcular las estadísticas zonales y almacenar los resultados como un único geodataframe.
¿Podemos iterar a través del marco de datos de las geopandas para amortiguar cada polígono por separado?
Mi código inicial no parece actualizar el área del geodataframe después del buffering.
import geopandas as gpd
#import rasterio
fp = r"E:\Polygon_Features.shp"
data = gpd.read_file(fp)
print(data.area)
data_buffer = data.copy()
for index, row in data_buffer.iterrows():
row['geometry'] = row['geometry'].buffer(500)
print(data_buffer.area)
1 votos
No soy exactamente una persona de pandas, pero parece como si hubieras hecho una copia del contenido de un flujo de sólo lectura, sin ningún intento de escritura.