El script básico para iterar recursivamente sobre subcarpetas y fusionar todos los shapefiles en uno solo es:
#!/bin/bash
consolidated_file="./consolidated.shp"
for i in $(find . -name '*.shp'); do
if [ ! -f "$consolidated_file" ]; then
# first file - create the consolidated output file
ogr2ogr -f "ESRI Shapefile" $consolidated_file $i
else
# update the output file with new file content
ogr2ogr -f "ESRI Shapefile" -update -append $consolidated_file $i
fi
done
Hoverer en vertaully todos los ejemplos en la web me di cuenta de que para el caso donde actualizo el archivo de salida, -nln
se agrega la etiqueta, por ejemplo:
ogr2ogr -f "ESRI Shapefile" -update -append $consolidated_file $i -nln merged
Según la documentación dice:
Asignar un nombre alternativo a la nueva capa.
Y noté que crea un archivo de forma temporal llamado "fusionado", y al final del bucle el archivo es idéntico al último archivo de forma que fusioné.
No entiendo por qué necesito esto? Porque logré fusionarme exitosamente sin esta etiqueta.