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. Close to two 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, databases, terrain and web services, styling and labelling maps in code, or building and shipping plugins that stay responsive.
Automation
Spatial Data Processing & Automation
Build repeatable vector, raster and terrain 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, stack symbol layers, build thematic maps, switch between map themes, 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. - Cartography
Stack Symbol Layers in PyQGIS
Road casings, hatched fills and offset shadows — the draw order that decides what wins. - Automation
Generate Slope, Aspect and Hillshade
Terrain derivatives that mean something — the CRS and z-factor checks that come first. - 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
Newest topic areas and guides
Three new areas — the project file itself, data served over the web, and plugins that remember settings and speak more than one language — plus the strongest of the guides beneath them.
- Cartography
Symbol Layers & Advanced Symbology
Casings, SVG and font markers, geometry generators, blend modes — how a symbol is really built. - Cartography
Map Themes & Layer Visibility
One project, many maps: snapshot what is visible and drive a layout from it. - Automation
Terrain & Interpolation Analysis
Slope, aspect, hillshade and contours from a DEM — and surfaces built from scattered points. - Automation
Zonal Statistics in PyQGIS
Summarise a raster inside vector zones, and know why small zones come back null. - Fundamentals
Understand Signals and Slots
The mechanism behind every reactive part of the QGIS API, and the two ways Python breaks it. - Plugins
Test Processing Algorithms with pytest-qgis
Fast, headless tests for a custom algorithm — memory layers in, assertions out.
Suggested learning flow
Build confidence from setup to shipping tools
- Start with fundamentals and environment setup
- Move into automated vector, raster and terrain workflows
- Style, label and theme maps in code for publication
- Build practical plugin interfaces and tooling
- Test, package and ship what you have built