Création d’une analyse géographique dans Qlik Sense

La visualisation de données géographiques est difficilement réalisable sur un graphique standard de type treemap, histogramme ou camembert : la représentation est possible, mais n’apporte jamais l’ensemble des informations. Jugez-en par vous-mêmes dans l’exemple ci-dessous : en 2013, quelles sont les zones les plus peuplées de France ? Il est facile de déterminer les valeurs exactes, mais beaucoup plus difficile de trouver une tendance !

Treemap ou histogramme

Treemap ou histogramme dans Qlik Sense

L’idéal dans cette situation est d’avoir à disposition une représentation de type carte, que je vous propose de construire pas à pas avec Qlik Sense.

Matériel

Téléchargez Qlik Sense

Si vous n’avez pas encore téléchargé Qlik Sense Desktop, vous pouvez le faire de façon gratuite et sans limite en terme de fonctionnalités ou temps sur le site de l’éditeur : www.qlik.com puis n’hésitez pas à consulter notre série d’articles pour faire vos premiers pas avec l’outil.

Données

Vous pouvez utiliser votre propre jeu de données, l’objectif est d’avoir dans les informations disponibles :

  • Code commune INSEE
  • Code département
  • Latitude et longitude du centroïde de la commune et/ou du département
  • Un indicateur à présenter comme le CA, le nombre de ventes…

Pour ma part, je vais utiliser le fichier RGC (Répertoire Géographique des Communes) mis à disposition par l’IGN sur le portail data.gouv.fr, qui contient des informations géographiques et de population de chaque commune française. La description du fichier est aussi associée, nous en aurons besoin pour charger correctement les données.

Chargement des données

Fonction GeoMakePoint de Qlik Sense

La fonction GeoMakePoint(latitude,longitude) de Qlik Sense permet de créer un élément qui sera ensuite utilisable par un graphique de type carte à partir de la latitude et de la longitude exprimées en décimales. La difficulté, si vous utilisez le fichier de l’IGN, est que ce dernier présente des données en degrés, minutes et secondes, avec des + ou – et sur un champ de longueur variable, bref pas très pratique ! La formule à appliquer est donc :

if(LEN(LONGI_DMS)=5,
LEFT(LONGI_DMS,1) + RIGHT(LEFT(LONGI_DMS,4),2)/60 + RIGHT(LONGI_DMS,2)/3600,
if(LEFT(LONGI_DMS,1) = ‘-‘,
LEFT(LONGI_DMS,2) – RIGHT(LEFT(LONGI_DMS,4),2)/60 – RIGHT(LONGI_DMS,2)/3600,
LEFT(LONGI_DMS,2) + RIGHT(LEFT(LONGI_DMS,4),2)/60 + RIGHT(LONGI_DMS,2)/3600)
) as X

Chargement

En dehors de ce point de détail, le chargement des données est très classique :

  • Glissez-déposez le fichier dans une nouvelle application
Glisser-déposer QlikSense

Glisser-déposer Qlik Sense

 

  • Laissez-vous guider par l’assistant pour sélectionner les colonnes nécessaires
Selection colonnes Qlik Sense

Selection colonnes Qlik Sense

  •  Éditez le script pour ajouter par exemple un preceding load
Preceding load

Preceding load

Création de la carte

Une fois les informations correctement chargées, la création de la carte se fait de façon très simple : glissez-déposez un objet de type carte dans une feuille, ajouter la dimension XY créée à l’étape précédente et définissez par exemple l’indicateur sum(POPU).

Vous pouvez ajouter un fond de carte dans l’arrière plan en utilisant l’url http://tile.openstreetmap.org/${z}/${x}/${y}.png

En jouant sur les différentes options, vous devriez pouvoir arriver à une représentation proche de celle ci-dessous.

Carto Qlik SenseConclusion

Avec Qlik Sense, il est maintenant très facile de projeter des données sur une carte.

Vous pourrez aller encore plus loin en utilisant un fichier KML pour définir les contours géographiques (ou autres !) de vos données de façon à réaliser de la coloration surfacique comme dans le représentation ci-dessous. (Aviez-vous remarqué que le département du Nord était le plus peuplé ?!)

Coloration surfacique Qlik Sense

Bien évidemment nous attendons la nouvelle mouture de GeoQlik qui sera présentée dans quelques jours au Qlik World Conference. Comme dans les précédentes versions, il devrait être possible d’avoir une analyse encore plus fine des données avec par exemple des drill-down (Departement > Commune) ou d’autres visualisations !

 

 

12 Responses to Création d’une analyse géographique dans Qlik Sense

  1. Vivien says:

    En complément du billet :
    – Faire attention à l’ouverture du fichier texte sous Excel (suppression de 0)
    – La formule fonctionne uniquement sur des coordonnées situé en France. Pour avoir une formule au niveau mondial, utilisez une autre projection ou refaire la formule pour gérer les coordonnées dont la longueur est inférieure, égale ou supérieur à 5.

  2. bruno says:

    Bonjour
    plutôt très intéressant mais sans doute trop novice pour reproduire ce tuto : je n’ai pas réussi , dommage

  3. Brice DAVOLEAU says:

    Bonjour Bruno,
    quel point vous a bloqué ?

    A bientôt.

    • bruno says:

      Bonjour Brice

      Merci tout d’abord pour la réponse rapide. Je vais essayer de m’expliquer, sachant que j’ai découvert QliK depuis 24 h.

      la fonction map de Qlik me rendrait bien service c’est en faisant des recherches que je suis tomber sur votre blog.

      j’ai télécharger la carte IGN et je l’ai décompressé
      je l’ai importé.
      puis vous proposez de changer le script : c’est là que çà se complique pour moi ( aucune notion de langage script)
      J’ai donc recopier le script tel qu’il est écrit dans l’image PNG et sauvegardé (mais il reste des erreurs je crois car petite alerte en rouge dans Qlik.)

      Puis je dois faire ceci : « glissez-déposez un objet de type carte dans une feuille, ajouter la dimension XY  »

      je crée la carte mais ne trouve pas la dimension XY dont vous parlez : je suis censé l’avoir crée précédemment mais ou ? dans le script ?

      je bloque là …

      J’essaye d’autre tuto en parallèle

      Merci par avance

      Bruno

      • Brice DAVOLEAU says:

        Effectivement, il semble qu’il manque une étape essentielle : il faut recharger les données dans l’application après modification du script.

        Lorsque vous êtes dans le script cliquez sur le bouton « Charger les données » à côté du bouton à l’icône de morpion.

        Une fois le rechargement effectué, la dimension XY sera présente côté interface.

        Courage !

      • bruno says:

        En effet , il manquait cette étape
        Mais pas mieux , voici le script que j’ai mis :

        LOAD
        *,
        GeoMakePoint(Y,X)as XY;
        LOAD
        if(LEN(LONGI_DMS)=5,
        LEFT(LONGI_DMS,1) + RIGHT(LEFT(LONGI_DMS,4),2)/60 + RIGHT(LONGI_DMS,2)/3600,
        if(LEFT(LONGI_DMS,1) = ‘-‘,
        LEFT(LONGI_DMS,2) – RIGHT(LEFT(LONGI_DMS,4),2)/60 – RIGHT(LONGI_DMS,2)/3600,
        LEFT(LONGI_DMS,2) + RIGHT(LEFT(LONGI_DMS,4),2)/60 + RIGHT(LONGI_DMS,2)/3600)
        ) as X,
        if(LEN(LATI)=5,
        LEFT(LATI_DMS,1) + RIGHT(LEFT(LATI_DMS,4),2)/60 + RIGHT(LATI_DMS,2)/3600,
        LEFT(LATI_DMS,2) – RIGHT(LEFT(LATI_DMS,4),2)/60 – RIGHT(LATI_DMS,2)/3600,
        ) as Y,
        *;
        LOAD
        DEP,
        COM,
        POPU,
        NOM,
        LONGI_DMS,
        LATI_DMS,
        FROM [lib://TEST QLIK/RGC_2012.txt]
        (txt, codepage is 1252, embedded labels, delimiter is ‘\t’, msq);

        J’ai ce message ensuite :
        —————————————————————-
        Chargement de données démarré
        Error in expression:
        ‘)’ expected
        LOAD
        if(LEN(LONGI_DMS)=5,
        LEFT(LONGI_DMS,1) + RIGHT(LEFT(LONGI_DMS,4),2)/60 + RIGHT(LONGI_DMS,2)/3600,
        if(LEFT(LONGI_DMS,1) = ‘-‘,
        LEFT(LONGI_DMS,2) – RIGHT(LEFT(LONGI_DMS,4),2)/60 – RIGHT(LONGI_DMS,2)/3600,
        LEFT(LONGI_DMS,2) + RIGHT(LEFT(LONGI_DMS,4),2)/60 + RIGHT(LONGI_DMS,2)/3600)
        ) as X,
        if(LEN(LATI)=5,
        LEFT(LATI_DMS,1) + RIGHT(LEFT(LATI_DMS,4),2)/60 + RIGHT(LATI_DMS,2)/3600,
        LEFT(LATI_DMS,2) – RIGHT(LEFT(LATI_DMS,4),2)/60 – RIGHT(LATI_DMS,2)/3600,
        ) as Y,
        *
        Échec du chargement de données
        Saving state and data

        ————————————————————–

        Bref trop compliqué pour moi.
        De plus je n’arrive même pas à afficher une carte ( même vide) pourtant j’ai ajouté le lien de carte mais çà n’affiche rien …

        Bon en attendant je vais lire le reste de vos articles ce soir.

        Merci pour votre aide

  4. Ping: Sortie de Qlik Sense 1.1 | Le blog des experts de la Business Intelligence

  5. Benoit says:

    Bonsoir,
    Ce tuto est vraiment très intéressant, j’ai réussi à représenter les points sur la carte.
    Cependant il subsiste un problème qui je l’avoue me frustre un peu, je n’arrive pas à afficher le fond de carte.
    J’ai bien forcé l’url et l’attribution (je ne sais pas si c’est obligatoire) en utilisant celle sur openstreetmap ou autre (tiré de ce lien https://help.qlik.com/sense/1.1/fr-FR/online/Subsystems/Hub/Content/Visualizations/Map/Map.htm)
    Je suis en version 2.1.1 build 22 de Qliksense.
    Mais quoique je fasse la carte n’apparaît pas.
    Un autre point j’ai une note en bas de carte :  » * Affichage d’un ensemble de données limité pour l’instant  »
    En espérant que vous pourrez me donner des conseils avisés.
    D’avance merci et très bonne soirée.

  6. Benoit says:

    Bonsoir,
    Je viens de laisser un message, j’ai essayer sur un deuxième PC (j’étais sur mon pro avant) et ça fonctionne avec l’affichage de la carte.
    A l’occasion je chercherais si en modifiant le proxy ça fonctionne;
    Merci

  7. Bonjour Benoit,

    QlikSense limite pour l’instant l’affichage à 1000 points sur un objet de type carte. Lorsque ce seuil est franchi le message d’avertissement que vous obtenez est affiché.

    Il vous faut donc filtrer d’avantage les données dans votre restitution pour avoir des valeurs correctes.

    Bonne journée !

  8. Romain says:

    Bonjour,

    Pourriez-vous expliquer un peu plus en détail la méthode utilisée pour intégrer votre fond de carte des départements français ? Non pas les points d’intérêt, mais sur la coloration des surfaces.

    Merci
    Romain

    • Brice DAVOLEAU says:

      Bonjour Romain,
      Il n’y a rien de particulier à faire : le format KML est reconnu par QlikSense et permet de créer une couche de zone sur laquelle sont projetés les indicateurs.

      Si vous rencontrez des problèmes je suppose que c’est le niveau de détail du KML qu’il faut incriminer. N’hésitez pas à nous contacter directement si vous souhaitez être accompagné.

      Bonne journée !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :