fitshdr(1)


 

NAME

fitshdr - FITS-file headers manipulation tool  

SYNOPSIS

fitshdr [options] [FITSfile_name]
fitshdr [options] -
fitshdr [options] --edit FITSfile_name
fitshdr [options] -H HeaderFile_name -F FITSfile_name  

DESCRIPTION

Fitshdr utility allows to display or modify FITS headers (FITS MultiExtentionsFiles included).
In 'dump' mode (see below): allows to see/dump/display FITS-headers information. In 'edit' mode: permits to modify existent FITS-file headers.
ATTENTION: "existent FITS-file headers" means, that all modifications will be done directly in the FITS-file, which was specified for editing! You can't, for example, expand existent header (You can't change size of header). And, no backups! More simple, fitshdr is some sort of binary editor. If You are looking for more "traditional" editors, check fitshdr_edit and fitshdr_expand man pages.  

OPTIONS

-F FITSFILE, --file=FITSFILE, --fits-file=FITSFILE
FITSFILE - FITS-file name to browse or modify, mandatory in 'edit' mode (see --edit and -H options).
In 'dump' mode, if FITS-file name is missed, stdin is used instead.
--edit
'Edit' mode. If You want to modify headers of FITSFILE using new FITS-header lines from HEADER file (or from stdin), You have to use this option (You can skip this option, if -H or --header option is used). Obviously, in this case FITS file name FITSFILE has to be defined (or by --file, --fits-file, -F options, or as last (free) argument of fitshdr utility). If --edit options is defined, but -H or --header is not, in this case stdin is used to read new header lines.
-H HEADER, --header=HEADER
HEADER - Header file name. This file contains header's lines, which will be included in FITS-header. This option activates 'edit' mode automaticaly (means: it is not necessary to specify --edit option in this case). See --edit option.
-h, --help
Output a brief help message.
-V, --version
Print the version number of fitshdr to standard error and exit.
-v, --verbose
Produces verbose output. Multiple -v options increase the verbosity.
-q, --silent
Produces less verbose output. Multiple -q options decrease the verbosity.
-n, --test
In 'edit' mode: do everything... but don't write nothing. Useful, to check new header lines before writing them to FITS-file. WARNING: In some cases, --test option produces internal checks' result different from "normal" one (without --test ).
In 'dump' mode: ignored.
-p, --pedantic
More internal checks. Multiple -p options increase the number of internal checks.
-f, --force
Less internal checks. Multiple -f options decrease the number of internal checks.
--empty-lines
Empty header lines are displayed (in 'dump' mode only).
--no-empty-lines
Empty header lines are not displayed (in 'dump' mode only).
--line-offsets
In 'edit' mode: the usage of lines' offsets in input header-file is mandatory.
In 'dump' mode: file offset will be displayed for each header line.
--no-line-offsets
In 'edit' mode: the usage of lines' offsets in header file is optional (means: You can use offsets, but this is not obligatory).
In 'dump' mode: file offset will not be displayed for each header line.
--header-offsets
In 'dump' mode: headers offsets informations will be added to the output.
In 'edit' mode: ignored.
--no-header-offsets
In 'dump' mode: headers offsets informations will not be included in output.
In 'edit' mode: ignored.
--block-offsets
In 'dump' mode: FITS-blocks' offsets informations will be added to the output.
In 'edit' mode: ignored.
--no-block-offsets
In 'dump' mode: FITS-blocks' offsets informations will not be included in output.
In 'edit' mode: ignored.
--data-offsets
In 'dump' mode: FITS-data blocks' offsets informations will be added to the output.
In 'edit' mode: ignored.
--no-data-offsets
In 'dump' mode: FITS-data blocks' offsets informations will not be included in output.
In 'edit' mode: ignored.
--reformat-cards
In 'edit' mode: re-format input FITS-header lines before writing. In this case You can use, for example, as input header lines in "free" format (You can skip multiple spaces, etc.). WARNING: HIERARCH "non-standard" keywords will not be re-formated!
In 'dump' mode: ignored.
--no-reformat-cards
In 'edit' mode: don't re-format input FITS-header lines (means: input lines were formated already).
In 'dump' mode: ignored.
--modify-principal-keywords
In 'edit' mode: allows to modify ``principal'' FITS-keywords, such as SIMPLE, BITPIX, NAXIS, ... DANGEROUS! Be careful: wrong ``principal'' keywords values can destroy Your data!
In 'dump' mode: ignored.
--discard-old-headers
In 'edit' mode: really DANGEROUS! This option allows to change completely structure of FITS-file... and as result: You can damage important data. Don't use, if You are not the author of fitshdr utility.
In 'dump' mode: it makes no sense to use... but safe :)
 

INPUT AND OUTPUT

In 'dump' mode fitshdr utility prints FITS-file's headers information line by line in "human-readable" format (see examples).
In 'edit' mode input header file has absolutely the same format, as output of fitshdr utility in 'dump' mode. So

        NNNN:HEADER_LINE

where NNNN - file offset for this header line, HEADER_LINE - header line string. Offset specification could be omitted (skipped). As offset positive integer (NNNN%80 == 0) is expected. Special (relative) offsets +NNNN and -NNNN are supported. Two input header's lines

        +0:HEADER_LINE
and
        HEADER_LINE
are equivalent. The only difference... 1st line is permitted if --line-offsets is used, but not the 2nd one!
NOTE: By default fitshdr utility expects sorted by offsets input header file. In this case negative relative offsets are not permitted. You have to specify -f options ( probably, -ff or, even, -fff ) to be able use negative relative offsets (or unsorted input header file).

``END'' FITS-header card.
The ``END'' FITS-header card has special meaning.

The processing of the ``normal'' FITS-card does the following:

- 80 bites will be written to the file (started from NNNN
  offset).
- The file pointer will be pointed to the next FITS-card.

In contract, the processing of the input FITS-card ``NNNN:END'' does:

- 80 bites will be written to the file (started from NNNN
  offset).

- The tail of current FITS-block will be filled by spaces.

- The file pointer will be pointed to the beginning of the
  next FITS-header, if exists.

ATTENTION: FITS-header line (card) "END" (without offset) does last action only! Means: the only file offset will be changed after processing input FITS-header line "END" without offset! If You want to avoid such behavior, use "+0:END" header line instead.

Comment lines.
Input header lines with ";" symbol in first position are ignored by fitshdr in 'edit' mode.  

EXAMPLES

Simplest example. To display FITS-headers information:

   fitshdr file.fits

where file.fits - existent FITS-file name. As the result, You'll see something like:

;;; 0: HEADER No.0
;;; 0: BLOCK No.0
SIMPLE  =                    T
BITPIX  =                   32
NAXIS   =                    0
AUTHOR  = 'Name of author'     / comment here
CRDELT1 =                 10.0
CRDELT2 =                 21.0 / this is an example
HISTORY  header No.0: 1st history line 123456789012345678901234567
COMMENT  Sat Sep 25 21:17:34 CEST 2004 / by fitshdr_edit
;;; 2880: BLOCK No.1
. . .

Next step. We want to add lines offsets for each header line and suppress blocks' offsets output. In this case:

   fitshdr --line-offsets --no-block-offsets file.fits

In this case we'll have:

;;; 0: HEADER No.0
0:SIMPLE  =                    T
80:BITPIX  =                   32
160:NAXIS   =                    0
400:AUTHOR  = 'Name of author'     / comment here
480:CRDELT1 =                 10.0
560:CRDELT2 =                 21.0 / this is example
720:HISTORY  header No.0: 1st history line 123456789012345678901234567
880:COMMENT  Sat Sep 25 21:17:34 CEST 2004 / by fitshdr_edit
. . .

Another useful example. How to display headers' information in case if FITS-file was gzip-ed:

   gunzip < file.fits.gz | fitshdr

Now, about editing... Again, simplest example. We want to change header line with offset 720. In this case:

   echo "720:CRPIX1 = 10. / comment" | fitshdr --edit file.fits

The line (see previous example)

HISTORY  header No.0: 1st history line 123456789012345678901234567

was substituted by

CRPIX1  =                 10.0 / comment

As You can see, input line was formated before writing.

Now more complex example. We want to edit interactively FITS-headers.

   fitshdr --line-offsets file.fits > tmp.hdr
   emacs tmp.hdr
   fitshdr --line-offsets --header=tmp.hdr --edit file.fits

First, header was written in file tmp.hdr. After this temporary file was changed in emacs editor. And after this new header was written back to FITS-file.
NOTE: This is just an example. Better for such purposes use fitshdr_edit script.

More useful/"realistic" example. We want (by some reason) change in headers name of keyword.

   fitshdr --empty-lines file.fits | \
   sed "s/^FILTER /FILTER1/" | \
   fitshdr --edit file.fits

In this example, the FILTER keyword was substituted by FILTER1. Keyword's value was not changed (only name of keyword was changed).

 

DIAGNOSTICS

On success, zero is returned and non-zero, if an error occurred.  

SEE ALSO

fitshdr_edit(1), fitshdr_expand(1)  

BUGS

Email bug reports to [email protected]. Be sure to include the word ``fitshdr'' somewhere in the ``Subject:'' field.


NAME
SYNOPSIS
DESCRIPTION
OPTIONS
INPUT AND OUTPUT
EXAMPLES
DIAGNOSTICS
SEE ALSO
BUGS

This document was created by man2html, using the manual pages.
Time: 13:42:21 GMT, December 10, 2010