idlastro / FITS I/O: MKHDR

[Source code]

NAME
MKHDR
PURPOSE
Make a minimal primary (or IMAGE extension) FITS header
EXPLANATION
If an array is supplied,  then the created FITS header will be 
appropriate to the supplied array.  Otherwise, the user can specify 
the dimensions and datatype.
To update an *existing* FITS header with a new image array, instead 
use check_FITS, /Update 
CALLING SEQUENCE
MKHDR, header                   ;Prompt for image size and type
        or
MKHDR, header, im, [ /IMAGE, /EXTEND ]
        or
MKHDR, header, type, naxisx, [/IMAGE, /EXTEND ]         
OPTIONAL INPUTS
IM - If IM is a vector or array then the header will be made
        appropriate to the size and type of IM.  IM does not have
        to be the actual data; it can be a dummy array of the same
        type and size as the data.    Set IM = '' to create a dummy
        header with NAXIS = 0. 
TYPE - If 2 parameters are supplied, then the second parameter
        is interpreted as an integer giving the IDL datatype e.g. 
        1 - Byte, 2 - 16 bit integer, 4 - float, 3 - Long
NAXISX - Vector giving the size of each dimension (NAXIS1, NAXIS2, 
        etc.).  
OUTPUT
HEADER - image header, (string array) with required keywords
        BITPIX, NAXIS, NAXIS1, ... Further keywords can be added
        to the header with SXADDPAR. 
OPTIONAL INPUT KEYWORDS
/IMAGE   = If set, then a minimal header for a FITS IMAGE extension
        is created.    An IMAGE extension header is identical to
        a primary FITS header except the first keyword is 
        'XTENSION' = 'IMAGE' instead of 'SIMPLE  ' = 'T'
/EXTEND  = If set, then the keyword EXTEND is inserted into the file,
        with the value of "T" (true).    The EXTEND keyword can 
        optionally be included in a primary header, if the FITS file 
        contains extensions.
RESTRICTIONS
(1)  MKHDR should not be used to make an STSDAS header or a FITS
        ASCII or Binary Table extension header.   Instead use
        SXHMAKE - to create a minimal STSDAS header
        FXBHMAKE - to create a minimal FITS binary table header
        FTCREATE - to create a minimal FITS ASCII table header
(2)  Any data already in the header before calling MKHDR
        will be destroyed.
EXAMPLE
Create a minimal FITS header, Hdr, for a 30 x 40 x 50 INTEGER*2 array
      IDL> mkhdr, Hdr, 2, [30,40,50]
Alternatively, if the array already exists as an IDL variable, Array,
       IDL> mkhdr, Hdr, Array
PROCEDURES CALLED
SXADDPAR, GET_DATE
REVISION HISTORY
Written November, 1988               W. Landsman
May, 1990, Adapted for IDL Version 2.0, J. Isensee
Aug, 1997, Use SYSTIME(), new DATE format  W. Landsman
Allow unsigned data types    W. Landsman   December 1999
Set BZERO = 0 for unsigned integer data  W. Landsman January 2000
EXTEND keyword must immediately follow last NAXISi W. Landsman Sep 2000
Add FITS definition COMMENT to primary headers W. Landsman Oct. 2001
Allow (nonstandard) 64 bit integers   W. Landsman  Feb. 2003
Add V6.0 notation W. Landsman July 2012
rompt for keyword values
ake sure not a dummy header
et dimension of each axis
mage array supplied
eyword values supplied
ype of data
reate empty array
of dimensions
et current date as CCYY-MM-DD
dd FITS definition for primary header
bibcode 2001A&A...376..359H"