Skip to main content

This package present an xarray view over observations in the MeerKAT archive.

Required Reading

You’ll need some familiarity with xarray. In particular:

Opening a dataset

Use xarray.open_datatree with engine="xarray-kat" (or let xarray infer the engine automatically from the URL). The call returns a xarray.DataTree whose children are the individual scans of the observation.

import xarray_kat  # registers the "xarray-kat" engine
import xarray

token = "eyFILLMEIN"
capture_block_id = 1234567890
url = (
    f"https://archive-gw-1.kat.ac.za/{capture_block_id}"
    f"/{capture_block_id}_sdp_l0.full.rdb?token={token}"
)

dt = xarray.open_datatree(url, engine="xarray-kat", chunked_array_type="xarray-kat", chunks={})

Each child node is keyed "<capture_block_id>_<stream_name>/<scan_index>" and exposes the MSv4-style data variables:

  • VISIBILITY — complex correlator data, shape (time, baseline_id, frequency, polarization)

  • WEIGHT — per-sample weights, same shape as VISIBILITY

  • FLAG — per-sample flags, same shape as VISIBILITY

  • UVW — baseline UVW coordinates, shape (time, baseline_id, uvw)

Parameters

All keyword arguments below are passed through xarray.open_datatree.

applycalstr or list of str, default ""

Calibration products to apply. Use "all" to apply every available product, an explicit list such as ["l1.G", "l1.B"] to apply specific products, or "" to skip calibration entirely.

scan_statesiterable of str, default ("scan", "track")

Only scans whose activity-sensor state appears in this collection are included in the tree. Pass e.g. ("track",) to keep only tracking scans.

uvw_sign_convention"casa" or "fourier", default "casa"

Sign convention for UVW coordinates. "casa" follows the antenna2 - antenna1 convention used by CASA and most radio-astronomy software. "fourier" uses the opposite sign.

van_vleck"off" or "autocorr", default "off"

Van Vleck correction for the MeerKAT F-engine quantisation distortion. "autocorr" corrects autocorrelation amplitudes using the built-in lookup table; "off" leaves the data unchanged.

preferred_chunksdict, optional

Preferred chunk sizes along named dimensions, e.g. {"time": 4, "frequency": 512}. These are hints; the engine uses the natural archive chunking where possible.

capture_block_idstr, optional

Override the capture-block ID inferred from the RDB file. Rarely needed in normal use; useful when the ID embedded in the file differs from the one in the URL.

stream_namestr, optional

Override the data-stream name inferred from the RDB file (e.g. "sdp_l0"). Useful when an observation contains multiple streams and you want to open a specific one.

Example Usage

Load a small observation entirely into memory:

import xarray_kat
import xarray

token = "eyFILLMEIN"
capture_block_id = 1234567890
url = (
    f"https://archive-gw-1.kat.ac.za/{capture_block_id}"
    f"/{capture_block_id}_sdp_l0.full.rdb?token={token}"
)

dt = xarray.open_datatree(url, chunked_array_type="xarray-kat", chunks={})
dt.load()

Select a subset of the data before loading:

ds = dt[f"{capture_block_id}_sdp_l0/0"].ds
ds = ds.isel(
    time=slice(10, 20),
    baseline_id=[1, 20, 30, 31, 32, 50],
    frequency=slice(256, 768),
)
ds.load()

Apply calibration solutions and Van Vleck correction:

dt = xarray.open_datatree(
    url,
    chunked_array_type="xarray-kat",
    chunks={},
    applycal="all",
    van_vleck="autocorr",
)

If dask is installed, request dask-backed chunks along specific dimensions:

# Natural (archive) chunking — most efficient
dt = xarray.open_datatree(url, chunks={})
dt = dt.compute()

# Custom chunking — may cause repeated archive requests for overlapping chunks;
# prefer rechunking on top of natural chunks, or use a cache pool
dt = xarray.open_datatree(
    url, chunks={"time": 20, "baseline_id": 155, "frequency": 256}
)
dt = dt.compute()

Metadata

Release files for xarray-kat 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xarray-kat 0.0.6
File Size Uploaded
xarray_kat-0.0.6.tar.gz 94.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xarray-kat 0.0.6
File Interpreter ABI Platform
xarray_kat-0.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 208.3 kB

Release files / xarray_kat-0.0.6.tar.gz

Download URL xarray_kat-0.0.6.tar.gz
Size 94.5 kB
Tags Source
SHA-256 checksum
How to use checksums
22a5b9ce9e59548d64fc2f1f049e5f9e125c3c18ac75674f49ca6a0deda13047
BLAKE2b-256 checksum
How to use checksums
08ea1f926cc23aafabe0d8151701a1fa271669719ab502e30dcc9e9d2825a990
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 29, 2026.

Transparency log

Release files / xarray_kat-0.0.6-py3-none-any.whl

Download URL xarray_kat-0.0.6-py3-none-any.whl
Size 113.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d6c6b1340897979af18a44630d0955877640d4f294c06916ebe9fee7f0f1b01
BLAKE2b-256 checksum
How to use checksums
7454882d6424018186cb50b180ba417931c6d4f8bfcb2b4a11e8c6f318c385e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page