Wikipédia:Atelier graphique/Didacticiels cartographiques/Création de cartes avec perlshaper

Projection orthographique produite à l'aide de perlshaper

Ce didacticiel permet de générer des projections de la planète Terre au format SVG. Il se destine aux utilisateurs de Windows et/ou Linux. L'outil utilisé, perlshaper, a été codé en Perl par Gringer. Il s'utilise en ligne de commande.

Les données cartographiques proposées dans ce didacticiel sont issues du site Natural Earth qui ne met à disposition que des données appartenant au domaine public. Ainsi, les images SVG que vous produirez appartiendront également au domaine public.

ATTENTION : les fichiers SVG produits par perlshaper ne sont pas parfaits, ils peuvent nécessiter de petites corrections (voir la section Corriger une carte sous Inkscape).

Fonctionnement de l'outil modifier

Le script perlshaper fait appel à 3 librairies Perl :


Le développement de la librairie Proj4 utilisée par perlshaper se poursuit. Elle permet déjà d'utiliser des dizaines de projections différentes.

À l'heure actuelle, perlshaper limite son utilisation à trois projections couramment utilisées : la projection plate carrée et la projection de Winkel-Tripel, qui peuvent être utilisées pour la réalisation de planisphères, ainsi que la projection orthographique qui permet de s'approcher de la forme réelle d'une planète en la représentant sous la forme d'un globe.

Préparation de l'environnement modifier

Cygwin permet d'émuler Linux. Les utilisateurs de Linux doivent donc directement passer à l'étape d'installation des packages Perl. Les utilisateurs de Windows, eux, doivent suivre la procédure complète.


Installation de Cygwin   modifier

 
Menu d'installation des packages dans Cygwin

Si vous travaillez avec Windows, il est chaudement recommandé d'utiliser Cygwin, qui rend la tâche d'installation des packages Perl plus aisée :

  • Télécharger Cygwin.
  • Lancer l'exécutable et choisir d'installer les packages suivants :
Devel
gcc-core
gcc-g++
gcc4
make
Editors
vim
Perl
Cocher tout.
  • Terminer l'installation.
  • Lancer un terminal Cygwin.


Installation des packages Perl    modifier

  • Lancer le gestionnaire de packages CPAN de Perl :
perl -MCPAN -e shell


  • Exécuter dans le shell CPAN, l'une après l'autre, les commandes suivantes qui installeront chacune un package Perl indispensable au fonctionnement du script perlshaper.
install Geo::ShapeFile
install Geo::Proj4
install SVG


NB: À la fin de l'exécution de chaque commande, vérifier que tout s'est bien passé (make = OK).

Télécharger perlshaper et les données cartographiques    modifier

  • Accéder à la page de perlshaper.
  • Cliquer sur Edit, puis copier le texte compris entre les balises <source>...</source>.
  • Coller le contenu du presse-papier dans un nouveau fichier texte nommé perlshaper.pl, puis enregistrer.
  • Télécharger les données cartographiques vectorielles, puis extraire les dossiers de l'archive.
  • Sous Windows, déposer le script et les dossier dézippés dans \cygwin\home\<compte>\ afin de pouvoir y accéder dans Cygwin.


Pour la suite du didacticiel, nous utiliserons uniquement les données Admin 0 – Countries 1:50m . Mais sachez que l'archive que vous venez de télécharger contient de nombreuses autres données différentes (terres émergées sans les divisions des pays, cours d'eau, routes, etc.) en 3 échelles différentes : de très précise (1:10m), à peu précise (1:110m). Plus la carte utilisée est précise, plus la taille du fichier SVG produit sera importante.

Pour en savoir plus, voir la page Téléchargments de Natural Earth.

Les projections disponibles modifier

Premier essai : projection plate carrée modifier

-type : location, locator ou area

  • Lancer la commande suivante :
perl perlshaper.pl -type location 50m_cultural/ne_50m_admin_0_countries 50m_cultural/ne_50m_admin_0_tiny_countries -res 0.25 -centre 10,0 -psize 0.25 -round 2 -v > map.svg


  • Après une minute ou deux, la commande se termine ainsi :
User@PC-User ~
$ perl perlshaper.pl -type location 50m_cultural/ne_50m_admin_0_countries 50m_cultural/ne_50m_admin_0_tiny_countries -res 0.25 -centre 10,0 -psize 0.25 -round 2 -v > map.svg
Map type changed to 'location'
Resolution changed to 0.25
Map centre changed to '10,0'
Point size changed to 0.25
will round to 2 decimal places
Enabling verbose output
Finding world edge...... done (-170,-170.1)!
Loading 50m_cultural/ne_50m_admin_0_countries...... done (242 shapes loaded).
Reprojecting and simplifying shapes................................................................................................ done!
Loading 50m_cultural/ne_50m_admin_0_tiny_countries... done (73 shapes loaded).
Reprojecting and simplifying shapes......................................................................... done!
Printing border...... done!

User@PC-User ~
$


 
Image produite par le script ci-dessus

NB: Si une erreur s'affiche, vérifier que l'environnement a été correctement configuré.


  • Ouvrir le fichier map.svg produit. Il doit ressembler à l'image ci-contre.


Les valeurs locator et area fournies au paramètres -type produisent un résultat similaire : seules les couleurs utilisées varient (plus d'information sur les conventions de couleurs ici).

Projection orthographique modifier

 
Image produite par le script

-type orthographic

Le script suivant produit l'image ci-contre :

perl perlshaper.pl -type orthographic 50m_cultural/ne_50m_admin_0_countries 50m_cultural/ne_50m_admin_0_tiny_countries -res 0.25 -centre 0,45 -psize 0.25 -round 2 -v > map.svg


Vous pouvez constater que le résultat produit par perlshaper n'est pas parfait : des segments superflus ont déformé l'Amérique du Sud. La section Corriger une carte sous Inkscape explique comment supprimer ces défauts.




Projection de Winkel-Tripel modifier

 
Image produite par le script

-type world

La latitude n'est pas contrôlable pour cette projection.

Le script suivant produit l'image ci-contre :

perl perlshaper.pl -type world 50m_cultural/ne_50m_admin_0_countries 50m_cultural/ne_50m_admin_0_tiny_countries -res 0.25 -centre 0,0 -psize 0.25 -round 2 -v > map.svg



Corriger une carte sous Inkscape modifier

Les cartes produites par perlshaper comportent souvent des défauts, qui se manifestent par des segments droits superflus qui déforment les continents. Cette section donne des conseils qui vous permettront de corriger ces défauts. Vous devez maîtriser l'édition de fichiers SVG sous Inkscape. Notez que plus la taille du fichier SVG est réduite, plus les opérations effectuées sous Inkscape seront fluides. Une carte utilisant les données cartographiques à l'échelle 1:110m sera ainsi aisée à éditer.

La première étape est d'identifier les défauts qui fausse votre carte. Ouvrez le fichier SVG sous Inkscape et observez attentivement les continents. Les segments que l'on recherche sont rectilignes et partent généralement d'un bord du dessin.

Déplacez les couches qui recouvrent la forme à corriger. Utilisez pour cela la combinaison de la touche Shift et des flèches de direction (Haut, Bas, Gauche, Droite). Cela vous permettra par la suite de retrouver l'emplacement initial des couches qui auront été déplacées.

Une fois un segment superflu identifié, il faut le détacher :

  • Pressez la touche F2 (outil   Éditer les nœuds).
  • Cliquez sur la forme à modifier : les points doivent s'afficher.
  • Sélectionnez les deux points aux extrémités du segment superflu.
  • Cliquez sur le bouton   Briser le chemin aux nœuds sélectionnés.
  • Cliquez sur le segment qui relie les deux points : ces points doivent s'affiche en bleu.
  • Pressez la touche Suppr. : le segment doit disparaître.



Il faut maintenant recréer les formes qui ont été atrophiées.

  • Identifiez les points qui devraient être reliés par un segment.
  • Sélectionnez ces deux points.
  • Cliquez sur le bouton   Joindre les nœuds terminaux sélectionnés par un nouveau segment.

Le défaut doit normalement disparaître. Il reste parfois plusieurs segments non attachés à des formes. Ils peuvent être supprimés (sélectionnez le segment et pressez la touche Suppr..



Les paramètres de perlshaper modifier

perlshaper accepte de nombreux paramètres, qui permettent de modifier le sujet et l'apparence du graphique produit. Tous ces paramètres peuvent être combinés les uns aux autres. Cette section explique le fonctionnement d'une grande partie de ces paramètres.

ATTENTION : il semble que perlshaper ne reconnait pas les codes ISO 3166-1 de certains pays ! A titre d'exemple, le script ne pourra pas zoomer sur la France, les Etats-Unis d'Amérique, ou encore le Royaume-Uni.

Modifier le positionnement modifier

 
Le paramètre -centre 0,-90 permet de dessiner un globe centré sur le Pôle Sud.

-centre long,lat

-centre code ISO 3166-1 alpha-3

Il est possible de modifier le positionnement de la planète, si l'on veut par exemple centrer un planisphère sur l'Océan Pacifique, où centrer un globe sur l'Antarctique. Il faut pour cela utiliser le paramètre -centre, qui accepte plusieurs types de valeurs :

long,lat
long est la longitude (est-ouest) et lat, la latitude (nord-sud).
code ISO 3166-1 alpha-3
qui spécifie le pays à placer au centre du graphique (voir la liste des codes).


Voici quelques exemples :

  • -centre 0,0 : l'équateur sera situé au centre de l'image.
  • -centre 0,90 : le pôle Nord sera situé au centre de l'image.
  • -centre -30,0 : l'Océan Atlantique sera situé au centre de l'image.
  • -centre 0,45 : la France sera située au centre de l'image.
  • -centre CHL : le Chili sera situé au centre de l'image.


Mettre en exergue des territoires modifier

 
Dans cet exemple, le paramètre -pol a été utilisé pour afficher les pays de la Ligue Arabe en vert clair.

-sub code ISO 3166-1 alpha-3 -pol code ISO 3166-1 alpha-3

Les paramètres -sub et -pol permettent de mettre en valeur certains pays en les dessinant d'une couleur différente des autres pays.

Exemple : -sub IND -pol PAK - pol NPL affichera l'Inde en vert foncé, et le Pakistan et le Népal en vert clair.








Zoomer sur un territoire modifier

-zoom code ISO 3166-1 alpha-3

Ce paramètre permet d'ajuster les bords du graphique aux frontières d'un pays. Le pays occupe alors presque l'ensemble de l'image produite.

N'afficher qu'un seul territoire modifier

-only code ISO 3166-1 alpha-3

Ce paramètre occulte tous les territoires sauf ceux qui sont spécifiés.

Montrer/masquer les lignes modifier

-lines

L'ajout de ce paramètre à la ligne de commande permet d'ajouter au dessin les méridiens et les parallèles. Il est activé automatiquement dans le cas d'une projection orthographique.

Modifier les couleurs employées modifier

ATTENTION : plusieurs conventions existent quant aux couleurs à utiliser dans le cadre des projets cartographiques de la Wikimedia Foundation. Par défaut, les projections proposées par perlshaper respectent ces conventions. Il est donc peu recommandé de modifier ces codes couleurs établis.


Comme tout fichier SVG, ceux produits par perlshaper peuvent être édité sous Inkscape. Il est donc possible d'en modifier les couleurs à tout moment. Mais pour la production de plusieurs graphiques utilisant tous une même charte graphique, il convient de spécifier au script les couleurs à utiliser.

Trois méthodes permettent de spécifier à perlshaper les couleurs à utiliser :

  • Le paramètre -colour qui permet d'utiliser la palette attitrée d'une projection (exemple : -colour location appliquera sur n'importe quel autre type de projection le code couleur spécifié ici),
  • La modification du script perlshaper, qui permet une personnalisation totale des couleurs employées. Des notions de programmation sont requises.
  • Le trio de paramètres -landcol, -seacol et -bordcol qui devrait permettre de choisir les couleurs des terres, des océans et des frontières. Hélas, cette dernière solution ne semble pas fonctionner.