Customizing QGIS with Python

A hands-on class that teaches you how to customize QGIS using the Python API. This course is intended for users who want to learn how to use programming techniques to build custom scripts, functions and plugins. Participants will also earn official certification upon completion.


8 Hours


Learning Outcomes

  • Write scripts with for custom geoprocessing
  • Build plugins and processing tools with user interfaces
  • Set up actions and custom functions with custom business logic

Course Outline

  • Where can you use Python in QGIS?
  • Qt, PyQt and PyQGIS
  • Understanding Classes
  • Using PyQGIS Classes
  • Graphical User Interface (GUI) Programming Basics
  • Deep Dive into PyQGIS
  • Running Python Code at QGIS Launch
  • Creating Custom Python Actions
  • Running Processing Algorithms
  • Understanding Python Iterators
  • Writing Python Console Scripts
  • Writing Standalone Python Scripts
  • Writing a Processing Script
  • Simplifying Processing Scripts
  • Writing Plugins
    • Minimal Plugin
    • Processing Plugin
  • Resources for Further Learning


Spatial Thoughts is one of the handful of QGIS certifying organizations globally. Participants who attend a live session of this class will each receive an official, employer-verifiable certification from

See our other Course Offerings.

Meet Our Participants

If you’ve ever waited to learn QGIS, Geospatial Python and Earth Engine from someone who really understands all things geospatial inside out—and is a fine teacher, and passionate advocate + practitioner of the open-source philosophy—look no further than Ujaval and the range of courses he offers!

M D Madhusudan, National Centre for Biological Sciences,

This course covered a lot of ground, but by using judicious examples it was easy to follow. The class was small enough that the instructor was able to provide individual help when students had trouble, and the instructor made a real effort to keep the class together as it advanced through the material. I had a computer glitch, and the instructor took the trouble to bring me up to where the class was during a break.

Peter Kowalczyk, Geophysicist, Canada

The course has been helpful in teaching me how to interface Python with QGIS and also gave me suggestions how to work with GUIs in Python with Qt in general. The pace of the course is steady but in no way too fast and everything works well in the digital format.

Eduard S. Lukasiewicz, University of Göttingen, Germany

This is a great short course that takes you through many concepts on the uses of Python for QGIS. Looking forward to enrolling on further courses.

Steven Shepperson, MarineSpace, United Kingdom

A great learning experience to understand the basic of QGIS. The back-end knowledge of the way QGIS works was an eye opener and will help make QGIS applications to various domains flexible and informed. Look forward to more such sessions!!!

Nibedita Dash, ICCT, India

A great Learning experience to understand the QGIS basics and got a good idea on the customization of QGIS using python. the class was very interactive and learned a lot.

Mahendran Maruthamuthu, Amnex Infotechnologies Pvt Ltd, India

I got a good idea on the customization of QGIS and also the scripting aspects with Python, even though I had very minimal knowledge in Python, by the end of the workshop, i got a lot of confidence on scripting. Ujaval’s explanation is simple and precise. The icing of the whole workshop is the certification which is from QGIS. I look forward to attending more workshops from Spatial Thoughts!

Gurudatta K, Aaron GSD, India

This workshop is for anyone who is new to programming and wanted to begin as a QGIS developer in their career.

Naveen Kumar G T, Sensing Local, India

It was an amazing class. Learned a lot.

Manikandan K, King Fahd University of Petroleum and Minerals, Saudi Arabia

On the verge of giving up my hope to learn python for QGIS, the Spatial Thoughts course on Customizing QGIS with Python ignited my long lost interest. The lecture delivered along with a very interactive session makes one understand the basic concept customization using python for QGIS.

Jigme Tenzin, World Food Program, Bhutan