PyQGIS

Python GISCurso QGIS

Este nuevo curso de PyQGIS, al igual que el recientemente lanzado de QGIS para usuarios, es un curso diferente. Hemos hecho el curso sin dejarnos ningún detalle. Nos hemos aprendido todos los objetos de PyQGIS, nos hemos leído el famoso libro de Gary Sherman, PyQGIS Programmers guide, y lo hemos mejorado con creces. No sólo se ven los objetos vectoriales, también los raster.

En definitiva, este es el curso, está orientado para principiantes (empezamos desde cero con Python) pero avanzamos hasta lo más profundo de PyQGIS.

 

Módulo 1: Introducción a Python.

  1. Qué es Python?
  2. Entorno de Programación en Python.
  3. Estructuras de Datos en Python. Listas. Tuplas. Interconversión de listas en tuplas y viceversa. Diccionarios (keys y values).
  4. Strings, ranges, funciones y argumentos.
  5. Introducción a PyQGIS. Convenciones usadas para los nombres de datos, atributos, métodos y clases.
  6. Interfaz de QGIS. Objetos de la Clase QgisInterface (iface). Conversión de objetos iface en objetos de otras clases.
  7.  Instalación de QGIS 2.x. Definición del entorno de programación en PyQGIS. PYTHONPATH a los scripts de usuario.
  8. Uso de la Python Console. Línea de comandos, ventana de resultados de ejecución y Editor.
  9. Obtención de información sobre métodos de clase (uso de dir y help). Importación de módulos.
  10. Descripción de las diferentes barras de herramientas y menús contextuales de la Python Console y el Editor (Open file, Save, Copy, Run Script, Object Inspector, etc).
  11. Ajustes (settings) de la Python Console y el Editor. Uso del Editor para la ejecución de scripts.
  12. Método get_patt (script de usuario) para explorar métodos de clase.
  13. Ejecución de código a través de la línea de comandos.

Módulo 2: Trabajando con archivos vectoriales.

  1. Cargando archivos vectoriales a través de la Python Console.
  2. Objetos vectoriales.Referencia a objetos mediante la clase QgisInterface (iface). Objetos de la clase QgsVectorLayer. Clase QgsMapLayerRegistry.
  3. Métodos para añadir, remover y contar layers en el registro (‘addMapLayer’, ‘removeMapLayer’, ‘count’).
  4. Iteradores de rasgos a través de la Clase QgsFeatureIterator (método ‘getFeature’ de QgsVectorLayer’).
  5. Atributos, geometría e Ids.
  6. Métodos de la clase QgsVectorLayer para la caracterización de vector layers (‘featureCount’, ‘pendingAllAttributesList’, ‘attributeDisplayName’, ‘fieldNameIndex’, ‘minimumValue’, ‘maximumValue’).
  7. Habilitación del modo de edición y guardar cambios (‘startEditing’, ‘commitChanges’).
  8. Métodos de QgsVectorLayer para la selección y borrado de rasgos (‘select’, ‘deleteSelectedFeatures’).
  9. Métodos de QgsVectorLayer para la selección y borrado de atributos (‘deleteAttribute’).
  10. Escribiendo shapefiles, KML, GeoJSON con métodos de la clase QgsVectorFileWriter. Symbolizing Vector layers a través de las clases QgsSingleSymbolRendererV2 y QgsMarkerSymbolV2.
  11. Usando operaciones de geometría (clases QgsFeature y QgsGeometry).
  12. Creación de capas de punto, línea y polígono. Uso de Uniform Resource Identifier (URI) y ‘memory layers’.
  13. Transformación de coordenadas con Vector Layers (clases QgsCoordinateReferenceSystem y QgsCoordinateTransform).

Módulo 3: Trabajando con archivos raster.

  1. Cargando archivos ráster a través de la Python Console.
  2. Referencia a objetos mediante la clase QgisInterface (iface).
  3. Objeto Raster.Objetos de la clase QgsRasterLayer.
  4. Métodos de QgsRasterLayer para convertirlos en objetos de otras clases. Datos y atributos definidos en QgsRasterLayer.
  5. Métodos de  QgsRasterLayer para la caracterización de ráster layers (‘width’, ‘height’, ‘bandCount’, ‘rasterType’, rasterUnitsPerPixelX, rasterUnitsPerPixelY, ‘name’, ‘providerType’; entre otros).
  6. Conversión de objetos QgsRasterLayers en objetos de QgsCoordinateReferenceSystem.
  7. Método ‘crs’. Métodos para la caracterización y transferencia de CRS (Coordinate Reference System)  a otros objetos de QgsRasterLayers.
  8. Extensiones.Conversión de objetos QgsRasterLayer en objetos de la clase  QgsRectangle con el método ‘extent’.
  9. Caracterización indirecta de Raster Layers mediante métodos de QgsRectangle, QgsPoint y QgsDistanceArea (vértice mínimo, vértice máximo, centroide, distancias de lados y diagonales).
  10. Conversión de objetos ‘singlebandgray’ y ‘multibandcolor’ en objetos de las clases QgsSingleBandGrayRenderer y QgsMultiBandColorRenderer con el método ‘renderer’. Caracterización de este tipo de objetos (‘type’, ‘dataType’, ‘usesBand’, ‘opacity’).
  11. Modificación de contraste con la clase QgsContrastEnhancement: ‘No Enhancement’, ‘Stretch To Minimum Maximum’, ‘Clip To Minimum Maximum’ (ejecución de código Python a través de SEXTANTE Commander).
  12. Rampas de Color. Creación de objetos ‘singlebandpseudocolor’ (QgsRasterLayer) a través de las Clases QgsColorRampShader,   QgsRasterShader y QgsSingleBandPseudoColorRenderer.
  13. 13.  Obtención de las estadísticas del ráster a través de objetos de la clase QgsRasterDataProvider y QgsRasterBandStats.
  14. Consulta de valores de un ráster (muestreo ráster) mediante el método ‘identify’ (QgsDataProvider).

 

¿Qué incluye el material online?

  • Temario con Audios y videos
  • Demos con videos
  • Soporte para la realización de los ejercicios
  • Foros y chats
  • Posibilidad de subir y descargar las tareas asignadas a los alumnos
  • Material de lectura adicional
  • Encuestas
  • Glosario de términos y referencias
  • Y lo más importante: La asistencia de José Guerrero Alves, un profesor especialista en la materia con gran experiencia en el mercado profesional.

Requerimientos de Software

QGIS (Software gratuito) y editores de código Python también gratuitos

¿A quién va dirigido?

A todos aquellos que usuarios, analistas  GIS que deseen dar un importante salto en sus conocimientos GIS para aprender a automatizar tareas y a sacarle el máximo rendimiento a los algoritmos de QGIS.

Preguntas más frecuentes:

¿Qué software necesito tener instalado?

Será suficiente con que tengas un QGIS

¿Hay algún horario específico para las clases?

No, salvo para las horas dedicadas a los chat. Puedes acceder al material y seguir el curso sin necesidad de unos horarios concretos pero ten en cuenta que para cada módulo hay una sesión de chat en directo con el profesor.

¿Qué ocurre si no acabo el curso en el período de tiempo establecido?

Aunque el curso está programado para terminarse en 5 semanas tendrás acceso al mismo a lo largo de todo un año. Esto te permitirá acceder, en caso de ser necesario, a las actualizaciones de versiones de los cursos.

¿Cómo interactúo con el profesor si tengo dudas?

Podrás preguntar al profesor mediante el chat, correo electrónico e incluso por teléfono durante unas horas predeterminadas de la semana. Además de contar con sesiones de chat semanales para grupos podrás citarte con el profesor para una sesión privada de chat.

¿En qué formato se desarrolla el curso?

El curso se desarrolla a través en una plataforma segura de internet que requiere registro. Todo el material se imparte desde un formato flash que contiene tanto los audios como las lecturas. Además, lo ejercicios están en formato pdf y todo el material se te hará llegar por vía de correo postal.

¿Necesito experiencia como programador?

No. Aunque si tienes algo de experiencia con Python mejorará el rendimiento