#!/usr/bin/env python3
# test: read zarr directly via xarray (no auth needed), export one month to netcdf
import os, time
import xarray as xr

ZARR = "https://s3.waw3-1.cloudferro.com/mdl-arco-time-045/arco/SEALEVEL_GLO_PHY_L4_MY_008_047/cmems_obs-sl_glo_phy-ssh_my_allsat-demo-l4-duacs-0.125deg_P1D-i_202511/timeChunked.zarr"
OUT_DIR = "/data/public/lzy/test/_test_zarr"
os.makedirs(OUT_DIR, exist_ok=True)

t0 = time.time()
print("opening zarr (consolidated)...")
try:
    ds = xr.open_zarr(ZARR, consolidated=True, chunks={})
    print("opened in", round(time.time()-t0,1), "s")
    print("vars:", list(ds.data_vars))
    print("dims:", dict(ds.sizes))
    print("time0:", ds.time.values[0], "timeN:", ds.time.values[-1])
    # subset one month
    sub = ds["sla"].sel(time=slice("1993-01-01", "1993-01-31"))
    print("sub shape:", sub.shape)
    t1 = time.time()
    out = os.path.join(OUT_DIR, "test_1993_01_sla.nc")
    sub.to_netcdf(out)
    print("written", out, os.path.getsize(out), "bytes in", round(time.time()-t1,1), "s")
except Exception as e:
    print("ERR", type(e).__name__, e)
print("total", round(time.time()-t0,1), "s")