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,6 +44,7 @@ def save_like(output, input, step, save_dir="", freq=6): ...@@ -44,6 +44,7 @@ def save_like(output, input, step, save_dir="", freq=6):
) )
).astype(np.float32) ).astype(np.float32)
if split:
def rename(name): def rename(name):
if name == "tp": if name == "tp":
return "TP06" return "TP06"
...@@ -51,13 +52,12 @@ def save_like(output, input, step, save_dir="", freq=6): ...@@ -51,13 +52,12 @@ def save_like(output, input, step, save_dir="", freq=6):
return "RH" return "RH"
return name.upper() return name.upper()
ds = [] new_ds = []
for k in pl_names + sfc_names: for k in pl_names + sfc_names:
v = split_variable(data, k) v = split_variable(ds, k)
v.name = rename(k) v.name = rename(k)
# print(f"{k}: {v.shape} {v.values.min()} ~ {v.values.max()}") new_ds.append(v)
ds.append(v) ds = xr.merge(new_ds, compat="no_conflicts")
ds = xr.merge(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