Yes, a JavaScript library for reading FITS Binary Tables :)
This library is dependent upon jDataView
Include the dependent library and fitsTableJS
<script src="path/to/jdataview.js" type="text/javascript" charset="utf-8"></script>
<script src="path/to/fitsTable.js" type="text/javascript" charset="utf-8"></script>
Using an XMLHttpRequest, retrieve an array buffer or binary string of the FITS file.
var xhr = new XMLHttpRequest();
xhr.open('GET', "url/to/shazaam.fits", true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
var ft = new FitsTable(xhr.response);
};
xhr.send();
// The header must be read first
ft.readHeader();
// Then we may read the columns
ft.readColumns();
// Access the data
console.log(ft.data);
// Column names are recorded as an array
console.log(ft.columnNames);
// Number of rows and columns
console.log(ft.rows);
console.log(ft.columns);
// You can read a single row at a time and access the data
ft.readColumn();
console.log(ft.data);
These are the fields that describe the columns and data format in the test data.
- TTYPE1 = 'flux '
- TFORM1 = 'D '
- TTYPE2 = 'best_fit'
- TFORM2 = 'D '
- TTYPE3 = 'wavelength'
- TFORM3 = 'D '
- TTYPE4 = 'and_mask'
- TFORM4 = 'J '
- TTYPE5 = 'or_mask '
- TFORM5 = 'J '
- TTYPE6 = 'inverse_variance'
- TFORM6 = 'D'
- Parse for the FITS header
- Read the above key/values
- Unpack the binary data using jDataView
Support the follow data types that appear in FITS binary tables:
FITS format code | Description | Number of 8-bit bytes |
L | logical (Boolean) | 1 |
X* | bit | * |
B | Unsigned byte | 1 |
I | 16-bit integer | 2 |
J | 32-bit integer | 4 |
K* | 64-bit integer | 4 |
A | character | 1 |
E | single precision floating point | 4 |
D | double precision floating point | 8 |
C | single precision complex | 8 |
M | double precision complex | 16 |
P* | array descriptor | 8 |
http://packages.python.org/pyfits/users_guide/users_table.html
BAM!