The header is set of 80-byte (character) length records. Every record is represented by text line with structure:
KEYWORD = VALUE
The KEYWORD must be no longer than 8 characters. The '=' must be in 9 column. The width and height of an image is coded by the way:
NAXIS1 = 1628
NAXIS2 = 1236
How to get an image size?
To get this basic information by use of the cfitsio library, we can use of the piece of the code (source code):
! to compile: gfortran -Wall -o FITSsize o.f90 -L/usr/local/lib -lcfitsio
integer :: status, bitpix, naxis, naxes(2)
! status ... FITS status (0=no error)
! naxis .. number of axes in image (we require =2)
! naxes .. dimension of the image (2-element array)
integer :: blocksize,pcount,gcount
logical :: extend, simple
! required by cFITSIO
character(len=666) :: name = 'image.fits'
! name .. fill with name of the image to open
status = 0
if( status == 0 ) then
write(*,*) 'The image ',trim(name),' has the size:',naxes
write(*,*) 'The image "',trim(name),'" not found or not accessible.'
end program FITSsize
The code may by compiled by command:
host$ gfortran -Wall -o FITSsize FITSsize.f90 -L/usr/local/lib -lcfitsio
where switch -Wall prints some warnings, -o specify name of the generated binary file (name of the routine), -L
to run. The utility will try to open file named as 'image.fits' (can be changed in declaration name = 'image.fits'). If this file is accessible it will print the size of the image. If the name can't be open, an error will appeared.
This code demonstrates basic idioms of FITS-specific ones:
- its look horribly
- there is a lot of declarations which meaning is too hard to remember
- the variable status must be set to zero before calling of any of cFITSIO routines
- the name of the image to open is a second argument to ftopen
- the routine ftghpr reads important parameters (coded by KEYWORDS as above) of the image