Releases: OSOceanAcoustics/echopype
v0.11.1a2 (release assets staging)
This pre-release is for staging new files in release assets in the upcoming release.
v0.11.1a1 (release assets staging)
This pre-release is for staging new files in release assets in the upcoming release.
v0.11.0
Overview
This release includes a number of major changes, in particular:
- additional functions for detecting transient noise, seafloor, and shoals
- upgrade to use Zarr >3, and along with this change, discontinue support for Python 3.10 and Zarr <3, and add support for Python 3.13
Thanks to @LOCEANlloydizard , @dbashford-NOAA , @shivam096, and @leewujung for their contributions!
New features
- Add weill to codespell ignore list by @LOCEANlloydizard in #1543
- Implementations of basic seafloor detection in mask subpackage by @LOCEANlloydizard in #1521
- Add Fielding and Matecho-like transient noise removal methods by @LOCEANlloydizard in #1544
- Shoals detection implementation by @LOCEANlloydizard in #1525
Enhancements
- Update
apply_maskto only take in boolean or 0/1 masks by @shivam096 in #1502 - Add order agnostic dimension in masks by @shivam096 in #1503
- Moved the check for duplicate times to after NMEA selection by @dbashford-NOAA in #1511
- Support computing MVBS with frequency_nominal and fix some tests by @dbashford-NOAA in #1517
Bug fixes
- Fix utcnow by @shivam096 in #1497
- Add time decode by @shivam096 in #1499
Infrastructure
- Migrate to numpy v2 and zarr v3 by @dbashford-NOAA and @leewujung in #1531
- Add test to validate actual range calculations by @shivam096 in #1504
- Unpinning numpy and scipy by @LOCEANlloydizard in #1518
- Reverse unpinning numpy by @leewujung in #1519
- Update pr.yaml to run full test suite for all PR by @LOCEANlloydizard in #1524
- Modifications to match xarray update to v2025.9.1 by @LOCEANlloydizard in #1550
- fix(ci): free disk space to resolve "No space left on device" by @LOCEANlloydizard in #1556
- Remove python 3.10 support by @dbashford-NOAA in #1546
- Support python 3.13 by @dbashford-NOAA in #1553
Documentation
- Update contributing section in docs by @leewujung in #1489
- Update data processing docs and contributor guide by @leewujung in #1490
- Update docstrings for transient noise and shoal detection functions by @LOCEANlloydizard in #1554
New Contributors
- @shivam096 made their first contribution in #1497
- @LOCEANlloydizard made their first contribution in #1518
- @dbashford-NOAA made their first contribution in #1511
Full Changelog: v0.10.1...v0.11.0
v0.10.1
Overview
This release includes changes that improve performance of compute_Sv and compute_MVBS and fixes of a typo and a bug.
Enhancements
- Expand
ping_timepreemptively inget_vend_cal_params_powerto avoid tiny chunks by @ctuguinay in #1483 - Enhance
compute_MVBSfeasibility via flox reindex=False changes by @ctuguinay in #1470
Bug fixes
- Use normalization to compute echo range scaling by @ctuguinay in #1463
Documentation
- docs: fix little typo by @jmeischner in #1471
New Contributors
- @jmeischner made their first contribution in #1471
Full Changelog: v0.10.0...v0.10.1
v0.10.0
Overview
This release includes critical updates to migration to support python 3.12, use the new xr.DataTree functionality, and many other changes to resolve deprecation warnings and small bugs. There are a number of pinned dependencies we are continuing to work on.
Enhancements
- Drop ping time duplicates by @ctuguinay in #1382
- Support Python 3.12 and partial migration to Xarray DataTree by @ctuguinay in #1419
- Fix tests that fail from new Xarray variable and attribute assignment updates by @ctuguinay in #1433
- Add backward compatibility of raw-converted dataset with xr.DataTree by @oftfrfbf @leewujung @ctuguinay in #1447
- Add assign actual range utility function by @ctuguinay in #1435
Bug and warning fixes
- Assemble AD2CP timestamp with nanosecond precision by @leewujung in #1436
- Use
import_resources.filesinstead of the legacyopen_textby @leewujung in #1434 - Replace
pkg_resources.resource_stringwithimportlib.resources.filesby @leewujung in #1468 - Fix invalid
\dwarning by using raw string by @leewujung in #1448 - Check if there exist any swap files before cleaning them up by @ctuguinay in #1451
- Remove
__setattr__from EchoData by @leewujung in #1457 - Compute dask array before np array equal by @ctuguinay in #1452
Dataset.dimstoDataset.sizesby @ctuguinay in #1453- Chunks as dictionaries in
_get_auto_chunkby @ctuguinay in #1454 - Set decode timedelta to False since it will default to this in later xarray version by @ctuguinay in #1462
- Fixed logic bug in AZFP6 parser in validating parameters by @ctuguinay @leewujung in #1450
- Fill in NaN for missing EK80 coefficients by @leewujung in #1458
Infrastructure
- Update workflows to use python 3.12 and ubuntu 22.04 by @leewujung in #1425 and #1466
- Bump codespell version, add exceptions by @leewujung in #1438
- Pin
zarrandnetcdf4temporarily by @leewujung in #1429 - Add
type-extensionsto requirements.txt by @leewujung in #1440 - Add manual trigger to pypi workflow by @leewujung in #1442
- Pin
scipyto temporarily ensure that rotation matrix calculation does not fail by @ctuguinay in #1460
Others
- Update cff citation file by @leewujung in #1443
- Replace previous arXiv citation with recent ICES paper citation by @ctuguinay in #1455
Full Changelog: v0.9.1...v0.10.0
v0.9.1
Overview
This release includes a number of small fixes and enhancements. An important component is to set the max supported python version to <3.12, before we fully migrate to using the new xarray.DataTree in the next release with breaking changes.
Enhancements
- Remove min max attributes for
compute_MVBSby @ctuguinay in #1380 - Update setup-services.py by @spacetimeengineer in #1398
- Add support for AZFP 130kHz by @ctuguinay in #1412
- Update calibrate_base.py to include EA640 in backscatter size check. by @torsteinnh in #1407
Bug and warning fixes
- Handle
NaNinapply_maskinput mask by @leewujung in #1376 - EK60 Conversion: Drop channels that don't have power data by @ctuguinay in #1383
- Skip Parsing Invalid EK80 Environment Datagram(s) by @ctuguinay in #1387
- Fix 'Division by Zero' error when converting EK80 files without Sound Velocity Profile Depth value(s) by @ctuguinay in #1381
- Add error warning for all NaN lat/lon in
get_distance_from_latlonby @leewujung in #1403 - Updated paths in
test_align_to_ping_time_glider_azfpto use pytest fixture by @oftfrfbf in #1414
Documentation
- Update installation doc page by @leewujung in #1389
Others
- Set max python version <3.12 [all tests ci] by @leewujung in #1422
New Contributors
- @spacetimeengineer made their first contribution in #1398
- @oftfrfbf made their first contribution in #1414
- @torsteinnh made their first contribution in #1407
Full Changelog: v0.9.0...v0.9.1
v0.9.0
Overview
This release includes a number of new features and performance enhancements, as well as fixes for bugs and warnings. We have fully switched to using the trunk-based development workflow in this release.
New features
- Add noise and attenuation functions from Ryan et. al. 2015 and echopy by @ctuguinay in #1316
- Add
.botand.idxfiles to EK60/EK80 parsing by @ctuguinay in #1318 - Add index aggregation option for cleaning mask functions by @ctuguinay in #1326
- Added alpha-version code for new AZFP6 format by @dash-uvic in #1323
- Use latest MRU parser version and enable
ep.consolidate.add_locationcan be based off datagram type by @ctuguinay in #1359
Enhancements
- Support lazy-loaded EK80 broadband-complex data by @leewujung in #1311
- Allow
MVBSintoep.mask.apply_mask, and add alignment check for target variable and mask by @ctuguinay in #1345 - Enhance
ep.calibrate.compute_Svscalability by enabling EchoData chunking and removing eager computation by @ctuguinay in #1331 - Use Echodata
PlatformandBeam_group1variables to compute depth for EK60/EK80 by @ctuguinay in #1319 - Allow waveform mode "FM" in calibrate by @ctuguinay in #1363
- Allow external arrays in
add_depthand add an universal ping time alignment function by @ctuguinay in #1369
Bug and warning fixes
- Fix duck array
RuntimeWarningfor EK60ep.open_rawby @ctuguinay in #1337 - Coding:
channel_modedtype fromfloat16tofloat32by @ctuguinay in #1350 and #1351 - Fix problems in applying
compute_Svon combinedEchoDataobject by @leewujung in #1328 - Fix data type check for padding short complex pings by @ctuguinay in #1353
- Update
xr.droptoxr.drop_varsby @ctuguinay in #1364
Documentation
- Update docs for visualization by @leewujung in #1347
- Merge data processing level changes from
stableby @leewujung in #1355 - Add the Ping acoustic library to other resources by @gavinmacaulay in #1362
- Update contributing guide and README/index by @leewujung in #1356 and #1373
Others
- Remove the deprecated
visualizesubpackage by @leewujung in #1336 - Temporarily skip datagrams generated by EC150 by @leewujung in #1357
- Modify dask image in requirement.txt by @leewujung in #1361
New Contributors
- @dash-uvic made their first contribution in #1323
Full Changelog: v0.8.4...v0.9.0
v0.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 development workflow in the next release to streamline new contributions.
Enhancements
- Upgrade
compress_pulseto use parallelized convolution by @anantmittal in #1208 - Optimize
harmonize_env_param_timeby @anantmittal in #1235 - Optimize frequency differencing with dask by @anantmittal in #1198
- Optimize
get_vend_cal params_powerby @anujsinha3 in #1285 apply_maskchanges: Allow multi-channel masks, allow thedepthdimension, and simplify fill value by @ctuguinay in #1230- Update
_calc_Sv_offsetfor AZFP parsing by @leewujung in #1304 - Move
compute_Sv_offsetto inside of AZFP parser by @ctuguinay in #1307 - Support calibration of EK80 broadband complex data from sequential pinging by @ctuguinay in #1302
- Add
skipnaargument tocompute_MVBS/NASCto control mean behavior over NaN elements by @ctuguinay in #1269
Bug fixes and warnings
- Fix error parsing integer in frequency-differencing equation by @leewujung in #1278
- Fix time encoding to use int64 and "nanoseconds since 1970-01-01 00:00:00Z" by @ctuguinay in #1299
- Add warnings and raised errors for
add_locationby @ctuguinay in #1296
Others
- One time
devmerge tomainto facilitate switching to trunk-based workflow by @leewujung in #1297 - Engaging in Google Summer of Code 2024 program by @leewujung #1266, #1267, #1274
- Update Development roadmap by @leewujung in #1262
- Deprecating
echopype.visualizeby @leewujung in #1310
New Contributors
- @anantmittal made their first contribution in #1208
- @anujsinha3 made their first contribution in #1285
- @ctuguinay made their first contribution in #1230
Full Changelog: v0.8.3...v0.8.4
v0.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
consolidatesubpackage 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_freqerror (#1234)
Bug fixes
- Fixed reshape bug in
pad_shorter_pingthat was remnant fromuse_swapfull refactoring (#1234)
v0.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_MVBSusing flox (#1124) - Revive and improve
compute_NASCusing flox (#1167) - Refactor AZFP XML parser
- Overhaul AZFP Environment group
- Add
utils.misc.depth_from_pressurefunction for converting pressure to depth (#1207) - Remove unused mechanism to selectively parse some EK datagrams (#1214)
- Enhancements of
EchoData.update_platformmethod - Add support for
consolidatesubpackage functions to accept both in-memory or stored datasets (#1216) [NOT MERGED]
Bug fixes
- Fix
EchoData.to_zarrencoding (#1128)- Eliminate preferred chunks
- Ensuring chunk alignment and encoding only when handling dask arrays
- Fix scaling bugs in
compute_NASC(#1167) - Fix
UnicodeDecodeErrorfor ES60 files (#1215) - Handle missing
receiver_sampling_frequencyfor EK80 data (#1219)