Source code for mirar.pipelines.winter.write_obslog

"""
Module to write an observation log for a directory of images
"""

import argparse
from glob import glob

from astropy.io import fits
from astropy.table import Table

from mirar.paths import OBSCLASS_KEY, TARGET_KEY, get_output_dir


[docs] def write_observation_log(image_dir): """ Write an observation log for a directory of images """ filelist = glob(image_dir.as_posix() + "/*.fits") keywords = [ "FILTER", "EXPTIME", OBSCLASS_KEY, TARGET_KEY, "RADEG", "DECDEG", "BOARD_ID", "FIELDID", ] all_entries = [] for filename in filelist: header = fits.getheader(filename) entries = [header[key] for key in keywords if key in header] found_keys = [key for key in keywords if key in header] all_entries.append(entries) tab = Table(rows=all_entries, names=found_keys) tab["filename"] = [filename.split("/")[-1] for filename in filelist] tab.write(f"{directory}/obslog.csv", format="ascii.csv", overwrite=True)
if __name__ == "__main__": parser = argparse.ArgumentParser(description="Fix headers of images") parser.add_argument("night", type=str, help="Night of observation") parser.add_argument( "--sub_dir", type=str, default="raw", help="Subdirectory of images" ) args = parser.parse_args() directory = get_output_dir(args.sub_dir, f"winter/{args.night}") write_observation_log(directory)