Metadator: herramienta de creación automatizada de metadatos (Python)
23 de Enero de 2013
Hoy es un gran día en la corta vida de Datamadre, el primer post de un invitado! Su autor es Julien Moura quién nos presenta la herramienta que ha desarrollado para automatizar la creación de metadatos, Metadator.
La producción de los metadatos es algo indispensable para los que trabajan con datos geográficos, pero es una tarea bastante pesada y repetitiva que finalmente no esta bien hecha generalmente. Específicamente para los miembros de la Unión Europea donde la directiva INSPIRE impone muchas normas.
En el marco de mi actividad profesional en el INDECI, tuve que desarrollar una herramienta para facilitar esta parte de nuestro trabajo.
Presentación
Lo que hace Metadator:
- extraer los datos de los archivos shapefiles (.shp) contenidos dentro de una carpeta y sus subcarpetas.
- basarse sobre perfiles personalizables para todas las demás informaciones: institución, contactos, etc.
- exportar los metadatos en 4 formatos: html, Word (.doc/.docx), Excel 2003 (.xls) y XML ISO19139 (solamente una parte) que después se puede importar en un sistema de catálogo tal como GeoNetwork o GéoSource.
Parte del metadato en el formato Word | y en el formato Excel (1era pestaña) |
Desarrollado en Python, esta herramienta no hace milagro ni evita el trabajo del profesional. Solamente permite automatizar lo que puede serlo y así facilitar el trabajo para que el usuario solo tenga que focalizarse sobre lo que ninguna máquina puede hacer en su lugar: descripción de los atributos, pertinencia de las informaciones, precisiones, etc.
Todavía falta mucho para que sea perfecto, pero he pensado que podría interesar varias personas.
Funcionamiento general
-
Metadator busca los shapes presentes dentro de la carpeta indicada por el usuario (también en las subcarpetas);
-
Aplica el perfil de metadatos elegido por el usuario para las informaciones generales;
-
Extrae las características de cada shape via OGR;
-
Calcula estadísticas básicas para describir los campos atributarios (suma, promedio, mediana, frecuencia de las ocurrencias, etc.);
-
Aplica las descripciones de los campos atributarios repetitivos;
-
Crea los metadatos finales en el idioma y los formatos elegidos por el usuario.
Escoger la carpeta donde se encuentran los shapes |
Escoger un perfil ya creado sino crear un nuevo. |
El programa se encuentra en 2 versiones:
1 - Versión ejecutable Windows:
Uso más fácil pero menos flexible, solo se necesita Windows y Microsoft Word.
Una vez el archivo zip extraido, hacer doble clic sobre Metadator.exe.
2 - Versión Python (script):
Uso mas flexible pero se necesitan unos requisitos y al menos un conocimiento mínimo del lenguaje Python:
- Windows XP SP3 o mas recién
- Microsoft Word 2003 o mas recién
- Python 2.7.x : http://www.python.org/download/releases/2.7
- Módulos python instalables desde PyPi:
- 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/
Es recomendado instalar los módulos con setup ejecutables que se pueden encontrar en http://www.lfd.uci.edu/~gohlke/pythonlibs y también el paquete "Base".
Una vez extracto el archivo zip descargado, iniciar Metadator.py desde el IDE Python o el terminal Windows (puede ser mas lento):
cd rutadondeestael_archivo_descargadoextractoMetadator
python Metadator.py
Crear sus propios perfiles de metadatos
Para lenar las informaciones generales sobre los datos, Metadator se basa sobre perfiles de metadatos, aplicables después sobre varios shapes. La idea es que generalmente varias informaciones (sumario, contactos, palabras claves, etc.) son comunes a varios shapes. El programa permite crear los perfiles con la ayuda de un formulario. Así el usuario puede crear tantos perfiles como le gusta o lo necesita.
|
Vista a una parte del formulario |
El programa viene con dos perfiles de demostración: uno en castellano, el otro en francés.
Traducciones e internacionalización
Inicialmente desarrollado en francés, el programa integra un sistema simple de internacionalización. También están incluidos 3 idiomas por defecto: francés, castellano e inglés.
Es muy fácil añadir un idioma o personalizar los textos (de la interfaz como los de los archivos exportados) del programa.
Agregar un idioma:
- hacer una copia de la carpeta FR dentro de la carpeta locale;
- renombrar la carpeta creada con la abreviatura correspondiendo al nuevo idioma que se quiere crear;
- aplicar asimismo a los sufijos de los nombres de los archivos dentro de la carpeta creada;
- editar el archivo lang_XX.xml:
|
Vista a una parte del archivo lang_ES.xml |
Los campos atributarios repetitivos
Observando que dentro de la misma actividad profesional, unos campos atributarios están casi siempre presentes en las capas de información, el programa permite facilitar la descripción de estos campos y también la coherencia global de los metadatos a la escala de una empresa o institución. Por ejemplo, en mi trabajo en Perú, siempre tengo el UBIGEO, los códigos administrativos del INEI para los lugares. También, cuando trabajo con datos extractos desde OpenStreetMap, siempre encuentro los mismos atributos. Es muy pesado siempre volver a copiar las mismas descripciones, así que Metadator permite al usuario reducir el peso de esta tarea y personalizar los campos atributarios repetitivos.
Para editar los campos:
- editar el archivo champignons_XX.xml, donde XX corresponde al idioma querido;
- agregar/eliminar/modificar el ID, el nombre y la descripción de los atributos repetitivos.
|
Parte del archivo de los campos atributarios repetitivos |
Ojo, los nombres de los campos tienen que hacer coincidir mayúsculas y minúsculas. Así que id e ID son dos atributos diferentes para Metadator.
Es compatible con el código html para personalizar las letras: <b>negrita</b>, etc.
Adaptación a los sistemas operativos (Mac y Linux)
Requisitos:
- Python 2.7.x
- Módulos indicados mas arriba excepto Pywin32 obviamente.
Descargar lo necesario con el terminal:
cd ruta/donde_quiere_instalarlo git clone https://github.com/Guts/Metadator.git --branch alpha-unix |
Uso:
Iniciar el archivo Metadator_Nux.py tomando en cuenta que no es disponible el formato Word para exportar.
Esta versión no esta mentenida. Ha sido probada con Ubuntu 12.04.
|
Ventana para elegir la carpeta en Ubuntu 12.04 |
Por venir: perspectivas del desarrollo
A pesar de un ritmo de desarrollo lento, algunas mejoras estan consideradas:
- mejor tolerancia a los caracteres especiales (hecho con la verión 1.9)
- exportar en el formato .odt
- exportar en html con xlst
- exportar el catálogo de los atributos (ISO 19110)
- compatibilidad con archivos MapInfo
- terminar el sistema de ayuda para el formulario de creación de perfil
|
Notificación y informe finales del programa El error indicado es voluntario para las necesidades del desarrollo. |
Referencias
Mi perfil LinkedIn: http://www.linkedin.com/in/julienmoura/es
Gracias a Pierre por prestarme un poco de su blog y también por haber creado el embrión de Metadator (DataInspector).
Desarrollado con PyScripter : https://code.google.com/p/pyscripter/