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

# mHdrtbl(1)

Generate metadata from a set of header files

## NAME

mHdrtbl - Generate metadata from a set of header files

## SYNOPSIS

mHdrtbl \[-rcdb\] \[-s *statusfile*\] \[-t *imglist*\] directory images.tbl

## DESCRIPTION

**mHdrtbl** operates in a fashion similar to **mImgtbl**, but is used on a set of header template files instead of FITS images.

## OPTIONS

- \-r

  **mHdrtbl** can also be used as a standalone program to gather image metadata for other purposes (to populate a database, as a basis for spatial coverage searches, etc.)   In this case it is often desirable to collect information on all the files in a directory tree recursively.  The "-r" (recursive) flag instructs **mHdrtbl** to search the given directory and all its subdirectories recursively.

- \-c

  The "-c" (corners) option in mHdrtbl will cause eight extra columns to be added to the output metadata table containing the RA, Dec coordinates (ra1, dec1, ... ra4, dec4) of the image corners.  The output is always Equatorial J2000, even if the input is some other system.  This has been done to make the metadata uniform so that it can easily be used for coverage searches, etc.  The "-c" option is not needed for normal Montage processing.

- \-d

  Turn on debugging

- \-b

  When this switch is set, **mHdrtbl** will explicitly output each header file it finds that does not appear to be valid, along with information on the error.

- \-s *statusfile*

  Output and errors are written to *statusfile* instead of being written to stdout.

- \-t *imglist*

  **mHdrtbl** will only process files with names specified in table *imglist*, ignoring any other files in the directory. Example: example.imglist.

## ARGUMENTS

- directory

  Path to directory containing set of input header templates.

- images.tbl

  Path of output metadata table.

## RESULT

Output table contains metadata information from all readable header templates in the directory specified by *directory*.  *count* is the number of records in the table, and *badhdrs* is the number of files for which FITS/WCS metadata could not be extracted.

## OUTPUT COLUMNS

- cntr

  A unique counter (row number)

- ra,dec

  Image position in decimal degree format

- cra,cdec

  Right ascension in HHMMSS.SS format. Declination in DDMMSS.S format

- naxis1, naxis2

  The size of the image in pixels for dimensions 1 and 2

- ctype1, ctype2

  The coordinate system (the first four characters) and WCS map projection (last three characters) for dimensions 1 and 2

- crpix1, crpix2

  The pixel coordinates of the reference location (can be fractional and can be off the image) for dimensions 1 and 2

- crval1, crval2

  The coordinates of a reference location on the sky (often at the center of the image) for dimensions 1 and 2

- cdelt1, cdelt2

  The pixel scale (in degrees on the sky per pixel) at the reference location for dimensions 1 and 2

- crota2

  The rotation angle from the "up" direction to the celestial pole

- equinox

  Precessional year associated with the coordinate system

- hdu

  Numerical identifier for the FITS extension that the image info is extracted from, for FITS files with multiple HDUs.

- size

  Filesize (in bytes) of the input FITS file

- fname

  The path to the input FITS file

## MESSAGES

- OK

  \[struct stat="OK", count=*count*, badfits=*badfits*\]

- ERROR

  Illegal argument: -*arg*

- ERROR

  Cannot open status file: *statusfile*

- ERROR

  Cannot open field list file: *fieldlistfile*

- ERROR

  Cannot open image list file: *imgfile*

- ERROR

  Image table needs column fname/file

- ERROR

  Illegal field name: *string*\]

- ERROR

  Illegal field type: *string*\]

- ERROR

  Cannot access *directory*

- ERROR

  *directory* is not a directory

- ERROR

  Can't open output table.

- ERROR

  Can't open copy table.

- ERROR

  Can't open tmp (in) table.

- ERROR

  Can't open tmp (out) table.

- ERROR

  Can't open final table.

- ERROR

  *FITS library error*

## EXAMPLES

The following example runs **mHdrtbl** on a directory containing header templates stripped from 14 2MASS images:

- $ mHdrtbl input/2mass headers.tbl

  \[struct stat="OK", count=14, badfits=0\]

Output: **headers.tbl**.

## 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.
