Stage de Julien Blegean - Telecom Nancy - [2/06/14 au 08/08/14]
Important : cette page est réservée au suivi du stage, merci de ne pas la modifier
Informations générales pour les stagiaires
Pour toute information concernant ce stage : contacter Thomas B. ou François-Xavier
Sujet
Etude de techniques d'exploration et de visualisation de données massives
Le CDS (Centre de Données astronomiques de Strasbourg) distribue des catalogues astronomiques de taille importante pouvant atteindre le milliard de sources. Ces sources sont indexées spatialement afin de permettre de retrouver rapidement les sources situées dans une région du ciel donnée.
Le stage consistera à compléter l'éventail des outils existants en étudiant et implémentant différentes techniques d'indexation multi-critères combinée à une indexation spatiale afin de permettre l'exploration visuelle interactive de ces grandes masses de données. Cela répond à un besoin de l'astronomie moderne: la réalisation d'études statistiques sur de grands volumes répartis sur tout le ciel.
Dans un premier temps, on étudiera les techniques d'exploration côté client ([Datavore], [Crossfilter]) sur des jeux de données limités à quelques centaines de milliers d'objets. Le développement d'un prototype permettra de déterminer les avantages et limites de cette approche.
Pour des jeux de données plus importants (de 10 millions à 1 milliard d'objets), on se tournera vers les techniques décrites dans [nanocubes], [imMens] ou encore [MapD].
Le but de cette seconde phase sera de développer un service multi-résolution de génération dynamique de tuiles, afin de parvenir à développer l'équivalent de
http://www.nanocubes.net/view.html#twitter mais en utilisant des catalogues de sources astronomiques avec certains critères (couleurs, magnitudes, types d'objet, etc).
Les languages utilisés seront Javascript pour la partie cliente, Java ou Python pour la partie serveur.
Le stage sera encadré au CDS par Thomas Boch (ingénieur de recherche) et François-Xavier Pineau (ingénieur de recherche).
URLs:
Datavore :
http://vis.stanford.edu/projects/datavore/ Crossfilter :
http://square.github.io/crossfilter/ nanocubes :
http://nanocubes.net/ imMens :
http://vis.stanford.edu/papers/immens MapD :
http://istc-bigdata.org/index.php/mapd-a-way-to-map-big-data-faster/
Documents de travail
Stage (juin - août 2014)
Juin
- 2 : accueil ; recherche d'informations sur Datavore et Crossfilter ; première prise en main de Datavore ;
- 3 : tests sous Datavore avec jeu de données fourni ; Prototype fonctionnel (l'utilisateur peut uploader un CSV et faire une recherche exacte sur un champs), mesures de temps affichées. Optimisation quasi-terminée, il demeure un bug à corriger.
- 4 : bug corrigé ; Tests de performances, rédaction de notes (cf lien plus bas) sur Datavore. Tests sous Crossfilter, prototype fonctionnel sur petits échantillons mais anormalement lent sur grands échantillons ; Lecture de la doc de PourOver et Tamper ; Première prise en main de D3
- 5 : travail sur la matrice avec D3. Bug remarqué car Datavore ne trie pas lui-même les colonnes selon leur type (string/numérique). La matrice marche avec des tableaux numériques mais plante quand on introduit des chaines de caractères. Implémentation de fonctions permettant de distinguer en amont le type des colonnes et de retirer pour D3 les colonnes non numériques. Le script ne marche étrangement pas à tous les coups -> bug à corriger.
- 6 : travail sur D3. Corrections sur les types, correction d'une erreur dans le code de dv.js. Optimisation de dv.js. Traitement des données manquantes (par la moyenne de la colonne). Centrage et réduction des valeurs. Mais bug toujours présent.
- 10 : correction des bugs cités précédemment, améliorations ; affichage capricieux de la matrice de corrélations
- 11 : réorientation en utilisant une autre méthode de "binning" (voir article ici). Résultats plus satisfaisants. Corrections & améliorations à faire.
- 12 : améliorations de la matrice de corrélations ; début du filtre par sélection
- 13 - 18 : améliorations matrice ; corrections sur les échelles ; interface -> choix composantes, taille blocs et rayons des points ; filtre de sélection ;
- 19-20 : traitement des données manquantes, corrections de bugs, améliorations
- ---------------------------------------------------------------------------------------------------------------------
- 23-24 : installation de nanocubes, prise en main, premiers tests
- 25-27 : quelques adaptations de nanocubes à nos besoins. Tests sur les DMPs. Questions posées aux développeurs car documentation pas très riche. Test sur fichier de 8 millions d'objets. Découverte de bugs. Intégration tuiles astronomiques
- 30-1 : préparation serveur, tests sur serveur
Juillet
Août
Sauvegardes
- à définir au cas par cas suivant le sujet du stage
Liens utiles
- Partie client (première partie du stage) :
Comparaison Datavore/dc.js/PourOver
- Fonctionnalités
- Facilité de mise en oeuvre
- Performances (temps d'exécution)
- Occupation mémoire
Jeux de données
Outils
Versions testables
Testé sur ...
Documentation
Informations/travaux divers
Bibliographie
Crossfilter
Liens intéressants liés au sujet
Travail post stage éventuel
Liste des améliorations à envisager
Bugs connus
*