Carnet Wiki

Script merge_trees pour fusionner des jeux de tiles GIS

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 en générant un fichier webp.

Avec ce nouveau jeu de tuiles, il devientainsi 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 aussi 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 : Script gettiles.sh : récupérer localement un jeu de tuiles GIS pour initialement récupérer les jeux de tuiles.

JLuc - Mise à jour :6 décembre 2023 à 09h01min