Les vertus de l'Annotate

Qu'est-ce qu'un annotate ? | Quel intérêt dans la cartographie ? | Mon premier annotate


Qu'est-ce qu'un annotate ?

C'est une table SAS particulière qui permet d'ajouter des éléments personnalisés à un graphique. On fonctionne sur un principe de table traçante, en indiquant les mouvements à effectuer, en traçant un trait ou non. On peut également utiliser les annotates pour ajouter du texte, créer des légendes, insérer des logos, ...

On peut créer cette table avec une étape Data "tout ce qu'il y a de plus simple" (ce qui veut dire que, parfois, la programmation peut nécessiter l'emploi de plusieurs aspirines). Il suffit de respecter quelques conventions dans les noms de variables, et de s'imprégner de la logique "connecter les points" qu'offre l'annotate. Un aperçu de la manière dont se construit un annotate est proposée [plus loin].

Haut de la page

Quel intérêt dans la cartographie ?

Comme on va le voir sur les exemples suivants, l'intérêt premier d'un annotate est de superposer plusieurs éléments de cartographie.

Les fleuves

Il est à noter que les tables des cours des fleuves fournies par l'IGN sont directement des annotates et ne nécessitent pas de transformations :

PROC GMAP DATA = carto.chirac
                    MAP = ign.depf (RENAME = (dep = dept))
           ANNOTATE = ign.flef ;
    ID dept ;
    CHORO pct_voix / DISCRETE ;
    FORMAT pct_voix votes. ;
    LABEL pct_voix = "Votes Chirac au 1er tour" ;
RUN ; QUIT ;

Les régions

Cette fois-ci, il est nécessaire de modifier (légèrement) la table des tracés de frontières régionales...

DATA work.reg_anno ;
    SET ign.regf ;
    RETAIN xsys ysys "2" size 2 color "black" when "A";
    BY reg segment ;
    IF FIRST.segment then function = "MOVE" ;
    ELSE function = "DRAW" ;
RUN ;

Une fois cette manipulation effectuée, on peut utiliser l'annotate REG_ANNO sur la carte des résultats départementaux.

PROC GMAP DATA = carto.chirac
                    MAP = ign.depf (RENAME = (dep = dept))
           ANNOTATE = work.reg_anno ;
    ID dept ;
    CHORO pct_voix / DISCRETE ;
    FORMAT pct_voix votes. ;
    LABEL pct_voix = "Votes Chirac au 1er tour" ;
RUN ; QUIT ;

Les frontières des régions apparaissent en trait noir gras sur la carte.

Régions ET fleuves

On peut aisément mettre sur un graphique les deux séries d'éléments vus ci-dessus. Il suffit de concaténer (avec un simple SET ou une PROC APPEND) les deux annotates...

PROC APPEND BASE = work.reg_anno
                     DATA = ign.flef
                     FORCE ;
RUN ;

Le reste du programme est strictement identique au précédent.

Si vous utilisez des annotates à d'autres fins cartographiques qui mériteraient d'être citées ici, n'hésitez pas à [nous écrire] en nous envoyant vos exemples.

Haut de la page

Mon premier annotate

Comme toute table SAS, un annotate est composé de variables et d'observations. Chaque observation représente un mouvement du "traceur". Il existe de nombreuses variables pour décrire ce mouvement. Les plus importantes sont les suivantes :

Les variables X et Y sont numériques. Elles définissent, comme on peut s'y attendre, un point du graphique. Il s'agit du point où s'achève le mouvement et non du point où le mouvement commence. Le point de départ du mouvement est défini par les valeurs à l'observation précédente de X et Y (que SAS consigne dans les variables internes XLAST et YLAST), ou par les variables XLAST et YLAST qui peuvent être ajoutées explicitement à l'annotate. Si l'on se trouve à la première observation de la table, XLAST = 0 et YLAST = 0.

Les variables XSYS et YSYS sont de type caractère. Elles prennent une valeur parmi "1","2",...,"9","A","B" et "C". Elles définissent le système de coordonnées dans lequel sont exprimés X et Y. Le tableau suivant résume les valeurs possibles et leur signification. En cartographie, on utilisera quasiment toujours la valeur "2" pour superposer des éléments à une carte : on utilise des coordonnées d'un ordre de grandeur semblable à celui du fond de carte.

Coordonnées absolues
Coordonnées relatives
Ordre de grandeur (unité)
1
7
pourcentage des valeurs du fond de carte (ou des axes du graphique)
2
8
valeurs du fond de carte (ou des axes du graphique)
3
9
pourcentage de la fenêtre GRAPH de SAS
4
A
pixel de la fenêtre GRAPH de SAS
5
B
pourcentage de l'aire où la procédure graphique a produit des résultats
6
C
pixel de l'aire où la procédure graphique a produit des résultats

Enfin, la variable FUNCTION s'avère très importante, puisqu'elle commande la nature des différents mouvements effectués. C'est une variable caractère, dont les valeurs les plus courantes sont :

Dernière variable pouvant s'avérer intéressante, WHEN est de type caractère, et ne prend que deux valeurs. Si WHEN = "B", ce qui est le défaut, l'annotate est dessiné avant le graphique produit par la procédure ; si WHEN = "A", l'annotate est dessiné en dernier. Pour les superpositions d'éléments cartographiques, WHEN="A" est indispensable, sous peine de ne pas voir les résultats de l'annotate.

Haut de la page