Podstawowym skryptem w celu iteracyjnego rekurencyjnego przechodzenia między podfolderami i scalania wszystkich plików kształtów w jeden jest:
#!/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
Hoverrer we wszystkich przykładach w Internecie zauważyłem, że w przypadku aktualizacji pliku wyjściowego -nln
dodaje się znacznik, na przykład:
ogr2ogr -f "ESRI Shapefile" -update -append $consolidated_file $i -nln merged
Zgodnie z dokumentacją mówi:
Przypisz alternatywną nazwę do nowej warstwy
Zauważyłem, że tworzy tymczasowy plik kształtu o nazwie „scalony”, a na końcu pętli plik jest identyczny z ostatnim scalonym plikiem kształtu.
Nie rozumiem, dlaczego tego potrzebuję? Ponieważ udało mi się scalić bez tego znacznika.