Carnet Wiki

Script merge_trees pour fusionner des jeux de tiles GIS

Version 2 — il y a 4 mois JLuc

Contexte : https://discuter.spip.net/t/gis-et-les-fonds-de-carte-stamen/171775

Lorsque le script gettiles a permis de récupérer plusieurs jeux de tiles GIS, il devient possible de les manipuler, d’en changer le format ou de les fusionner.

Le script suivant parcourt l’arborescence des tiles de 2 jeux de tuiles récupérées par gettiles (un fond de carte et un jeu de labels) et les superpose. Il est ainsi possible d’afficher le même rendu (fond de carte + labels) en un seul jeu de tuile, consommant donc 2 fois moins de bande passante.

Dans le paramétrage ici, ça se limite aux zooms 1 à 12 et ça convertit en plus au format webp les tiles résultant de la superposition, avec une qualité de 80.

# Superpose les fichiers .jpg d'un jeu de tuile et produit un jeu de tuiles webp


superpose_arbo() {
  local main_one_folder="$1"
  local main_two_folder="$2"
  local merge_folder="$3"
    
  for subfolder in $(seq 0 12); do
    mkdir -p "$merge_folder/$subfolder"


for subsubfolder_path in "$main_one_folder/$subfolder"/*/; do
      subsubfolder=$(basename "$subsubfolder_path")
      mkdir -p "$merge_folder/$subfolder/$subsubfolder"


for file_one in "$main_one_folder/$subfolder/$subsubfolder"/*.*; do
        file_two="$main_two_folder/$subfolder/$subsubfolder/$(basename "$file_one")"
        output_file="$merge_folder/$subfolder/$subsubfolder/$(basename "$file_one" .jpg).webp"
        convert "$file_one" "$file_two" -composite -quality 80 "$output_file"
      done
    done
  done
}


if [ "$#" -ne 3 ]; then
  echo "Usage: $0 <MainOne_folder> <MainTwo_folder> <Destination_folder>"
  exit 1
fi


mkdir -p "$3"
superpose_arbo "$1" "$2" "$3"

Voir ensuite : Script gettiles.sh : récupérer localement un jeu de tuiles GIS