Source code for sofia_redux.instruments.forcast.hdmerge
# Licensed under a 3-clause BSD style license - see LICENSE.rst
import os
from astropy import log
from sofia_redux.instruments import forcast as drip
from sofia_redux.toolkit.utilities.fits import merge_headers
__all__ = ['hdmerge']
[docs]
def hdmerge(headers, reference_header=None):
"""
Merge input headers.
Keyword handling is defined in the configuration file at
data/header_merge.cfg.
Parameters
----------
headers : list of astropy.io.fits.Header
Headers to check.
reference_header : astropy.io.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
-------
astropy.io.fits.Header
Combined header.
"""
data_path = os.path.join(os.path.dirname(drip.__file__), 'data')
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)
return new_header