El script 1-alimentar_mongodb_openstreet.py es una herramienta diseñada para procesar imágenes desde un directorio específico y extraer metadatos relevantes, incluyendo información GPS y direcciones geocodificadas. Los datos procesados se almacenan en una base de datos MongoDB para facilitar la organización y búsqueda de imágenes.
El script incorpora las siguientes funcionalidades principales:
El script requiere las siguientes bibliotecas de Python:
pymongoPIL (Python Imaging Library, más conocido como Pillow)exifreadrequestsalbum_2imagenes (se creará automáticamente si no existe)Ejecute los siguientes comandos para instalar las bibliotecas requeridas:
pip install pymongo pillow exifread requests
Antes de ejecutar el script, es necesario modificar las siguientes constantes en el archivo:
DIRECTORY = '/mnt/local/datos/PROYCTO_ALBUM_SEMANTICO/IMAGENES'
Cambie esta ruta por el directorio que contiene las imágenes que desea procesar.
MONGO_URI = "mongodb://localhost:27017"
DB_NAME = "album_2"
COLLECTION_NAME = "imagenes"
Modifique estos valores según su configuración de MongoDB si es necesario.
Para ejecutar el script, navegue al directorio donde se encuentra el archivo y ejecute:
python 1-alimentar_mongodb_openstreet.py
El script completo está disponible en la carpeta codigo/ del proyecto:
📄 Descargar 1-alimentar_mongodb_openstreet.py
El script proporcionará información en tiempo real durante el procesamiento:
El script puede ser detenido en cualquier momento con Ctrl+C. Sin embargo, los datos ya procesados permanecerán en la base de datos.
Para imágenes con coordenadas GPS, el script:
Cada documento en la colección imagenes contiene la siguiente estructura:
| Campo | Tipo | Descripción |
|---|---|---|
_id |
String | Hash SHA512 del archivo (identificador único) |
hash_sha512 |
String | Mismo valor que _id para compatibilidad |
nombre_archivo |
String | Nombre del archivo de imagen |
ruta_completa |
String | Ruta completa al archivo |
ancho |
Integer | Ancho de la imagen en píxeles |
alto |
Integer | Alto de la imagen en píxeles |
La fecha de creación se separa en campos individuales para facilitar las consultas:
fecha_creacion_dia: Día del mes (01-31)fecha_creacion_mes: Mes (01-12)fecha_creacion_anio: Año (YYYY)fecha_creacion_hora: Hora (00-23)fecha_creacion_minuto: Minuto (00-59)| Campo | Tipo | Descripción |
|---|---|---|
coordenadas |
Array | [latitud, longitud] en formato decimal (null si no GPS) |
direccion_os |
String | Dirección geocodificada (null si falla la geocodificación) |
La fecha de procesamiento se actualiza cada vez que se ejecuta el script:
fecha_procesamiento_dia: Día del procesamientofecha_procesamiento_mes: Mes del procesamientofecha_procesamiento_anio: Año del procesamientofecha_procesamiento_hora: Hora del procesamientofecha_procesamiento_minuto: Minuto del procesamientoCausa: La ruta especificada en DIRECTORY no es válida.
Solución: Verifique la ruta del directorio y asegúrese de que existe y es accesible.
Causa: No se puede conectar a MongoDB.
Solución: Verifique que MongoDB esté ejecutándose y que la URI en MONGO_URI sea correcta.
Causa: Problemas de conexión a internet o límites de la API.
Solución: El script manejará automáticamente este error, dejando el campo direccion_os como null.
Causa: La imagen no contiene metadatos GPS en sus metadatos EXIF.
Solución: Esto es normal para muchas imágenes tomadas con dispositivos móviles más antiguos o sin GPS habilitado.
db.imagenes.find({
"fecha_creacion_anio": "2023",
"fecha_creacion_mes": "07"
})
db.imagenes.find({
"coordenadas": { $ne: null }
})
db.imagenes.find({
"direccion_os": /Madrid/
})
db.imagenes.countDocuments()
Este script fue desarrollado para el proyecto Album Semántico y está optimizado para el procesamiento de imágenes con metadatos GPS.
Para soporte técnico o consultas adicionales, revise la documentación del proyecto o contacte al equipo de desarrollo.
Manual generado automáticamente - Última actualización: 31 de agosto de 2025