Skip to main content

Every source writes to one address.

A Sentinel-2 pass over the field, a Sentinel-1 radar look through cloud, the camera on the gate, an ERA5 weather field, a Hansen forest-loss layer: all of them resolve to the same cell × band × tslot. The fleet is the unit of intelligence. The single sensor is not.

46 source schemes
124 wired bands
186+ detector classes

Chapter I

The modalities the memory fuses.

Twelve ways of seeing the same ground. Eight are live and writing facts today; the other four are the fleet we are building out, marked below. Each one writes into the identical addressable record.

#ModalityWhat it writes into the memoryStatus · cadence
01
Satellite opticalmultispectral surface
Sentinel-2 L2A: land cover, water, change, vegetation indiceslive · ~5 days
02
Satellite SARall-weather radar
Sentinel-1: structure, moisture, flood, motion, through cloudlive · ~6 days
03
Thermal / IRheat signature
land-surface temperature: flares, fires, equipment activitylive · sub-daily
04
Drone surveycentimetre detail
close-range inspection of a single asset, on taskinglive · on tasking
05
Fixed CCTVthe perimeter
gate, yard, fence line, occupancy via RTSP / ONVIF ingestlive · continuous
06
Live video / cameraany connected feed
geo-registered frames, segmented and filed by celllive · continuous
07
Weather fieldsenvironment
ERA5 and Met.no: rain, wind, temperature, soil moisturelive · hourly–daily
08
Field reportssigned human notes
a person’s observation, attributable to a keylive · on event
09
Vehicle camerasstreet level
what is round the corner, lane by lanefleet · roadmap
10
Ground sensorsSCADA / IoT
pressure, flow, level, vibrationfleet · roadmap
11
AIS / vesselmaritime tracks
who is where on the water, and whenfleet · roadmap
12
Acousticsound events
alarms, machinery, leaks, gunshotsfleet · roadmap

Note. Rows 01–08 are wired and writing facts today. Rows 09–12 are the multimodal fleet we are extending into. The address model already holds a band slot for each.

Chapter II

What flies overhead.

The Earth-observation half of the fleet. Public missions and global datasets, ingested on their own cadence and resolved onto the same cells your private sensors write to. No tile pipeline to build.

SourceWhat it carriesResolutionCadence
Optical & radar
Sentinel-2multispectral optical: bands, NDVI, NDWI, true colour, change10 m~5 days
Sentinel-1 SARC-band radar: structure, moisture, flood, motion, sees through cloud~10 m~6 days
MODIS NDVIvegetation index, long continuous record for trend baselines250 m8 days
Environment
ERA5reanalysis weather: temperature, precipitation, wind, soil moisture0.25°daily
Met.nooperational forecast fields layered over the reanalysis recordpoint / gridhourly
CAMS air qualityaerosol and pollutant concentrations: the air over a cell~0.4°sub-daily
FIRMS firesactive-fire thermal anomalies, near-real-time detections375 m–1 kmdaily
Land, water & structure
Hansen GFCglobal forest cover, loss year and gain: the deforestation record30 mannual
JRC surface waterwater occurrence, recurrence and seasonality, 1984 onward30 mmonthly
SoilGridssoil texture, organic carbon, pH: the static ground beneath250 mstatic
Copernicus DEMelevation, slope and terrain: the shape of the cell30 mstatic
Overture buildingsfootprints and place records: what is built on the cellvectoron release

None of these is special once it lands. A Sentinel-2 scene becomes indices.ndvi at a tslot; a Hansen tile becomes hansen.loss_year; a JRC layer becomes surface_water.recurrence. The mission is just where the value came from. The receipt records it, and the agent never has to know.

Different sources move at different speeds, so the memory keeps tempo tiers: static, slow, medium, fast. A query reads the value that was current at the tslot you asked about, not the latest one. History is append-only, so a year-old answer stays answerable.

When a source has nothing to say about a place, outside coverage or a gap in the record, the memory returns a negative fact with a reason, not a silent zero. You can tell not queried from nothing there. No silent fallbacks.

factindices.ndvi = 0.71
cell8a2a1072b4dffff
tslot2026-05-21 · medium tier
sourceSentinel-2 L2A · 10 m
fusedMODIS NDVI · ERA5 soil moisture
receipt · ed25519 signed · emem.dev verifiable
Spec. 1. One overhead source, resolved to a band on a cell, carrying where it came from.

Chapter III

The ground, in motion.

Overhead tells you the field caught rain. The camera on the gate tells you the gate stood open at three in the morning. geo.qa ingests live video, registers it to the ground, and files what it sees against the same cells.

ingest.py
# attach any camera; geo.qa registers + segments it
from geoqa import Memory

mem = Memory(tenant="acme")

stream = mem.attach(
    url = "rtsp://gate-cam-04/stream",
    detect = ["vehicle", "person", "gate_state"],
)

for event in stream:
    event.cell      # 8a2a1072b4dffff
    event.label     # "gate_state: open"
    event.receipt   # signed · filed at this tslot
RTSP · ONVIFfixed CCTV and IP cameras, the perimeter feed most sites already run
HLS · RTMPstreaming and broadcast feeds, drone downlinks, encoder outputs
WebRTClow-latency browser and edge feeds, sub-second to the memory
geo-registereach frame is placed on the ground, so a pixel becomes a cell
SAM3 · SAMGeopromptable segmentation: cut the scene into objects, per frame
186+ classesvehicles, vessels, structures, equipment, each detected and filed by category
# a frame, segmented and resolved to ground watch rtsp://gate-cam-04 detect=vehicle,person,gate_state → gate_state = open at 03:14 local cell 8a2a1072b4dffff · SAM3 mask · class 41/186 → vehicle = 1 plate region masked receipt signed · filed at tslot
Spec. 2. Live video is not stored as footage in the memory. It is resolved into facts: a label, a count, a cell, a time, each with its own receipt.

Chapter IV

We bring our own capture.

Reading public missions is the floor. geo.qa also deploys its own capture devices and payloads, and runs the encoder at the source, so what travels down is a latent, not imagery.

01

Capture at the source

A geo.qa payload observes the ground: an orbital sensor, a fixed device, a camera we put there.

02

Encode → latent

The encoder runs on the device. A scene becomes a latent vector before it leaves. Bandwidth and exposure both collapse here.

03

Decode → memory

On the ground, a decoder resolves each latent onto the cell lattice, into the same memory the public sources write to.

04

File a fact

Each value lands with its band, its time and a signed receipt. Nothing is overwritten; the past stays queryable.

05

Agent cites

Your model reads the memory and answers with the exact observations behind it, whatever sensor produced them.

Fig. i. The capture path for geo.qa’s own devices. The raw image never makes the trip; only the latent does.

Why encode at the source

the upgrade over fusing public data alone

  • Less to move. A latent is a fraction of a scene. The downlink stops being the bottleneck.
  • Less to expose. Raw imagery never crosses the boundary, so there is less to leak and less to govern.
  • Fresher coverage. Our own tasking fills the gaps between public revisit windows, where it matters to you.

What you get on the ground

the same memory, richer inputs

  • One address. Custom capture and public sources resolve to the identical cell × band × tslot.
  • One receipt shape. Every fact, however captured, signs the same way and verifies offline.
  • Private tenancy. Your devices feed your memory. Your keys, your jurisdiction, airgapped if you want it.

Chapter V

All of it resolves to one fact.

Twelve modalities, a dozen overhead sources, every live camera: they collapse to the same three coordinates. That collapse is the product.

Cell×Band×TslotFact
cellWhere. A stable address ≈ 9.7 m on a side. Sentinel optical, SAR radar, a gate camera and a weather grid all snap to the same one.
bandWhat. One of 124 wired measurement slots: optical, SAR-VV, NDVI, NDWI, land-surface temperature, forest loss, water recurrence, a detection count, a signed human note.
tslotWhen. A temporal slot in the right tempo tier, static through fast, so a daily weather field and an annual forest layer coexist on one cell without overwriting.
factThe answer. Measured, derived, or a signed absence with a reason. The receipt names every source that went into it.
Plate ii · one cell, every sourceband × tslot
Fig. ii. A single address holds many bands across many tslots. Resolving one returns the fact and its receipt, no matter which sensor wrote it.

Point your sensors at one memory.

Satellite, radar, camera, weather, forest, water, all fused into an Earth memory you own, that your model can cite and train on.

geo.qa · a vortx ground decoder · emem.dev open protocol