Skrip dasar untuk mengulang secara rekursif atas sub-folder dan menggabungkan semua shapefile menjadi satu adalah:
#!/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
Arahkan pada semua contoh di web secara vertikal saya perhatikan bahwa untuk kasus di mana saya memperbarui file output, -nln
tag ditambahkan, misalnya:
ogr2ogr -f "ESRI Shapefile" -update -append $consolidated_file $i -nln merged
Menurut dokumentasi itu tertulis:
Tetapkan nama alternatif ke layer baru
Dan saya perhatikan itu menciptakan shapefile sementara yang disebut "digabung", dan pada akhir loop file identik dengan shapefile terakhir yang saya gabungkan.
Saya tidak mengerti mengapa saya membutuhkan ini? Karena saya berhasil bergabung dengan sukses tanpa tag ini.
Shapefile hanya menyertakan satu Dataset (Lapisan), jadi pengaturan nama pengguna tidak diperlukan.
Jika Anda bekerja dengan PostGIS, SQLite, KML dll. Yang dapat menangani banyak lapisan dalam satu file, Anda perlu mengatur -nln. Kalau tidak, layer akan seperti nama file, dan dengan demikian tidak digabung.
sumber