Introducción al desarrollo con PyQGIS
Leonardo Cardona
Germán Carrillo

Introducción al desarrollo con PyQGIS
2019
2da Jornada de Talleres
BUCARAMANGA


Introducción

2da Jornada de Talleres


¿Dónde usar Python en QGIS?
¿Dónde usar Python en QGIS?


1. Consola de Python y editor de scripts

Ctrl
+
Alt
+
P
2da Jornada de Talleres
¿Dónde usar Python en QGIS?


2. Macros del proyecto

Proyecto --> Propiedades...
2da Jornada de Talleres
¿Dónde usar Python en QGIS?


3. Acciones
Propiedades de la capa --> Acciones

2da Jornada de Talleres
¿Dónde usar Python en QGIS?


4. Expresiones personalizadas en Python
Diálogo de expresiones --> Editor de Funciones

2da Jornada de Talleres
¿Dónde usar Python en QGIS?


5. Algoritmos de Geoprocesamiento
Ventana de Procesamiento --> Scripts

2da Jornada de Talleres
¿Dónde usar Python en QGIS?


6. Plugins

2da Jornada de Talleres
¿Dónde usar Python en QGIS?


7. Scripts 'standalone' (sin la GUI de QGIS)

2da Jornada de Talleres
Bases de Python





2da Jornada de Talleres
PyQt5



Framework de aplicaciones y Toolkit de GUI
Open Source
Multiplataforma: Windows, OS X, Linux, iOS y Android
Lenguaje: C++

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


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





2da Jornada de Talleres
Tipos de Widgets de PyQt5







2da Jornada de Talleres
Formularios en PyQt5


QGIS custom widgets
Buttons
Input Widgets

Display Widgets
Formulario
2da Jornada de Talleres
Recursos en PyQt5







2da Jornada de Talleres
Comunicar objetos: SIGNAL/SLOT


Adaptado de: https://doc.qt.io/qt-5/signalsandslots.html
Sirve para:
- Comunicar objetos
- Facilitar su separación

2da Jornada de Talleres
QSettings: Preferencias de usuario




2da Jornada de Talleres
PyQGIS


2da Jornada de Talleres
Recursos y documentación


QGIS API (C++):
QGIS API (Python):
PyQGIS Cookbook:
https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/

2da Jornada de Talleres
Librerías PyQGIS


Proporciona acceso a la funcionalidades básicas de SIG
- Formatos de datos
- Tipos de geometrías
- Sistemas de coordenadas
qgis.core |


QgsCoordinateReferenceSystem

Fuente: https://hub.packtpub.com/learning-qgis-python-api/
2da Jornada de Talleres
Librerías PyQGIS


Proporciona interfaces gráficas de usuario que pueden ser reutilizables
- QgsMapCanvas
- QgsMapTool
- QgsScaleComboBox
qgis.gui |



2da Jornada de Talleres
Librerías PyQGIS


qgis. analysis |
- QgsKernelDensityEstimation
- QgsTinInterpolator
- QgsNativeAlgorithms



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!!!


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ú...



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,295