Comment charger une carte personnalisée dans SAS VIYA

SAS Visual Analytics 27 oct. 2019

Certaines applications dans SAS VIYA permettent de créer des cartes par régions ou carte Choroplèthe. D'ailleur Le découpage des Pays et des Régions sont supportés nativement par VIYA en utilisant des codes ISO.

Mais pour utiliser d'autres découpages comme les communes, les départements, ou même des découpages personnalisés vous devez importer des fichiers polygones dans CAS pour les utiliser comme référentiel cartographique dans vos rapports.


1. Mettre la main sur un fichier SHAPEFILE

Les fichiers shapefile (.shp) sont des fichiers structurés qui regroupent des formes géométriques. Ce format est un standard dans les logiciels de cartographie. Vous pouvez vous fournir ces fichiers dans sur des sites d'open data ou bien les générer vous mêmes avec des logiciels de cartographie.

Dans notre exemple nous allons utiliser le fichier du découpage administratif des communes en 2015. Vous pouvez retrouver ce fichier sur cette page: Découpage administratif communal français issu d'OpenStreetMap.


2. Visualiser le fichier à importer

Un fichier shp est souvent accompagné de plusieurs autres fichiers.

  • .shp contient les formes géométriques (polygones),
  • .dbf les attributs des formes (nom des communes),
  • .shx qui stocke un index.

Il peut y avoir d'autres fichiers dans les archives. Conservez les tous car ils contiennent des informations sur les formes géométriques. Plus de détail ici.

Pour visualiser rapidement le contenu du fichier je vous conseille d'utiliser le site Mapshaper qui permet d'importer rapidement divers formats de fichiers cartographiques, de vérifier l'intégrité de ces fichier voire de les simplifier.

Voici à quoi ressemble le découpage des communes en France contenu dans notre fichier:


3. Importer les fichiers dans VIYA

Pour charger les données du fichier SHP dans CAS, vous devez d'abord le convertir en table SAS.

Pour ça vous pouvez utiliser 2 macros disponibles dans VIYA:

  • %SHPCNTNT permet de prévisualiser le fichier shapefile.
  • %SHPIMPRT permet de convertir le shapefile en une table SAS et de la charger dans CAS.

Mais avant de lancer ces macros, nous devons rendre disponible les fichiers sur le serveur VIYA. Dans cet exemple, j'ai transféré le contenu de l'archive sur le serveur via ftp dans le répertoire /tmp/carto/communes.


4. Prévisualiser le contenu du fichier dans une table SAS

Pour prévisualiser la table SAS générée à partir du fichier shp on utilise la macro  %SHPCNTNT.

Il suffit de lui passer le chemin du fichier .shp en tant qu'argument:

%SHPCNTNT(SHAPEFILEPATH=/tmp/carto/communes/communes-20150101-50m.shp);
Pour ce fichier nous avons plus de 1.6M de lignes. Autant de points qu'il faut pour mapper les 36700 polygones de la carte des communes françaises. 

La table montre les informations qui sont disponibles dans les fichiers utilisés et outre le fait de savoir si SAS arrive bien à les lire, ça nous permet d'identifier la colonne ID qui sera utilisé dans le référentiel cartographique dans les rapports.

La colonne ID doit obligatoirement être de type alphanumérique !

Maintenant que l'on sait que SAS arrive bien à lire notre fichier nous devons le charger dans une table CAS.


5. Charger le fichier dans une bibliothèque CAS

Pour cette étape nous allons utiliser la macro %SHPIMPRT.

%shpimprt(shapefilepath=chemin_fichier_shp, 
id=colonne_id, 
outtable=nom_table_sortie, 
cashost=adresse_serveur_cas, 
casport=5570, 
caslib='caslib_de_sortie');
Pour utiliser cette procédure vous devez avoir créé une connexion sur le serveur CAS

Dans notre cas ça donne:

cas auto;
%shpimprt(SHAPEFILEPATH=/tmp/carto/communes/communes-20150101-50m.shp,
id=insee,
outtable=communes_fr,
cashost=monserveurcas.fr,
casport=5570,
caslib='Public');

Le résultat montre que la table commune_fr a été chargée dans la bibliothèque cas Public. On la retrouve dans les tables disponibles dans VIYA.

On peut vérifier que l'import à bien eu lieu en allant dans l'Environment Manager de VIYA

Les étapes de 1-5 sont à faire qu'une seule fois. Vous pouvez réutiliser la table sans reproduire la procédure d'import.

6. Créer un référentiel cartographique pour vos rapports.

Maintenant que la source de données est importée nous pouvons l'utiliser pour faire un "Fournisseur de Polygone Personnalisé" à partir de Visual Analytics.

Il sera enregistré et disponible pour tous les utilisateurs qui ont des droits suffisants pour accéder à la table commune_fr dans VIYA

Voici la procédure pour créer un référentiel de carte:

  • Créer un nouveau rapport dans Visual Analytics
  • Ajouter la source de données que l'on vient de charger
  • Créer un nouvel élément de données géographique
  • Puis créer le référentiel:
Une fois validé, le référentiel est créé et disponible pour la création de vos rapports

7. Utilisation du référentiel dans un rapport

  • Créer un nouveau rapport dans Visual Analytics
  • Importer une source de données avec un ID correspondant au référentiel (ici le code_insee)
  • Créer un élément de données géographique à partir de ce référentiel
  • Ajouter le nouvel élément de données dans une cartographie de type 'Régions'

J'ai résumé l'exemple dans cette vidéo:

Vous pouvez télécharger les données en exemple ici.

Lors de l’apparition de la carte, seule une partie de la France est couverte et c'est normal.

Bien que Visual Analytics trouve une correspondance entre nos données et le référentiel sur 91% des communes, la limite du nombre d'arêtes affichables (250 000) est atteinte (notre table fait 1.6M de lignes).

Pour rendre possible l'affichage de toutes les données il faut alors soit filtrer la carte dans le rapport (exemple de la vidéo), soit réduire le niveau de détail dans les polygones.


Références et documentation

Environnement SAS utilisé

  • Visual Analytics 8.3 sur VIYA 3.4

Source de données:

Documentation SAS:

Blog SAS:

Super ! Vous vous êtes inscrit avec succès.
Super ! Effectuez le paiement pour obtenir l'accès complet.
Bon retour parmi nous ! Vous vous êtes connecté avec succès.
Parfait ! Votre compte est entièrement activé, vous avez désormais accès à tout le contenu.