Discovery Guide

Zyra includes a flexible discovery system to find datasets across multiple sources:

  • Packaged SOS catalog (offline, bundled)

  • Custom local catalogs (JSON)

  • Remote OGC endpoints: WMS (GetCapabilities) and OGC API - Records

Quick Start (CLI)

# SOS catalog (bundled profile)
zyra search "tsunami" --profile sos

# OGC WMS (remote only by default when remote is provided)
zyra search "Temperature" \
  --ogc-wms "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities"

# OGC Records (pygeoapi demo)
zyra search "lake" \
  --ogc-records "https://demo.pygeoapi.io/master/collections/lakes/items?limit=100"

# Include local results alongside remote
zyra search "Temperature" --profile sos \
  --ogc-wms "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities" \
  --include-local

Semantic Search (LLM)

Use the same LLM provider/model as the Wizard to turn natural language into a search plan:

zyra search --semantic "Find global sea surface temperature layers from NASA" --limit 10 --show-plan

–show-plan prints both the raw plan (from the model) and the effective plan (after heuristics). The CLI then executes the plan and prints results.

Profiles

Profiles bundle sources and scoring weights. Use --profile with a bundled name, or --profile-file to load your own JSON. Bundled profiles live under zyra.assets.profiles:

  • sos β€” packaged SOS catalog

  • gibs β€” NASA GIBS WMS capabilities

  • pygeoapi β€” pygeoapi demo collections

See also: Search API and Profiles.

HTTP API

Endpoint: GET /v1/search

Parameters mirror the CLI flags (q, limit, profile, catalog_file, ogc_wms, ogc_records, include_local, remote_only). Try the interactive page at /examples.

Offline Testing

OGC sources accept local files to facilitate testing without network access.

# WMS capabilities (XML)
zyra search "temperature" --ogc-wms file:samples/ogc/sample_wms_capabilities.xml

# Records items (JSON)
zyra search "precip" --ogc-records file:samples/ogc/sample_records.json

API Reference

For module-level API docs, see:

Commands Endpoint and Capabilities

Zyra exposes a rich commands index for tool discovery:

  • GET /commands β€” JSON map of tools with metadata.

  • GET /commands?format=list|summary β€” list or summary views.

  • GET /commands?format=grouped β€” groups tools by domain (import/acquire, process/transform, visualize/render, export/disseminate/decimate, run).

Each command entry includes:

  • domain: the semantic group (e.g., visualize).

  • args_schema: simple required/optional fields derived from Pydantic models (when available).

  • example_args: a brief example body for common tools.

Generate a static capabilities manifest for assistant workflows:

poetry run zyra generate-manifest -o src/zyra/wizard/zyra_capabilities.json

This file mirrors /commands so assistants can ground suggestions without calling the API.