OneScience-Group/NNCAM
026
1#!/usr/bin/env python32import argparse3from pathlib import Path4 5import numpy as np6 7ROOT = Path(__file__).resolve().parents[1]8import sys9sys.path.insert(0, str(ROOT))10from model.nncam import generate_fake_data11 12 13def main():14 parser = argparse.ArgumentParser(description="Create deterministic synthetic NNCAM columns.")15 parser.add_argument("--samples", type=int, default=192)16 parser.add_argument("--seed", type=int, default=42)17 parser.add_argument("--output", type=Path, default=ROOT / "data/nncam_fake.npz")18 args = parser.parse_args()19 x, y, lat, time = generate_fake_data(args.samples, args.seed)20 assert x.shape == (args.samples, 94) and y.shape == (args.samples, 65)21 assert np.isfinite(x).all() and np.isfinite(y).all() and (y[:, 64] >= 0).all()22 args.output.parent.mkdir(parents=True, exist_ok=True)23 np.savez_compressed(args.output, x=x, y=y, lat=lat, time=time)24 print(f"saved {args.output}: x={x.shape}, y={y.shape}, finite=true")25 26 27if __name__ == "__main__":28 main()29 