"""Create realistic packed-wedge synthetic data when licensed observations are unavailable.""" from __future__ import annotations import argparse from pathlib import Path import numpy as np import sys ROOT=Path(__file__).resolve().parents[1];sys.path.insert(0,str(ROOT)) from model.echocast_3d import load_config, make_sample def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--config", default="conf/config.yaml") parser.add_argument("--output", default="data") args = parser.parse_args() config = load_config(ROOT / args.config) output = ROOT / args.output output.mkdir(parents=True, exist_ok=True) for split, count in (("train", config["data"]["train_samples"]), ("validation", config["data"]["validation_samples"])): for index in range(count): sample = make_sample(config, config["seed"] + index + (10000 if split == "validation" else 0)) path = output / f"{split}_{index:04d}.npz" np.savez(path, **sample) print(f"wrote {path} ({path.stat().st_size / 1024**2:.2f} MiB)") if __name__ == "__main__": main()