---
name: "mHdrCheck"
section: "1"
platform: "linux"
package: "montage"
version: "6.1+dfsg-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mHdrCheck"
---

# mHdrCheck(1)

Check the validity of a FITS image's header

## NAME

mHdrCheck - Check the validity of a FITS image's header

## SYNOPSIS

mHdrCheck \[-s *statusfile*\] *img.fits*

## DESCRIPTION

**mHdrCheck** reads in the header from a FITS image (or an ASCII header template file) and checks to see if any header lines are invalid.  If it finds one, it will print out a message stating which keyword is invalid and exit before checking the rest of the header.  It will *not* report on multiple invalid values.  If all value are correct, **mHdrCheck** will print out a "Valid FITS/WCS" message.

## OPTIONS

- \-s *statusfile*

  Output and errors are sent to *statusfile* instead of to stdout

## ARGUMENTS

- img.fits

  Path of FITS file to be validated.

## MESSAGES

- OK

  Valid WCS in FITS file.

- OK

  Valid FITS/WCS in header file.

- ERROR

  Cannot open status file *statusfile*

- ERROR

  File *filename* not found.

- ERROR

  File (*filename*) is not a FITS image

- ERROR

  FITS header lines cannot be greater than 80 characters

- ERROR

  No BITPIX keyword in FITS header

- ERROR

  No NAXIS keyword in FITS header

- ERROR

  No NAXIS1 keyword in FITS header

- ERROR

  No NAXIS2 keyword in FITS header

- ERROR

  No CTYPE1 keyword in FITS header

- ERROR

  No CTYPE2 keyword in FITS header

- ERROR

  No CRPIX1 keyword in FITS header

- ERROR

  No CRPIX2 keyword in FITS header

- ERROR

  No CRVAL1 keyword in FITS header

- ERROR

  No CRVAL2 keyword in FITS header

- ERROR

  No CDELT1 keyword (or incomplete CD matrix) in FITS header

- ERROR

  No CDELT2 keyword (or incomplete CD matrix) in FITS header

- ERROR

  BITPIX keyword in FITS header not an integer

- ERROR

  Invalid BITPIX in FITS header (must be 8,16,32,64,-32 or -64)

- ERROR

  NAXIS keyword in FITS header not an integer

- ERROR

  NAXIS keyword in FITS header must be \>= 2

- ERROR

  NAXIS1 keyword in FITS header not an integer

- ERROR

  NAXIS1 keyword in FITS header must be \> 0

- ERROR

  NAXIS2 keyword in FITS header not an integer

- ERROR

  NAXIS2 keyword in FITS header must be \> 0

- ERROR

  CRPIX1 keyword in FITS header not a real number

- ERROR

  CRPIX2 keyword in FITS header not a real number

- ERROR

  CRVAL1 keyword in FITS header not a real number

- ERROR

  CRVAL2 keyword in FITS header not a real number

- ERROR

  CDELT1 keyword in FITS header not a real number

- ERROR

  CDELT2 keyword in FITS header not a real number

- ERROR

  CROTA2 keyword in FITS header not a real number

- ERROR

  CD1\_1 keyword in FITS header not a real number

- ERROR

  CD1\_2 keyword in FITS header not a real number

- ERROR

  CD2\_1 keyword in FITS header not a real number

- ERROR

  CD2\_2 keyword in FITS header not a real number

- ERROR

  EQUINOX keyword in FITS header not a real number

- ERROR

  No WCS information (or not FITS header)

- ERROR

  Must have at least two dimensions

- ERROR

  Invalid projection

- ERROR

  Invalid NAXIS1

- ERROR

  Invalid NAXIS2

- ERROR

  CTYPE1 and CTYPE2 don't match

- ERROR

  Invalid CTYPE1

- ERROR

  Invalid CD matrix

- ERROR

  Invalid CDELT1

- ERROR

  Invalid CDELT2

- ERROR

  *FITS library error*

## EXAMPLES

- $ mHdrCheck input/badfits/bad-crota2.fits

  \[struct stat="ERROR", msg="CROTA2 keyword in FITS header not a real number"\]

- $ mHdrCheck input/2mass.fits

  \[struct stat="OK", msg="Valid FITS/WCS."\]

- $ mHdrCheck input/badfits/bad-ctype.fits

  \[struct stat="ERROR", msg="Invalid projection"\]

## BUGS

The drizzle algorithm has been implemented but has not been tested in this release.

If a header template contains carriage returns (i.e., created/modified on a Windows machine), the cfitsio library will be unable to read it properly, resulting in the error: \[struct stat="ERROR", status=207, msg="illegal character in keyword"\]

It is best for the background correction algorithms if the area described in the header template completely encloses all of the input images in their entirety. If parts of input images are "chopped off" by the header template, the background correction will be affected. We recommend you use an expanded header for the reprojection and background modeling steps, returning to the originally desired header size for the final coaddition. The default background matching assumes that there are no non-linear background variations in the individual images (and therefore in the overlap differences). If there is any uncertainty in this regard, it is safer to turn on the "level only" background matching (the "-l" flag in mBgModel.

## COPYRIGHT

2001-2015 California Institute of Technology, Pasadena, California

If your research uses Montage, please include the following acknowledgement: "This research made use of Montage. It is funded by the National Science Foundation under Grant Number ACI-1440620, and was previously funded by the National Aeronautics and Space Administration's Earth Science Technology Office, Computation Technologies Project, under Cooperative Agreement Number NCC5-626 between NASA and the California Institute of Technology."

The Montage distribution includes an adaptation of the MOPEX algorithm developed at the Spitzer Science Center.
