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 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, LiDAR point clouds, road networks and web services, styling, animating 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. - Automation
Run the PDAL Algorithms from PyQGIS
The stable API for LiDAR work — and the expression-syntax trap that fails silently. - Automation
Find the Shortest Path Between Points
One route or ten thousand — and the three checks that catch a confidently wrong one.
Newest guides
Newest topic areas and guides
Three new areas — LiDAR point clouds, network routing, and time-aware and 3D visualization — plus the strongest of the guides beneath them and two additions for anyone writing plugins.
- Automation
Point Cloud & LiDAR Workflows
Index a survey once, filter by classification, and grid a DEM you can defend. - Automation
Network Analysis & Routing
Build a routable graph from any line layer — shortest paths, service areas, matrices. - Cartography
Temporal & 3D Visualization
Time-aware layers, mesh model output and 3D scenes, all driven from Python. - Automation
Create a DEM from a Point Cloud
Pick the cell size from point density, and fill only the gaps you can justify. - Automation
Calculate Service Areas
Drive-time catchments that follow the roads instead of a circle round a depot. - Cartography
Export Temporal Animation Frames
Why the obvious loop gives 200 identical PNGs, and the render job that does not. - Fundamentals
Object Ownership and Crashes
Why PyQGIS segfaults with no traceback, and the two rules that prevent it. - Plugins
Snap to Features with QgsSnappingUtils
Make a custom map tool snap like the built-in editing tools do.
Suggested learning flow
Build confidence from setup to shipping tools
- Start with fundamentals and environment setup
- Move into automated vector, raster, terrain and point cloud workflows
- Style, label, animate and theme maps in code for publication
- Build practical plugin interfaces and tooling
- Test, package and ship what you have built