#table #astronomy #format #rubbl #framework #interface #casa

rubbl_casatables

Interfacing to the CASA table format within the Rubbl framework

14 releases (7 breaking)

0.8.0 Aug 13, 2024
0.7.0 Jan 23, 2023
0.6.0 Nov 16, 2021
0.3.1 Apr 1, 2021
0.1.0 Dec 20, 2017

#115 in Science

Download history 96/week @ 2024-08-17 18/week @ 2024-08-24 26/week @ 2024-08-31 23/week @ 2024-09-07 42/week @ 2024-09-14 280/week @ 2024-09-21 82/week @ 2024-09-28 18/week @ 2024-10-05 8/week @ 2024-10-12 51/week @ 2024-10-19 7/week @ 2024-10-26 35/week @ 2024-11-02 237/week @ 2024-11-09 13/week @ 2024-11-16 18/week @ 2024-11-23 40/week @ 2024-11-30

310 downloads per month
Used in marlu

MIT and LGPL-2.0+

3MB
81K SLoC

C++ 76K SLoC // 0.2% comments Rust 4.5K SLoC // 0.0% comments Shell 36 SLoC // 0.3% comments

rubbl_casatables

A Rust interface to the CASA table format.

See the rubbl_core README on Crates.io for a discussion of crate duplication issues that may arise with key dependencies such as ndarray.


lib.rs:

I/O on CASA table data sets.

This crate provides I/O access to the CASA table data format. This format is commonly used for storing radio astronomical visibility data in the Measurement Set data model, but is not limited to that particular application — it is a generic data format for tabular scientific data. This crate provides only lower-level I/O interfaces and not higher-level abstractions for dealing with the specific semantics of Measurement Set data.

Because the on-disk representation of the CASA table format is quite complex and essentially undocumented, this crate’s implementation relies on wrapping a substantial quantity of C++ code from the casacore project. The goal is to provide access to the data format in a way that is completely safe and as idiomatic as possible, given the limitations imposed by the architecture of the underlying C++ code.

The entry point to this crate is typically the Table struct that represents a handle to a CASA table data set.

Dependencies

~1.7–2.7MB
~56K SLoC