Skip to content

Commit

Permalink
Merge pull request #16 from PCMDI/13_ljw_era_shape_error
Browse files Browse the repository at this point in the history
Bug fix for pcmdi landmask regrid
  • Loading branch information
lee1043 authored Oct 3, 2023
2 parents 74d2ef6 + e4d3db7 commit 2630bbe
Showing 1 changed file with 21 additions and 28 deletions.
49 changes: 21 additions & 28 deletions pcmdi_utils/land_sea_mask.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,13 @@ def _improve(


def _map2four(mask, ds_regrid, data_var="sftlf", regridTool="regrid2", debug=False):
if debug:
print("mask.shape:", mask.shape)
print("ds_regrid[data_var].shape:", ds_regrid[data_var].shape)

ds_tmp = ds_regrid.copy()
ds_tmp[data_var] = mask

start_time = time.time()

lons = ds_regrid.lon.to_numpy()
Expand All @@ -374,42 +381,20 @@ def _map2four(mask, ds_regrid, data_var="sftlf", regridTool="regrid2", debug=Fal
latso = lats[::2]
latse = lats[1::2]

ds_tmp = ds_regrid.copy()
ds_tmp[data_var] = mask

start_time_c = time.time()
lat_delta = (lats[-1] - lats[0]) / len(lats) * 2
lon_delta = (lons[-1] - lons[0]) / len(lons) * 2

oo = xc.create_uniform_grid(
latso[0],
latso[-1],
latso[1] - latso[0],
lonso[0],
lonso[-1],
lonso[1] - lonso[0],
latso[0], latso[-1], lat_delta, lonso[0], lonso[-1], lon_delta
)
oe = xc.create_uniform_grid(
latso[0],
latso[-1],
latso[1] - latso[0],
lonse[0],
lonse[-1],
lonse[1] - lonse[0],
latso[0], latso[-1], lat_delta, lonse[0], lonse[-1], lon_delta
)
eo = xc.create_uniform_grid(
latse[0],
latse[-1],
latse[1] - latse[0],
lonso[0],
lonso[-1],
lonso[1] - lonso[0],
latse[0], latse[-1], lat_delta, lonso[0], lonso[-1], lon_delta
)
ee = xc.create_uniform_grid(
latse[0],
latse[-1],
latse[1] - latse[0],
lonse[0],
lonse[-1],
lonse[1] - lonse[0],
latse[0], latse[-1], lat_delta, lonse[0], lonse[-1], lon_delta
)

end_time_c = time.time()
Expand All @@ -423,6 +408,13 @@ def _map2four(mask, ds_regrid, data_var="sftlf", regridTool="regrid2", debug=Fal

out = np.zeros(mask.shape, dtype="f")

if debug:
print("out.shape:", out.shape)
print("doo.shape:", doo[data_var].to_numpy().shape)
print("doe.shape:", doe[data_var].to_numpy().shape)
print("deo.shape:", deo[data_var].to_numpy().shape)
print("dee.shape:", dee[data_var].to_numpy().shape)

out[::2, ::2] = doo[data_var].to_numpy()
out[::2, 1::2] = doe[data_var].to_numpy()
out[1::2, ::2] = deo[data_var].to_numpy()
Expand All @@ -434,6 +426,7 @@ def _map2four(mask, ds_regrid, data_var="sftlf", regridTool="regrid2", debug=Fal
end_time_o = time.time()

end_time = time.time()

if debug:
elapsed_time = end_time - start_time
print("Elapsed time (_map2four):", elapsed_time, "seconds")
Expand Down

0 comments on commit 2630bbe

Please sign in to comment.