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
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
- Metadator recherche les shapes présents dans le dossier indiqué par l'utilisateur (ainsi que dans les sous-dossiers)
- Applique le profil de métadonnées choisi par l'utilisateur pour renseigner les informations générales
- Extrait les caractéristiques techniques de chaque shape via OGR
- Calcule des statistiques basiques pour décrire les champs attributaires (somme, moyenne, médiane, occurrences, fréquence, etc.)
- Applique les descriptions aux champs attributaires récurrents
- 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 :
- Windows XP SP3 ou plus
- Microsoft Word 2003 ou plus
- Python 2.7.x : http://www.python.org/download/releases/2.7
- Modules python installables depuis PyPi ou http://www.lfd.uci.edu/~gohlke/pythonlibs:
- GDAL/OGR : http://www.gdal.org/ogr
- Pmw : http://pmw.sourceforge.net/doc/starting.html
- Dateutil : http://pypi.python.org/pypi/python-dateutil/
- xlwt : https://github.com/python-excel/xlwt
- numpy : http://numpy.scipy.org/
- Pywin32 : http://sourceforge.net/projects/pywin32/
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 :
- dupliquer le dossier FR du dossier "locale"
- renommer le nouveau dossier avec l'abréviation de la nouvelle langue souhaitée (EN pour l'anglais par exemple)
- appliquer de même aux suffixes des fichiers contenus dedans
- é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.