Readable geoprocessing for everyone

Spatial analysis a non-programmer can write, reproduce, and share.

Easy wins every time

Decision-maker & analyst briefing

The opportunity

Spatial questions are everywhere

The people who need the answers — analysts, scientists, planners — mostly aren't programmers.

Yet to automate the work — to make it repeatable and shareable — today's tools demand that they write code. So the work waits, or doesn't happen.

niva · Easy wins every time

The problem

Automating QGIS means writing PyQGIS

To script even simple geoprocessing today, you must:

  • Initialize a QgsApplication — boilerplate before any work begins
  • Memorize algorithm IDsnative:buffer, native:dissolve, native:clip
  • Build ALL_CAPS parameter dicts — and juggle TEMPORARY_OUTPUT
  • Thread each output into the next — by hand, step after step

That's a programming task — out of reach for the GUI-first analysts who need it most, and tedious even for those who can.

niva · Easy wins every time

The shift

Automation shouldn't require a programmer

niva · Easy wins every time

The product

Meet niva

A concise, readable text-pipeline grammar for QGIS geoprocessing — for people who don't want to write PyQGIS.

load roads.gpkg | buffer 100 dissolve | clip city.gpkg | save roads_local.gpkg

A whole pipeline on one line — that a non-programmer can write and read — running on QGIS's own Processing algorithms underneath.

Easy wins every time.

niva · Easy wins every time

Audience

Who niva is for

Decision-makers

Faster answers without hiring scarce GIS programmers. Work that's auditable, reproducible, and shareable across the org.

Data scientists
(non-programmers)

Already use Marimo for repeatable, shareable analysis. Now add geoprocessing — in the same readable, reactive workflow.

Downstream consumers

Explore the results in QGIS, in Marimo, or as static files — whichever fits, no GIS expertise required.

niva · Easy wins every time

Marimo-native

It fits the workflow you already have

Marimo is how your team makes analysis repeatable and shareable. niva runs right inside it:

  • Write niva in a Marimo cell — beside your Python and charts
  • Reactive — change an input, the map and tables update live
  • Repeatable — the notebook is the analysis; re-run any time, same result
  • Shareable — hand someone the notebook, or export it; no setup ritual

No new tool to adopt — niva meets your people where they already work.

niva · Easy wins every time

Flexible by design

One grammar, many surfaces

niva · Easy wins every time

Trust the result

Reproducible & shareable — by design

The value decision-makers care about most: results you can re-run, audit, and defend.

  • Pipelines are the record — the one-line flow (or YAML) is the documentation
  • Provenance as a byproduct — every step auto-recorded as lineage metadata
  • Assess your inputs — profile incoming data for quality before you trust it
  • Version-controlled flows — diff and review analysis like any other text
niva · Easy wins every time

For every stakeholder

Produce once — explore it anywhere

niva · Easy wins every time

Without niva

The workflow today

niva · Easy wins every time

With niva

The workflow with niva

niva · Easy wins every time

Thin, not limiting

All of QGIS — in plain language

769
Processing algorithms
406
expression functions
SQL
SpatiaLite & PostGIS

niva is a thin wrapper — friendly verbs mapped onto QGIS's own algorithms, not a re-implementation of GIS. The full power of the world's leading open-source GIS, in one readable line.

niva · Easy wins every time

The tailwinds

Why niva, why now

  • QGIS is the de-facto open GIS — ubiquitous, trusted, free; the foundation we build on
  • Reproducible analysis is the norm — Marimo and notebooks are how modern teams work
  • The automation gap is real & unserved — GUI analysts still can't automate without code
  • Open and clean-room — GPLv3, built on PyQGIS; no proprietary lock-in to fear
niva · Easy wins every time

The value

What niva delivers

Speed

Answers the same day — no queue behind a programmer.

Capacity

Existing analysts automate their own work.

Trust

Reproducible, provenance-tracked, auditable results.

Reach

Share to QGIS, Marimo, or static files — for anyone.

Lower cost

Less custom scripting, less specialized hiring.

No lock-in

Open source, on open foundations.

niva · Easy wins every time

Status · built and shipping

What's working today

niva ships as a QGIS plugin (v0.31) and runs real analysis end-to-end, on QGIS's own algorithms:

Grammar & engine

✓ Readable lexer + parser → pipeline stages
✓ Pipe-chaining engine: layer handles, lineage
✓ PyQGIS backend — runs real geoprocessing

Verbs & algorithms

✓ ~45 alias verbs + 14 built-ins (vector + raster)
sql @conn — SELECT → layer, and server-side writes
run — reach ANY of QGIS's 769 algorithms

Data & cartography

✓ PostGIS & SpatiaLite — read · write · analyse
project — repoint / build / templates · bookmarks
style — apply / export .qml · .sld · .qlr

Discovery, delivery & quality

show / info / catalog — list data, inspect the environment
✓ QGIS plugin (Install from ZIP) · CLI · Python API
✓ 300+ tests, live-QGIS + PostGIS CI · full docs

niva · Easy wins every time

Roadmap · shipped & next

The road ahead

  • v0.1 – 0.31 — Shipped · available now
    Grammar · ~45 verbs + raster · run → 769 algorithms · PostGIS read·write·analyse · project / template / style · show / info discovery · QGIS plugin + CLI + Python · provenance · full docs
  • v1.0 — Stable release
    Grammar freeze (SemVer) · PyPI publish · worked Marimo–QGIS integration
  • v2.0 — Power features
    Named intermediates & variables · SQL-driven quality rules & constraints
  • v2.x — Service mode
    Service / daemon mode · richer layout & symbology export
niva · Easy wins every time

Let your analysts do the analysis.

Bring readable, reproducible geoprocessing to the people who need it.

Easy wins every time.

github.com/johnzastrow/niva  ·  Let's run a pilot.