Source code for venim.stats

from pathlib import Path

import astropy.io.fits as pf
import pandas as pd
from tqdm.auto import tqdm

irtf_translator = {
    "name": "IRAFNAME",
    "date": "DATE_OBS",
    "time": "TIME_OBS",
}


[docs]def scan_image_directory(path): """Scan directory of FITS files to create basic stats. Creates CSV file ready to be read by pandas and print-out of the stats if less than 100 entries. Parameters ---------- path : str, pathlib.Path Returns ------- pd.DataFrame DataFrame containing the collected stats """ input_dir = Path(path) directory_file = input_dir / "directory.csv" files = list(input_dir.glob("*.fits")) print(len(files), "images found.") # fields = [ # "name", # "date", # "time", # "filter", # "exposure", # "hasSlit", # "isValid", # "angle", # "radius", # "area", # "centerY", # "centerX", # "sublon", # "sublat", # "isFull", # "group", # ] bucket = [] print("Scanning directory...") for fitspath in tqdm(files): _, head = pf.getdata(fitspath, header=True) line = {} line["name"] = fitspath.name line["date"] = head["DATE_OBS"] line["time"] = head["TIME_OBS"] line["filter"] = head["GFLT"] line["exposure"] = head["ELAPTIME"] line["hasSlit"] = head["SLIT"] != "Mirror" line["isValid"] = head["ELAPTIME"] == 0.482500 and head["GFLT"] == "contK" line["naxis1"] = head["NAXIS1"] line["naxis2"] = head["NAXIS2"] bucket.append(line) df = pd.DataFrame(bucket) df.to_csv(directory_file, index=False) print("Metadata CSV generated at", directory_file) return df