#!/usr/bin/env python3
# check_quick_day.py — quick NaN% audit for one NC file across variables
# Usage:
#   ./run_check.sh check_quick_day.py /path/to/day.nc --vars sensor_temperature mor_visibility ...

import argparse, sys, numpy as np
from netCDF4 import Dataset

DEFAULT_VARS = [
    "sensor_temperature",
    "mor_visibility",
    "laser_amplitude",
    "rainfall_rate_32bit",
    "reflectivity_32bit",
    "kinetic_energy",
    "number_particles_validated",
    "error_code",
]

def main():
    ap = argparse.ArgumentParser()
    ap.add_argument("nc", help="Path to daily NetCDF")
    ap.add_argument("--vars", nargs="*", default=DEFAULT_VARS, help="Variables to check")
    args = ap.parse_args()

    print(f"# file: {args.nc}")
    with Dataset(args.nc) as ds:
        ntime = ds.dimensions["time"].size if "time" in ds.dimensions else None
        print(f"# time dimension: {ntime}")
        for vname in args.vars:
            if vname not in ds.variables:
                print(f"{vname:28s}  MISSING")
                continue
            arr = ds.variables[vname][:]
            if arr.size == 0:
                print(f"{vname:28s}  size=0")
                continue
            nan = int(np.isnan(arr).sum())
            pct = 100.0 * nan / arr.size
            print(f"{vname:28s}  NaN={pct:5.1f}%  ({nan}/{arr.size})")
    return 0

if __name__ == "__main__":
    sys.exit(main())


