A native, full Rust, library to read tabular data in FITS files.
The library is dedicate to read table (ASCII or BINARY) in FITS file, in pure Rust. For a similar library, to read images, see fitsrs. This work is exploratory, testing design choices, and could be merged in fitsrs in the future.
It is used in:
- the fitstable command line, possibly reaching more than 1.2 GB/s in BINTABLE to CSV conversion (depending on the level of parallelism and I/O capabilities of the machine)
See fitstable-cli for a standalone command line tool. Among the features, you get a multi-threaded FITS to CSV conversion.
The standalone code also serve as an example of how to use the library.
- Implement a Reader for streamed data (heap ignored)
- Remark: for stream reading, it would have been better to put the BINTABLE heap before the main table so that one could have kept it in memory (or write it in a temporary file) to access the data when reading pointers pointing to it reading the main table. But
- Implement writers
- Remark: stream writing is not possible in FITS size the size of the result must be known in advance (the number of rows is writen in the header.
- Add test with a large variety of FITS file
- Implement ASCIITABLE
- Implement display according to
TDISP
This library is very young and requires testing on various FITS files! If you have exotic files, please send them to us! We are looking for BINTABLE FITS files:
- using SCALE and OFFSET;
- using ARRAYS;
- using the HEAP.
If you use this code and work in a scientific public domain (especially astronomy), please acknowledge its usage and the CDS who developed it. It may help us in promoting our work to our financiers.
So far, we adopt the conservative LGPL license, but hope to change it in favor of a dual Apache/MIT license in the future. Please contact us if you wish to use this code.
No direct contribution accepted so far.