FuXi_v21 / scripts /result.py
yzt15806542928's picture
Upload folder using huggingface_hub
9191802 verified
Raw
History Blame Contribute Delete
1.36 kB
from __future__ import annotations
import argparse
from pathlib import Path
import matplotlib.pyplot as plt
import xarray as xr
from common import load_config, resolve_path
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--config", default="conf/config.yaml")
parser.add_argument("--input", default=None)
parser.add_argument("--channel", default=None)
args = parser.parse_args()
cfg = load_config(args.config)
viz = cfg["visualization"]
source = Path(args.input) if args.input else resolve_path(viz["input_file"], cfg)
channel = args.channel or viz["channel"]
data = xr.open_dataarray(source).sel(channel=channel)
if "time" in data.dims:
data = data.isel(time=-1)
output = resolve_path(viz["output_file"], cfg)
output.parent.mkdir(parents=True, exist_ok=True)
fig, ax = plt.subplots(figsize=(12, 5), constrained_layout=True)
image = ax.pcolormesh(data.lon, data.lat, data, shading="auto", cmap=viz["cmap"])
valid_time = str(data.time.values) if "time" in data.coords else ""
ax.set(title=f"FuXi 2.1 {channel} | {valid_time}", xlabel="Longitude", ylabel="Latitude")
fig.colorbar(image, ax=ax, label=channel)
fig.savefig(output, dpi=160)
plt.close(fig)
print(f"Saved visualization to {output}")
if __name__ == "__main__":
main()