Three parts:
1) Create a file format for storing calibrations
2) Add support to load calibration files
3) Viewing calibration files
Basic schema
Calibration will either be per-baseline (baseline_cal) or per-antenna (antenna_cal).
We want to keep Python dataclass simple:
@dataclass
class BaselineCal:
telescope: str # Antenna array name, e.g. AAVS3
method: str # Name of calibration method used
cal: xp.Dataset # An xarray dataset (frequency, baseline, pol)
provenance: dict # Provenance/history information and other metadata
@dataclass
class AntennaCal:
telescope: str # Antenna array name, e.g. AAVS3
method: str # Name of calibration method used
cal: xp.Dataset # An xarray dataset (frequency, antenna, pol)
provenance: dict # Provenance/history information and other metadata
Similar to UVX, we can define a YAML schema for the file format:
cal:
CLASS: AA_UV_CAL
VERSION: X.Y.Z
hdf5_type: root
###############
# Calibration datasets
cal/baseline_cal:
description: Per-baseline calibration coefficients
dims:
- frequency
- baseline
- polarization
hdf5_type: dataset
cal/antenna_cal:
description: Per-antenna calibration coefficients
dims:
- frequency
- antenna
- polarization
hdf5_type: dataset
###############
# Coordinates
cal/coords/frequency:
description: Frequency at channel center
hdf5_type: dataset
dims:
- frequency
cal/coords/polarization:
description: Polarization products coordinate
hdf5_type: dataset
dims:
- polarization
uvx/visibilities/coords/baseline:
description: Antenna baseline coordinate
hdf5_type: group
uvx/visibilities/coords/baseline/ant1:
description: Baseline antenna 1 index
hdf5_type: dataset
dims:
- antenna
uvx/visibilities/coords/baseline/ant2:
description: Baseline antenna 2 index
hdf5_type: dataset
dims:
- antenna
###############
# Provenance
cal/provenance:
description: History and data provenance information.
hdf5_type: group
cal/provenance/aavs_uv_config:
description: Software versions used in file generation.
hdf5_type: group
Three parts: 1) Create a file format for storing calibrations 2) Add support to load calibration files 3) Viewing calibration files
Basic schema
Calibration will either be per-baseline (
baseline_cal
) or per-antenna (antenna_cal
).We want to keep Python dataclass simple:
Similar to UVX, we can define a YAML schema for the file format: