Introducción al desarrollo con PyQGIS
Leonardo Cardona
Germán Carrillo
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933049/pasted-from-clipboard.png)
Introducción al desarrollo con PyQGIS
2019
2da Jornada de Talleres
BUCARAMANGA
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933434/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5989395/pasted-from-clipboard.png)
Introducción
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
2da Jornada de Talleres
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/308098/images/5940455/pyqgis.png)
¿Dónde usar Python en QGIS?
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
1. Consola de Python y editor de scripts
![](https://s3.amazonaws.com/media-p.slid.es/uploads/308098/images/5939037/consola_scripts.png)
Ctrl
+
Alt
+
P
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
2. Macros del proyecto
![](https://s3.amazonaws.com/media-p.slid.es/uploads/308098/images/5939375/macros.png)
Proyecto --> Propiedades...
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
3. Acciones
Propiedades de la capa --> Acciones
![](https://s3.amazonaws.com/media-p.slid.es/uploads/308098/images/5939445/actions.png)
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
4. Expresiones personalizadas en Python
Diálogo de expresiones --> Editor de Funciones
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5959979/pasted-from-clipboard.png)
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
5. Algoritmos de Geoprocesamiento
Ventana de Procesamiento --> Scripts
![](https://s3.amazonaws.com/media-p.slid.es/uploads/308098/images/5939554/geoprocessing_script.png)
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
6. Plugins
![](https://s3.amazonaws.com/media-p.slid.es/uploads/308098/images/5939622/plugins.png)
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
7. Scripts 'standalone' (sin la GUI de QGIS)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/6020157/pasted-from-clipboard.png)
2da Jornada de Talleres
Bases de Python
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/6019128/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/6019177/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/6019197/pasted-from-clipboard.png)
2da Jornada de Talleres
PyQt5
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960080/pasted-from-clipboard.png)
Framework de aplicaciones y Toolkit de GUI
Open Source
Multiplataforma: Windows, OS X, Linux, iOS y Android
Lenguaje: C++
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960083/pasted-from-clipboard.png)
Qt desde Python
Open Source
Soporte comercial (Riverbank Computing)
Licenciamiento: GNU GPL v3 y Riverbank Commercial License
2da Jornada de Talleres
Librerías QtCore, QtGui, QtWidgets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
QtCore
QtGui
QtWidgets
QtCore
QPA
Sistema operativo
Hardware
QtGui
Interfaces de usuario de alto nivel
Utiliza las funcionalidades proporcionadas por QtCore y QtGui
Clases: QDialog, QMenu, QMessageBox, QWizard, QLabel
Controles para Integración de la interfaz de usuario
Acceso a las ventanas, buffers de dibujo y OpenGL
Clases: QRegExpValidator, QCursor, QFont, QColor
Infraestructura central de Qt
No hay dependencia de los recursos de la interfaz de usuario
Clases: QCoreApplication, QSettings, QLocale
QtWidgets
2da Jornada de Talleres
Obteniendo ayuda para PyQt5
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991690/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991726/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991732/pasted-from-clipboard.png)
2da Jornada de Talleres
Tipos de Widgets de PyQt5
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960016/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960018/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960025/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960037/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5981043/pasted-from-clipboard.png)
2da Jornada de Talleres
Formularios en PyQt5
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
QGIS custom widgets
Buttons
Input Widgets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5960004/pasted-from-clipboard.png)
Display Widgets
Formulario
2da Jornada de Talleres
Recursos en PyQt5
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5981049/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5981069/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991657/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991661/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991663/pasted-from-clipboard.png)
2da Jornada de Talleres
Comunicar objetos: SIGNAL/SLOT
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
Adaptado de: https://doc.qt.io/qt-5/signalsandslots.html
Sirve para:
- Comunicar objetos
- Facilitar su separación
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6011441/pasted-from-clipboard.png)
2da Jornada de Talleres
QSettings: Preferencias de usuario
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015427/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015431/pasted-from-clipboard.png)
2da Jornada de Talleres
PyQGIS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
2da Jornada de Talleres
Recursos y documentación
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
QGIS API (C++):
QGIS API (Python):
PyQGIS Cookbook:
https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/5991733/pasted-from-clipboard.png)
2da Jornada de Talleres
Librerías PyQGIS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
Proporciona acceso a la funcionalidades básicas de SIG
- Formatos de datos
- Tipos de geometrías
- Sistemas de coordenadas
qgis.core |
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015620/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015621/pasted-from-clipboard.png)
QgsCoordinateReferenceSystem
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015625/pasted-from-clipboard.png)
Fuente: https://hub.packtpub.com/learning-qgis-python-api/
2da Jornada de Talleres
Librerías PyQGIS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
Proporciona interfaces gráficas de usuario que pueden ser reutilizables
- QgsMapCanvas
- QgsMapTool
- QgsScaleComboBox
qgis.gui |
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015643/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015644/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015646/pasted-from-clipboard.png)
2da Jornada de Talleres
Librerías PyQGIS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
qgis. analysis |
- QgsKernelDensityEstimation
- QgsTinInterpolator
- QgsNativeAlgorithms
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015653/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024195/images/6015655/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1021048/images/5974999/Arquitectura_QGIS_Server-Page-4.png)
qgis. server |
Tomado de https://docs.qgis.org/2.14/en/docs/gentle_gis_introduction/spatial_analysis_interpolation.html
https://www.geodose.com/2017/11/qgis-heatmap-using-kernel-density.html
2da Jornada de Talleres
¡¡¡Empecemos!!!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
1. Consola de Python y editor de scripts
2. Macros del proyecto
3. Acciones
4. Expresiones personalizadas en Python
5. Algoritmos de Geoprocesamiento
6. Plugins
7. Scripts 'standalone' (sin la GUI de QGIS)
2da Jornada de Talleres
Ahora sigues tú...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933378/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/5933425/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1024189/images/6015858/pasted-from-clipboard.png)
2da Jornada de Talleres
Introducción al desarrollo con PyQGIS
By Grupo de Usuarios QGIS Colombia
Introducción al desarrollo con PyQGIS
2da Jornada de Talleres QGIS-Co (Bucaramanga)
- 1,272