Scan for
interactive poster
An Open-Source Python Framework by NOAA Global Systems Laboratory
Environmental and scientific workflows span heterogeneous data sources — HTTP FTP S3 APIs — and diverse formats such as GRIB2 NetCDF GeoTIFF. They require repeatable transformation chains and produce outputs ranging from static maps and animations to interactive pages and publishable datasets. Existing approaches often rely on ad-hoc scripts that break when data changes and lack reproducibility across teams and environments.
Zyra (pronounced Zy-rah) provides a lightweight, CLI-first framework that standardizes these common steps while remaining fully extensible for domain-specific logic. Think of it as a garden for your data: you plant seeds (from the web, satellites, or experiments), Zyra helps you nurture them (through filtering, analysis, and processing), and you harvest insights as visualizations, reports, and interactive media. It's designed to make science not just rigorous, but also accessible, transparent, and beautiful.
Use only what you need. Each stage streams via stdin/stdout for Unix-style chaining.
zyra search (SOS catalog, OGC, remote APIs), then fetch from S3, FTP, REST, or HTTP with automatic retry and checksum validation.| # | Stage | Purpose | CLI | Status |
|---|---|---|---|---|
| 1 | Import | Search & fetch from HTTP/S, S3, FTP, REST API | zyra acquire | Implemented |
| 2 | Process | Decode, subset, convert (GRIB2, NetCDF, GeoTIFF) | zyra process | Implemented |
| 3 | Simulate | Generate synthetic/test data | — | Planned |
| 4 | Decide | Parameter optimization and selection | — | Planned |
| 5 | Visualize | Static maps, plots, animations, interactive | zyra visualize | Implemented |
| 6 | Narrate | AI-driven captions, summaries, reports | zyra narrate | Implemented |
| 7 | Verify | Quality checks and metadata validation | zyra verify | Partial |
| 8 | Export | Push to S3, FTP, Vimeo, local, HTTP POST | zyra export | Implemented |
Stages are composable — pipe any stage's output directly into the next. Every stage supports stdin/stdout for seamless chaining.
Fetch only the variables you need from a 300 MB GRIB2 file using the .idx byte-range trick, convert to NetCDF, and render an interactive wind-streamline map — four commands, one pipeline.
2m Temperature — zyra visualize heatmap
10m Wind Streamlines — zyra visualize vector
Discover datasets via SOS catalog, sync weekly drought risk frames from NOAA FTP, fill gaps, and compose an MP4 animation — six steps, one pipeline.
Each stage logs provenance — start time, duration, command, and exit code — to a SQLite store for full reproducibility.
Describe your goal in plain language — Zyra's planning engine decomposes intent into a concrete execution DAG and dispatches specialized stage agents to run it.
LLM Agnostic — swap providers via --provider: OpenAI, Ollama, Gemini, or any compatible backend. Mock mode for offline testing.
Outputs validated against Pydantic schemas with optional guardrails via RAIL files for structured, reproducible results.
Define multi-stage pipelines as YAML — no scripting required. Override parameters at runtime, dry-run to preview commands, and share configs across teams.
Three layers of access — from terminal commands to autonomous AI agents — all sharing the same pipeline architecture.
Zyra exposes every pipeline stage as an MCP tool, letting LLM agents like Claude autonomously discover, compose, and execute scientific workflows. The AI layer transforms conversational intent into reproducible pipeline runs.
Zyra's modular Python API extends the CLI with programmatic access — enabling custom processing modules, integration into existing data workflows, and automated dissemination pipelines via import zyra.
The CLI empowers researchers and developers to quickly build, test, and reproduce visualization pipelines with simple, scriptable commands. Every stage streams via stdin/stdout for Unix-style composition.
stdin/stdout — acquire, process, and visualize in a single Unix pipeline with zero intermediate files.
uvicorn zyra.api.server:app to expose all pipeline stages as a REST API, enabling web dashboards and automated integrations.
zyra plan generates an execution DAG; zyra swarm dispatches stage agents in parallel with provenance tracking--providerpip install "zyra[visualization]", "zyra[processing]", "zyra[llm]", or "zyra[all]"We're exploring how intelligent agents can automate and coordinate complex scientific workflows — and we're asking for your help. Share how you actually work with data through the Zyra Workflow Insights Survey.
By sharing your workflow practices and challenges, you'll help us identify:
Your insights directly guide how we design and prioritize future tools built to amplify human creativity, efficiency, and discovery. Responses are used anonymously for research and system improvement; do not include sensitive or confidential data.