Geoprocessing Panel
The Geoprocessing panel lets you run spatial operations and analysis directly on your project layers — no AI chat required. It is designed for GIS analysts and planners who know exactly what operation they want and need fast, repeatable results.
The panel is organised into four tabs: Spatial Analysis, Vector Processing, Remote Sensing, and Query.
The Geoprocessing panel requires the GeoAI sidecar service to be running. If your organisation has not enabled this service, some sections will show a message explaining that advanced tools are unavailable.
Opening the panel
Click the Geoprocessing button in the left toolbar. The panel opens on the right side of the screen, overlaying the map.
Click the button again, or use the X button in the panel header, to close it.
Spatial Analysis tab
The Spatial Analysis tab contains tools that work directly on the 3D globe. Click a section to open it — the corresponding tool activates on the map automatically.
Viewshed
Shows which parts of the terrain are visible from a chosen observer point. Visible areas appear in green, blocked areas in red, and partially visible areas in yellow.
- Open the Viewshed section. The cursor changes to a crosshair.
- Click on the terrain to place the observer point — the cursor returns to normal.
- Configure the settings below.
- Click Run to start the analysis.
| Setting | Description |
|---|---|
| Observer height (m) | Height above the terrain at the observer point. Simulates a person, rooftop, or tower. |
| Radius (m) | How far the analysis extends from the observer. |
| Resolution | Low, Medium, or High. Higher resolution gives finer detail but takes longer. |
| Include buildings | When enabled, building occlusion is also considered (3D mode only). |
Results show visible cells, blocked cells, and the total number of cells analysed. Click Export to download as GeoJSON or CSV, or Save as layer to add the result to your project. Click Reposition to pick a new observer point (confirmation required if results exist).
The viewshed tool is also accessible from the Tools panel at the bottom of the screen. Both entry points run the same analysis.
Shadow Accumulation
Estimates solar exposure across a defined area over a date range. The result is a colour-coded overlay — green cells receive more sun, red cells spend more time in shadow.
- Open the Shadow section. The cursor changes to a crosshair.
- Click on the terrain to set the analysis centre — the cursor returns to normal.
- Configure the settings below.
- Click Run to start.
| Setting | Description |
|---|---|
| Grid size (m) | Physical size of each grid cell in metres. |
| Grid cells | Number of cells along each side of the grid. |
| Step (min) | Time interval between sun position samples. Smaller steps improve accuracy but increase computation time. |
| Start / End date | The date range to accumulate solar exposure over. |
| Day start / Day end (h, UTC) | The hours of the day to include. Adjust for your local time zone. |
| GPU acceleration | Uses the shadow map shader for faster computation. Requires shadows to be enabled in the viewer and 3D mode. Falls back to CPU ray-casting when unavailable. |
Results show average, minimum, and maximum shadow hours. Click Export or Save as layer.
The total iteration count (grid cells squared × days × steps per day) is capped at 500,000 to prevent the browser from freezing. If your settings exceed the cap, reduce the grid resolution, increase the step interval, or shorten the date range.
Study hours are in UTC to match the viewer timeline. Adjust day start and day end to account for your local time zone offset.
Isochrone
Shows how far you can travel from a starting point in a given time, using real road network data. Results appear as filled polygons — one per time interval.
- Open the Isochrone section. The cursor changes to a crosshair.
- Click on the terrain to place the origin point — the cursor returns to normal.
- Choose a Transport mode: Walking, Cycling, or Driving.
- Enter Time intervals as a comma-separated list in minutes (for example:
5,10,15). Each value must be between 1 and 120 minutes. - Click Run.
Results show the number of polygons generated and the total area covered. Click Export or Save as layer.
Isochrone analysis uses the OpenRouteService API and requires a network connection. It covers most of the world where road network data is available in OpenStreetMap.
Flood Simulation
Simulates water inundation across the terrain based on a specified water level. Cells below the water level at or connected to the starting point are marked as flooded.
- Open the Flood section. The cursor changes to a crosshair.
- Click on the terrain to place the analysis centre — the cursor returns to normal.
- Set the Water level (metres above the terrain anchor point, 0–10 m).
- Set the Grid size (metres per cell, 100–5000 m) and Grid cells (5–50 per side).
- Click Run simulation.
| Setting | Description |
|---|---|
| Water level (m) | Height of the water surface above the anchor point. |
| Grid size (m) | Physical width of each grid cell. Smaller values give finer detail. |
| Grid cells | Number of cells along each side. Larger values cover more area. |
Results show flooded cells, flooded area, maximum depth, and terrain elevation statistics. Click Export or Save as layer. The saved layer includes a depthMeters attribute and is styled automatically to show flood depth.
Flood simulation is a simple terrain-based inundation model. It does not account for drainage, flow direction, or hydrological barriers such as embankments. Use it for broad planning estimates, not precise flood modelling.
Vector Processing tab
The Vector Processing tab contains operations that produce new GeoJSON layers from your existing layers.
Only GeoJSON layers can be used as inputs. If your data is in a shapefile or another format, import it first — it is converted to GeoJSON automatically.
Geoprocessing operations
Run standard vector operations. Each operation produces a new GeoJSON layer added to your project.
| Operation | What it does | Required inputs |
|---|---|---|
| Buffer | Expands each feature outward by a fixed distance | Input layer, distance in metres |
| Clip | Cuts the input layer to the shape of the overlay layer | Input layer, overlay layer |
| Dissolve | Merges features together, optionally grouping by a field | Input layer, optional dissolve field |
| Merge | Combines two or more layers into one | 2 or more layers |
| Intersection | Keeps only the areas where both layers overlap | Input layer, overlay layer |
| Difference | Removes the overlay area from the input | Input layer, overlay layer |
| Union | Combines both layers, preserving all areas | Input layer, overlay layer |
To run an operation:
- Select an Operation from the dropdown.
- Select your Input layer.
- If required, select an Overlay layer (cannot be the same as the input).
- For Buffer, enter a distance in metres.
- For Dissolve, optionally choose a Dissolve by field.
- For Merge, select two or more layers from the list.
- Optionally enter an Output layer name.
- Click Run.
Geoprocessing operations require contributor role or higher.
Spatial Join
Appends attributes from a join layer to features in an input layer, based on their geographic relationship. The result is a new enriched GeoJSON layer.
- Select an Input layer — the layer whose features will receive new attributes.
- Select a Join layer — the layer whose attributes will be appended.
- Choose a Spatial relationship:
| Relationship | Matches features where... |
|---|---|
| Intersects | The input and join features share any area or boundary |
| Within | The input feature is fully inside the join feature |
| Contains | The input feature fully contains the join feature |
| Nearest | The join feature is the closest one to the input feature |
- Choose an Aggregation for cases where multiple join features match one input feature:
| Aggregation | Result |
|---|---|
| First | Value from the first matching join feature |
| Count | Number of matching join features |
| Sum | Sum of a numeric attribute across all matches |
| Mean | Average of a numeric attribute across all matches |
| Min | Lowest value across all matches |
| Max | Highest value across all matches |
- Optionally enter an Output layer name.
- Click Run.
Spatial Join requires contributor role or higher.
Remote Sensing tab
Image Analysis
Upload a raster image or reference a STAC asset for AI-powered analysis. The panel accepts GeoTIFF uploads or Copernicus STAC URLs. Results are summarised inline and can be added as a layer.
Temporal Compare
Compares Sentinel-2 satellite imagery from two different dates over the current map view to detect land cover change. The tool works in two sequential phases: first it finds and displays the imagery side by side, then you run AI change detection to produce a quantified results layer.
Phase 1 — Find and compare imagery
- Open the Temporal Compare section in the Remote Sensing tab.
- Set the Before date and After date using the side-by-side date pickers. The defaults are one year ago and today.
- Position the map to frame the area of interest — the tool uses the current viewport as its search area.
- Click Compare imagery.
The platform searches the Copernicus STAC catalog for Sentinel-2 L2A scenes within ±15 days of each date, selecting the image with the lowest cloud cover (below 20%). If no suitable image is found within 15 days, the search automatically widens to ±30 days. Two new raster layers are created in your project — named Before — YYYY-MM-DD and After — YYYY-MM-DD — and the viewer enters split view so you can swipe between them.
Phase 2 — Detect changes
Once the comparison is loaded, a AI Change Detection section appears below the Compare button.
- Click Detect changes.
- Wait 1–2 minutes while the ML analysis runs on the server.
When complete, a new GeoJSON layer named Changes — YYYY-MM-DD vs YYYY-MM-DD is added to your project with automatic styling:
| Colour | Meaning |
|---|---|
| Green | Gain — new vegetation, construction, or cover added |
| Red | Loss — vegetation removed, demolition, or clearing |
| Yellow | General change — spectral shift not classified as gain or loss |
Results statistics
The results panel shows:
| Statistic | Description |
|---|---|
| Changed area | Total area of detected change, shown in m², ha, or km² |
| Change percentage | Percentage of the analysed area that changed |
| Change regions | Number of discrete changed polygons |
| Gain / Loss breakdown | Count of gain and loss regions separately |
Click Download results to save the change detection layer as a GeoJSON file.
For the clearest results, choose dates in the same season. Comparing summer to winter imagery can produce false positives from seasonal vegetation change rather than actual land use change.
The imagery search requires an acceptable cloud cover below 20%. If your area has persistent cloud cover, try shifting your target dates by a few weeks, or choose a drier season. The search window expands automatically to ±30 days before reporting failure.
Both the Before and After raster layers remain in your project after the comparison so you can inspect them independently or re-run change detection with different settings.
Query tab
SQL Query
Run DuckDB SQL queries directly against your GeoJSON layers. Results are displayed as a table inline — no new layer is created. Use this for quick attribute summaries, counts, and ad-hoc data exploration.
- Under Tables, select one or more GeoJSON layers to query. Each selected layer becomes a table.
- Reference chips show the sanitized table name for each layer (spaces and special characters become underscores). Use these exact names in your SQL.
- Write your SQL in the query text area.
- Adjust Max rows if needed (maximum 100).
- Click Execute.
-- Count features by category
SELECT category, COUNT(*) AS total
FROM my_layer
GROUP BY category
ORDER BY total DESC
-- Find features above a threshold
SELECT name, population
FROM districts
WHERE population > 50000
SQL Query is available to all project members, including viewers. It is read-only and does not create or modify layers.
Geoprocessing vs. GeoAI Agent
| Use the Geoprocessing panel when... | Use the GeoAI Agent when... |
|---|---|
| You know exactly which operation you want | You want to describe a goal in plain language |
| You need a fast, repeatable workflow | You want GeoAI to suggest an approach |
| You want to run SQL queries on your data | You want analysis results as charts and summaries |
| You want to run viewshed, shadow, or flood analysis | You want GeoAI to find and compare data sources |
See GeoAI Agent for more on the conversational AI assistant.