Commit 6dd8498d authored by tpys's avatar tpys
Browse files

add split param for save_like

parent 2fd65f0e
...@@ -25,13 +25,13 @@ def split_variable(ds, name): ...@@ -25,13 +25,13 @@ def split_variable(ds, name):
return v return v
def save_like(output, input, step, save_dir="", freq=6): def save_like(output, input, step, save_dir="", freq=6, split=False):
if save_dir: if save_dir:
os.makedirs(save_dir, exist_ok=True) os.makedirs(save_dir, exist_ok=True)
dtime = (step+2) * freq # dtime = (step+2) * freq #
init_time = pd.to_datetime(input.time.values[0]) init_time = pd.to_datetime(input.time.values[0])
data = xr.DataArray( ds = xr.DataArray(
output[None, None], output[None, None],
dims=['member', 'time', 'dtime', 'level', 'lat', 'lon'], dims=['member', 'time', 'dtime', 'level', 'lat', 'lon'],
coords=dict( coords=dict(
...@@ -44,20 +44,20 @@ def save_like(output, input, step, save_dir="", freq=6): ...@@ -44,20 +44,20 @@ def save_like(output, input, step, save_dir="", freq=6):
) )
).astype(np.float32) ).astype(np.float32)
def rename(name): if split:
if name == "tp": def rename(name):
return "TP06" if name == "tp":
elif name == "r": return "TP06"
return "RH" elif name == "r":
return name.upper() return "RH"
return name.upper()
ds = []
for k in pl_names + sfc_names: new_ds = []
v = split_variable(data, k) for k in pl_names + sfc_names:
v.name = rename(k) v = split_variable(ds, k)
# print(f"{k}: {v.shape} {v.values.min()} ~ {v.values.max()}") v.name = rename(k)
ds.append(v) new_ds.append(v)
ds = xr.merge(ds, compat="no_conflicts") ds = xr.merge(new_ds, compat="no_conflicts")
print(f'Save to {save_name} ...') print(f'Save to {save_name} ...')
save_name = os.path.join(save_dir, f'{dtime:03d}.nc') save_name = os.path.join(save_dir, f'{dtime:03d}.nc')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment