Source code for sofia_redux.instruments.exes.mergehdr

# Licensed under a 3-clause BSD style license - see LICENSE.rst

import os

from astropy import log

from sofia_redux.instruments import exes
from sofia_redux.instruments.exes.utils import set_elapsed_time
from sofia_redux.toolkit.utilities.fits import merge_headers

__all__ = ['mergehdr']


[docs] def mergehdr(headers, reference_header=None): """ Merge input headers. Keyword handling is defined in the configuration file at data/header_merge.cfg. Parameters ---------- headers : list of fits.Header Headers to check. reference_header : fits.Header, optional If provided, is used as the base header to be updated. If not provided, the first header (by DATE-OBS) is used as the reference. Returns ------- fits.Header Combined header. """ data_path = os.path.join(os.path.dirname(exes.__file__), 'data', 'header') kwfile = os.path.join(data_path, 'header_merge.cfg') if not os.path.isfile(kwfile): msg = f'Config file {kwfile} is missing.' log.error(msg) raise IOError(msg) new_header = merge_headers(headers, kwfile, reference_header=reference_header) # in addition, attempt to add/update elapsed time from start/end keys set_elapsed_time(new_header) return new_header