Commande mergeNtiff

Création d'une image TIFF géoréférencée à partir de plusieurs images sources géoréférencées

Auteur
Institut national de l'information géographique et forestière

L'implémentation de cette commande se trouve dans le fichier mergeNtiff.cpp

Pour réaliser la fusion des images en entrée, on traite différemment :

  • les images qui sont superposables à l'image de sortie (même SRS, mêmes résolutions, mêmes phases) : on parle alors d'images compatibles, pas de réechantillonnage nécessaire.
  • les images non compatibles mais de même SRS : un passage par le réechantillonnage (plus lourd en calcul) est indispensable.
  • les images non compatibles et de SRS différents : un passage par la reprojection (encore plus lourd en calcul) est indispensable.

Détails du chaînage des différentes classes d'image :

--- config: theme: neutral flowchart: htmlLabels: false --- flowchart TB img1@{ shape: proc, label: "FileImage"} img1_notes@{ shape: braces, label: "1 par image en entrée en lecture avec un éventuel convertisseur"} img1 -.- img1_notes subgraph paquet[" "] direction TB img2@{ shape: proc, label: "MirrorImage"} img2_notes@{ shape: braces, label: "4 par image en entrée si reprojection ou réechantillonnage"} img2 -.- img2_notes img3@{ shape: proc, label: "ExtendedCompoundImage"} img3_notes@{ shape: braces, label: "1 par paquet d'image en entrée compatibles entre elles"} img3 -.- img3_notes subgraph styled["Si un style est appliqué"] direction TB subgraph img4["Au choix"] direction LR img41@{ shape: proc, label: "EstompageImage"} img42@{ shape: proc, label: "PenteImage"} img43@{ shape: proc, label: "AspectImage"} img41 ~~~ img42 ~~~ img43 end img4_notes@{ shape: braces, label: "Si le style contient une section associée"} img4 -.- img4_notes img5@{ shape: proc, label: "PaletteImage"} img5_notes@{ shape: braces, label: "Si le style contient une palette non vide"} img5 -.- img5_notes end subgraph img6["Au choix"] direction LR img61@{ shape: proc, label: "None"} img62@{ shape: proc, label: "ResampledImage"} img63@{ shape: proc, label: "ReprojectedImage"} end end paquet_notes@{ shape: braces, label: "Par paquet d'images en entrée compatibles entre elles"} paquet -.- paquet_notes img7@{ shape: proc, label: "ExtendedCompoundImage"} img3 -- en fin des images sources --> img1 img3 -- en tête des images sources --> img2 --> img1 img5 --> img4 styled --> img3 img7 -- "Si le paquet d'images en entrée est en phase avec la sortie" --- img61 img7 -- "Si le paquet d'images en entrée a la même projection que la sortie déphasé" --> img62 img7 -- "Si le paquet d'images en entrée a une projection différente de la sortie" --> img63 img6 --> styled img8@{ shape: proc, label: "FileImage"} img8_notes@{ shape: braces, label: "image en sortie en écriture"} img8 -.- img8_notes img7 write@-- est lue ligne par ligne pour écrire --> img8 write@{ animate: true } classDef optionnal stroke-dasharray: 5 5; class img2,img41,img42,img43,img5,styled optionnal class img61 invisible