Skip to content

Commit 665f23c

Browse files
committed
consolodated get_layer_data depth interpolation
1 parent e1b0d1a commit 665f23c

1 file changed

Lines changed: 16 additions & 35 deletions

File tree

mhkit/river/io/d3d.py

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -364,54 +364,35 @@ def get_layer_data(
364364
elif isinstance(data, xr.Dataset):
365365
layer_percentages= cord_sys.values # accumulative
366366

367-
if isinstance(data, netCDF4.Dataset):
368-
if layer_dim == "FlowLink_xu FlowLink_yu":
369-
# interpolate
367+
if layer_dim == "FlowLink_xu FlowLink_yu":
368+
# interpolate
369+
if isinstance(data, netCDF4.Dataset):
370370
x_laydim = np.ma.getdata(data.variables[coords[0]][:], False)
371371
y_laydim = np.ma.getdata(data.variables[coords[1]][:], False)
372-
points_laydim = np.array([[x, y] for x, y in zip(x_laydim, y_laydim)])
373-
374372
coords_request = str(data.variables[variable].coordinates).split()
375373
x_wdim = np.ma.getdata(data.variables[coords_request[0]][:], False)
376374
y_wdim = np.ma.getdata(data.variables[coords_request[1]][:], False)
377-
points_wdim = np.array([[x, y] for x, y in zip(x_wdim, y_wdim)])
378-
379-
bottom_depth_wdim = interp.griddata(points_laydim, bottom_depth, points_wdim)
380-
water_level_wdim = interp.griddata(points_laydim, waterlevel, points_wdim)
381-
382-
idx_bd = np.where(np.isnan(bottom_depth_wdim))
383-
384-
for i in idx_bd:
385-
bottom_depth_wdim[i] = interp.griddata(
386-
points_laydim, bottom_depth, points_wdim[i], method="nearest"
387-
)
388-
water_level_wdim[i] = interp.griddata(
389-
points_laydim, waterlevel, points_wdim[i], method="nearest"
390-
)
391-
elif isinstance(data, xr.Dataset):
392-
if layer_dim == "FlowLink_xu FlowLink_yu":
393-
# interpolate
375+
elif isinstance(data, xr.Dataset):
394376
x_laydim = data[coords[0]].values
395377
y_laydim = data[coords[1]].values
396-
points_laydim = np.array([[x, y] for x, y in zip(x_laydim, y_laydim)])
397-
398378
coords_request = list(data[variable].coords)[0:2]
399379
x_wdim = data[coords_request[0]].values
400380
y_wdim = data[coords_request[1]].values
401-
points_wdim = np.array([[x, y] for x, y in zip(x_wdim, y_wdim)])
402381

403-
bottom_depth_wdim = interp.griddata(points_laydim, bottom_depth, points_wdim)
404-
water_level_wdim = interp.griddata(points_laydim, waterlevel, points_wdim)
382+
points_laydim = np.array([[x, y] for x, y in zip(x_laydim, y_laydim)])
383+
points_wdim = np.array([[x, y] for x, y in zip(x_wdim, y_wdim)])
405384

406-
idx_bd = np.where(np.isnan(bottom_depth_wdim))
385+
bottom_depth_wdim = interp.griddata(points_laydim, bottom_depth, points_wdim)
386+
water_level_wdim = interp.griddata(points_laydim, waterlevel, points_wdim)
407387

408-
for i in idx_bd:
409-
bottom_depth_wdim[i] = interp.griddata(
410-
points_laydim, bottom_depth, points_wdim[i], method="nearest"
411-
)
412-
water_level_wdim[i] = interp.griddata(
413-
points_laydim, waterlevel, points_wdim[i], method="nearest"
414-
)
388+
idx_bd = np.where(np.isnan(bottom_depth_wdim))
389+
for i in idx_bd:
390+
bottom_depth_wdim[i] = interp.griddata(
391+
points_laydim, bottom_depth, points_wdim[i], method="nearest"
392+
)
393+
water_level_wdim[i] = interp.griddata(
394+
points_laydim, waterlevel, points_wdim[i], method="nearest"
395+
)
415396

416397
waterdepth = []
417398

0 commit comments

Comments
 (0)