OVRO-LWA Portal¶
A Python library for radio astronomy data processing and visualization for the Owens Valley Radio Observatory - Long Wavelength Array (OVRO-LWA).
For a project overview and quick start, see the README on GitHub.
Features¶
- Unified Data Loading: Load OVRO-LWA data from local paths, remote URLs
(S3, HTTPS), or DOI identifiers with a single
open_dataset()function - Interactive Visualization: Panel/HoloViews explorers with linked views, sky overlay via Aladin Lite, and click-to-inspect interactions (guide)
- FITS to Zarr Conversion: Convert OVRO-LWA FITS image files to cloud-optimized Zarr format
- Command-Line Interface: User-friendly
ovro-ingestCLI with progress tracking - WCS Coordinate Preservation: Maintain celestial coordinates (RA/Dec) for FITS-free analysis
- Incremental Processing: Append new observations to existing Zarr stores
- Concurrent Write Protection: File locking prevents data corruption from simultaneous processes
- Optional Workflow Orchestration: Prefect integration for production deployments
Technology Stack¶
- Core: Python 3.12, xarray, dask, zarr
- Astronomy: astropy, xradio, python-casacore
- CLI: typer, rich (progress bars and formatted output)
- Workflow: prefect (optional orchestration)
- Storage: Zarr format optimized for cloud access
- Environment Management: pixi
Quick Start¶
import ovro_lwa_portal
# Load from local zarr store
ds = ovro_lwa_portal.open_dataset("/path/to/observation.zarr")
# Load from remote URL
ds = ovro_lwa_portal.open_dataset("s3://ovro-lwa-data/obs_12345.zarr")
# Load via DOI
ds = ovro_lwa_portal.open_dataset("doi:10.5281/zenodo.1234567")
Getting Help¶
License¶
This project is licensed under the BSD License - see the LICENSE file for details.