Skip to content

Commit 0bdcd2e

Browse files
committed
fix(ecs): use lists instead of numpy arrays for cal_params (echopype requirement)
1 parent a877607 commit 0bdcd2e

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

  • oceanstream/echodata/calibrate

‎oceanstream/echodata/calibrate/ecs.py‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,7 @@ def _fallback_parse_ecs(source: EcsSource, sonar_type: SonarType = "EK80") -> di
265265
for ecs_key, ep_key in _ECS_CAL_MAP.items():
266266
vals = [ch.get(ecs_key) for ch in channels]
267267
if any(v is not None for v in vals):
268-
cal_params[ep_key] = np.array(
269-
[v if v is not None else np.nan for v in vals]
270-
)
268+
cal_params[ep_key] = [v if v is not None else 0.0 for v in vals]
271269

272270
# Environment: take from first channel that has the value
273271
for ecs_key, ep_key in _ECS_ENV_MAP.items():
@@ -379,7 +377,13 @@ def _merge_dicts(d_short, d_long, pick_short_mask):
379377
s_val = d_short.get(key)
380378
l_val = d_long.get(key)
381379
if s_val is not None and l_val is not None:
382-
merged[key] = np.where(pick_short_mask, s_val, l_val)
380+
# Per-channel selection as list
381+
s_list = s_val if isinstance(s_val, list) else [s_val]
382+
l_list = l_val if isinstance(l_val, list) else [l_val]
383+
merged[key] = [
384+
s_list[i] if pick_short_mask[i] else l_list[i]
385+
for i in range(len(pick_short_mask))
386+
]
383387
elif s_val is not None:
384388
merged[key] = s_val
385389
else:

0 commit comments

Comments
 (0)