PyQGIS Masterclass – 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.


12 Hours


Learning Outcomes

  • Understanding of PyQGIS Classes
  • Write scripts with for custom geoprocessing
  • Set up actions with custom business logic
  • Build plugins and custom processing tools with user interfaces
  • Integrate and automate GIS workflows

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


Self Study

Work through our study material at your own pace. No certificate or support will be provided.

Cost: Free

Instructor-led live online sessions

Join our cohort-based course with live online classes. Includes certification and lifetime technical support.

Cost: USD $120 / EUR €100 / INR ₹7500 + GST

Meet Our Participants

Although I have used QGIS and PostGIS extensively for the last few years, I have always wanted to learn/use PyQGIS to automate and add a really powerful tool to my arsenal of geospatial capabilities. Ujaval and his team provided the resources and the scaffold I need to learn PyQGIS, which has a bit of a learning curve. I started out with doubts about my ability to code in Python and came out with a lot confidence and examples I can work with. Not only did I enjoy the part about learning to write python scripts, I enjoyed the thorough explanation on the essential concepts and the inner works of QGIS that helped me to understand better how things work “under the hood”. All is all, I was very satisfied. Thank you!

Justin Chang, GIS Analyst & GIS Team Lead, MOBIA Technology Innovations, Canada

Ujaval is one of the best instructors/teachers I have ever had the pleasure to meet and be a student of. In addition to the vast knowledge he has in what he proposes to teach his excellent didactics and the way he explains complex things in a simple way is unique. The PyQGIS course more specifically is excellent, I do not have a background as a programmer, just basic knowledge of Python and I was able to learn a lot and understand several things that I could not learn from several other online courses that I had already taken. I recommend his courses to people of all levels of knowledge, as I believe that everyone will benefit from taking his courses.

Leonardo Porto Nazareth, Self-employed consultant, Brazil.

The course was amazing, it gave us the chance to deep-dive on some advanced topics of QGIS, with great feedback from the instructors.

Guillermo D’Angelo, GIS analyst, MIDES, Uruguay.

When I signed up for this course, I had knowledge of QGIS and some Python independently, but after participating, I can finally put the two together to further develop my academic research. As the sessions began I worried that my Python skills might not be strong enough to keep up. However, the step-by-step course material with detailed descriptions along with Ujaval’s ease in teaching made it possible for me to understand the concepts, follow along, and learn more than I expected. I am looking forward to taking more courses with Spatial Thoughts!

Nikki Hall, University of Tokyo, Japan

I’m blown away at what PyGIS can do . But thrilled that was taught in such lucid and interactive manner . Highly recommend this course !

Binu Alexander, CTO SevenX Ltd. India

Three days full of great learning how to work with the QGIS API, writing scripts and building a plugin. Basically, the course covered in depth all the sections that I will be revising on in a PyQGIS book that I recently bought. Had an amazing time getting introduced to better ways to write and optimize my PyQGIS code. Will definitely be practicing a lot and using it in my work. Thanks also for the PyQGIS Earth Engine plugin demo. That was awesome. I would definitely recommend the course to any geospatial folk looking at extending and enhancing their open-source GIS skills.

Geoinformatiker City Government of Köln, Germany.

A course filled to the brim with useful, immediately applicable information. It tied together my intermediate Python & QGIS knowledge, resulting in a powerful mix. Ujaval is a kind and patient teacher who’s always willing to help. I highly recommend taking this course, it’s fantastic value-for-money!

Thomas Heger, Heger Applied Science, Netherlands

The course is an excellent eye-opener to customizing geospatial applications workflow with pyqgis API and building plugins with QGIS from within the pyqgis console and other python libraries. Ujaval is highly vast in delivering this course with similar expertise as a physically hands-on workshop. It was a great time to share with folks from across the world and from different works of life (professionals, independents, and students). I highly recommend this course to anyone who wants to take QGIS programming interface into advanced applications.

Michael Ogungbuyi, Researcher at the University of Tasmania, Australia

This course provided exciting examples and numerous opportunities for customization and continuing education. While you are learning, Ujaval provides support and information that you just can’t just get on a forum and difficult to find in a book.

Lily Wilcock, Planner, United States of America

Ujaval and the team at Spatial Thoughts share their knowledge and workflows from a career in GIS. The class is an excellent introduction to the massive potential of this incredible open source tool.

Alex John Beck, Journalist, Netherlands

The course has an excellent level of quality and material. It is also very well taught by Ujaval, with excellent teaching skills and willingness to help everyone. Highly recommended!

Maria Carolina, Data Scientist – Nuvem Tecnologia, Brazil.

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