GAIA-alpha is a QGIS plugin that connects a large language model to your active GIS project. It can inspect layers, run geoprocessing, apply styles, fetch real-world data, and trigger deep learning models — all from a natural language chat panel.
Get it on GitHub2a — Layer management
2b — Spatial analysis
2c — Styling & visualisation
2d — External geospatial data APIs
2e — OpenStreetMap integration
2f — Advanced & power tools
2g — Suitability analysis (PyLUSATQ-based)
2h — QGIS UI automation
2i — QGIS environment introspection
| Algorithm key | Name & description | Category |
|---|---|---|
| watershed_stream |
Watershed Stream Analysis
Delineates a drainage network from a DEM
using flow accumulation. Computes Strahler
stream order. Outputs ordered polyline layer
with stream attributes.
|
Hydrology |
| watershed_basin |
Watershed Basin Delineation
Delineates a single catchment basin from a
pour point on a DEM. Uses flow direction and
accumulation grids. Output: filled DEM, flow
dir, flow acc, and watershed polygon.
|
Hydrology |
| basin_analysis |
Basin Morphometric Analysis
Computes standard watershed morphometric
parameters (compactness coefficient,
elongation ratio, form factor, circularity
ratio, drainage density, stream frequency,
etc.).
|
Hydrology |
| multiple_basin_delineation |
Multiple Basin Delineation
Batch delineation of multiple catchment
basins from a set of pour points. Processes
all basins in a single run from a DEM.
|
Hydrology |
| global_cn |
Global Curve Number Calculator
Computes SCS-CN (Curve Number) values by
intersecting hydrological soil groups with
land use / land cover. Supports ESA
WorldCover 2021 as a built-in LULC dataset.
|
Hydrology |
| dam_flood_simulation |
Dam Flood Simulation
Simulates reservoir inundation by computing
water depth raster from a DEM at a specified
water surface elevation. Generates flood
extent polygon.
|
Hydrology |
| coordinate |
Coordinate Calculator
Adds X/Y, decimal degree, and DMS coordinate
fields to point layers. Can also reproject
and compute UTM zone.
|
Geometry |
| line |
Calculate Line Geometry
Calculates and appends length and azimuth
fields to line layers, respecting the layer
CRS for accurate planar or geodetic
measurements.
|
Geometry |
| polygon |
Calculate Polygon Geometry
Adds area and perimeter fields to polygon
layers. Supports planar and ellipsoidal
calculations.
|
Geometry |
| angles |
Calculate Angles
Calculates interior and exterior angles at
each vertex of polygon or polyline features.
|
Geometry |
| polygon_to_points |
Polygon to Ordered Points
Extracts polygon vertices as ordered point
features, preserving ring structure and
vertex sequence attributes.
|
Geometry |
| lines_to_ordered_points |
Lines to Ordered Points
Converts line vertices to ordered point
features, retaining sequence, cumulative
distance, and segment direction.
|
Geometry |
| calculate_line |
Generate Line from Azimuth / Distance
Constructs line features from a table of
azimuth-distance traverse pairs. Useful for
cadastral surveys and field traverses.
|
Geometry |
| export_to_csv |
Export Attributes to CSV
Exports all attribute fields of a vector
layer to a CSV file with configurable field
selection and delimiter.
|
Geometry |
| land_use_change |
Land Use Change Detection
Compares two raster land cover maps from
different dates, producing a change matrix,
transition area statistics, and a change
raster layer.
|
Raster |
| weighted_sum |
Weighted Sum / Overlay
Performs weighted raster overlay (WLC).
Accepts N raster inputs each with a weight;
produces a composite suitability surface.
|
Raster |
| least_cost_path |
Least Cost Path Finder
Computes the minimum-cost route between two
points over a cost raster. Considers slope,
resistance layers, and microrelief. Useful
for road alignment, hiking routes, pipeline
corridors.
|
Raster |
| kriging_analysis |
Kriging Interpolation
Geostatistical interpolation of point
samples into a continuous raster surface.
Supports Ordinary, Universal, and Simple
Kriging with cross-validation and variogram
fitting.
|
Raster |
| satellite_index |
Satellite Index Calculator
Computes spectral indices (NDVI, NDWI, NDBI,
EVI, SAVI, BSI, and custom expressions) from
multi-band raster imagery.
|
Classification |
| enhanced_classification |
Enhanced Image Classification
Supervised land cover classification using
Random Forest, SVM, or K-Nearest Neighbors
on raster bands. Generates accuracy metrics
and a classified raster output.
|
Classification |
| topographic_profile |
Topographic Profile
Extracts an elevation profile along a
transect line from a DEM. Renders an
interactive Plotly chart of the
cross-section with slope and distance
statistics.
|
Classification |
| tree_planting_pattern |
Tree Planting Pattern
Generates optimized planting grids inside a
polygon using square, rectangular,
triangular, or quincunx (diamond) patterns
at a specified spacing. Outputs planting
point layer.
|
Classification |
| contour_export |
Contour Export to 3D DXF/CAD
Generates contour lines from a DEM and
exports them as a 3D DXF file with Z values
equal to elevation. Compatible with AutoCAD,
MicroStation, and BricsCAD.
|
CAD / Terrain |
| optimized_parcel_division |
Optimized Parcel Division
Divides a land parcel polygon into N
equal-area (or proportionally sized)
sub-parcels using configurable split
directions and constraints. Used in
cadastral workflows.
|
CAD / Terrain |
All GeoAI tools run headlessly — no dialogs or manual steps.
Dependencies are auto-installed in an isolated virtual
environment at
~/.qgis_geoai/. Basemaps and tile layers are automatically exported to
raster before inference, so any visible map layer can be
used as input.
Configure your preferred provider, model, and API key in the Settings dialog. The API URL is fully customizable, enabling any OpenAI-compatible endpoint (local models, proxies, Azure OpenAI, etc.).
→ Anthropic Claude uses prompt caching: the system prompt and tool definitions are cached server-side, cutting token costs by up to 90% on repeated turns.
Before every AI request, GAIA-alpha automatically builds a context string from the live QGIS session and injects it into the system prompt. The AI always knows exactly what is in your project.
All AI-generated Python code passes through a multi-layer guard rail system before execution. A "Simple Mode" toggle in Settings disables Python execution entirely for extra safety.