EchoCast-3D / scripts /fake_data.py
zhangrenchao's picture
Publish EchoCast-3D reproduction
e0a6aa0 verified
Raw
History Blame Contribute Delete
1.14 kB
"""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()