Skip to Content

Metadator - Création automatisée de métadonnées

Type : script python 2.7 (pour Windows) et exécutable Windows
Licence : GPL 3

La production de métadonnées étant indispensable mais souvent vécue comme une tâche laborieuse et répétitive, j’ai eu à développer un outil pour produire des fiches de métadonnées sous différents formats.

Sommaire

Présentation

Logo Metadator

Metadator, de son petit nom, s’emploie donc à :

  • extraire les informations de shapefiles contenus dans une arborescence
  • se baser sur des profils personnalisables pour toutes les informations non techniques
  • exporter les fiches en 4 formats : html, Word 2003/2007 (.doc/.docx), Excel 2003 (.xls) et XML ISO19139 (en partie seulement) importable dans un outil de catalogage comme GéoSource.   
Aperçu de l'export au format Word Fiche exportée une fois importée dans GéoSource

 

Aperçu du premier onglet de la fiche exportée en Excel (.xls)

Développé en Python, ce petit outil sans prétention (commencé après 6 mois de programmation) ne fait pas de miracle et ne supprime pas tout le travail de l’utilisateur. Il a juste vocation à automatiser ce qui peut l’être et soulageant ainsi l’utilisateur de sorte qu'il n’ait plus qu’à se concentrer sur ce qu’une machine ne peut faire pour lui : description des attributs, pertinence des informations, précisions, etc.

Il y a encore beaucoup d’améliorations à apporter, sans parler des bugs mais comme il nous rend sacrément service (surtout dans un contexte de travail où le concept de métadonnées est presque inconnu), je me suis dit qu'il pourrait bien être utile à d'autres. 

Fonctionnement général

  1. Metadator recherche les shapes présents dans le dossier indiqué par l'utilisateur (ainsi que dans les sous-dossiers)
  2. Applique le profil de métadonnées choisi par l'utilisateur pour renseigner les informations générales
  3. Extrait les caractéristiques techniques de chaque shape via OGR
  4. Calcule des statistiques basiques pour décrire les champs attributaires (somme, moyenne, médiane, occurrences, fréquence, etc.)
  5. Applique les descriptions aux champs attributaires récurrents
  6. Crée les fiches de métadonnées dans les formats et la langue choisis par l'utilisateur.
Choisir l'arborescence Choisir un profil existant ou en créer un nouveau / changer de langue.

    

L'outil se décline en 2 versions :

1 - Version exécutable :

Utilisation plus facile mais plus rigide ne nécessitant que Windows et Microsoft Word. Une fois l'archive décompressée, lancer Metadator.exe.

2 - Version script :

Utilisation plus souple mais nécessite des prérequis et une connaissance minimum de l'environnement python :

Il est fortement recommandé d'installer les différents modules via des setup exécutables téléchargeables sur http://www.lfd.uci.edu/~gohlke/pythonlibs et notamment le package Base.
Une fois l'archive décompressée, lancer Metadator.py depuis l'IDE ou la console Windows (lancement plus lent) :

cd chemin\du\dossier\decompresse\de\Metadator
python Metadator.py

Créer ses profils

Metadator repose sur l'application de profils de métadonnées à un ou plusieurs shapefiles, en considérant que bien souvent les parties descriptives des métadonnées (résumé, sources, contacts, mots-clés, ...) sont communes à plusieurs données. Metadator permet de créer ces profils via un formulaire (qui rappelle celui d'Expire). L'utilisateur peut ainsi créer un nombre infini de profils applicables à des lots de shapes plus ou moins nombreux.

Aperçu du formulaire de création de profil.

Le programme est fourni avec 2 profils de démonstration : l'un en espagnol, l'autre en français.

Internationalisation

Le programme intègre un système simple d'internationalisation avec deux langues pré-incluses : le français et l'espagnol. Il est ainsi facile d'ajouter une nouvelle traduction ou même de modifier les différents textes du programme.

Le dossier "locale" où se créent et éditent les textes et traductions du programme

Ajouter une traduction :

  1. dupliquer le dossier FR du dossier "locale"
  2. renommer le nouveau dossier avec l'abréviation de la nouvelle langue souhaitée (EN pour l'anglais par exemple)
  3. appliquer de même aux suffixes des fichiers contenus dedans
  4. éditer le fichier lang_XX.xml :
    • nom de la langue (première section du fichier)
    • adapter les chemins (deuxième section du fichier)
    • traduire tous les autres textes sans toucher aux balises

Aperçu du fichier XML des textes du programme : lang_FR.xml

 

Les champs attributaires récurrents

On part du constat que certains champs attributaires reviennent de façon récurrente (voire systématique) : codes et nom d'unités administratives (ilôts, départements, communes, ...), variables de calculs géométriques (aire, périmètre, ...), attributs d'OpenStreetMap (tags, user, timestamps, ...), etc.

Metadator va piocher dans les fichiers xml intitulés champignons_XX (où XX est le préfixe de langue) les descriptions des champs attributaires ajoutés par l'utilisateur pour les ajouter automatiquement, évitant ainsi de réecrire sans cesse les mêmes descriptions d'attributs.

Pour personnaliser les champs attributaires :

  • éditer le fichier champignons_XX.xml (Metadator\locale\XX\)
  • ajouter/supprimer/modifier l'id, le nom et la description des champs attributaires

Aperçu du fichier XML des champs attributaires récurrents en français.

Attention, les noms de champs sont sensibles à la casse. Les balises html de base peuvent être utilisées pour une meilleure mise en forme lors de l'export par Metadator.

Adaptation aux systèmes Unix (Mac et Linux)

Pré-requis :

  • Python 2.7.x
  • Modules indiqués plus haut excepté Pywin32 bien sûr

Télécharger la version script pour Linux : https://github.com/Guts/Metadator/tree/alpha-unix

Par exemple via le terminal :

cd chemin/du/dossier/GitHub
git clone https://github.com/Guts/Metadator.git --branch alpha-unix

Utilisation :

Lancer le script Metadator_Nux.py en sachant que l'export au format .doc/.docx (Word) n'est pas disponible. Il a été testé sous Ubuntu 12.04. Le support de cette version n'est pas assuré comme le sous-entend le nom de la branche de développement.

Fenêtre du choix de l'arborescence sous Ubuntu 12.04

 

Perspectives

Malgré un rythme de développement assez lent, quelques améliorations sont prévues :

  • meilleure tolérance aux caractères spéciaux (fait avec la version 1.9)
  • export en .odt plutôt qu'en Word
  • export en html via xlst
  • export du catalogue d'attributs (ISO 19110)
  • prise en compte des tables MapInfo
  • finir le système d'aide via infobulles sur le formulaire de création de profil

Notification et bilan du programme. L'erreur rencontrée est volontaire pour les besoins du développement (shape vide).

 

Références

Le dépôt sur GitHub : https://github.com/Guts/Metadator
Les échanges et retours sur le Forum SIG : http://www.forumsig.org/showthread.php?p=297574
INSPIRÉ par Expire : http://sourceforge.net/projects/expire/
Développé via PyScripter : https://code.google.com/p/pyscripter/
Amélioré grâce aux nombreux blogs python comme Sam&Max

Téléchargements

Télécharger la dernière version sur GitHub.



0