STAC Catalog

STAC Catalog

Raad publishes a standards-compliant SpatioTemporal Asset Catalog (STAC API 1.0). Collections map to your sites; each site contains four nested sub-collections listed below. For a full QGIS walkthrough — native connection setup, searching captures with thumbnail previews, and streaming COG/COPC assets onto the canvas — see the dedicated guide: QGIS: Browse and Stream Your Raad Catalog.

Sub-collection Item Assets surveys One completed aerial capture (processed ODM run) Orthophoto COG, DSM, DTM, point cloud (COPC), 3D models, report PDF, thumbnail, preview tiles coverage-groups An acquisition set (mission × geometry × sensor) Thumbnail artifact-groups A curated group of source photos Thumbnail, union footprint raw-imagery A single captured photo Source JPEG, EXIF thumbnail

URLs

cURL
Catalog:       https://app.raad.com/stac
Collections:   https://app.raad.com/stac/collections
Items:         https://app.raad.com/stac/collections/{site-uuid}/items
Sub-collections: https://app.raad.com/stac/collections/{site-uuid}/collections
Search:        https://app.raad.com/stac/search
Sites GeoJSON: https://app.raad.com/stac/sites.geojson

Streaming vs downloading — what to expect

Asset hrefs are HTTPS URLs that render or download without extra credentials (your map access token is carried in the URL). How an asset behaves depends on its format:

Asset type In QGIS COG / COPC (orthophoto, DSM, DTM, point cloud) Streams directly onto the map — no download. Drag the asset onto the canvas; QGIS fetches only the tiles it needs over HTTP range requests GeoJSON (site geometries, footprints) Download then open, or use WFS/vector tiles for the click-to-add experience JPEG photos (raw imagery) Download/view — oblique photos carry no georeferencing, so they cannot be draped on a map. Browse them via item footprints instead PDF / OBJ / GLB Download

Requires QGIS 3.42 or later.

  1. In the Browser panel, right-click STAC → New STAC Connection…
  2. URL: https://app.raad.com/stac; under Authentication, add an HTTP Header config with Authorization = Bearer YOUR_MAP_ACCESS_TOKEN
  3. Expand the connection → a site → Surveys → a capture → drag the Orthophoto (COG) node onto the canvas to stream it, or right-click for details/download

Searching with previews (Data Source Manager)

  1. Open Layer → Data Source Manager → STAC, select your connection, and click Filters…
  2. Set a spatial extent and/or date range (optionally limit to specific site collections) and search
  3. The results list shows each capture with a thumbnail preview, date, and summary — check Show Footprints to see footprints on the map, then add the COG asset directly

The search endpoint accepts a q parameter (STAC free-text search extension) matching site and mission names/descriptions, always scoped to your account:

cURL
curl -H "Authorization: Bearer YOUR_MAP_ACCESS_TOKEN" \
  "https://app.raad.com/stac/search?q=sweetwater+infrared&limit=10"

bbox (as west,south,east,north) and datetime filters compose with q, and a GeoJSON intersects filter is supported on POST bodies.

Which service should I use?

  • Just show the imagery on a map → XYZ raster tiles or WMS (no STAC needed)
  • Browse/search captures and stream analysis-ready rasters → STAC (this section)
  • Editable vector geometries → WFS or vector tiles
  • Scripted pipelines → pystac-client against the STAC API

For site geometry polygons, use the WFS link above — the STAC browser shows geometry assets as downloads, but WFS gives you a click-to-add experience directly in QGIS.

pystac-client — Search and Download

cURL
from pystac_client import Client

TOKEN = "YOUR_MAP_ACCESS_TOKEN"
SITE_ID = "YOUR_SITE_UUID"

client = Client.open(
    "https://app.raad.com/stac",
    headers={"Authorization": f"Bearer {TOKEN}"}
)

# Search a site collection
results = client.search(
    collections=[SITE_ID],
    max_items=10
)

for item in results.items():
    print(item.id, item.datetime)
    for asset_key, asset in item.assets.items():
        print(f"  {asset_key}: {asset.href}")
cURL
from pystac_client import Client
from datetime import datetime, timezone

TOKEN = "YOUR_MAP_ACCESS_TOKEN"

client = Client.open(
    "https://app.raad.com/stac",
    headers={"Authorization": f"Bearer {TOKEN}"}
)

results = client.search(
    bbox=[-81.9, 33.5, -81.8, 33.6],          # west, south, east, north
    datetime=[datetime(2025, 1, 1, tzinfo=timezone.utc), None],  # since Jan 2025
    max_items=50
)

items = list(results.items())
print(f"Found {len(items)} captures in the search area")

Sites GeoJSON as a Vector Layer

The /stac/sites.geojson endpoint returns all your sites as labeled point features. Load it in QGIS for a quick overview map:

  1. Go to Layer → Add Layer → Add Vector Layer
  2. Set Source Type to Protocol (HTTP/HTTPS) and paste the Sites GeoJSON URL
  3. Click Add — each site appears as a point with its name and links to STAC, WMS, and WFS in the feature attributes