ska-sci-ops / aa_uv

Utilities for working with AAVS data
BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

[AEP011] Add calibration file support #61

Closed telegraphic closed 4 months ago

telegraphic commented 6 months ago

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