Version 1.6.2-51 | FITS I/O | |||||||||||||||||||
|
The CFITSIO module distributed with isis (and chips and sherpa) provides a S-Lang scriptable interface to the CFITSIO subroutine library. To simplify handling of common FITS files, this module includes several high-level functions which automatically handle some of the low-level details of FITS file manipulations. For versatility, access to many low-level CFITSIO library functions is also provided. To read all the data from a simple FITS bintable: isis> x = fits_read_table ("data.fits"); isis> print(x); bin_lo = Double_Type[1000] bin_hi = Double_Type[1000] counts = Double_Type[1000] stat_err = Double_Type[1000] isis> To read selected columns: isis> (bin_lo, counts) = fits_read_col ("data.fits", "bin_lo", "counts"); Here's a somewhat more extended example showing how to use functions in the CFITSIO module to write a simple FITS binary table. % This function summarizes the basics of writing a FITS bintable % with a single HDU define write_bintable (filename, extname, data_struct, keyword_struct, history) { variable fp = fits_open_file (filename, "c"); if (fp == NULL) { vmessage ("Failed to create file %s", filename); return -1; } fits_write_binary_table (fp, extname, data_struct, keyword_struct); () = _fits_write_history (fp, history); fp = NULL; return 0; } % Create a struct to hold the bintable data % (each struct field defines a column of the same name) variable d = struct { bin_lo, bin_hi, counts, stat_err }; d.bin_lo = [0.0:10.0:0.01]; d.bin_hi = d.bin_lo + 0.01; d.counts = @d.bin_lo; d.counts[*] = 0.0; d.stat_err = @d.counts; % Create a struct to contain the header keywords % (each struct field defines a keyword of the same name) variable k = struct { object, telescop, instrume, exposure }; k.object = "Cyg X-1"; k.telescop = "CHANDRA"; k.instrume = "HETG"; k.exposure = 1.e5; variable filename, extname, history; filename = "data.fits"; extname = "NONE"; history = sprintf ("FITS bintable creation demo: %S", time); () = write_bintable (filename, extname, d, k, history); |
[ Accessibility | Made with JED | Best Viewed with a Browser | Valid HTML 4.01 | Valid CSS ]
This page is maintained by John C. Houck. Last updated: Apr 3, 2022