Si hace unas semanas os hablábamos de la inteligencia artificial y cómo se podía aplicar a los SIG, ahora os traemos un complemento de QGIS, denominado QChatGPT, que integra la API de OpenAI en QGIS.
Este complemento nos permite incorporar la API de OpenAI a nuestros proyectos de QGIS, facilitándonos el acceso a la tecnología de Inteligencia Artificial sin necesidad de tener experiencia previa con sistemas de IA.
En este artículo vamos a ver más sobre cómo funciona QChatGPT en QGIS.
Índice
Instalación
En menú superior de QGIS nos dirigimos a Complementos → Administrar e instalar complementos.
Tecleamos QChatGPT:
Instalamos el complemento y los paquetes de Python necesarios:
Creamos una API Key accediendo al siguiente enlace: https://platform.openai.com/account/api-keys, y lo introducimos en la pestaña Settings:
Nota: El uso de la API no es gratuito, tiene un coste por uso. Al crear una cuenta dispondrás de $5 en crédito gratis que puedes usar durante los primeros 3 meses. Actualmente el precio es de $0.002 / 1K tokens y 1 token equivale a 0.75 palabras.
Una vez introducida la clave ya podremos comenzar a utilizar el complemento.
Vamos a ver 5 usos que podemos darle a la inteligencia artificial en nuestro trabajo diario con QGIS:
1. Obtener datos sobre el proyecto
Con el plugin de ChatGPT en QGIS podemos obtener información del proyecto activo.
Human: ¿Cuál es el EPSG del proyecto?
AI: El EPSG del proyecto es 4326.
Human: Además del EPSG del proyecto, que otra información podemos obtener del proyecto de QGIS?
AI:
Alguna información adicional del proyecto QGIS incluye la fecha de creación, la extensión de la vista actual, el zoom actual, el archivo de proyecto utilizado, los controladores de datos, las capas usadas y los ajustes específicos para cada capa. También se puede ver la ubicación de las fuentes de datos y la configuración del Sistema de Referencia de Coordenadas (SRC) utilizado.
Human: ¿Qué capas contiene el proyecto de QGIS abierto?
AI: Esto depende del proyecto específico de QGIS abierto. Un proyecto puede contener una o más capas, como capas vectoriales, capas raster, imágenes de satélite, datos de bases de datos, etc.
En resumen: QChatGPT no es capaz de saber qué capas hay en el proyecto. Solo hemos conseguido obtener información del sistemas de coordenadas. El resto de información no sabemos de dónde proviene.
2. Obtener ayuda sobre geoprocesos
Human: ¿Cómo hacer un buffer en QGIS?
AI: Para crear un buffer en QGIS, abre la herramienta Vector > Geoprocesamiento > Buffer. Luego, selecciona tu capa de entrada, establece el tamaño del buffer y especifica la unidad de medida. También puedes elegir si deseas añadir el buffer a la misma capa, guardarlo en un nuevo archivo o hacer los dos. A continuación, haz clic en «Aplicar» para terminar. El buffer se mostrará en el Visor de Mapas de QGIS.
Bueno, grosso modo es correcto, aunque realmente debemos ir al menú superior Vectorial → Herramientas de geoproceso → Buffer, como se ve en la imagen siguiente:
Human: por favor, dame un punto en formato GeoJSON con la ubicación de Madrid
AI:
{ "type": "Feature", "properties": {}, "geometry": { "type": "Point", "coordinates": [-3.702756, 40.416775] } }
En la última versión de QChatGPT se ha incorporado el botón Add on the map the last AI. De esta forma se añade el punto al lienzo de QGIS:
3. Realizar consultas sobre complementos
El plugin QChatGPT nos ayuda a encontrar complementos de QGIS que nos ayudan a realizar ciertas funciones que no vienen por defecto en el núcleo de QGIS.
Human: ¿Qué plugin de QGIS puedo utilizar para añadir mapas online?
AI:El plugin de QGIS para añadir mapas online se llama QuickMapServices. Este plugin proporciona una capa base con diferentes tipos de mapas online, como Bing Maps, Google Maps, OpenStreetMap y muchos otros. Con este plugin, los usuarios pueden agregar fácilmente estas fuentes de datos a sus proyectos en QGIS sin tener que descargar los datos primero.
Human: ¿Qué plugin de QGIS puedo utilizar para trabajar con herramientas tipo CAD?
Para trabajar con herramientas tipo CAD en QGIS, puedes utilizar el plugin CADTools. Este plugin proporciona una variedad de herramientas para dibujar, modificar y manipular objetos CAD en QGIS. También incluye funcionalidades como la exportación a formatos DXF, la modificación de capas de línea, la creación de polígonos y la construcción de objetos 3D con una interfaz fácil de usar.
Ojo, que el plugin CADTools ya no existe, sin embargo uno de los mejorares plugin de QGIS para trabajar con herramientas tipo CAD es QAD.
Human: ¿existe algún plugin de QGIS para trabajar con BIM?
AI: No existe un plugin para QGIS específico para trabajar con BIM, pero hay herramientas disponibles que permiten importar y visualizar datos BIM a través de QGIS. Además, algunos modelos BIM se pueden exportar al formato GeoJSON, que es compatible con QGIS.
Si le vemos utilidad para ayudarnos a encontrar determinados plugins, ya que el repositorio actualmente supera los 1000, pero teniendo en cuenta que no tiene una base de datos de plugins actualizada, por lo que obviará los más recientes.
4. Consultas sobre recursos geográficos
Human: ¿de dónde puedo extraer datos LiDAR para trabajar en QGIS?
AI: Los datos LiDAR para trabajar en QGIS pueden extraerse de varias fuentes, incluidas el USGS National Map Viewer, el USGS EarthExplorer, el Global Human Settlement Layer (GHSL), el Earth Observation Data Portal y la Survey of India. También es posible descargar datos LiDAR a través de OpenTopography, GeoBase y el Grupo Internacional para el Desarrollo de Sistemas de Información Geográfica.
Human: por favor dime el WMS del PNOA de España
AI: El WMS del PNOA de España es: https://www.ign.es/wms-inspire/pnoa-ma?version=1.3.0
Es cierto que da resultados y mucha ayuda que de otra forma tendríamos que salir a Google a buscar, pero sin conocimientos de QGIS no sabremos que herramienta utilizar para añadir el servicio WMS.
5. Ayuda para crear scripts de Python
Human: ¿Puedes crear un script en Python que añada la capa del PNOA a QGIS?
AI: Sí, se puede crear un script en Python para añadir la capa del Catastro. Aquí hay un ejemplo de cómo construir un script para lograr esto:
import arcpy from arcpy import env # Establece la variable de entorno env.workspace = "C:/PATH/TO/WORKSPACE" # Añadir la capa al mapa actual arcpy.MakeFeatureLayer_management (in_features='CatastroLayer', out_layer='CatastroLayer_lyr') arcpy.AddLayerToMap (in_layer='CatastroLayer_lyr', add_to_TOC=True)
Oh wait!, un código para ArcGIS 😅!! Vamos a precisar un poco mejor la consulta….
Human: ¿Puedes crear un script en Python que añada la capa del PNOA a QGIS?
AI: No, no es posible crear un script en Python para añadir la capa del PNOA a QGIS. Esto se debe a que el PNOA es una base de datos que no admite scripts en Python. Sin embargo, es posible acceder directamente a los servicios web WMS/WFS del PNOA desde QGIS, utilizando la herramienta «Añadir capa WMS/WMTS» para obtener las capas de datos de interés.
Desistimos. Vamos a probar con otro script:
Human: crea un script para QGIS que lea los registros de la tabla de atributos de una capa y muestre los nombres de los campos de esa tabla
AI:
##Script para QGIS #Importación de los siguientes módulos QGIS from qgis.core import * from qgis.gui import * #Obtener la capa activa layer = iface.activeLayer() #Abrir un diálogo de cuadro de diálogo QGIS para leer los nombres de los campos fields = layer.fields() for field in fields: print(field.name())
Al escribir el código en la consola de Python funciona perfectamente, listando los nombres de la tabla de atributos de la capa

Hemos creado también un vídeo con algunas pruebas con QChatGPT:
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
estoy comenzando a usar QChatGPT, logro generar la Api key, pero sin haber hecho ninguna consulta previa me sale que eh rebasado el limite de consultas, cual seria la solucion, ya eh porbado con la version mas estable qgis 3.28 y con qgis 3.30
Buen día, excelente post. Una pregunta, puedo ordenar a la IA que dentro de un raster me ubique figuras geométricas o lo más similar que se encuentre en el raster a las figuras geometricas, que estoy trabajando? Saludos.
Hola Aurelio. Al instalar el complemento me muestra el siguiente error:
No se pudo cargar el complemento ‘QChatGPT’ debido a un error al llamar a su método classFactory()
ModuleNotFoundError: No module named ‘openai’
Traceback (most recent call last):
File «C:\Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\QChatGPT\qchatqpt.py», line 45, in
import openai
File «C:\PROGRA~1/QGIS32~1.12/apps/qgis-ltr/./python\qgis\utils.py», line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ModuleNotFoundError: No module named ‘openai’
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «C:\PROGRA~1/QGIS32~1.12/apps/qgis-ltr/./python\qgis\utils.py», line 423, in _startPlugin
plugins[packageName] = package.classFactory(iface)
File «C:\Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\QChatGPT\__init__.py», line 35, in classFactory
from .qchatqpt import qchatgpt
File «C:\PROGRA~1/QGIS32~1.12/apps/qgis-ltr/./python\qgis\utils.py», line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File «C:\Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\QChatGPT\qchatqpt.py», line 51, in
import openai
File «C:\PROGRA~1/QGIS32~1.12/apps/qgis-ltr/./python\qgis\utils.py», line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ModuleNotFoundError: No module named ‘openai’
Versión de Python: 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
Versión de QGIS: 3.22.12-Białowieża Białowieża, b8534cb1
Ruta de Python:
C:/PROGRA~1/QGIS32~1.12/apps/qgis-ltr/./python
C:/Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA~1/QGIS32~1.12/apps/qgis-ltr/./python/plugins
C:\Program Files\QGIS 3.22.12\bin\python39.zip
C:\PROGRA~1\QGIS32~1.12\apps\Python39\DLLs
C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib
C:\Program Files\QGIS 3.22.12\bin
C:\PROGRA~1\QGIS32~1.12\apps\Python39
C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib\site-packages
C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib\site-packages\win32
C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib\site-packages\win32\lib
C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib\site-packages\Pythonwin
C:/Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python
.
C:\Users/avfpa/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis_resource_sharing
C:\Users\avfpa\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis_resource_sharing
C:\Users\avfpa\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis_resource_sharing\ext_libs
He probado tanto e MacOS como en windows y en ambos me aparece. Cómo puedo solucionarlo?
Gracias de antemano.
Un saludo
Tengo el mismo problema, probaré con la ultima versión de QGIS
Hola,
Me pasa exactamente lo mismo. Estoy utilizando la versión 3.28.
¿Cómo puede solucionarse?
Gracias.
Hola, felicitaciones tu artículo, es bastante ilustrativo. Yo usé el complemento sin problemas, pero de pronto, de un día para otro me sale el siguiente error en dos computadoras diferentes: «QChatGPT : openai.error.AuthenticationError: Incorrect API key provided. You can find your API key at https://platform.openai.com/account/api-keys.» Tal vez tuvo que ver alguna actualización. No he logrado resolverlo
Conseguiu resolver?
Hola Aurelio, he intentado probar ChatGPT, pero me pide la API de OpenAI. Creé una y la copié y pegué en la configuración del plugin, pero sigue sin funcionar. ¿Cómo configuraste la API para que funcione el plugin? Gracias.
Hola Alberto,
en mi caso, con la versión de QGIS 3.28 se instaló la API en segundo plano y no fue necesario configurar ni descargar nada. Parece que es una incidencia común, pero de momento no hay una solución clara al problema:
https://github.com/Mariosmsk/QChatGPT/issues/8
Saludos
Gracias por la respuesta