"qa/L0_paddle_lint/test.sh" did not exist on "62f933254ae4a7774d4e257570be6aab9ab0fde4"
Commit 43341968 authored by tpys's avatar tpys
Browse files

fix input dim

parent 4da6f2af
...@@ -4,6 +4,8 @@ import numpy as np ...@@ -4,6 +4,8 @@ import numpy as np
import pandas as pd import pandas as pd
import xarray as xr import xarray as xr
__all__ = ['make_input']
def chunk_time(ds, shape=None): def chunk_time(ds, shape=None):
if shape is None: if shape is None:
...@@ -27,7 +29,7 @@ def make_input(init_time, data_dir, save_dir, deg=0.25): ...@@ -27,7 +29,7 @@ def make_input(init_time, data_dir, save_dir, deg=0.25):
lat = np.linspace(-90, 90, int(180/deg)+1, dtype=np.float32) lat = np.linspace(-90, 90, int(180/deg)+1, dtype=np.float32)
lon = np.arange(0, 360, deg, dtype=np.float32) lon = np.arange(0, 360, deg, dtype=np.float32)
fcst_time = init_time + pd.Timedelta(hours=6) # utc time valid_time = init_time + pd.Timedelta(hours=6) # utc time
input = [] input = []
level = [] level = []
...@@ -84,14 +86,15 @@ def make_input(init_time, data_dir, save_dir, deg=0.25): ...@@ -84,14 +86,15 @@ def make_input(init_time, data_dir, save_dir, deg=0.25):
print(f'{src_name}: {v.min().values:.2f} ~ {v.max().values:.2f}') print(f'{src_name}: {v.min().values:.2f} ~ {v.max().values:.2f}')
v.attrs = {} v.attrs = {}
v = v.rename({'member': 'time', 'dtime': 'step'}) v = v.rename({'dtime': 'time'})
v = v.assign_coords(time=[fcst_time]) # v = v.squeeze('member').drop('member')
v = v.assign_coords(time=[init_time, valid_time])
input.append(v) input.append(v)
# concat and reshape # concat and reshape
input = xr.concat(input, "level") input = xr.concat(input, "level")
input = input.transpose("time", "step", "level", "lat", "lon") input = input.transpose("time", "level", "lat", "lon")
# reverse latitude # reverse latitude
input = input.reindex(lat=input.lat[::-1]) input = input.reindex(lat=input.lat[::-1])
...@@ -100,17 +103,12 @@ def make_input(init_time, data_dir, save_dir, deg=0.25): ...@@ -100,17 +103,12 @@ def make_input(init_time, data_dir, save_dir, deg=0.25):
input = chunk_time(input, input.shape) input = chunk_time(input, input.shape)
# save to nc # save to nc
save_name = os.path.join(save_dir, fcst_time.strftime("%Y%m%d-%H.nc")) save_name = os.path.join(save_dir, valid_time.strftime("%Y%m%d-%H.nc"))
input = input.astype(np.float32) input = input.astype(np.float32)
input.to_netcdf(save_name) input.to_netcdf(save_name)
if __name__ == "__main__":
times = pd.date_range('20210101-00', '20211231-00', freq='12H')
for init_time in times:
make_input(init_time)
......
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