Fundamentals
pyqgis.com
Four core paths to learn PyQGIS
Focus your learning with dedicated guides for PyQGIS fundamentals, spatial automation, cartographic visualization, and QGIS plugin development.
processing.run("native:buffer", params)layer.renderer().symbol().setColor(color)PyQGIS is the Python interface to QGIS. More than a hundred in-depth guides across four core topics let you choose a path that matches your current goal — setting up a reliable environment, automating spatial processing against files or PostGIS, styling maps in code, or building and shipping plugins that stay responsive.
Automation
Spatial Data Processing & Automation
Build repeatable vector and raster workflows, use processing algorithms with confidence, and scale geospatial work beyond manual desktop steps.Open learning pathCartography
PyQGIS Cartography & Data Visualization
Style layers in code, build categorized and graduated thematic maps, label features, and turn analysis into publication-ready cartography.Open learning pathPlugins
QGIS Plugin Development
Design, structure, and ship QGIS plugins with PyQGIS and Qt, from lifecycle basics through packaging and publishing workflows.Open learning pathStart here
Popular guides across the site
Hand-picked walkthroughs that show PyQGIS in action — dip into any of them, or work through a full topic from its overview page.
- Fundamentals
QGIS Python Console Basics
Run PyQGIS interactively, reach your layers, and prototype scripts in seconds. - Automation
Batch Processing with PyQGIS
Run algorithms across many datasets, isolate errors, and automate repetitive GIS work. - Automation
Coordinate Reference Systems
Assign, transform, and validate CRS so your data always lines up on the map. - Cartography
Programmatic Layer Styling
Configure renderers, symbols, and data-defined overrides entirely from code. - Plugins
QGIS Plugin Boilerplate & Structure
Wire up metadata.txt, classFactory, initGui, and unload for a well-formed plugin. - Plugins
Qt Designer for Plugin Interfaces
Build .ui files, load them at runtime, and wire signals to your PyQGIS logic.
Newest guides
Recently added topic areas
Three new areas — spatial databases, running QGIS with no desktop, and keeping plugins responsive — plus the strongest of the guides beneath them.
- Automation
PostGIS & Database Workflows
Connect to PostGIS and GeoPackage, back a layer with SQL, and write results back safely. - Fundamentals
Headless QGIS & Server Automation
Run PyQGIS with no desktop — offscreen, containerised, scheduled, and loud when it fails. - Plugins
Background Tasks & Plugin Performance
Keep QGIS responsive with QgsTask, report progress, and find the code that is really slow. - Automation
Use the Raster Calculator
Band maths from Python, with nodata protected and an output type that holds the answer. - Cartography
Create a Rule-Based Renderer
Symbology that depends on several fields and on scale, with nothing silently undrawn. - Automation
Spatial Join Points to Polygons
Attach polygon attributes to points, and know what happened to the ones that matched twice.
Suggested learning flow
Build confidence from setup to shipping tools
- Start with fundamentals and environment setup
- Move into automated spatial processing workflows
- Style and label maps in code for publication
- Build practical plugin interfaces and tooling
- Apply patterns to real project datasets