Photos sur une carte dans QGIS

Vous disposez de relevés terrain avec de magnifiques clichés. Vous voulez afficher ces photos sur une carte dans QGIS. Alors, ce tutoriel SIG vous montre trois manières de géolocaliser des photos sur le logiciel.

  1. La première technique de géolocalisation des photos comporte plusieurs étapes. (I.1) Elle enseigne comment extraire les longitudes et les latitudes des photos depuis ExifTool. (I.2) Puis, cette extraction d’information géographique permet la création d’un vecteur. (I.3) Vous paramétrez la table attributaire de la donnée afin d’associer des pièces jointes à des géométries. (I.4) Enfin, les photos sont affichées sur la carte grâce à une action.
  2. La fonctionnalité de QGIS « géolocalisation des photos » simplifie les trois étapes (I.1 à I.3).
  3. L’extension QGIS ImportPhotos inclue les quatre étapes de la première méthode de localisation des photos sur une carte.

Les photos sont acquises par drone dans le sud du Morbihan entre Lorient et Vannes pour cet exemple (figure 1).

photos acquises par drone dans le sud du Morbihan
Figure 1 : Échantillon des photos acquises par drone dans le sud du Morbihan.

I. Techniques de localisation des photos sur une carte

I.1. ExifTool : Extraction des coordonnées géographiques des photos

Une photo possède de nombreuses informations associées à la date, aux caractéristiques de l’appareil et au lieu de la prise de vue. Vous pouvez voir ces métadonnées avec différents logiciels comme par exemple Gimp ou ExifTool. L’application ExifTool permet d’extraire les longitudes et les latitudes des photos en ligne de commande. Vous pouvez télécharger l’exécutable Windows directement sur le site d’ExifTool et le dézipper. Vous paramétrez les variables d’environnement Windows afin que l’OS associe l’utilitaire au chemin de l’exécutable exiftool.exe. Puis, vous saisissez la ligne suivante dans l’invite de commande Windows pour lire les métadonnées d’une photo :

exiftool {nom du fichier}

La figure 2 montre une extraction des métadonnées de la photo choisie avec notamment les longitudes et les latitudes.

Extraction des métadonnées de la photo avec ExifTool
Figure 2 : Extraction des métadonnées de la photo avec ExifTool.

ExifTool possède plusieurs options en ligne de commande. Vous extrayez les longitudes et les latitudes des fichiers respectivement grâce aux options -gpslongitude et -gpslatitude. -directory correspond au chemin des fichiers et -filename au nom du fichier. Le traitement de toutes les photos d’un répertoire et de sous-répertoires est possible avec l’argument -r (Recursively process subdirectories). Plusieurs formats de sortie sont disponibles comme par exemple -T pour lister les informations en tableur ou en format csv (-csv). On a donc :

exiftool -directory -filename -gpslatitude -gpslongitude -T -r {chemin des photos} > data.txt

Une extraction des informations du fichier produit est visible sur la figure 3 ci-après. On note que les coordonnées géographiques sont en Degrés Minutes Secondes (DMS, en anglais Degrees, Minutes, and Seconds).

Extraction des informations géographiques des photos
Figure 3 : Extraction des informations géographiques des photos.

I.2. Création de la couche SIG avec le fichier texte

Dans cette section, vous créez la couche SIG à partir du fichier texte contenant les coordonnées géographiques. Puis, vous formatez la table attributaire de la donnée pour associer chaque photo à la géométrie.

Un vecteur est par définition un objet géographique avec une ou plusieurs géométries associés à des informations attributaires. Le fichier texte contient les données spatialisées nécessaires à la création de la géométrie ponctuelle. Enfin, le chemin et le nom de chaque photo sont des attributs liés à la localisation de la prise de vue.

I.2.1. Ajout d’une couche de texte délimité

Dans QGIS, vous ajoutez une couche de texte délimité en important le fichier data.txt. Une nouvelle fenêtre apparaît dans QGIS (figure 4). Vous pouvez nommer la couche SIG qui sera créée. Ensuite, vous paramétrez les caractéristiques des données du fichier texte :

  • le format de fichier : les valeurs attributaires sont séparées par des tabulations Tab.
  • les options des champs et enregistrements : vous décochez les en-têtes en première ligne puisqu’aucun nom de colonne n’apparaît dans le fichier.
  • la définition de la géométrie : la géométrie est de type ponctuel. Vous choisissez la longitude pour le champ X et la champ Y pour la latitude. Si le fichier possède une donnée d’altitude, vous pouvez l’affecter au champ Z. Les coordonnées sont de type DMS en système de coordonnées de référence EPSG:4326 – WGS 84.
  • enfin, les paramètres de la couche : vous pouvez sélectionner la création d’un index spatial.
Création de la couche SIG avec la localisation des photos.
Figure 4 : Création de la couche SIG avec la localisation des photos.

Vous visualisez un échantillon de la table attributaire de la couche créée. Le fichier texte n’ayant pas d’en-tête, les noms des champs commencent par le préfixe field_.

Enfin, vous ajoutez la couche qui apparaît dans le panneau des couches et sur le canevas de la carte (figure 5). Vous ouvrez la table attributaire afin de vérifier rapidement les valeurs insérées.

Localisation des photos sur la carte dans QGIS
Figure 5 : Localisation des photos sur la carte dans QGIS.

I.2.2. Modification des champs de la table attributaire

Attention, la couche créée est temporaire. Vous devez enregistrer la couche en fichier natif par exemple en format shapefile afin de modifier la structure de la table attributaire. Puis, Vous changez les noms des champs attributaires dans les propriétés de la couche SIG dans l’onglet Champs (figure 6).

Modification des champs de la table attributaire dans les propriétés de la couche.
Figure 6 : Modification des champs de la table attributaire dans les propriétés de la couche.

I.2.3. Création d’un nouveau champ dans la table attributaire

La calculatrice de champ de QGIS permet la création d’un nouveau champ dont les valeurs sont issues d’une expression (figure 7). Vous créez un nouveau champ de type texte nommé photo par exemple. La valeur insérée est la concaténation du champ représentant le chemin de la photo et celui du nom de la photo. Alors, vous saisissez dans le formulaire d’expression :

concat( "chemin" ,'/', "fichier" )

chemin et fichier correspondent aux noms des champs de la table attributaire précédemment modifiés. Enfin, vous sélectionnez OK pour créer le nouveau champ de la couche SIG.

Création d'un nouveau champ attributaire dans QGIS.
Figure 7 : Création d’un nouveau champ attributaire dans QGIS.

I.3. Formater la table attributaire pour associer les photos

Les champs attributaires sont définis par des types de données comme un texte, un nombre, une date, etc. Vous formatez les champs de la table afin de retourner une valeur prédéterminée. Cela guide également l’utilisateur dans le choix de la valeur à saisir. Par exemple, vous pouvez utiliser un calendrier pour un champ attributaire de type date. De nombreux types de formulaires existent dans les propriétés de la couche SIG en sélectionnant modification des champs attributaires.

Ici, vous devez définir le champ attributaire contenant le chemin et le nom de la photo en format pièce jointe (figure 8). En clair, QGIS associe la valeur textuelle du chemin de la photo à une image. Or, vous avez déjà créé ce champ attributaire nommé photo dans la section précédente.

Formatage d'un champ attributaire pour une photo
Figue 8 : Formatage d’un champ attributaire pour une photo.

I.4. Affichage des photos sur la carte

Vous pouvez afficher une photo sur une carte QGIS :

  • en cliquant simplement sur l’identification de l’objet géographique (I.4.1);
  • par la création d’une action (I.4.2).

I.4.1. Affichage simple des photos

L’identification d’une entité géographique ouvre le panneau des résultats présentant les valeurs attributaires. L’affichage normal montre le chemin absolu ou relatif et le nom de la photo. Si vous changez le mode d’affichage des résultats via l’icône ci-dessous alors la photo s’affiche dans le panneau lors de l’identification sur le canevas de la carte (figure 9).

Identification de la photo sur la carte.
Figure 9 : Identification de la photo sur la carte.

I.4.2. Créer une action dans QGIS pour montrer les photos

QGIS permet la création d’action lors de la sélection de l’entité géographique sur le canevas de la carte. Vous ajoutez une action dans les propriétés de la couche SIG. Dans la fenêtre (figure 10), vous choisissez le type d’action « Ouvrir » puis vous décrivez l’action. Les champs d’application de l’action concernent l’Entité géographique sélectionnée et le Canevas. Puis, vous insérez le champ attributaire contenant le chemin et le nom des photos dans le texte de l’action.

Création d'une action dans QGIS pour montrer une photos sur la carte.
Figure 10 : Création d’une action dans QGIS pour montrer une photos sur la carte.

Puis, vous devez sélectionner l’action souhaitée dans la barre d’outils. Enfin, la sélection d’un point sur la carte génère l’ouverture d’une photo dans un autre applicatif que QGIS.

Affichage de la photo sur la carte par l'action de QGIS.
Figure 11 : Affichage de la photo sur la carte par l’action de QGIS.

Vous trouvez toutes ces étapes chronophages pour localiser les photos sur une carte? Alors, la section suivante vous présente une fonctionnalité native de QGIS qui synthétise les étapes I.1 à I.3.

II. Géolocalisation des photos dans la boîte à outils de QGIS

La fonctionnalité « Importer des photos géolocalisées » se trouve dans la boîte à outils de QGIS (figure 12). Les paramètres proposent de choisir le dossier source contenant les photos. Et, le scan récursif prend en charge les fichiers des sous-répertoires du dossier source comparable à la commande -r d’ExifTool.

Figure 12 : Fonctionnalité "Importer des photos géolocalisées" dans QGIS.
Figure 12 : Fonctionnalité « Importer des photos géolocalisées » dans QGIS.

Le vecteur créé est de type ponctuel. Comme le montre la figure 13, les informations des photos retenues dans la table attributaire sont :

  • photo : le chemin et le nom de la photo;
  • filename : nom du fichier;
  • directory : le répertoire de la photo;
  • altitude : l’altitude de la prise de vue si disponible;
  • direction : la direction de la prise de vue si disponible;
  • rotation : la rotation de la photo si disponible;
  • la longitude et la latitude;
  • timestamp : la date de la prise de vue.
Informations attributaires du vecteur représentant la géolocalisation des photos.
Figure 13 : Informations attributaires du vecteur représentant la géolocalisation des photos.

Vous remarquerez le formatage du champ photo en pièce jointe dans les propriétés de la couche créée. Cela favorise l’affichage d’une photo sur la carte par l’identification de l’objet géographique ponctuel.

III. Extension QGIS ImportPhotos

L’extension QGIS ImportPhotos garantie une prise en charge plus approfondie d’un répertoire contenant des photos.

III.1. Installation du plugin QGIS

Le plugin ImportPhotos est disponible dans le dépôt officiel de QGIS depuis la version 2.0.0 du logiciel. Plus de détails sont disponibles sur le site de QGIS. Dans la barre des menus Extensions, sélectionnez Installer/Gérer les extensions. La fenêtre des extensions met à disposition un moteur de recherche pour trouver plus rapidement le plugin souhaité. Vous sélectionnez ImportPhotos (figure 14) puis le bouton Installer le plugin ajoute le module dans QGIS.

Installation du plugin ImportPhotos dans QGIS.
Figure 14 : Installation du plugin ImportPhotos dans QGIS.

III.2. Utilisation de l’extension ImportPhotos

L’extension ImportPhotos se situe dans le menu Extensions. Trois icônes sont associées. Le premier permet d’importer toutes les photos depuis un répertoire. Le fichier vectoriel en sortie est un geopackage contenant les objets géographiques des photos. Les attributs associés au vecteur sont plus nombreux que l’outil « Importer des photos géolocalisées » de QGIS. Les informations concernant le capteur de l’appareil photo figurent dans la table attributaire.

Extension pour importer des photos dans QGIS.
Figure 15 : Extension pour importer des photos dans QGIS.

L’extension ImportPhotos favorisent également le défilement des photos dans le logiciel QGIS avec la sélection de l’entité ponctuelle concernée (figure 16).

Défilement des photos importées et géolocalisées dans QGIS.
Figure 16 : Défilement des photos importées et géolocalisées dans QGIS.

En conclusion, ce tutoriel SIG a montré comment afficher des photos sur une carte dans QGIS. Trois solutions différentes génèrent la création d’un vecteur de type MultiPoint. Chaque photo importée depuis un répertoire représente une entité géométrique de la couche SIG. Ainsi, la première méthode utilise l’outil ExifTool qui extrait les longitudes et les latitudes des photos. Le fichier en sortie est ensuite transformé en vecteur dans QGIS. Le formatage du champ attributaire en pièce jointe associe la valeur textuelle du chemin de la photo à la représentation de l’image. Enfin, le mode action génère l’affichage de la photo lors de la sélection de la géométrie ponctuelle sur le canevas de la carte. La seconde technique est l’utilisation de la fonctionnalité native de QGIS « Importer des photos géolocalisées ». Enfin, le plugin QGIS ImportPhotos propose une utilisation plus approfondie des photos localisées sur la carte.

Partager l'article
Taggé , , , , , , .Mettre en favori le Permaliens.

A propos Florian Delahaye

Passionné de Géomatique

2 réponses à Photos sur une carte dans QGIS

  1. Pierre dit :

    Un grand merci pour ce tutoriel clair et pratique !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *