1 / 6

What is FITS?

What is FITS?. FITS = Flexible Image Transport System Invented ~1980 to transfer Radio Astronomy datasets from one observatory to another Format now used by most astronomical software Widely used as data archive format

reid
Download Presentation

What is FITS?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What is FITS? • FITS = Flexible Image Transport System • Invented ~1980 to transfer Radio Astronomy datasets from one observatory to another • Format now used by most astronomical software • Widely used as data archive format • FITSIO and other libraries developed to read/write FITS efficiently using C, Fortran, Perl, Python, Java… • Always big-endian (so portable) • Format defined to the last bit in primary literature. • Images and binary tables fairly space-efficient.

  2. FITS Structure in outline • Any number of Header-Data units (HDUs) • Header has metadata: lines of 80 characters NAME = value /[units] other commentary • A few reserved names, e.g. DATE-OBS, no rules otherwise • Data section can be Image or Table • Image: • 8, 16, 32-bit integers, 32 or 64-bit floats • Up to 999 dimensions (mostly 2 or 3 dimensions) • Table • up to 999 columns, up to 2 billion rows • 8/16/32-bit integers, 32/64-bit floats, strings, logical, 64/128-bit complex. • Vector columns (optional variable length vectors) • Null values can be defined

  3. What’s wrong with FITS • Flat structure for metadata, single name-space, only 8-character names • Blocked in units of 2880 bytes • Length of data unit must be declared in header unit, so cannot stream output • No structure to HDUs, just a simple list • No direct access to HDUs, have to decode each header in turn to find size of data unit. • Always big-endian, requires byte-swap on most popular platforms. • Not quite fully 64-bit clean

  4. What’s wrong with VOTable • Three alternative ways of including binary: • Pure XML but very verbose, 4-byte real may turn into ~24 bytes, e.g. <TD>-0.12345678E-04</TD> • Blob encoded in Base64 • Pointer to separate FITS file • Possible loss of linkage • Duplication of header data • Tabular datasets only, no format yet for images, spectra, etc. • Cannot use direct offset to required row or field

  5. What we want • Flexible header to contain metadata • XML very suitable • Data section to contain heterogeneous data (table) or homogeneous (image etc) but to be efficient, evenly spaced • Binary formats as in FITS very suitable • Endian-neutral • Suitable for streaming data

  6. VOTable++ or FITS++? • Use MIME/DIME to have separate sections of file, as proposed for BinX, and have: • XML-based header, very similar to VOTable • Binary data units to follow, similar to FITS • Use BinX/DFDL in header to describe data unit. • Can choose big or little-endian when file created • Allow streaming format for tables, no pre-defined length. • Allow FITS HDU as special case of data unit for compatibility. • Make fully 64-bit clean for tables >2Grows.

More Related