Source code for dbsp_drp.trim

"""
Command-line tool for tripping spliced spectrum to a specified wavelength range.
"""
import argparse
import os
from typing import Optional, List

from astropy.io import fits

[docs]def entrypoint(): main(parse())
[docs]def parse(options: Optional[List[str]] = None) -> argparse.Namespace: argparser = argparse.ArgumentParser(description="Trim spliced spectrum to wavelength range.", formatter_class=argparse.RawTextHelpFormatter) argparser.add_argument("fname", type=str, nargs="+", help="Final data " "output from DBSP_DRP to trim. Can be multiple files.") argparser.add_argument("--low", type=float, default=3300, help="Min wavelength after trimming. Default is 3300 Å.") argparser.add_argument("--high", type=float, default=10500, help="Max wavelength after trimming. Default is 10500 Å.") return argparser.parse_args() if options is None else argparser.parse_args(options)
[docs]def main(args: argparse.Namespace): for fname in args.fname: if not os.path.isfile(fname): raise FileNotFoundError(f"File {fname} not found!") hdul = fits.open(fname, mode="update") wave = hdul['SPLICED'].data['wave'] flux = hdul['SPLICED'].data['flux'] err = hdul['SPLICED'].data['sigma'] mask = (wave > args.low) & (wave < args.high) hdul['SPLICED'].data['wave'] = wave[mask] hdul['SPLICED'].data['flux'] = flux[mask] hdul['SPLICED'].data['sigma'] = err[mask] hdul.close()