FITS files consist of one or more HDUs (header data units), and each HDU can contain an N-dimensional image or table. Before the data is a header. Headers contain (key, value, comment) groups as well as dedicated long-form COMMENT and HISTORY sections used to document, for example, the series of post-processing steps applied to an image.
Here are some examples of how to set and read keys, comments, and history.
Well start by making a blank image.
img = AstroImage(zeros(10,10)) # Set keys to values with different data types img["KEY1"] = 2 # Integer img["KEY2"] = 2.0 # Float img["KEY3"] = "STRING" img["KEY4"] = true img["KEY5"] = false img["KEY6"] = nothing # Set comments img["KEY1", Comment] = "A key with an integer value" # Read keys a = img["KEY3"] # Read comment com = img["KEY1", Comment] # Add long-form COMMENT push!(img, Comment, """ We now describe how to add a long form comment to the end of a header. """) # Add HISTORY entry push!(img, History, """ We now describe how to add a long form history to the end of a header. """) # Retrieve long form comments/ history comment_strings = img[Comment] history_strings = img[History]
Note that floating point values are formatted as ASCII strings when written to the FITS files, so the precision may be limited.
AstroImage objects wrap a FITSIO.jl
FITSHeader. If necessary, you can recover it using
header(img); however, in most cases you can access header keywords directly from the image.