Technical Detail · Sovereign Geospatial AI Stack

Hermes · Qwen · DRAPP · DuckDB · Assessor Parcels · DRCOG Vectors

A fully on-premises, open-weight AI stack for property mapping, regional analysis, and autonomous geospatial reasoning over the Denver metro — no cloud GPUs, no metered APIs, no data leaving the building.

What the stack does

Component map

Hermes Agent

Local orchestration layer. Plans tool calls, manages skills and MCP servers, serves chat and web UI, and coordinates Qwen + vision models + DuckDB.

Qwen (local LLM)

Open-weight Alibaba language model running on the DGX Spark. Handles reasoning, SQL/GeoJSON generation, summarization, and agent decision-making.

DRAPP Imagery

Denver Regional Aerial Photography Project public COGs. 2022 flight at ~3-inch resolution, served locally as Cloud-Optimized GeoTIFF tiles.

DuckDB + Spatial

In-process analytics engine with spatial extension. Queries GeoParquet/Shapefile parcels and vectors, performs intersections, buffers, and aggregations without a server.

Assessor Parcel Data

County parcel fabric with owner, valuation, land use, and building attributes. Joins vectors to real-world property records.

DRCOG Vector Data

Regional layers from the Denver Regional Council of Governments: jurisdictions, transit, trails, watersheds, land use, and more.

Data flow

User prompt ↓ Hermes agent (planning / reasoning via Qwen) ↓ Tool selection — DuckDB spatial query | Vision model on DRAPP chip | Web map render ↓ Local data sources: • DRAPP COG tile server (TiTiler / COG reader) • DuckDB: parcels, DRCOG vectors, extracted features • Filesystem: GeoJSON, GeoParquet, TIFF downloads ↓ Answer: map + table + GeoJSON + narrative

Worked example: "Show me all pools in Cherry Hills Village"

  1. Agent reasoning (Qwen): Hermes parses the question, identifies intent (spatial extraction + parcel join), and plans steps.
  2. Boundary lookup (DuckDB): Query DRCOG municipality boundary for Cherry Hills Village.
  3. Imagery chip extraction: Pull DRAPP 2022 COG tiles for the bounding box and run a local SAM-family vision model to segment swimming-pool-like features.
  4. Parcel join: Intersect detected pool footprints with county assessor parcels to attach APN, owner, and zoning.
  5. Output: Web map with highlighted parcels, a CSV download, and a one-paragraph summary.

DuckDB spatial patterns

-- Load parcels and DRCOG municipality boundaries CREATE OR REPLACE TABLE parcels AS SELECT * FROM ST_Read('/data/assessor_parcels.shp'); CREATE OR REPLACE TABLE municipalities AS SELECT * FROM ST_Read('/data/drcog_municipalities.shp'); -- Find parcels inside Cherry Hills Village SELECT p.apn, p.owner_name, p.land_use, p.valuation, ST_Area(p.geom) AS parcel_sqft FROM parcels p, municipalities m WHERE m.name = 'Cherry Hills Village' AND ST_Intersects(p.geom, m.geom);

Imagery extraction pattern

# Hermes skill / Python tool pipeline from samgeo import SamGeo2, raster_to_vector sam = SamGeo2(checkpoint="sam2-hiera-large.pth") sam.predict(image="drapp_chip.tif", text_prompt="swimming pool") sam.show_anns() pools = raster_to_vector("drapp_chip_mask.tif", "pools.geojson")

This runs entirely on the DGX Spark's Grace Blackwell GPU. No frames or masks leave the machine.

Sovereignty model

RiskCloud approachSovereign stack
Data residencyImagery uploaded to remote GPU hostImagery stays on local NVMe
Inference cost$ per image / $ per tokenFixed hardware cost only
Model availabilityAPI rate limits, policy changesOpen weights run offline
Vendor lock-inProprietary extraction servicesDuckDB + SAM-family + Qwen
Network dependencyRequires internetWorks air-gapped after setup

Data sources and refresh cadence

SourceTypeUpdate cadenceLicense
DRAPP 2022Aerial imagery COGNext public release (~2–3 years)Public / regional
DRCOG vectorsRegional GIS layersQuarterly / annualOpen data
County assessorParcel fabric + attributesAnnual valuation roll + ongoingPublic record
Extracted featuresGeoJSON / GeoParquetOn-demand via agentOwned by you
Why this wins: The combination of an open-weight local LLM (Qwen), an open vision stack (SAM-family), and an in-process spatial database (DuckDB) means a single DGX Spark can replace a scattered cloud pipeline while keeping every byte of client and regional data under your control.

Deployment footprint

First-year economics

ItemCost
NVIDIA DGX Spark (4 TB / 128 GB)$4,800 one-time
Turnkey install, setup & training$2,950 one-time
Support subscription$295/mo · cancel anytime
First-year all-in≈ $11,290

Next steps

  1. Approve DGX Spark hardware and turnkey setup.
  2. Ingest DRAPP 2022 COGs, DRCOG vectors, and target county assessor parcels.
  3. Calibrate vision models against DRCOG roofprint and pavement labels for production accuracy.
  4. Train team on Hermes prompts, DuckDB queries, and feature-extraction workflows.