Arden OpenSAR
CENTRE — —
ZOOM 1.00×
SAMPLE —
SAR placeholder main target campaign site planned AOI Umbra / Capella footprints
the record, the caveats, the source ↓
Section 01 · the record

Everything above is a place this project actually pointed a radar.

The globe is the index. Each campaign below has a marker on it, and clicking the marker gives you the numbers that campaign measured — not a description of them. What follows is the same material with room to breathe.

Campaign · Panama Canal Demo 0 — focused from raw phase history A real Umbra collect, focused by this repo's own backprojection, beside the vendor's image of the same scene. The page that existed before the globe did; it is now one of the globe's sites rather than the front door. Physics · normative KSPACE.md §6 — the convention everything obeys k = 4πf/c·û with û target→sensor in an ENU frame, and its bistatic form (2πf/c)(û_tx + û_rx). Code, spec and docs move together or not at all. Engine · shared arden_core — one imaging engine, many instruments Backprojection, metrology, speckle, k-space support declarations. A satellite, a ground node and a drone call the same operators; adapters own mission I/O and nothing else. Format · draft Ewald tiles — georeferenced k-space patches Store what the aperture measured, render imagery on demand. Pre-1.0: everything in the spec directory is breaking until it isn't.
Section 02 · how to read it

What on this page is measurement, and what is not.

What is measurement and what is not. Coastlines are Natural Earth. Site positions, campaign numbers and the Atlanta geometry are real — the campaign figures come from merged, CI-green PRs on this repo; Atlanta is computed from published Sentinel-1 orbit parameters. The 3,000 orange points are measured — real Umbra and Capella open-data footprints, subsampled from 17,364 harvested.

The whole globe is now real Sentinel-1. It used to be synthetic speckle, labelled a placeholder; it is not any more. The base layer is the Global Seasonal Interferometric Coherence and Backscatter Data Set — Copernicus Sentinel-1 gamma-nought, built by Earth Big Data LLC and Gamma Remote Sensing and distributed through NASA's ASF DAAC — natively at 0.01° (~1 km), already in plate-carrée, and shipped here downsampled to 5400×2700, which is about 7.4 km a pixel at the equator. That downsample is the honest number for what you are looking at; the kilometre figure belongs to the source product, not to this globe. What you can read off it is nonetheless genuine radar physics: the Amazon is bright because dense canopy backscatters hard at C-band, deserts are dark because smooth sand reflects away from the sensor, and the ragged edges over the oceans are the real edges of Sentinel-1's acquisition strips, not a rendering artefact.

Two honest gaps. The product stops at 58° S, so Antarctica is absent rather than invented — the globe leaves it dark. And a tone curve (gamma 1.8) is applied after the dB window, because global land backscatter is narrow and left-skewed and a straight ramp puts the median at 66 % grey with the wet tropics clipped to white. It is monotonic, so it darkens midtones without reordering any pixel.
Zoom in and the globe fetches more samples, not a sharpening filter. Past about 2.2× the viewer loads detail tiles for whatever is on screen: 93 tiles, 49.0 MB, at 50 px per degree — 2,226 m a pixel at the equator, or 3.33× finer than the 7,421 m base. They are cut from the same mosaic as the worldwide layer, so this is more of the measurement, never an upscale of what was already shown. Nothing is fetched at zoom 1, so the globe still opens at exactly its old cost.

The stretch is deliberately not recomputed per tile. Every tile reuses the base's own dB window (−22.27 to −5.71 dB) and the same gamma 1.8, because percentiles taken inside each tile would give each one its own contrast and the globe would render as a patchwork with a step at every seam. A tile carries more samples than the base — never a different mapping of them.

Where this stops. 2,226 m is not the source's native sampling: the mosaic is 100 px per degree (1,113 m). Shipping the whole globe at native would be about 182 MB of tiles, measured, not guessed — so what ships here is the honest half-step, and the ceiling is a storage decision rather than a physics one. Ocean costs almost nothing either way: the product is nodata over water and an all-water tile compresses to ~40 kB.
Deeper still: a 10 m tier, and it is global. Below the worldwide tiles sit 19 focus zones, 37.6 MB, from a different product — ESA WorldCover's Sentinel-1 annual median composite (2021, v200, CC-BY 4.0), one 3-band COG per 1°×1° at 12,000 px per degree. Band 1 is VV gamma-nought and the file carries its own conversion, dB = DN×0.001 − 45. Delivered sampling at the sites measures 7.71 m east × 9.28 m north in Atlanta and Sydney, 9.16 × 9.28 m at Panama — east shrinks by cos(φ), north does not. Every site marker on this globe has native-resolution imagery under it, and the viewer simply prefers whichever loaded layer covering a pixel has the most samples per degree.

Eleven of the nineteen are landmarks, not campaign sites — Suez, Rotterdam, Singapore, Tokyo Bay, New York, San Francisco, the Meeting of the Waters at Manaus, Three Gorges, Palm Jumeirah, the Venice lagoon, the Bosphorus. They carry no marker and their card says imagery only, because nothing was tasked there by this project. They are here for two reasons: a globe that is sharp only where this project has been is not a map, and every one of them is a place the CONUS-only archive behind the Atlanta layer could never have reached. They also happen to be what SAR is good at — water is specular and reads black, so lock gates, container stacks and breakwaters come out of a dark background rather than competing with it.

Why this source and not the sharp Atlanta one. The 20 m RTC archive behind the Atlanta layer is CONUS only — Panama and Sydney return zero tiles from it, at any effort. This composite is global land, which is the entire reason the other two campaign sites can be sharp at all. It is amplitude: a year of scenes reduced to a median, so no phase survives and nothing here supports interferometry.

Decimation is done in linear power, never in dB. The region tiers are averaged down from the source, and because dB is affine in DN, letting the reader average DN would take a geometric mean. Measured against a native-resolution power average over urban Atlanta, that errs only −0.04 / −0.14 / −0.33 dB in the mean at 2× / 4× / 8× — but −7.4 / +5.3 dB at p1/p99, and the large errors land on bright point scatterers, which is exactly what makes a city legible in SAR. So the source is read at up to 4× the target and the last step averages power.

The tone curve is solved, not chosen. This product is brighter than the worldwide one — its median sits above the base's −5.71 dB ceiling — so it needs its own window (−19.43 to −1.19 dB). Gamma is then solved so the zone median renders at 124/255, the measured land median of the worldwide layer it overlays: 1.516. At the globe's own 1.8 these zones would render near 56/255 and every one of them would appear as a dark patch that switches on at depth.

Only the eight campaign zones calibrate that window, and the landmarks are deliberately excluded from it. The number being matched — 124/255 — is world.png's land median, its ocean being nodata; most landmarks are half water (Dubai's median is −16.7 dB, Venice's −19.7), so letting them vote drags the pooled percentiles down and lifts the curve off the land match. Measured: including them moved gamma from 1.516 to 1.167 and rendered every land zone too bright. They are shown under the land-calibrated curve, which is why their water is properly black.
Below all of that: a sub-metre tier, and it is a different radar. Eight footprints, 36.8 MB, from Umbra's open archive (AWS Open Data, CC BY 4.0) — X-band at about 9.6 GHz, spotlight, and a single collect where everything above is C-band averaged over a year. Delivered sampling runs 1.23 m at the Panama Canal to 3.09 m at Hong Kong, against 9.16 m from the tier underneath — 7.6× finer at Panama, which is 56× more samples per unit area. The archive holds 7,934 geocoded collects over roughly 80 tasked sites.

This is not the cross-band trick, and the distinction matters. Crossing the band wall buys more observables and never a smaller resolution cell — that rule holds here and is not being quietly suspended. Nothing is fused. The C-band tier is not being sharpened by the X-band one, and no pixel is inferred from the other band. A finer instrument simply exists over these eight footprints, so at depth the viewer shows that instrument's own samples instead of interpolating C-band ones. Everywhere else the tier is absent rather than upsampled, which is why it appears as eight squares and not as a global improvement.

Spacing is not resolution. The geocoded product sits on a grid finer than the cell it samples: 0.156 m pixel spacing at Panama against a 0.25 m impulse response. The manifest reports both, under different names, because quoting the grid as the resolution is precisely the overclaim this project exists to refuse — a finer grid resamples the same cell, it does not resolve a smaller one.

Window per site, tone matched across them. Each footprint is one collect with its own incidence angle, date and absolute level, so each gets its own percentile window — sharing one would be a cosmetic lie about the radiometry. Gamma is then solved per site so the median renders at 124/255, the same land median the 10 m tier was matched to. Measured on the first build, skipping that step put every chip at 47/255 and each one read as a dark square switching on at depth — the identical failure the 10 m tier documents above.

The zoom ceiling moved with it, for the second time. Metres per screen pixel is 6,371,000/(R·DPR·zoom), so showing a 1.23 m chip at one sample per screen pixel needs about 7,700×. The old 1,200× ceiling — itself raised from 460× when the 10 m tier landed — drew this tier at roughly an 11× downsample: fetched, decoded, then thrown away before it reached the screen. Size is set by the same measured constant as everywhere else here: speckle is noise-like and does not compress, at ~0.78 bytes per pixel at every scale tested, so chip pixels are the only dial.

What is not here. There is no sub-metre collect over Atlanta or Arden Road — the nearest thing in the whole open archive is the Port of Savannah, some 380 km away. The campaign sites stay at 9.16–9.28 m and no amount of processing changes that; only a tasking would. This product also carries no phase: GEC is detected amplitude. The same collects are published as CPHD and SICD, which do carry it — 4,154 phase history files sit in that bucket, and that is the format this project is actually built around.
Two sensors, one grid — why the optical base is not a cheat. A car carries a camera and a radar because neither substitutes for the other: the camera says what a thing looks like, the radar says it is there and how it changed, in the dark and through weather. The same split holds from orbit, and the View control now carries both. The optical layer is ESA WorldCover's Sentinel-2 median L2A composite (2021 v200, bands B04/B03/B02, CC-BY 4.0), published on the identical 1°×1° grid as the radar — same 12,000 px per degree, same bounds, same overviews. Optical and radar are co-registered by construction, not by warping. Pixel (i, j) is the same patch of ground in both files, so fusing them inherits no registration error and costs no resampling.

Fusion adds light; it never rewrites the colour. The tempting way to fuse is to push SAR into the intensity channel and keep optical's hue — which quietly restates measured reflectance as something it is not. Here the optical pixel is left exactly as measured and radar is painted on top as emissive cyan, with nothing at all painted below the knee. Most of a scene therefore stays pure Sentinel-2, and the glow marks only the returns a camera cannot explain: metal, corner geometry, lock gates, container stacks, ships.

Change needs both epochs, and no camera can supply it. The same composite exists for 2020 on the same grid, so the difference is a straight per-pixel subtraction in dB — no coregistration, no orbit matching. Warm is brighter in 2021, cool is darker. The sanity check is that the median change is ≈0 dB in every zone: the two epochs are consistently calibrated, so what survives is signal — and it shows. Stable suburbs run about 1% of pixels past 2 dB; the Singapore Strait anchorage runs 18.5%, because each speckle out there is a ship that was in one year's median and not the other's. What it is not: this is amplitude change, not coherent change detection. A median has no phase left in it, so it sees a building appear or a basin fill — never a millimetre of subsidence.

The change tier is deliberately multi-looked to half the zone sampling (18.6 m). A difference of two noisy estimates is noisier than either, and at full sampling the residual on stable ground measured ±2.5 dB — the same size as the events being looked for. Averaging each epoch in linear power first brought that to ±2.0 dB and cut the files to a third. Better signal and fewer bytes were the same decision, not a trade.

One compression asymmetry, on purpose. The optical base ships as JPEG q=92 and the radar layers stay lossless PNG — measured on the Arden Rd zone, 2.00 MB against 8.87 MB (4.4×) for a mean error of 2.77/255. The appearance layer is allowed to be lossy because what it carries is the look. The radar layers are not, because their pixel values are the claim.
Atlanta is where it gets sharp. The worldwide layer ships at ~7.4 km a pixel; fly to Atlanta and it gives way to a detail layer whose cell measures 20.63 m east × 24.70 m north — about 360× finer, measured off the two layers' own bounds rather than asserted: 118 Sentinel-1A passes between November 2016 and April 2021, IW GRDH processed by ESA to RTC — radiometrically terrain-corrected gamma-nought, VV, MGRS tile 16SGC — pulled anonymously from AWS Open Data by opensar/scripts/build_sar_basemap.py, which is committed so the layer is regenerable rather than a mystery PNG. Terrain correction is why it can be laid on a globe at all: raw ground-range GRD leans over topography, and RTC is already map-projected. The composite is reprojected from UTM to plate-carrée before it ships, because an MGRS tile is a square in UTM and not a rectangle in lon/lat — pasting it into a lon/lat box would shear it by about half a kilometre across this window.

Three things in that picture are display choices, not measurements. The 118 dates are averaged in linear power, never in dB — a mean of dB is the log of a geometric mean and biases every pixel low. That averaging is a temporal multi-look: it divides speckle variance by the number of looks without costing spatial resolution, which is why the city reads as structure instead of noise. The dB window (p1–p99, −17.5 to −0.6 dB here — a 16.9 dB span) was picked by rendering the alternatives and looking at them; a tighter window clips downtown to flat white, a wider one turns the suburbs to mud. And it is VV, the higher-SNR co-pol channel.

What it is not: phase. GRD and RTC are amplitude only — the phase history is gone before the product is written. Nothing in this layer supports interferometry, coherence, or the change detection this project does elsewhere; all of those need SLC, which is not in this bucket. This is the honest black-and-white layer, and everything past it still wants the raw phase.
Section 03 · the rest of Arden

OpenSAR is one instrument of four.

Same engine underneath, different band, geometry and platform.

Portal Arden — the instrument directory The switcher across every Arden product. Instrument Home Sense Presence, rooms, devices, sensor health and coverage. Instrument RF Lab Spectrum, probabilistic emitters, radar, FMCW and aperture experiments.