Echopype

Latest version: v0.8.4

Safety actively analyzes 621309 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

0.8.4

Overview

This release includes a few performance enhancements, bug fixes, and improving warnings/error messages. We are also preparing to switch to using the [trunk-based](https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development) development workflow in the next release to streamline new contributions.

Enhancements
* Upgrade `compress_pulse` to use parallelized convolution by anantmittal in https://github.com/OSOceanAcoustics/echopype/pull/1208
* Optimize `harmonize_env_param_time` by anantmittal in https://github.com/OSOceanAcoustics/echopype/pull/1235
* Optimize frequency differencing with dask by anantmittal in https://github.com/OSOceanAcoustics/echopype/pull/1198
* Optimize `get_vend_cal params_power` by anujsinha3 in https://github.com/OSOceanAcoustics/echopype/pull/1285
* `apply_mask` changes: Allow multi-channel masks, allow the `depth` dimension, and simplify fill value by ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1230
* Update `_calc_Sv_offset` for AZFP parsing by leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1304
* Move `compute_Sv_offset` to inside of AZFP parser by ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1307
* Support calibration of EK80 broadband complex data from sequential pinging by ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1302
* Add `skipna` argument to `compute_MVBS/NASC` to control mean behavior over NaN elements by ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1269

Bug fixes and warnings
* Fix error parsing integer in frequency-differencing equation by leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1278
* Fix time encoding to use int64 and "nanoseconds since 1970-01-01 00:00:00Z" by ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1299
* Add warnings and raised errors for `add_location` by ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1296

Others
* One time `dev` merge to `main` to facilitate switching to trunk-based workflow by leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1297
* Engaging in Google Summer of Code 2024 program by leewujung https://github.com/OSOceanAcoustics/echopype/pull/1266, https://github.com/OSOceanAcoustics/echopype/pull/1267, https://github.com/OSOceanAcoustics/echopype/pull/1274
* Update Development roadmap by leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1262
* Deprecating `echopype.visualize` by leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1310

New Contributors
* anantmittal made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1208
* anujsinha3 made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1285
* ctuguinay made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1230

**Full Changelog**: https://github.com/OSOceanAcoustics/echopype/compare/v0.8.3...v0.8.4

0.8.3

Overview

This release includes a bug fix for changes from the previous release and a few functionality enhancements.

Enhancements
- Add parser support for EK80 MRU1 datagram (1242)
- Add support for `consolidate` subpackage functions to accept both in-memory or stored datasets (1216)
- Add test for ES60 spare field decoding issue (1233)
- Add test for EK80 missing `receiver_sampling_freq` error (1234)

Bug fixes
- Fixed reshape bug in `pad_shorter_ping` that was remnant from `use_swap` full refactoring (1234)

0.8.2

Overview

This release includes a number of important performance enhancements, bug fixes, and under-the-hood refactoring to improve code readability.

Enhancements
- Full refactor of the functionality to directly storing parsed data to zarr before set_groups_* (1185, 1218, 1070)
- This avoids memory expansion during NaN padding across channel
- Improve `compute_MVBS` using flox (1124)
- Revive and improve `compute_NASC` using flox (1167)
- Refactor AZFP XML parser
- Improved XML parsing by using `xml.etree.ElementTree` to be consistent with other XML parsers in echopype (1135)
- Parse more parameters and store in the resulting `EchoData` objects (1135)
- Add partial support for AZFP multiple phase settings (1182)
- Overhaul AZFP Environment group
- Set mandatory variables not in data to NaN (`sounds_speed_indicative`, `absorption_indicative`) (1226)
- Parse and store AZFP pressure data when exist (1189, 1226)
- Add `utils.misc.depth_from_pressure` function for converting pressure to depth (1207)
- Remove unused mechanism to selectively parse some EK datagrams (1214)
- Enhancements of `EchoData.update_platform` method
- Factor out utility functions to a submodule (1209)
- Auto-assign timestamp for fixed-location external data using first `ping_time`(1196)
- Add support for `consolidate` subpackage functions to accept both in-memory or stored datasets (1216) [NOT MERGED]

Bug fixes
- Fix `EchoData.to_zarr` encoding (1128)
- Eliminate preferred chunks
- Ensuring chunk alignment and encoding only when handling dask arrays
- Fix scaling bugs in `compute_NASC` (1167)
- Fix `UnicodeDecodeError` for ES60 files (1215)
- Handle missing `receiver_sampling_frequency` for EK80 data (1219)

Infrastructure and refactoring
- Add support for running individual test files (1166)
- Add module based testing (1180)
- Update CI to barebone python, without conda (1192)

0.8.1

Overview

This release includes a bug fix and a few infrastructure upgrades and enhancements.

Enhancements and bug fix
- More intuitive input syntax for `frequency_differencing` (1106)
- Set EK60/80 Platform and NMEA nan timestamp to first `ping_time` value (1154)
- This avoids warnings due to xarray's new behavior with nan timestamp in coordinate
- Remove automatic version conversion in `open_converted` (1143)

Infrastructure
- Bump testing minimum Python version to 3.9 (1146)
- Experiment with Python 3.11 in testing (1148, 1156)
- Some tests related to `parsed2zarr` fail due to the pinned `more_itertools` version in python 3.11. `parsed2zarr` is being overhauled in 1070 so these are deferred to the next release.
- Remove logging during testing (1141)
- Remove NASC import causing failure (1145)

0.8.0

Overview

This release includes important updates to the raw-converted data format based on adaptation of convention, an efficiency boost for combining multiple `EchoData` objects, packaging and infrastructure upgrades, and other updates necessitated by these changes.

Enhancement
- Overhaul the `combine_echodata` function (1042, 1116)
- No longer require spinning up dask client under the hood during combine
- Use `xr.concat` directly compatible with delayed computation
- No longer require destination path as input argument
- Overhaul `EchoData.update_platform` (1060)
- Allow adding external variables with arbitrary number of time dimensions, with new time dimensions following an increasing order (e.g., `time3`, `time4`, etc)
- Only allow updating standardized, sonar model-dependent Platform group variables

Raw-converted data format changes
- Drop the `beam` and `ping_time` dimensions for some parameters (1056, 1083)
- The dimensions of these parameters were previously expanded to conform with convention requirements, but this inflated the data volume, especially for in memory operations, and made the calibration code confusing
- Standardize `backscatter_r/i` long_name in the `Sonar/Beam_groupX` group, and correct units (1047)
- Standardize use of `transmit_frequency_start/stop` for all echosounder models (1091)
- Move filter coefficients and decimation factor to variables in EK80 `Vendor_specific` group (1044, 1046, 1105)
- Add new `Provenance` group `combination_*` attributes to combined `EchoData` object, mirroring the `conversion_*` attributes (1113)
- Bring more consistency in the `Platform` group across sensors on conversion (1058, 1061)
- Add missing mandatory variables and other data format changes (1094, 1099, 1101, 1102, 1103, 1104, 1107, 1114)
- Set time arrays explicitly to datetime64[ns] in parsers and remove duplicated timestamp stuff (1117)

Packaging and infrastructure
- Remove Pandas<2 pinning (1080)
- Pin netcdf to >1.6 and add explicit encoding (1112)
- Update CI to prepare for python 3.11 (1108)
- Switch github action for get-changed-files (1118)
- Fix discrepancy on test log output (1119)

Others
- Set and fix encoding for variable encoding (1072)
- Specify handling for expected string type
- Sanitize and set encoding as part of EchoData
- Handling problematic NMEA messages when setting lat/lon in Platform group (1067)
- Update permission check filename to be UUID to make it thread safe (1110)
- use `pulse_form` for EK80 transmit type checks (1091)
- Factor out a normalization factor from pulse compression function for flexible use (1105)
- Add existence checking for angle parameters in `consolidate.add_splitbeam_angle` (1105)
- Revise qc function to clean up reversed time (1065)
- Update matplotlib call to register EK500 colormap (1068)
- Temporarily remove `compute_NASC` for debugging and overhaul (1136)
- Remove the deprecated `preprocess` subpackage (1077, 1082)
- Remove the `ZarrCombine` module since it is no longer used (1117)
- Remove outdated `ui_param` (1071)

Documentation
- Add rendering for example `EchoData` objects for all supported echosounders to show the updated format (1089)
- Restructure TOC to have separate Raw data formats and Data Processing sections, each with new subpages (1093, 1132, 1134)
- Add discussion on z-axis vertical coordinate system and variables (1133)
- Add bibliography page linked from inline citations (1137)

0.7.1

Overview

This release includes important updates to the requirements, small bug fixes, and refactoring of AZFP parser code to handle files from glider deployment and improve code coherence.

Enhancement and bug fixes
- AZFP conversion enhancements
- Add error catch to handle AZFP files with no temperature or tilt, such as those from glider deployments (1020)
- Refactor AZFP parser code to improve code coherence (1024)
- Correct and add missing SONAR-netCDF4 variable attributes for AZFP (1023)
- Improve impedance parameter handling for EK80 files (1019)
- allow impedance data type to be float
- unify naming of impedance parameters
- Allow only one chirp generation option for EK80 broadband processing (1019)
- previously there was an option to use the implementation from Matlab echolab
- starting from this version only the implementation identical to those from Lars Andersen ([repo](https://github.com/CRIMAC-WP4-Machine-learning/CRIMAC-Raw-To-Svf-TSf))
- Remove unneeded return self in processing level decorator wrapper-inner function for class method (1037)

Tests and infrastructure
- Unpin xarray version and pin pandas < 2 (981)
- allow v0.7.x in `map_ep_version` checks

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.