Skip to content

Commit 8ddb31f

Browse files
committed
feat(echodata): add ECS calibration, local storage backend, and cal_params forwarding
- Add ecs.py: Echoview ECS file parsing via echopype's ECSParser with header normalization for Saildrone exports and dual-pulse support - Refactor calibration.py: remove broken generic/ECS parsers, simplify apply_calibration to Saildrone-only, redirect .ecs to ecs.parse_ecs() - Add local filesystem storage backend to storage.py: use_local_storage(), use_azure_storage(), is_local_storage() toggle, _LocalListFS for directory listing, local-mode paths in all save/open/upload functions - Add cal_params parameter to compute_sv_from_echodata() for ECS-based calibration forwarding to echopype.calibrate.compute_Sv - Guard _ensure_depth in nasc.py against depth already being a dimension - Export new functions from echodata/__init__.py and calibrate/__init__.py
1 parent 9464532 commit 8ddb31f

7 files changed

Lines changed: 565 additions & 284 deletions

File tree

oceanstream/echodata/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,9 @@ def __getattr__(name: str):
415415
"open_sv_from_azure",
416416
"is_azure_configured",
417417
"list_campaign_data",
418+
"use_local_storage",
419+
"use_azure_storage",
420+
"is_local_storage",
418421
):
419422
from oceanstream.echodata.storage import (
420423
get_azure_zarr_store,
@@ -424,6 +427,9 @@ def __getattr__(name: str):
424427
open_sv_from_azure,
425428
is_azure_configured,
426429
list_campaign_data,
430+
use_local_storage,
431+
use_azure_storage,
432+
is_local_storage,
427433
)
428434
return locals()[name]
429435

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11
"""Calibration module for echosounder data.
22
3-
Provides functions for applying calibration values to EchoData objects,
4-
with support for Saildrone Excel calibration files.
3+
Two paths:
4+
5+
* :func:`apply_calibration` (bake-time): mutates EchoData in place. Used by
6+
the Saildrone Excel format.
7+
* :func:`build_cal_params_from_ecs` (Sv-time): returns echopype-compatible
8+
``env_params`` / ``cal_params`` dicts from one or two Echoview ECS files
9+
(single- or dual-pulse).
510
"""
611

712
from oceanstream.echodata.calibrate.calibration import (
813
apply_calibration,
914
load_calibration,
15+
validate_calibration_params,
16+
)
17+
from oceanstream.echodata.calibrate.ecs import (
18+
build_cal_params_from_ecs,
19+
parse_ecs,
1020
)
1121
from oceanstream.echodata.calibrate.saildrone import (
1222
calibrate_saildrone,
13-
load_saildrone_calibration,
1423
detect_pulse_mode,
24+
load_saildrone_calibration,
1525
)
1626

1727
__all__ = [
1828
"apply_calibration",
19-
"load_calibration",
29+
"build_cal_params_from_ecs",
2030
"calibrate_saildrone",
21-
"load_saildrone_calibration",
2231
"detect_pulse_mode",
32+
"load_calibration",
33+
"load_saildrone_calibration",
34+
"parse_ecs",
35+
"validate_calibration_params",
2336
]

0 commit comments

Comments
 (0)