Je viens d’avoir des nouvelles plutôt encourageantes d’un manuscrit que j’ai soumis. Ça m’a donné le goût de travailler à nouveau sur ce projet, en concevant un site web qui accompagnera le livre. Le site contiendra bien sûr des cartes, mais aussi quantité de photos que j’ai amassées au cours des longues années de recherche qu’a nécessitées cet ouvrage sur l’histoire culturelle de l’alimentation sous le Troisième Reich. J’aimerais que certaines de ces photos soient colorisées. C’est une technique que j’ai apprise de Joshua dans l’édition 2019 de notre cours «Informatique appliquée à l’histoire». En contexte de quarantaine, il a réalisé pour vous cette année ce tutoriel. Le logiciel utilisé est GIMP, un outil d’édition et de retouche d’image et, comme toujours dans ce cours, un logiciel gratuit et libre.
Jusqu’à maintenant, je n’ai colorisé qu’une seule photo pour mon projet. Il faut dire que c’est assez long et ça demande certaines recherches pour attribuer, notamment, les bonnes couleurs aux différents uniformes. Il me reste encore du travail à faire, mais je suis assez fier du résultat:

Bon, certains personnages semblent sortir du salon de bronzage à gauche. La peau humaine est ce que je trouve le plus difficile à coloriser. Ce sera à corriger. Je n’ai pas encore travaillé les cheveux ni certains vêtements, dont ceux d’Hitler. Mais on comprend déjà tout le potentiel qu’offre la colorisation de photos anciennes. Comme Joshua couvre celle-ci, nous allons voir dans ce tutoriel une autre technique qui me sera sûrement aussi utile dans mon projet de site web, soit la création d’un GIF animé.
On pense en général au GIF animé comme une source de divertissement, comme celui-ci, qui résume ce que beaucoup de gens doivent vivre en ce moment avec le télétravail:

Mais le GIF animé peut aussi servir des fins de communication scientifique. Je donne ici un exemple, réalisé par Jean-Christophe St-James Simard dans mon cours d’informatique appliquée l’an passé:

Premièrement, voyons comment réaliser un GIF animé avec QGIS et GIMP. Reprenons l’exemple dans un récent tutoriel, où nous avions des données sur la piraterie, avec une colonne contenant des dates, ce qui nous avait permis, dans l’extension Timemanager, d’animer nos données. Toujours dans Timemanager, en s’assurant que le curseur du temps est au départ, on clique sur «Exporter la vidéo»…

…et dans la fenêtre qui apparaît, on choisit un dossier où enregistrer nos images puis on clique OK.

Ne pas fermer la fenêtre qui apparaît tant que l’exportation n’est pas terminée.

C’est assez exigeant pour l’ordinateur, mais éventuellement vous allez recevoir ce message:

Passons maintenant dans GIMP. Ouvrons le dossier contenant nos images, d’abord en choisissant «Ouvrir en tant que calques».

Dans la fenêtre qui s’ouvre, on navigue pour retrouver notre dossier et on sélectionne toutes les images qu’il contient (Ctrl+A) et on clique sur Ouvrir.
De la même façon que lorsqu’on colorise, on utilise plusieurs calques, ici on se retrouve avec un calque pour chaque jour.

Comme je ne veux que l’Afrique, je sélectionne le continent avec l’outil approprié.

Puis, j’ajuste le canevas à la sélection.

Je pourrais aussi définir la taille de l’image.

Je peux maintenant exporter.

Dans la boîte qui s’ouvre, je choisis comme type de fichier une image GIF, puis je clique sur exporter.

Parce que j’ai rogné l’image plus tôt, j’obtiens ce message.

Je clique sur rogner, puis je définis les réglages suivants dans la prochaine fenêtre:

Et enfin je clique exporter. Le GIF est exporté dans le même dossier qui contient mes images. Donc je le retrouve dans le bureau et je l’ouvre.

Essayons-nous maintenant à créer un GIF à partir de l’outil Atlas dans QGIS. Pour ceux qui ne sont pas dans mon cours «Informatique appliquée à l’histoire», mais qui fréquente ce blog (c’est-à-dire mon père), je vais revenir un peu sur cet outil.
Imaginons qu’on ajoute une carte de fond OSM, puis on crée une couche vectoriel avec des entités polygonales où l’on dessine des rectangles (peu importe la couleur) pour délimiter des zones d’intérêt, ici les monts de l’Estrie que je préfère.

On ouvre ensuite le composeur d’impression.

On choisit les paramètres de l’atlas.

Puis on génère dans l’onglet approprié un atlas, en s’assurant de cocher la case qui rend les polygones invisibles.

J’ajoute ensuite dans le composeur d’impression deux cartes (une grande et une petite) avec l’outil approprié.

Ce qui me donne ceci.

Je clique sur la grande carte et dans les propriétés de l’item je sélectionne «contrôlé par l’atlas».

Je clique sur la petite carte et j’ajoute un aperçu avec une couleur de mon choix, ici rouge. Je pourrais aussi ajouter une bordure pour améliorer l’esthétique.

En cliquant sur l’aperçu de l’atlas, puis sur les flèches, on peut maintenant dans la grande carte se déplacer d’une zone à l’autre, tandis que la petite nous montre en rouge où sont les zones.

On peut ajuster le zoom de la petite carte avec l’outil approprié.

Sachant qu’au moment de dessiner mes polygones j’avais créé un champ nom et un champ description, ajoutons deux encadrés texte pour chacun des champs avec l’outil approprié.

Dans les propriétés, je remplace Lorem ipsum par une expression que j’insére en cliquant sur l’éditeur d’expression, puis j’ajoute le champ approprié.

J’ajuste la taille de ma police etc. Puis je fais de même pour l’encadré contenant la description. J’obtiens ceci:

Je peux ensuite, comme on l’a vu dans le cours, exporter mon atlas vers pdf.

Mais je pourrais aussi exporter une des cartes qui composent mon atlas vers des images et les traiter comme précédemment avec GIMP pour obtenir un GIF animé. Pour explorer cette possibilité, créons un nouveau projet. Ajoutons une carte de fond. Puis ajoutons un shapefile contenant toutes les routes du Québec. De cette couche, on sélectionne la 40 en se servant de l’outil de sélection par expression que l’on a vu précédemment.

On extrait ensuite les sommets avec l’outil approprié.

Nous avons maintenant une nouvelle couche faite de points sur notre route 40. Dans la symbologie de cette couche, je choisis une symbologie «basée sur des règles», j’ajoute une règle (+), j’édite la règle (le crayon), ce qui ouvre la fenêtre de gauche; j’entre le filtre $id = @atlas_featureid (qui va permettre à l’atlas de focaliser sur chaque sommet). Je choisis un marqueur svg, dont la taille est définie en unité de carte (ce qui permet de garder un ratio constant). Enfin, je choisis un fichier svg (que j’ai réalisé avec Inkscape, à partir d’une image trouvée en ligne de notre ami Joshua, que j’ai ensuite vectorisée et exportée en svg).

J’exporte ensuite en images.

Par défaut, c’est en png, mais on peut changer le format sous l’onglet atlas dans le composeur.

Au moment d’exporter, il est important de choisir des réglages qui donneront un fichier qui n’est pas trop lourd, en jouant avec la résolution (dpi) et la taille.

L’exportation peut être assez longue dépendemment des performances de votre ordinateur.

On ouvre ensuite les images comme des calques dans GIMP et on exporte vers un GIF animé, comme montré auparavant dans ce tutoriel. Et on fait faire un petit tour à Josh sur la 40.

L’analyse et la visualisation de données évoluant dans le temps va être grandement améliorée avec la récente venue de Moving Pandas, une bibliothèque de code pour Python écrite par Anita Graser, à qui l’on doit Timemanager et le livre QGIS Map Design (que j’ai fait acheter à la bibliothèque du Frère-Théode). Voici un exemple pris sur son Jupyter notebook:

Je vais me pencher sur Moving Pandas cet été parce que les possibilités ont l’air malades!

On peut aussi faire des GIF animés directement dans GIMP sans passer par QGIS bien sûr. Pour le prochain exercice, je vais me servir des images présentées par Simon dans son PowerPoint pour illustrer les modifications des cours d’eau. Donc première chose: importer en tant que calques les 4 photos.

Puis ajouter les dates sur les photos avec l’outil approprié.

J’ajoute ma date puis je fais un clic droit sur un des calques et je fusionne les calques visibles.

Je fais la même chose pour les autres calques. Ne pas oublier que l’ordre des calques est important. Si vous ne voyez pas votre date, c’est qu’elle est probablement sous un calque. Remontez-là d’un niveau avec l’outil approprié (j’aime ça dire ça).

Quand c’est fini, j’exporte comme plus haut, mais je précise un intervalle de 1000 millisecondes entre les images. Ça donne ceci:

Je pourrais ajouter cette image à un marqueur Leaflet (pour ceux qui sont dans mon cours Renseignement militaire russe). Exemple:
var Saumon = L.marker ([45.491489, -71.963135], {title: 'Rivière au Saumon (Le Haut-Saint-François)', icon: CanotIcon}); Saumon.bindPopup("<p class='titre'>Rivière au Saumon (Le Haut-Saint-François)</p> <img src='images/saumon.gif' class='image'/> <p class=texte>Le cours de cette rivière a beaucoup changé en seulement un demi-siècle!</p>"); Saumon.addTo(Map)
Un petit dernier? Je commence par ouvrir cette image dans GIMP.

Je choisis l’outil pinceau.

Avec la touche Contrôle enfoncée, je prélève la couleur bleu du costume et j’efface le S (qui n’est d’ailleurs pas pour Superman, mais c’est une autre histoire…).

Je remplace le S par un R jaune avec cette police:

Et je fais faire une petite rotation au R avec l’outil approprié:

Ce qui me donne ceci:

Ensuite j’efface la tête du super-héros en choisissant la même couleur que l’arrière-plan, soit blanc.

Si mon pinceau est trop large, je peux le réduire pour travailler plus finement (Ctrl+Alt et molette de la souris). Vous pouvez aussi zoomer en maintenant Ctrl et en jouant avec la molette. En zoomant beaucoup, vous allez voir apparaître les pixels.

La tête est partie.

Maintenant j’ouvre une nouvelle image comme un calque.

Je sélectionne la tête avec l’outil approprié.

Copier (Ctrl+C) puis clic droit, puis coller comme nouveau calque.

Je peux supprimer le calque contenant la photo au complet, car je n’en ai plus besoin. Pour annuler la sélection autour de notre tête qui est encore active, faire ceci:

Ensuite j’ajuste la taille de la tête.

Clic droit et dupliquer le calque.

Je vais changer un peu la rotation de ce nouveau calque.


Je duplique à nouveau et nouvelle rotation dans l’autre sens cette fois. Je m’arrange pour avoir plusieurs calques avec la tête dans différentes positions et pour m’assurer que je m’y retrouve, je peux même donner aux calques des noms significatifs.

J’ajoute un nouveau calque.

Dans ce calque, je mets une lettre.

Je duplique le calque, puis avec un clic droit sur ce dernier, je choisis cette fonction:

Et j’ajoute une lettre. Et ainsi de suite… Je répartis ensuite mes calques de texte ainsi:

Et je fusionne chaque calque de texte avec un calque d’image. Je fusionne aussi l’arrière-plan blanc avec le premier calque du bas pour éviter que la première image soit juste du blanc. J’exporte avec un intervalle de 250 millisecondes. On obtient (avec son autorisation) un amusant clin d’oeil à la passion de Jean-Herman pour le langage de programmation R, destiné aux statistiques et à la science des données.

Puisque nous sommes dans l’univers des super-héros, j’aimerais vous rappeler l’adage: «With great power comes great responsibility». Vous savez maintenant faire un GIF animé: faites-en usage intelligent svp. Voilà pour cette semaine, portez-vous bien et respectez les consignes pour limiter la contagion.
Laisser un commentaire