User Tools

Site Tools


dehau_nilles:eric_dehau_thierry_nilles

Chicoutimi roadmap / Eric Dehau& Thierry Nilles's corner

Sujet

Le projet porte sur l'étude des relations entre les entreprises (relations de type maison-mère/filiale) L'objectif est de créer de l'information à partir de ces données en identifiant des modèles(des structures de graphes partant d'une entreprise racine), en filtrant/analysant les données selon divers critères (lieu,capital…)

Vous pourrez retrouver nos scripts et nos données à l'adresse suivante : http://dl.free.fr/getfile.pl?file=/0jpLXEf0 (prévenez-nous si vous n'arrivez pas à accéder aux données).

Phases

Etape 1 : caractérisation du problème

Pour commencer nous devrons nous familiariser avec les données en faisant par exemple un rendu graphique. Cela nous permettra de déterminer si nous avons besoin de données supplémentaires.

Etape 2(Si nécessaire)

Nous pourrons rechercher des données supplémentaire sur le web : -Exemple : societe.com (rechercher si un web service existe par exemple)

Etape 3

Définition des opérations et du modèle

-Data

Nous définirons les opérations à effectuer sur les données pour en retirer des données qui correspondent au modèle que nous créerons(filtrage, analyse…)

-Visu

Nous définirons le rendu des données(quelles données, selon quel algorithme de rendu…) et les codes de visualisation(code couleur…) ainsi que les interactions utilisateur

Etape4

Mise en place et validation de l’efficacité(temps, résultats…), si inefficace, retour etape 1

Objectifs principaux

Les objectifs principaux sont :

1)de réalisation une visualisation intuitive du graphe de base(un noeud = une entreprise et une arrête = un lien maison-mère/filiale)

2)de trouver des modèles d'organisation des entreprises(maisons-mère/filiales)

Réalisation

Données brutes

Les données brutes sont contenues dans un export sql, qui a malheureusement été tronqué. On recense néanmoins une bonne quantité de données.

Chaque table correspond à une entreprise, et chaque ligne enregistrée dans cette table correspond à une filiale, qui elle-même peut avoir des filiales.

Données traitées

Exécuter importFromDB.js Les fichiers arretes.json et noeud.json doivent apparaître.

Les ids des maisons mères ont été récupérées à partir de la structure de la base de données (SHOW Table) ⇒ racines.json

Calculs des données statistiques + clustering

Entrée

le JSON permettant d'importer en javascript les noeuds, les arrêtes et la liste des noeuds racines

clustering

Créer une structure permettant d’accéder aux noeuds par pays. Fonction : getByCountry(noeuds);

Valeurs par noeud

Données calculées : -le degré de chaque noeud -le degré étranger de chaque noeud (nombre de noeuds fils directs situés dans un pays différent) -la taille du groupe auquel appartient chaque noeud (on parcours chaque graphe en partant des noeuds racines et on calcul le nombre de noeuds parcourus, chaque noeud parcourus a alors une taille de groupe égale à ce nombre) Fonctions : addTailleGroupeDegDegEtr(noeuds,racines,arretes);

Calculs des statistiques par pays

Les valeurs moyennes par pays sont calculés pour : -le degré -le degré étranger -la taille des groupes présent En plus de cela le nombre d'entreprises est calculé pour chaque pays Fonction : getstatsByCountry(byCountry,noeuds);

En sortie

Le script générera deux fichiers -infosByCountry.json : statistiques par pays -byCountry.json : listes de noeuds par pays

Procédure

Assurer vous que le fichier script3.js soit dans le même dossier que noeuds.json, arretes.json, racines.json. Exécuter le script avec “node script3.js” Les fichiers infosByCountry.json et byCountry.json doivent être maintenant présent dans le dossier

Création de la visualisation

L'outil google maps a été choisi afin d'avoir un framework permettant l'affichage d'éléments de différentes tailles et couleurs sur une carte, tout en permettant la navigation, le zoom et la mise à jour de l'affichage facilement. Pour afficher les données statistiques sur une carte Google maps, nous devons récupérer les positions géographiques (latitude/longitude)

Entrée

Le script de récupérations des positions n'a pas besoin de fichier en entrée Les pages html d'affichage des visualisations ont besoins de : -countryPositions.js(généré par googleGetPositions.js) -statsByCountry.js

Récupération des positions des pays

Google propose un service web permettant cela, mais il est limité à 10 requêtes successives, il faut donc espacer les requêtes dans le temps pour finalement récupérer la liste des positions.

Procèdure Exécuter “node googleGetPositions.js” Le fichier countryPositions.json doit apparaître dans le dossier

Création des visualisation

Les visualisations doivent afficher des ronds dont la taille et la couleur dépendent de l'indicateur utilisé. L'objet marker de google maps et utilisé et une fonction MarkerManager(countryPositions,seuil,reglage,map) est paramétrée par un réglage de mise à l’échelle(0.1 ⇒ le radius de chaque rond vaudra 1/10 de la valeur de l'indicateur) et un seuil étant la valeur de l'indice à laquelle la couleur des ronds change. Des valeurs ont été recherchées pour chaque visualisation afin d'avoir un rendu intéressant dans une vue mondiale. Dans certains cas une échelle logarithmique a été utilisée. Des “sliders” ont été ajoutés afin que l'utilisateur puisse changer la valeur du réglage de mise à l'échelle et le seuil. Il peut ainsi zoomer sur une zone et adapter le régalage à une bonne visibilité sur cette zone(exemple zoom sur Europe).

Procédure Pour voir les visualisations : Assurer que les fichiers countryPositions.json et statsByCountry.json sont dans le même dossier que les fichiers html. Ouvrez un des fichiers suivants : -mapsCentralisation.html -mapsInternationalisation.html -mapsNombreEntreprise.html -mapsTailleGroupes.html La carte doit s'afficher.

Images des visualisations

Critique

Distance opératoire

- : Il y a un problème de superposition (notamment dans des zones avec beaucoup de pays, comme l'Europe). Ce n'est pas évident pour visualiser l'information.

+ : Bonne lisibilité globale : on distingue facilement les zones avec des concentrations de cercles importante et les zones où il y a peu de cercles. De plus, l'utilisation de deux couleurs pour le seuil permet de voir facilement les fractures.

Distance articulatoire

Au niveau de la navigation, on peut se déplacer sur la carte en drap'n'drop et zoomer avec la molette de la souris ou en utilisant les boutons de l'interface. Les sliders pour le seuil et pour la taille des ronds permettent d'adapter la visualisation au contexte (si il y a trop de gros ronds et que c'est illisible, on peut diminuer la taille pour arriver à distinguer tous les ronds).

Distance sémantique

La taille des ronds est proportionnelle au facteur étudié, et la position des ronds sur la carte indique de quel pays viennent ces données.

/net/html/perso/melancon/Visual_Analytics_Course/data/pages/dehau_nilles/eric_dehau_thierry_nilles.txt · Last modified: 2012/05/04 21:09 by melancon