Skip to content
DGZ-Engineering-LabPublic

About

Open Geodatabase Framework & Provider for QGIS (.qgdb) with LADM-COL v3.0 & ESRI GDB support

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

QGDB: Open Geodatabase Framework & Provider for QGIS 🌍📦

License: GPL v3 QGIS Python Profile: LADM-COL Qt6 Compatible Release

QGDB (.qgdb) es una especificación abierta y un proveedor nativo para QGIS que implementa el soporte completo de Geodatabases Jerárquicas (Feature Datasets, Capas Vectoriales 2D/3D, Tablas Alfanuméricas, Dominios de Valores y Relaciones 1:N / N:M), con interoperabilidad bidireccional con ESRI File Geodatabase (.gdb) y cumplimiento del estándar de Catastro Multipropósito de Colombia (LADM-COL v3.0).

💡 ¿Qué es QGDB? Un formato geoespacial moderno, portable y 100% personalizable que trae la potencia de las Geodatabases empresariales a QGIS, con soporte nativo para Feature Datasets jerárquicos, dominios de valores, relaciones complejas y sincronización bidireccional con ESRI File Geodatabase.


📋 Tabla de Contenidos


⚙️ Requisitos del Sistema

Componente Versión Mínima Versión Recomendada
QGIS 3.22 LTR 3.36+ (Qt6)
Python 3.9 3.11+
SQLite3 3.35 3.45+
Sistema Operativo Windows 10, macOS 11, Linux (Ubuntu 20.04+) Windows 11, macOS 13, Ubuntu 22.04+

Verificar tu versión de QGIS

Abre QGIS y ve a: Ayuda ➔ Acerca de QGIS para confirmar tu versión actual.


📥 Instalación Rápida

✅ Paso 1: Descargar el Plugin

Descarga el archivo qgdb.zip desde la sección de Releases de este repositorio.

✅ Paso 2: Instalar en QGIS

  1. Abre QGIS en tu computadora.
  2. En el menú superior, ve a: Complementos ➔ Administrar e instalar complementos...
  3. En la ventana que aparece, selecciona la pestaña Instalar a partir de ZIP (lado izquierdo).
  4. Haz clic en ... y selecciona el archivo qgdb.zip descargado.
  5. Haz clic en Instalar complemento.
  6. ¡Listo! Deberías ver un mensaje de éxito. El plugin está instalado y disponible en el menú QGDB Geodatabase.

✅ Paso 3: Verificar Instalación

  • En el menú superior de QGIS, verifica que aparezca la opción QGDB Geodatabase con los submúes:
    • ✨ Crear Nueva Geodatabase QGDB...
    • 🔄 Convertir ESRI File Geodatabase (.gdb) a QGDB...
    • 📂 Cargar Geodatabase (.qgdb) con Estructura de Datasets

🚀 Guía de Uso

1. Cargar una Geodatabase .qgdb en el Panel de Capas

  • En el menú superior de QGIS: QGDB Geodatabase ➔ 📂 Cargar Geodatabase (.qgdb) con Estructura de Datasets.
  • Selecciona tu archivo .qgdb y QGIS creará automáticamente los grupos temáticos con todas las capas vectoriales cargadas en el proyecto.

2. Navegación desde el Panel Navegador (Browser)

  • Expande cualquier archivo .qgdb en el árbol del explorador.
  • Clic derecho sobre el archivo para añadir toda la geodatabase organizada por Datasets.
  • Clic derecho sobre un Dataset para añadir solo ese grupo temático.

3. Convertir una File Geodatabase (.gdb) a .qgdb por Terminal / CLI

python-qgis.bat cli/qgdb_cli.py gdb2qgdb --input "ruta/a/mi_geodatabase.gdb" --output "ruta/a/mi_geodatabase.qgdb"

✨ Características Principales

  • 📂 Feature Datasets Jerárquicos en QGIS: Organiza cientos de capas vectoriales en carpetas temáticas nativas tanto en el Panel Navegador (Browser Panel) como en el Panel de Capas (Layer Tree / TOC).
  • 🔄 Conversor Bidireccional ESRI GDB ↔ QGDB: Convierte cualquier File Geodatabase (.gdb) conservando la jerarquía de datasets, geometrías 2D/3D (polígonos, líneas, puntos) y tablas de atributos.
  • 🇨🇴 Perfil Oficial LADM-COL v3.0: Generador de contenedores .qgdb configurados para Catastro Multipropósito (IGAC / SNR / CGR) con 1 solo clic.
  • 🌐 Arquitectura Abierta OGC: Construido sobre contenedores OGC GeoPackage/SQLite de alto rendimiento, portables en un único archivo (.qgdb).
  • ⚡ Driver Python y CLI: API Python (driver/qgdb_driver.py) y CLI (cli/qgdb_cli.py) independientes para automatizaciones ETL en servidores y pipelines de datos.

🚀 Guía de Uso

1. Cargar una Geodatabase .qgdb en el Panel de Capas

  • En el menú superior de QGIS: QGDB Geodatabase ➔ 📂 Cargar Geodatabase (.qgdb) con Estructura de Datasets.
  • Selecciona tu archivo .qgdb y QGIS creará automáticamente los grupos temáticos con todas las capas vectoriales cargadas en el proyecto.

2. Navegación desde el Panel Navegador (Browser)

  • Expande cualquier archivo .qgdb en el árbol del explorador.
  • Clic derecho sobre el archivo para añadir toda la geodatabase organizada por Datasets.
  • Clic derecho sobre un Dataset para añadir solo ese grupo temático.

3. Convertir una File Geodatabase (.gdb) a .qgdb por Terminal / CLI

python-qgis.bat cli/qgdb_cli.py gdb2qgdb --input "ruta/a/mi_geodatabase.gdb" --output "ruta/a/mi_geodatabase.qgdb"

📚 Documentación Técnica

📖 Documentación de Usuario


💡 Ejemplos de Uso

Ejemplo 1: Crear una Geodatabase para Catastro Multipropósito

  1. Ve a QGDB Geodatabase ➔ ✨ Crear Nueva Geodatabase QGDB...
  2. Selecciona el perfil "Catastro Colombia (LADM-COL v3.0)"
  3. Define los Datasets temáticos (ej: Cartografía, Limítrofes, Infraestructura)
  4. ¡Listo! Tendrás un contenedor .qgdb estructurado conforme a estándares oficiales.

Ejemplo 2: Migrar una Geodatabase ESRI a QGDB

# Línea de comando (Windows)
python-qgis.bat cli/qgdb_cli.py gdb2qgdb \
  --input "C:\\Datos\\Mi_GDB.gdb" \
  --output "C:\\Datos\\Mi_GDB.qgdb" \
  --profile ladm_col

Ejemplo 3: Usar la API Python en un Script

from qgdb.driver.qgdb_driver import QGDBDriver
from qgdb.core.qgdb_engine import QGDBEngine

# Crear un contenedor QGDB
engine = QGDBEngine("mi_geodatabase.qgdb")

# Crear un Dataset temático
engine.create_dataset("Cartografía Base", "Capas de referencia cartográfica")

# Cargar capas desde Shapefile
engine.import_layer_from_shapefile(
    "Cartografía/Límites", 
    "limites.shp"
)

engine.close()

🏛️ Estructura del Proyecto

QGBD/
├── plugin/                    # Código del plugin para QGIS
│   ├── metadata.txt           # Metadatos oficiales para plugins.qgis.org
│   ├── browser_provider.py    # Proveedor QgsDataItemProvider para el Navegador
│   ├── qgdb_plugin.py         # Punto de entrada y acciones en la UI de QGIS
│   └── icon.png               # Icono oficial
├── core/                      # Motor central de datos QGDB
│   ├── qgdb_engine.py         # Motor de almacenamiento
│   ├── schema_builder.py      # DDL y tablas de sistema qgdb_*
│   └── validator.py           # Validador de esquemas y reglas
├── converters/                # Herramientas de interoperabilidad
│   ├── gdb_analyzer.py        # Extractor profundo de Feature Datasets ESRI
│   ├── gdb2qgdb.py            # Conversor .gdb ➔ .qgdb
│   └── qgdb2gdb.py            # Exportador .qgdb ➔ .gdb
├── profiles/                  # Plantillas normativas
│   └── ladm_col.py            # Perfil Catastro Colombia LADM-COL v3.0
├── spec/                      # Especificación técnica formal
│   ├── QGDB_FORMAT_SPECIFICATION_v1.0.md
│   └── ladm_col_v3.0.json
├── package_plugin.py          # Script de empaquetado para distribución
└── LICENSE                    # Licencia GPLv3

🤝 Contribuciones

Este es un proyecto de código abierto bajo licencia GPLv3. Las contribuciones son bienvenidas. Si deseas contribuir:

  1. Fork este repositorio en tu cuenta de GitHub.
  2. Crea una rama con tu nombre de característica: git checkout -b feature/mi-feature
  3. Realiza tus cambios y haz commits descriptivos: git commit -m "Agregar nueva característica"
  4. Envía un Pull Request a la rama main con una descripción clara de los cambios.

Directrices de Contribución

  • Asegúrate de que el código cumpla con PEP 8 (estilo Python oficial).
  • Incluye pruebas unitarias para nuevas funcionalidades en la carpeta tests/.
  • Documenta cambios significativos en plugin/CHANGELOG.md.
  • Actualiza la documentación técnica en spec/ si aplica.

🐛 Reportar Errores (Issues)

¿Encontraste un error? Por favor, abre un Issue con:

  • Descripción clara del problema.
  • Pasos para reproducirlo.
  • Tu versión de QGIS y Python.
  • Captura de pantalla (si aplica).
  • Archivo .qgdb de prueba (si es necesario).

📄 Licencia

Este proyecto está distribuido bajo la licencia GNU General Public License v3.0 (GPLv3).

Consulta el archivo LICENSE para los términos completos.

Resumen: Eres libre de usar, modificar y distribuir este software bajo los términos de GPLv3. Si lo distribuyes, debes incluir la licencia y los cambios.


📞 Contacto y Soporte

Información del Autor

Enlaces Importantes

Recursos Adicionales


⭐ Apoyo al Proyecto

Si este proyecto te ha sido útil, considera:

  • ⭐ Darle una estrella en GitHub (clic en Star ⭐ arriba a la derecha).
  • 🔔 Seguir el repositorio para recibir actualizaciones.
  • 📢 Compartir con otros usuarios de QGIS que puedan beneficiarse.
  • 💰 Patrocinar el desarrollo si deseas características adicionales.

Versión: 1.0.2 | Última actualización: Agosto 2026 | Estado: Producción ✅

About

Open Geodatabase Framework & Provider for QGIS (.qgdb) with LADM-COL v3.0 & ESRI GDB support

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages