Actualités

[22/05/2017] Des Smiliens récompensés lors du Hackathon Carrefour !

Notre équipe, composée en partie de Smiliens, a remporté le Prix du Code et celui de l'Incubation lors du Hackathon Carrefour, organisé ce week-end à Paris !

[18/05/2017] OpenShift, le nouveau livre blanc Smile !

Smile publie aujourd'hui un livre blanc dédié à OpenShift, le PaaS open source orienté DevOps. A télécharger dès maintenant !

[15/05/2017] Smile décroche le label HappyAtWork 2017 !

Pour la 2ème année consécutive, Smile obtient le label HappyAtWork for Starters qui récompense les entreprises où il fait bon débuter sa carrière !

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

Analyser des données géographiques avec ElasticSearch Kibana et Talend

Le moteur de recherche Elasticsearch permet de stocker des informations de localisation aisément. En effet, chaque document est stocké au format JSON et Elasticsearch supporte le format GeoJSON.

Cas d'usage

Nous utilisons ici la liste des gares Transilien (données OpenData publiées sur http://ressources.data.sncf.com ) au format CSV.

Les données sont intégrées via le composant Talend tDelimitedInput.

Les données géographiques sont contenues dans une chaîne de caractère au format suivant :

'latitude,longitude'

L'objectif est de transformer cette chaîne de caractères au format GeoJSON, c'est-à-dire un tableau de flottants :

[longitude,latitude]

Un simple tMap permet de répartir la chaîne de caractère dans deux champs et de les convertir en flottants. On utilise ensuite un tJavaRow pour instancier un tableau comme suit :

float[] point;

point =newfloat[2]; // initialisation du tableau

point[0] = input_row.lon; // remplissage du tableau avec nos données

point[1] = input_row.lat;

Cette variable 'point' est ensuite envoyée dans un champ de type Objet du schéma cible. On envoie ensuite le flux de données vers le composant tElasticsearchIndex. Il faut penser à définir un champ id en clé du schéma pour que les données soient bien indéxées.

Talend

On crée ensuite sous Kibana une bettermap qui se base sur le champ 'point' contenu dans les documents qui viennent d'être indéxés et on obtient le résultat suivant :

Kibana

Pierre-Antoine Marc
picto

Commentaires

Soyez la premiere personne à ajouter un commentaire sur cet article.
Ecrire un nouveau commentaire