Source code for hendrics.sum_fspec

# Licensed under a 3-clause BSD style license - see LICENSE.rst
"""Function to sum frequency spectra."""

from astropy import log
from .io import save_pds, get_file_type
from .io import HEN_FILE_EXTENSION
from .base import _assign_value_if_none
from .fspec import average_periodograms


[docs]def sum_fspec(files, outname=None): """Take a bunch of (C)PDSs and sums them.""" # Read first file ftype0, contents = get_file_type(files[0]) pdstype = ftype0.replace("reb", "") outname = _assign_value_if_none( outname, "tot_" + ftype0 + HEN_FILE_EXTENSION ) def check_and_distribute_files(files): for i, f in enumerate(files): ftype, contents = get_file_type(f) if i == 0: contents0, ftype0 = contents, ftype else: assert ftype == ftype0, "Files must all be of the same kind" contents.fftlen = contents.segment_size yield contents tot_contents = average_periodograms(check_and_distribute_files(files)) log.info("Saving %s to %s" % (pdstype, outname)) save_pds(tot_contents, outname) return tot_contents
[docs]def main(args=None): """Main function called by the `HENsumfspec` command line script.""" import argparse description = "Sum (C)PDSs contained in different files" parser = argparse.ArgumentParser(description=description) parser.add_argument("files", help="List of light curve files", nargs="+") parser.add_argument( "-o", "--outname", type=str, default=None, help="Output file name for summed (C)PDS. Default:" + " tot_(c)pds" + HEN_FILE_EXTENSION, ) args = parser.parse_args(args) sum_fspec(args.files, args.outname)