Charger des fichiers KML dans une instance OGDI

Au cours de ce billet, nous vous proposons de voir comment vous pouvez télécharger des informations publiques, ou données ouvertes (open data), contenues dans des fichiers KML sur votre instance du kit de démarrage OGDI (Open Government Data Initiative) et ce, afin que vous puissiez les rendre consommables par le service de données OGDI et ainsi disponibles pour tous ; ce qui est au demeurant la finalité de la philosophie Open Data !

Rappel sur les utilitaires de chargement de données OGDI

Pour rappel, les utilitaires de chargement de données de la solution OGDI sont destinés à accompagner la mise en œuvre rapide du kit de démarrage OGDI pour permettre le chargement de données ouvertes au niveau de votre instance (du service de données) OGDI. Ces utilitaires prennent la forme d’un outil en ligne de commande scriptable ou bien d’une application graphique.

image

Comme décrit dans le document “Mettre à disposition des informations publiques avec le kit de démarrage OGDI“ qui accompagne le kit, ces utilitaires de chargement proposent dans la version courante du kit le chargement de données au format CSV (Comma-Separated Values).

Pour autant, vis-à-vis de données géo-localisées que vous souhaiteriez charger dans votre instance OGDI, il est tout à fait probable que vous disposiez de celles-ci au format standard KML (Keyhole Markup Language). Il est encore plus probable que vous n’ayez pas envie de créer le fichier CSV « à la main » en recopiant les données des fichiers KML dans un tableur Microsoft Excel par exemple.

Pour vous épargner cette tâche fastidieuse, un complément du kit de démarrage OGDI propose, sous la forme d’un téléchargement gratuit sous licence libre Microsoft Public License (Ms-PL), des utilitaires de conversion de fichiers KML en fichiers CSV visant à proposer, compte tenu du contexte, une très grande flexibilité au niveau des options de personnalisation ainsi que plusieurs interfaces d’accès de façon à pouvoir s’insérer au sein de processus ETL (Extract, Transform, and Load) existants. Ceci constitue un différentiateur d’autres utilitaires de même type disponibles aujourd’hui.

Les utilitaires ainsi proposés sont référencés sous le vocable Kml2Csv.

Conversion de fichiers KML en fichiers CSV à l’aide des utilitaires Kml2Csv

Techniquement parlant, ces utilitaires Kml2Csv reposent sur une bibliothèque centrale (Microsoft.Kml2Csv.Helpers.dll) qui fournit toute la logique de conversion. Sur cette base, plusieurs interfaces d’accès à cette « logique de conversion » sont ainsi fournies. En surcouche de cette bibliothèque, on peut ainsi trouver une application en ligne de commande classique, une application en interface graphique, ainsi qu’un cmdlet Windows PowerShell.

image

Interface graphique

L’application avec une interface graphique se nomme Microsoft.Kml2Csv.Wpf.exe. Elle repose sur la technologie WPF (Windows Presentation Foundation) du Microsoft Framework .NET. Le site communautaire WPF France propose de très nombreuses ressources sur cette technologie.

L’utilisation de l’application est très simple ; celle-ci s’articulant autour de 2 écrans, un premier pour constituer et présenter la liste des fichiers KML à convertir, et un second pour ajouter un fichier KML à la liste et définir le paramétrage associé. Il suffit ensuite de cliquer sur le bouton Convertir pour lancer la conversion des fichiers KML ainsi listés.

Pour en illustrer l’usage, nous nous appuyons ici sur les deux ensembles de données suivants au format KML mis à disposition par le Service SIG Rennes Métropole :

  1. Arrêts physiques du réseau de transport en commun de l'agglomération rennaise ;
  2. Carrefours équipés de feux sonores.

image

Le bouton Ajouter fichier KML permet d’ajouter un fichier KML à convertir à la liste et donne accès à la configuration associée.

image

image

Ligne de commande

L’application en ligne de commande se nomme Microsoft.Kml2Csv.Console.exe. Pour l’utiliser, il suffit d’ouvrir une invite de commande sous Windows et de suivre la syntaxe suivante :

Microsoft.Kml2Csv.Console.exe <Chemin vers fichier KML> –l <Séparateur de liste> –d <Séparateur décimal>

Dans la liste des paramètres il faut spécifier un chemin vers un fichier KML valide, un séparateur de liste précédé de l’option ‘-l’ et un séparateur décimal précédé de l’option ‘-d’.

Ces séparateurs seront appliqués sur le fichier CSV résultant qui sera situé dans le même répertoire que votre fichier KML une fois l’exécution de la commande terminée.

Cmdlet Windows PowerShell

L’applet de commande (cmdlet) Windows PowerShell proposé ressemble beaucoup à l’application Console dans sa syntaxe d’utilisation mais permet de bénéficier en plus de la puissance de l’environnement d’exécution Windows PowerShell.

La syntaxe d’utilisation est la suivante :

PS> Convert-Kml2Csv [-KmlFile] <String> [-ListSeparator] <ListSeparator> [-DecimalSeparator] <DecimalSeparator>

Pour exécuter le cmdlet, il suffit de le déployer et d’ouvrir un environnement d’exécution Windows PowerShell afin de pouvoir exécuter la commande. Toute la procédure de déploiement est détaillée dans la documentation qui accompagne les utilitaires Kml2Csv.

image

En guise de conclusion

Nous venons d’illustrer comment résoudre la problématique de chargement de données ouvertes disponibles au format KML dans votre instance OGDI grâce aux utilitaires Kml2Csv qui permettent, comme leur nom le suggère, de convertir vos fichiers KML en fichiers CSV que vous pourrez ensuite charger grâce aux utilitaires de chargement de données proposés par le kit de démarrage OGDI. Les utilitaires Kml2Csv sont téléchargeables ici.

Comme vous avez pu le voir, 3 approches différentes sont possibles, vous pouvez utiliser l’interface graphique pour bénéficier de la plus grande simplicité d’utilisation ou alors les interfaces en ligne de commande ou PowerShell légèrement plus complexes mais qui offrent en contrepartie tous les avantages des scripts, notamment l’automatisation des tâches par exemple.