Réalisation de cartogrammes avec ScapeToad

Magazine
Marque
Linux Pratique
Numéro
69
Mois de parution
janvier 2012
Spécialité(s)


Résumé
Qui n'a jamais vu une carte déformée en fonction d'une statistique pour mieux la mettre en évidence ? On pense typiquement aux cartes montrant la sous-nutrition ou le P.I.B par pays. Ces cartes volontairement déformées s'appellent des cartogrammes. Cet article montre comment il est possible d'en réaliser sous Linux. Pour cela, nous allons utiliser ScapeToad [ST], un logiciel libre, écrit en Java. Pour illustrer cette possibilité, nous allons représenter le pourcentage d'utilisateurs d'Internet par pays en 2010.

Body

1. Préparation

ScapeToad n'est pas fourni directement comme paquet par les distributions, mais il est simple de le faire fonctionner. Il faut que Java soit installé sur votre ordinateur, ce qui est probablement déjà le cas. Pour vérifier ce pré-requis, lancez votre gestionnaire de paquets préféré (Synaptic, Yum, Drakrpm, etc.). Selon la distribution, le nom du paquet pourra être légèrement différent, mais doit faire référence à Java JRE. Pour Ubuntu, cela équivaut à vérifier que le paquet openjdk-6-jre soit installé. Si ce n'est pas le cas, installez le paquet et ses dépendances selon la méthode préconisée par votre distribution.

Téléchargez ScapeToad [TLC] sur le site web dédié au logiciel. Plusieurs versions sont disponibles sur la page de téléchargement. Nous utiliserons la version portable (le fichier .tgz). C'est un format d'archive (comme les fichiers zip par exemple). Ouvrez l'archive avec le logiciel fourni par votre distribution (File Roller par exemple) et enregistrez le répertoire qui est à l'intérieur dans votre répertoire personnel. À l'intérieur du répertoire se trouve en particulier un fichier ScapeToad.jar qui est le logiciel proprement dit et un fichier ScapeToad.sh qui servira à exécuter le logiciel. Il faut rendre ScapeToad.sh exécutable (Fig. 1). Dans un environnement GNOME, il suffit de faire un clic droit sur le fichier, puis d'aller dans l'onglet Permissions et cocher « Autoriser l'exécution du fichier comme un programme ».

1_scapetoad_executable

ScapeToad est fourni uniquement avec une carte d'exemple sur la Suisse. Nous allons en télécharger une décrivant le monde entier sur le site thematicmapping.org [CART]. Elle existe en deux versions : une version simplifiée et une version plus détaillée. La version plus détaillée prendra plus de temps pour calculer la carte finale. Il s'agit d'un fichier .zip à décompresser de la même manière que ScapeToad (je vous conseille de les extraire dans un répertoire spécifique pour mieux vous repérer par la suite). Il est possible de créer ses propres cartes, mais c'est une tâche beaucoup plus complexe et qui sort largement de cet article.

Nous avons maintenant tous les éléments pour pouvoir créer notre carte. Pour cela, nous allons d'abord insérer les statistiques de la carte, puis utiliser vraiment ScapeToad pour produire la carte.

2. Insérer les statistiques dans le fichier DBF

Dans le répertoire contenant la carte se trouve un fichier DBF. C'est ce fichier qui contient les statistiques permettant de déformer la carte.

Bien que les géographes parlent de « shapefile » pour une carte, la carte utilise plusieurs fichiers. Le format shapefile a été créé par l'entreprise Esri et a pour nom d'extension SHP. Cependant, d'autres fichiers permettent d'ajouter des données supplémentaires, non prises en compte par le format SHP. C'est pourquoi il y a d'autres fichiers à l'intérieur du répertoire de la carte. On y trouve en particulier un fichier SHX, qui optimise les accès aux coordonnées géographiques, ainsi que le fichier DBF qui est un vieux format de la base de données dBase. Ces trois fichiers (SHP, SHX, DBF) sont obligatoires pour une carte shapefile.

Calc de LibreOffice (ou anciennement OpenOffice.org) peut modifier les fichiers DBF. Un simple double-clic et l'utilisation de l'encodage par défaut suffisent. Les trois premières colonnes sont des codes identifiant chaque pays. Le nom du pays est en quatrième colonne (et en anglais). Nous allons remplacer les données de la cinquième colonne par les nôtres (Fig. 2). La première étant le titre de la colonne, nous allons aussi le remplacer par NETPRCENT dans le but d'être cohérent.

2_calc_remplissage_colonne_f

Les statistiques [STAT] proviennent du site de l'ONU, qui fournit un export CSV, ODT et XLS. Chacun de ces formats peut aussi être ouvert avec OpenOffice.org. Il faut ensuite recopier les statistiques de l'ONU dans le fichier DBF. Cette tâche est plus ou moins laborieuse selon votre maîtrise d'un tableur... La liste des pays n'étant pas exactement la même, ni dans le même ordre, il est nécessaire de faire attention dans les correspondances entre les statistiques et les pays. Il suffit ensuite d'enregistrer la nouvelle version du fichier en gardant le format DBF. LibreOffice ne nous servira plus pour la suite.

3. Produire l'anamorphose

Lancer ScapeToad en double-cliquant dessus. Si nécessaire, confirmer le choix « Lancer ». La fenêtre du logiciel s'affiche. Commençons par ajouter la carte : cliquez sur Add layer et naviguez dans le sélecteur de fichiers pour sélectionner la carte et confirmez en cliquant sur le bouton OK tout en bas à gauche. La carte s'affiche automatiquement.

Ajoutons maintenant les données. Cliquez sur Create cartogram puis suivant. L'étape suivante a déjà sélectionnée notre carte, nous pouvons donc de nouveau confirmer et arriver sur la troisième étape de la création (Fig. 3). Il faut choisir le champ de données qui va permettre la transformation de la carte. Il faut donc choisir le titre de la colonne dans le fichier DBF (NETPRCENT dans notre cas).

Il est nécessaire de choisir le type des données : soit « mass » pour les valeurs absolues, ou « density » pour les valeurs relatives à la surface (utile pour les données comme le nombre d'habitants au km2). Ici, il faut choisir « mass » et confirmer.

Nous ne nous servirons pas des possibilités de la quatrième étape, donc nous confirmons directement pour arriver à la cinquième et dernière étape de paramétrage (Fig. 4). Cette étape permet de choisir le niveau de précision du rendu final. Plus la qualité sera faible et plus le rendu pourra être faussé (non proportionnel), mais sera plus rapidement calculé. Réciproquement, une plus grande qualité impliquera une quantité de calcul plus grande à réaliser et donc plus de temps d'attente avant d'avoir l'image. Selon la précision et la puissance de l'ordinateur, cela peut prendre plusieurs heures. Les options avancées permettent de définir plus précisément certains paramètres de calculs. En cliquant sur Compute, l'étape 6 s'affiche et le traitement commence.

4_etape_3

5_etape_5

Une fois le calcul de rendu lancé, n'appuyez pas sur « annuler » ou n'arrêtez pas ScapeToad, les calculs seraient repris depuis le début !

6_calcul_termine

Lorsque le calcul est terminé, la fenêtre qui montrait les étapes affiche le résumé de l'opération (Fig. 5). Fermez-la. La fenêtre principale montre le rendu (Fig. 6). En cochant (ou non) les options dans la partie gauche de la fenêtre, vous pouvez visualiser les différences avec la carte d'origine ou voir la déformation obtenue sur une grille. En cliquant sur l'icône Export to SVG, enregistrez le résultat.

7_affichage_rendu

À titre personnel, j'ai essayé de modifier la carte avec Inkscape (un logiciel de dessin vectoriel, donc adapté au format SVG), mais il a planté plusieurs fois. Je ne sais pas quelle est la véritable raison (un problème dû à la carte ? Un fichier trop gros pour ma machine ?). C'est pourquoi je suis passé à GIMP (qui permet aussi d'ouvrir des images SVG). Malheureusement, le résultat est un peu moins beau pour faire du remplissage, car les frontières des pays pixelisent un peu. :-( (Fig. 7)

8_gimp

Nous nous contenterons ici d'ajouter un calque sous la carte et de le colorer en bleu pour représenter les océans. Pour faire joli, il y a juste un effet de « Brouillage uni », filtré pour être bleu (Fig. 8), mais ce n'est vraiment pas nécessaire...

9_carte_prcent_inet

4. Limites de ScapeToad

ScapeToad nous a bien permis d'obtenir le cartogramme voulu. Est-il pour autant parfait ? Non, voici quelques limites :

-La documentation sur le site précise que le logiciel n'est pas adapté pour réaliser des cartes de distances (typiquement les cartogrammes mettant en évidence le temps mis pour rejoindre certaines villes à partir d'une autre).

-Le logiciel est facile à prendre en main, mais il n'est pas possible d'automatiser la génération des cartes en utilisant un script. De même, il n'est pas conçu pour que l'on puisse y ajouter des greffons.

-Il n'est pas possible de définir les couleurs pour chaque pays ou d'exporter celles produites par ScapeToad (taille de l'erreur pour chaque pays). On aurait pu imaginer ajouter les couleurs souhaitées dans le fichier DBF et que l'image finale les prenne en compte par exemple. C'est l'absence d'une telle fonctionnalité qui m'a poussé à utiliser GIMP sur le cartogramme.

Références

[ST] ScapeToad : http://scapetoad.choros.ch/ (site en anglais) ; la dernière version du logiciel est la 1.1, publiée en mai 2008. Il n'existe pas de paquets spécifiques, que ce soit pour Debian, Ubuntu ou Mandriva. Des versions Mac et Windows sont aussi disponibles.

[TLC] Page de téléchargement de ScapeToad : http://scapetoad.choros.ch/download.php

[CART] Page de téléchargement de la carte du monde : http://thematicmapping.org/downloads/world_borders.php

[STAT] Statistiques d'accès à Internet compilées par les Nations Unies : http://data.un.org/Data.aspx?d=ITU&f=ind1Code%3aI99H




Article rédigé par

Par le(s) même(s) auteur(s)

Processus de publication chez Debian et Ubuntu

Magazine
Marque
GNU/Linux Magazine
Numéro
118
Mois de parution
juillet 2009
Résumé
Debian a été créé en 1993. Depuis, de nombreuses distributions, à la durée de vie et au succès plus ou moins importants, en ont été dérivées. Ubuntu est l'une d'elles. C'est aujourd'hui une des distributions Linux les plus populaires et les plus médiatisées.Dire qu'une distribution est dérivée d'une autre signifie que le code source, les outils et le système de paquets de la distribution d'origine ont été réutilisés. La nouvelle distribution est libre de maintenir un lien avec la distribution d'origine ou de s'en éloigner définitivement. Ubuntu n'a jamais caché sa filiation et s'en est même servi pour asseoir sa crédibilité à ses débuts. Elle a d'ailleurs choisi de rester proche de Debian d'un point de vue technique. L'objectif de cet article est de montrer les différences entre les modes de publication de Debian et d'Ubuntu, puis de voir comment Ubuntu se base sur Debian.

Les derniers articles Premiums

Les derniers articles Premium

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Raspberry Pi Pico : PIO, DMA et mémoire flash

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.

Programmation des PIO de la Raspberry Pi Pico

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

La carte Pico de Raspberry Pi est appréciable à bien des égards. Ses ressources, son prix, ses deux cœurs ARM... Mais ce morceau de silicium qu'est le RP2040 renferme une fonctionnalité unique : des blocs PIO permettant de créer librement des périphériques supplémentaires qu'il s'agisse d'éléments standardisés comme SPI, UART ou i2c, ou des choses totalement exotiques et très spécifiques à un projet ou un environnement donné. Voyons ensemble comment prendre en main cette ressource et explorer le monde fantastique des huit machines à états de la Pico !

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous