Skip to main content

Add your description here

Project description

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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xarray_kat-0.0.6.tar.gz (94.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xarray_kat-0.0.6-py3-none-any.whl (113.8 kB view details)

Uploaded Python 3

File details

Details for the file xarray_kat-0.0.6.tar.gz.

File metadata

  • Download URL: xarray_kat-0.0.6.tar.gz
  • Upload date:
  • Size: 94.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xarray_kat-0.0.6.tar.gz
Algorithm Hash digest
SHA256 22a5b9ce9e59548d64fc2f1f049e5f9e125c3c18ac75674f49ca6a0deda13047
MD5 0b4484f802098bb19ade6a1ac033998b
BLAKE2b-256 08ea1f926cc23aafabe0d8151701a1fa271669719ab502e30dcc9e9d2825a990

See more details on using hashes here.

Provenance

The following attestation bundles were made for xarray_kat-0.0.6.tar.gz:

Publisher: ci.yml on ratt-ru/xarray-kat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xarray_kat-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: xarray_kat-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 113.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xarray_kat-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3d6c6b1340897979af18a44630d0955877640d4f294c06916ebe9fee7f0f1b01
MD5 19cbfe8f182a6def9a2947cd8ea72025
BLAKE2b-256 7454882d6424018186cb50b180ba417931c6d4f8bfcb2b4a11e8c6f318c385e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for xarray_kat-0.0.6-py3-none-any.whl:

Publisher: ci.yml on ratt-ru/xarray-kat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page