From 8b3bad417ddbb328f52da3706da21939637b8a6d Mon Sep 17 00:00:00 2001 From: Jesse Cusack Date: Sat, 21 Mar 2026 14:00:59 -0700 Subject: [PATCH 1/2] fixed epsilon binning out of bounds errors --- src/glide/cli.py | 4 ++-- src/glide/process_l3.py | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/glide/cli.py b/src/glide/cli.py index f05baf9..67b5ba4 100644 --- a/src/glide/cli.py +++ b/src/glide/cli.py @@ -266,9 +266,9 @@ def merge( dataset_dims = set(ds.dimensions) ds.close() - if dataset_dims == {"time"}: + if (dataset_dims == {"time"}) | (dataset_dims == {"time", "time_uv"}): input_file_level = 2 - elif dataset_dims == {"profile_id", "z"}: + elif (dataset_dims == {"profile_id", "z"}) | (dataset_dims == {"profile_id", "z", "time_uv"}): input_file_level = 3 else: raise ValueError( diff --git a/src/glide/process_l3.py b/src/glide/process_l3.py index b138344..699e28f 100644 --- a/src/glide/process_l3.py +++ b/src/glide/process_l3.py @@ -42,7 +42,7 @@ def bin_q( ds[v] = ( dims, np.full_like(ds.conductivity.values, np.nan), - config["variables"][v]["CF"], + config["merged_variables"][v]["CF"], ) # Dissipation rate is stored in the q file as the log10 of the value. # Convert it to the actual value. @@ -61,7 +61,10 @@ def bin_q( ds_.profile_time_end.astype("M8[s]"), ) ) - if eds_.e_1.size < 1: + # Filter to valid depths within the bin range (also drops NaN). + in_range = (eds_.depth >= depth_bins[0]) & (eds_.depth <= depth_bins[-1]) + eds_ = eds_.sel(time=in_range) + if eds_.time.size < 1: _log.debug("No epsilon data") continue binned = eds_.groupby_bins("depth", depth_bins).mean() From 23d12f721623cf711b0b3d7e5290a0c4c187bc06 Mon Sep 17 00:00:00 2001 From: Jesse Cusack Date: Sat, 21 Mar 2026 14:01:29 -0700 Subject: [PATCH 2/2] format --- src/glide/cli.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/glide/cli.py b/src/glide/cli.py index 67b5ba4..c044cce 100644 --- a/src/glide/cli.py +++ b/src/glide/cli.py @@ -268,7 +268,9 @@ def merge( if (dataset_dims == {"time"}) | (dataset_dims == {"time", "time_uv"}): input_file_level = 2 - elif (dataset_dims == {"profile_id", "z"}) | (dataset_dims == {"profile_id", "z", "time_uv"}): + elif (dataset_dims == {"profile_id", "z"}) | ( + dataset_dims == {"profile_id", "z", "time_uv"} + ): input_file_level = 3 else: raise ValueError(