Recent Releases of Echopype
Echopype - v0.11.1a2 (release assets staging)
This pre-release is for staging new files in release assets in the upcoming release.
Biosphere - Marine Life and Fishery
- Python
Published by leewujung 3 months ago
Echopype - v0.11.1a1 (release assets staging)
This pre-release is for staging new files in release assets in the upcoming release.
Biosphere - Marine Life and Fishery
- Python
Published by leewujung 4 months ago
Echopype - 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 https://github.com/OSOceanAcoustics/echopype/pull/1543
- Implementations of basic seafloor detection in mask subpackage by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1521
- Add Fielding and Matecho-like transient noise removal methods by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1544
- Shoals detection implementation by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1525
Enhancements
- Update
apply_maskto only take in boolean or 0/1 masks by @shivam096 in https://github.com/OSOceanAcoustics/echopype/pull/1502 - Add order agnostic dimension in masks by @shivam096 in https://github.com/OSOceanAcoustics/echopype/pull/1503
- Moved the check for duplicate times to after NMEA selection by @dbashford-NOAA in https://github.com/OSOceanAcoustics/echopype/pull/1511
- Support computing MVBS with frequency_nominal and fix some tests by @dbashford-NOAA in https://github.com/OSOceanAcoustics/echopype/pull/1517
Bug fixes
- Fix utcnow by @shivam096 in https://github.com/OSOceanAcoustics/echopype/pull/1497
- Add time decode by @shivam096 in https://github.com/OSOceanAcoustics/echopype/pull/1499
Infrastructure
- Migrate to numpy v2 and zarr v3 by @dbashford-NOAA and @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1531
- Add test to validate actual range calculations by @shivam096 in https://github.com/OSOceanAcoustics/echopype/pull/1504
- Unpinning numpy and scipy by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1518
- Reverse unpinning numpy by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1519
- Update pr.yaml to run full test suite for all PR by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1524
- Modifications to match xarray update to v2025.9.1 by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1550
- fix(ci): free disk space to resolve "No space left on device" by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1556
- Remove python 3.10 support by @dbashford-NOAA in https://github.com/OSOceanAcoustics/echopype/pull/1546
- Support python 3.13 by @dbashford-NOAA in https://github.com/OSOceanAcoustics/echopype/pull/1553
Documentation
- Update contributing section in docs by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1489
- Update data processing docs and contributor guide by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1490
- Update docstrings for transient noise and shoal detection functions by @LOCEANlloydizard in https://github.com/OSOceanAcoustics/echopype/pull/1554
New Contributors
- @shivam096 made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1497
- @LOCEANlloydizard made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1518
- @dbashford-NOAA made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1511
Full Changelog: https://github.com/OSOceanAcoustics/echopype/compare/v0.10.1...v0.11.0
Biosphere - Marine Life and Fishery
- Python
Published by leewujung 5 months ago
Echopype - 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 https://github.com/OSOceanAcoustics/echopype/pull/1483 - Enhance
compute_MVBSfeasibility via flox reindex=False changes by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1470
Bug fixes
- Use normalization to compute echo range scaling by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1463
Documentation
- docs: fix little typo by @jmeischner in https://github.com/OSOceanAcoustics/echopype/pull/1471
New Contributors
- @jmeischner made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1471
Full Changelog: https://github.com/OSOceanAcoustics/echopype/compare/v0.10.0...v0.10.1
Biosphere - Marine Life and Fishery
- Python
Published by leewujung 12 months ago
Echopype - 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 https://github.com/OSOceanAcoustics/echopype/pull/1382
- Support Python 3.12 and partial migration to Xarray DataTree by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1419
- Fix tests that fail from new Xarray variable and attribute assignment updates by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1433
- Add backward compatibility of raw-converted dataset with xr.DataTree by @oftfrfbf @leewujung @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1447
- Add assign actual range utility function by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1435
Bug and warning fixes
- Assemble AD2CP timestamp with nanosecond precision by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1436
- Use
import_resources.filesinstead of the legacyopen_textby @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1434 - Replace
pkg_resources.resource_stringwithimportlib.resources.filesby @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1468 - Fix invalid
\dwarning by using raw string by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1448 - Check if there exist any swap files before cleaning them up by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1451
- Remove
__setattr__from EchoData by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1457 - Compute dask array before np array equal by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1452
Dataset.dimstoDataset.sizesby @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1453- Chunks as dictionaries in
_get_auto_chunkby @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1454 - Set decode timedelta to False since it will default to this in later xarray version by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1462
- Fixed logic bug in AZFP6 parser in validating parameters by @ctuguinay @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1450
- Fill in NaN for missing EK80 coefficients by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1458
Infrastructure
- Update workflows to use python 3.12 and ubuntu 22.04 by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1425 and https://github.com/OSOceanAcoustics/echopype/pull/1466
- Bump codespell version, add exceptions by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1438
- Pin
zarrandnetcdf4temporarily by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1429 - Add
type-extensionsto requirements.txt by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1440 - Add manual trigger to pypi workflow by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1442
- Pin
scipyto temporarily ensure that rotation matrix calculation does not fail by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1460
Others
- Update cff citation file by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1443
- Replace previous arXiv citation with recent ICES paper citation by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1455
Full Changelog: https://github.com/OSOceanAcoustics/echopype/compare/v0.9.1...v0.10.0
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 1 year ago
Echopype - 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 https://github.com/OSOceanAcoustics/echopype/pull/1380 - Update setup-services.py by @spacetimeengineer in https://github.com/OSOceanAcoustics/echopype/pull/1398
- Add support for AZFP 130kHz by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1412
- Update calibrate_base.py to include EA640 in backscatter size check. by @torsteinnh in https://github.com/OSOceanAcoustics/echopype/pull/1407
Bug and warning fixes
- Handle
NaNinapply_maskinput mask by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1376 - EK60 Conversion: Drop channels that don't have power data by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1383
- Skip Parsing Invalid EK80 Environment Datagram(s) by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1387
- Fix 'Division by Zero' error when converting EK80 files without Sound Velocity Profile Depth value(s) by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1381
- Add error warning for all NaN lat/lon in
get_distance_from_latlonby @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1403 - Updated paths in
test_align_to_ping_time_glider_azfpto use pytest fixture by @oftfrfbf in https://github.com/OSOceanAcoustics/echopype/pull/1414
Documentation
- Update installation doc page by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1389
Others
- Set max python version <3.12 [all tests ci] by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1422
New Contributors
- @spacetimeengineer made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1398
- @oftfrfbf made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1414
- @torsteinnh made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1407
Full Changelog: https://github.com/OSOceanAcoustics/echopype/compare/v0.9.0...v0.9.1
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 1 year ago
Echopype - 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 https://github.com/OSOceanAcoustics/echopype/pull/1316
- Add
.botand.idxfiles to EK60/EK80 parsing by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1318 - Add index aggregation option for cleaning mask functions by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1326
- Added alpha-version code for new AZFP6 format by @dash-uvic in https://github.com/OSOceanAcoustics/echopype/pull/1323
- Use latest MRU parser version and enable
ep.consolidate.add_locationcan be based off datagram type by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1359
Enhancements
- Support lazy-loaded EK80 broadband-complex data by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1311
- Allow
MVBSintoep.mask.apply_mask, and add alignment check for target variable and mask by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1345 - Enhance
ep.calibrate.compute_Svscalability by enabling EchoData chunking and removing eager computation by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1331 - Use Echodata
PlatformandBeam_group1variables to compute depth for EK60/EK80 by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1319 - Allow waveform mode "FM" in calibrate by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1363
- Allow external arrays in
add_depthand add an universal ping time alignment function by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1369
Bug and warning fixes
- Fix duck array
RuntimeWarningfor EK60ep.open_rawby @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1337 - Coding:
channel_modedtype fromfloat16tofloat32by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1350 and https://github.com/OSOceanAcoustics/echopype/pull/1351 - Fix problems in applying
compute_Svon combinedEchoDataobject by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1328 - Fix data type check for padding short complex pings by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1353
- Update
xr.droptoxr.drop_varsby @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1364
Documentation
- Update docs for visualization by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1347
- Merge data processing level changes from
stableby @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1355 - Add the Ping acoustic library to other resources by @gavinmacaulay in https://github.com/OSOceanAcoustics/echopype/pull/1362
- Update contributing guide and README/index by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1356 and https://github.com/OSOceanAcoustics/echopype/pull/1373
Others
- Remove the deprecated
visualizesubpackage by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1336 - Temporarily skip datagrams generated by EC150 by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1357
- Modify dask image in requirement.txt by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1361
New Contributors
- @dash-uvic made their first contribution in https://github.com/OSOceanAcoustics/echopype/pull/1323
Full Changelog: https://github.com/OSOceanAcoustics/echopype/compare/v0.8.4...v0.9.0
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 1 year ago
Echopype - 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 https://github.com/OSOceanAcoustics/echopype/pull/1208 - Optimize
harmonize_env_param_timeby @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_powerby @anujsinha3 in https://github.com/OSOceanAcoustics/echopype/pull/1285 apply_maskchanges: Allow multi-channel masks, allow thedepthdimension, and simplify fill value by @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1230- Update
_calc_Sv_offsetfor AZFP parsing by @leewujung in https://github.com/OSOceanAcoustics/echopype/pull/1304 - Move
compute_Sv_offsetto 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
skipnaargument tocompute_MVBS/NASCto 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_locationby @ctuguinay in https://github.com/OSOceanAcoustics/echopype/pull/1296
Others
- One time
devmerge tomainto 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.visualizeby @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
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 2 years ago
Echopype - 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)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 2 years ago
Echopype - 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
- Improved XML parsing by using
xml.etree.ElementTreeto be consistent with other XML parsers in echopype (#1135) - Parse more parameters and store in the resulting
EchoDataobjects (#1135) - Add partial support for AZFP multiple phase settings (#1182)
- Improved XML parsing by using
- 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)
- Set mandatory variables not in data to NaN (
- 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- Factor out utility functions to a submodule (#1209)
- Auto-assign timestamp for fixed-location external data using first
ping_time(#1196)
- 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)
Infrastructure and refactoring
- Add support for running individual test files (#1166)
- Add module based testing (#1180)
- Update CI to barebone python, without conda (#1192)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 2 years ago
Echopype - v0.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_timevalue (#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
parsed2zarrfail due to the pinnedmore_itertoolsversion in python 3.11.parsed2zarris being overhauled in #1070 so these are deferred to the next release.
- Some tests related to
- Remove logging during testing (#1141)
- Remove NASC import causing failure (#1145)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 2 years ago
Echopype - v0.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_echodatafunction (#1042, #1116)- No longer require spinning up dask client under the hood during combine
- Use
xr.concatdirectly 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
- Allow adding external variables with arbitrary number of time dimensions, with new time dimensions following an increasing order (e.g.,
Raw-converted data format changes
- Drop the
beamandping_timedimensions 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/ilong_name in theSonar/Beam_groupXgroup, and correct units (#1047) - Standardize use of
transmit_frequency_start/stopfor all echosounder models (#1091) - Move filter coefficients and decimation factor to variables in EK80
Vendor_specificgroup (#1044, #1046, #1105) - Add new
Provenancegroupcombination_*attributes to combinedEchoDataobject, mirroring theconversion_*attributes (#1113) - Bring more consistency in the
Platformgroup 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_formfor 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_NASCfor debugging and overhaul (#1136) - Remove the deprecated
preprocesssubpackage (#1077, #1082) - Remove the
ZarrCombinemodule since it is no longer used (#1117) - Remove outdated
ui_param(#1071)
Documentation
- Add rendering for example
EchoDataobjects 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)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 2 years ago
Echopype - v0.7.1
v0.7.1 (2023 May 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)
- 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_versionchecks
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 3 years ago
Echopype - v0.7.0
Overview
This release includes new features to interface with Echoview ECS files for computing Sv, reorganization of computing functions into new subpackages, addition of data processing level attributes to data products, and other improvements and bug fixes.
New features and major changes
- Allow using ECS for calibrating Simrad echosounders (#996, #1004)
- This functionality is in a beta testing stage
- Details of implementation may change and bugs are possible
- Expand ECS parser to accept frequency-dependent values in EK80 ECS files
- Overhaul
env_paramsto ensure correct intake for calibration (#985)- Now allows using
env_paramsentries that are xr.DataArrays
- Now allows using
- Move functions previously in
preprocesssubpackage to new subpackages (#993). Calling these functions frompreprocessis deprecated and will be removed in v0.7.1.clean:remove_noise,estimate_noisecommongrid:compute_MVBS,compute_MVBS_index_binning
- Add
commongrid.compute_NASC(#1005)- The current implementation uses brute force looping for mean Sv computation, this will be refactored and optimized together with other functions requiring the same pattern in an upcoming release
- Add global attributes for data processing levels (#1001).
- This functionality is in a beta testing stage
- See data processing level specifications for functions and conditions under which such attributes are added
- Expand
mask.apply_maskto handle multi-channel Sv datasets (#1010) - Standardize sonar metadata for EK80 data (#992)
sonar_serial_numberis now an empty global attribute, no longer a variable, as in the EK60 casetransducer_name,transducer_serial_number,transceiver_serial_numberbased on parser parametertransducer_name,transducer_serial_number, andserial_number, respectively
Bug fixes
- Fix scaling bug for
beamwidth_alongshipandbeamwidth_athwartshipfrom CW-based parameters to values corresponding to center frequency of broadband transmit signals (#998)
Tests and infrastructure
- Add more comprehensive tests for
add_location(#1000) - Add test for splitbeam angle
ek80_CW_powercase (#994) - Add unit and integration tests for
env_paramsintake for calibration (#985) - Exclude
test_datafolder incodespellpre-commit hook (#1016)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 3 years ago
Echopype - v0.6.4.1
Overview
This is a minor release that includes a small bug fix and an enhancement, which removes excessive warnings due to changes in v0.6.4.
Bug fix
- Fix a bug that prevented passing in
env_paramsfor EK60 calibration (#987)
Enhancement
- Handling non-positive values that causes log10 warnings on EK calibration (#986)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 3 years ago
Echopype - v0.6.4
Overview
This is a release that includes important performance enhancements that allow user-provided calibration parameters for broadband and narrowband calibration, new functionalities to compute and attach split-beam angles to calibrated Sv dataset, perform frequency-differencing and masking, as well as a number of bug fixes and other improvements.
New features
- Allow passing in
cal_paramsas a dictionary for narrowband and broadband calibration (#955) - Add default chunk encoding for zarr output (#939)
- Add
add_splitbeam_anglefunction to theconsolidatesubpackage (#916, #971) - Add a new
masksubpackage- Add
apply_maskfunction to themasksubpackage (#912) - Add
frequency-differencingfunction to themasksubpackage (#901)
- Add
- Allow selection of a subset of channels when combining multiple echodata objects (#892)
- This is done via the added
channel_selectioninput argument tocombine_echodata
- This is done via the added
- Add default consolidated flag for
echodata.to_zarr(#855) - Generalize and improve efficiency of
compute_MVBS(#878)- Allow
echo_rangethat vary withping_time - Allow
Svdata that are dask arrays
- Allow
- Add
.nbytesto obtain that data size of anechodataobject (#874) - Add new data variables from the raw data files to facilitate EK80 calibration (#944)
- transceiver type, transmit impedance, receive impedance, receiver sampling frequency
Enhancements and other changes
- Unify the order of dimensions of
echo_rangeacross all sonar models (#968) - Create and use the default echopype home directory (#896, #954)
- This default directory is at
~/.echopype
- This default directory is at
- Refactor the
calibratesubpackage (#904)- routines for
env_paramsandcal_paramsintake and range computation are now in different modules rather than methods in each classes - Tidy up
cal_paramsrelated routines (#953) - Revise
env_paramsrelated routines (#952)
- routines for
- Improving pulse compressed broadband Sv computation and echo range computation (#944)
- The resulting values are tested against pyEcholab and Echoview outputs
- Note there is unresolved discrepancy between pyEcholab/Echopype outputs with Echoview outputs for the first section of Sv values
- Change input argument names for
open_raw(#962)- Change
offload_to_zarrtouse_swap - Change
max_zarr_mbtomax_mb
- Change
Bug fixes
- Handling of provenance attributes in apply-mask and add-depth, especially for testing (#930)
- Fix bugs in combining multiple echodata objects (the
combine_echodatafunction)- Fix meta_source_filenames bug and enable (meta)source_filenames appending of path and list (#913)
- Fix bugs in
env_paramsintake for calibration (#952)
Infrastructure
- Update docker build for arm64 mac silicon chips (#964)
- Fix windows github actions workflow (#947)
- Remove mamba dependency (#946)
- Fix pre-commit ci and update RTD config for jupyter-book (#934)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 3 years ago
Echopype - v0.6.3
Overview
This is a minor release that includes an important performance enhancement for combining large volumes of data residing in individual files into a single entity, a number of bug fixes, and other smaller improvements.
New features
- Overhaul
combine_echodatafunction- Allow combine a large number of
EchoDataobjects exceeding memory limits (#808, #824, #830) - Remove reversed time check from combine_echodata (#835)
- Add minimal ZarrCombine test (#826)
- Order the channel coordinate in file conversion to ensure consistent combination across files (#818)
- Revise outdated data combination behavior (#797, #799)
- Clean up all coordinate and attribute details under
combine_echodatafunction (#848, #849)
- Allow combine a large number of
- Track provanance for filenames of raw data files and auxiliary files
- Propagate
xml_pathasmeta_source_filenamesto combined echodata (#814, #852) - Standardize handling of
source_filenamesin individual and combined echodata as well as downstream datasets (#804, #806)
- Propagate
Under the hood enhancements
- Clean up functions for setting encoding in the converted files (#851)
- Add
requestsandaiohttpto dependency (#844) - Pin
netcdf4to be <1.6 for pypi package due to ongoingnetcdf-cproblem (#843) - Write
Parsed2Zarrgenerated files totemp_echopype_output/parsed2zarr_temp_files(#832) - Change
iseltoselto fixcompute_Svto allow working with dask array (#828) - Add
open_raw(offload_to_zarr=True)integration tests (#794)
Bug fixes
- Fix regression bug with interpolating environmental variables to
ping_timegrid (#837, #856) - Fix WindowsPath error with compute_Sv when run on Windows (#829)
- Fix logic problem in
open_raw(offload_to_zarr=True)that sometimes cause problems (#794, #853)
Infrastructure
- Update CI to use micromamba (#805)
- Fix version string on CI (#804, #820)
- Rename
ci.yamltobuild.yamlfor clarity (#807)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 3 years ago
Echopype - v0.6.2
Overview
This is a minor release that includes a few new features and memory efficiency-related changes that make echopype better.
New features
- Add a new subpackage
consolidatethat contains functions to consolidate data across the calibrated Sv dataset and the corresponding raw-converted file - Add function
consolidate.add_locationto interpolate location to calibrated dataset (#749) - Add function
consolidate.add_depthto convertrange_metertodepthwith information on transducer tilt and depth (#738) - Move function that swaps the channel with frequency dimension (now as
consolidate.swap_dims_channel_frequency) (#738) - Add new functionality to allow control of logging outputs (#772)
Under the hood enhancements
- Improve memory usage while converting files that require significant NaN-padding and previously would incur very large memory expansion (#774)
- This is achieved by directly writing variables that may incur a large memory expansion into a temporary zarr store
- Beta function that will benefit from user feedback
- Overhaul access pattern for EchoData (#762)
- Remove previous access pattern for different groups in the raw-converted file
- Starting from this release all groups are accessed with
echodata["GROUP_PATH"], e.g.,echodata["Platform"],echodata["Sonar/Beam_group1"], etc.
- Make long_name in ds_power for EK80 consistent with other sonar model (#771)
- Modify
set_beam()so it returns a list (#780) - Change the order in
_save_groups_to_fileso the order of groups is preserved when opening a converted netcdf file (#779) - Remove the user option to select NMEA sentences in
open_rawto ensure raw data is preserved (#778)
Infrastructure
- Update CI set up to avoid exceeding GitHub actions memory limitation (#761)
- decrease the number of workers from 4 to 2
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 3 years ago
Echopype - v0.6.1
Overview
This is a minor release that includes important bug fixes, a number of new features, and some leftover data format changes specific to parsed AD2CP data format.
Bug fixes
- We use
datatreeunder the hood for theEchoDataobject, butdatatreev0.0.4 had a bug in accessing subgroups in netCDF data model in Windows OS. This was fixed indatatreev0.0.6, and hence we updated our dependency and made other associated changes to support cross platform users (#732, #748) - Fix empty Sv problem related to renaming time coordinate associated with environmental parameters used for calibration; this is a regression bug from v0.6.0 changes (#755)
- Fix a bug in
compute_MVBSin selectingecho_rangefor specific frequency. This is a regression bug from v0.6.0 changes (#736) - Allow parsing data from EK60 with split-beam transducers but without phase/angle data (#491, #718)
- Check filter coeffs existence in
SetGroupsEK80.set_vendorbefore saving (#720, #724) - Fix the check in
compute_MVBSfor handling different variations of NaN entries in the Sv dataset (#753) - Fix invalid timestamp issue in AD2CP data conversion (#733)
New features
- Enhance
update_platformto support a new use case (location data from fixed location) and add more consistency (#741) - Ability to parse and store RAW4 datagram for EK80 data (#714)
- Add utility function for swapping
channelcoordinate withfrequency_nominal(#710) - Add ES70, ES80, EA640 to allowed data type for calibration (#759)
Changes of netCDF data model
- Reorganize AD2CP data variables into different
Sonar/Beam_groupXs and different first-level groups in a form consistent with v0.6.0 changes for all other sonar models (#731); some variables remain to be discussed and may change in future releases (#719)
Enhancements
- Refactor AD2CP conversion to improve speed and memory usage through removal of xr.merge (#505)
- Update Python requirements in docs to >=3.8 (#744)
Infrastructure
- Update PR action to use PR title [all tests ci] to run the entire suite of tests and [skip ci] to skip all tests (#721)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 3 years ago
Echopype - v0.6.0
Overview
This is a major release that contains changes that enhances the compliance of echopype data model (and hence generated file structure) to the SONAR-netCDF4 convention Version 1.0 . In addition, some variables were renamed to improve intuitive understanding of sonar data, provenance and standardized attributes are added to the processed dataset (e.g. Sv), the deprecated old API (<0.5.0) was removed, and some bugs were fixed.
Changes of netCDF data model
- Move and rename the original
BeamandBeam_powergroup to be subgroups under theSonargroup, in order to comply with the structure defined in the convention (#567, #574, #605, #606, #611)Beam-->Sonar/Beam_group1: contains either raw power or power/angle data for all sonar models other than EK80. For EK80, if only complex or power/angle data exist, all data are in this group; if both complex and power/angle data exist, the complex data are in this group.Beam_power-->Sonar/Beam_group2: contains power/angle when complex data occupiesSonar/Beam_group1; only exists for EK80 data when both power/angle data and complex data bothexist in the file
- Rename the coordinate
range_bintorange_sampleto make it obvious that this coordinate indicates the digitization sample number for the sound waveform or intensity time series, and hence it takes a form of sequential integers 0, 1, 2, 3, ... (#595) - Rename the data variable
rangein the calibrated Sv or TS dataset toecho_range, so that it is not confused with the python built-in function (#590) - Rename the coordinate
quadrantfor EK80 data tobeam(#619) - Add coordinate
beamwith length 1 for all sonar models, except for AD2CP (#638, #646) - Rename the data variable
SptoTSsince "point backscattering strength" is a Simrad terminology and target strength (TS) is clearly defined and widely used. (#615) - Rename time dimensions in the
Platformgroup (location_time:time1,mru_time:time2) (#518, #631, #647) - Rename the coordinate
frequencytochannelfor all groups, to be more flexible (can accommodate channels with identical frequencies #490) and reasonable (since for broadband data the channel frequency is only nominal #566) (#657) - Rename the data variable
heavetovertical_offsetin the Platform group (#592, #623) - Change
src_filenamesstring attribute tosource_filenameslist-of-strings variable (#620, #621) - Bring consistency to the names of the time coordinates for the
PlatformandEnvironment groups(#656, #672)
Changes of EchoData group access pattern
- The groups can now be accessed via a path in the form
echodata["Sonar/Platform"],echodata["Sonar/Platform"],echodata["Sonar/Beam_groupX"], etc. using DataTree v0.0.4 functionalities. (#611) - The previous access pattern
echodata.platform,echodata.sonar,echodata.beam, etc. is deprecated and will be removed in v0.6.1.
Addition of attributes and variables in raw-converted and processed data
- Add indexing info for
Beam_groupXas data variable under theSonargroup (#658) - Add missing coordinate and variable attributes in the processed datasets Sv, MVBS, TS(#594)
- Add
water_levelto processed datasets (Sv, MVBS, TS) for convenient downstream conversion to depth (#259, #583, #615) - Add additional environment variables for EK80 data (#616)
- Add missing platform data variables (#592, #631, #649, #654)
New features and other enhancements
- Add parser for Echoview ECS file (#510)
- Add provenance to raw-converted and processed datasets (#621)
- Consolidate convention specs into a single yml file for pre-loading when creating
EchoDataobjects (#565) - Extra visualization module can now handle both
frequencyandchannelfiltering, as well as files with duplicated frequencies (#660) - Improve selection of Vendor-specific calibration parameters for narrowband EK data (#697)
CI improvements
- Upgrade python minimum to 3.8 and tidy up packaging (#604, #608, #609)
- Upgrade echopype development status to Beta (#610)
- Update
setup-services.pyto include images & volumes subtleties (#651)
Other changes
- Remove the deprecated old (<0.5.0) API (#506, #601)
- Update README in the
echopype/test_datafolder (#584) - Add documentation for visualization (#655)
- Add development roadmap to documentation (#636, #688)
- Restructure and expand data format section (#635)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 4 years ago
Echopype - v0.5.6
This is a minor release that contains an experimental new feature and a number of enhancements, clean-up and bug fixes, which pave the way for the next major release.
New feature
- (beta) Allow interpolating CTD data in calibration (#464)
- Interpolation currently allowed along the
ping_timedimension (the"stationary"case) and acrosslatitudeandlongitude(the"mobile"case). - This mechanism is enabled via a new
EnvParamsclass at input of calibration functions.
- Interpolation currently allowed along the
Enhancements
- Make visualize module fully optional with
matplotlib,cmoceanbeing optional dependency (#526, #559) - Set range entries with no backscatter data to NaN in output of
echodata.compute_range()(#547) and still allows quick visualization (#555) - Add
codespellGitHub action to ensure correct spellings of words (#557) - Allow
sonar_model="EA640"foropen_raw(before it had to be "EK80") (#539)
Bug fixes
- Allow using
sonar_model="EA640"(#538, #539) - Allow flexible and empty environment variables in EA640/EK80 files (#537)
- Docstring overhaul and fix bugs in
utils.uwa(#525)
Documentation
- Upgrade echopype docs to use jupyter book (#543)
- Change the RTD
latestto point to thedevbranch (#467)
Testing
- Update convert tests to enable parallel testing (#556)
- Overhaul tests (#523, #498)
- use
pytest.fixturefor testing - add ES70/ES80/EA640 test files
- add new EK80 small test files with parameter combinations
- reduce size for a subset of large EK80 test data files
- use
- Add packaging testing for the
devbranch (#554)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 4 years ago
Echopype - v0.5.5
This is a minor release that includes new features, enhancements, bug fixes, and linking to an echopype preprint.
New features
- Allow converting ES60/70/80 files and handle various datagram anomaly (#409)
- Add simple echogram plotting functionality (beta) (#436)
Enhancements
update_platformmethod forEchoDatanow include proper variable attributes and correctly selects time range of platform data variables corresponding to those of the acoustic data (#476, #492, #493, #488)- Improve testing for
preprocess.compute_MVBSby running through real data for all supported sonar models (#454) - Generalize handling of Beam group coordinate attributes and a subset of variable attributes (#480, #493)
- Allow optional kwargs when loading
EchoDatagroups to enable delaying operations (#456)
Bug fixes
- The gain factor for band-integrated Sv is now computed from broadband calibration data stored in the Vendor group (when available) or use nominal narrowband values (#446, #477)
- Fix time variable encoding for
combine_echodata(#486) - Fix missing
ping_timedimension in AZFP Sv dataset to enable MVBS computation (#453) - Fix bugs re path when writing to cloud (#462)
Documentation
- Improvements to the "Contributing to echopype" page: Elaborate on the git branch workflow. Add description of PR squash and merge vs merge commit. Add instructions for running only a subset of tests locally (#482)
- Add documentation about
output_storage_optionsfor writing to cloud storage (#482) - Add documentation and docstring for
sonar_modelinopen_raw(#475) - Improve documentation of EchoData object by adding a sample of the xarray Dataset HTML browser (#503)
Others
- Zenodo badge update (#469)
- Add github citation file (#496), linking to echopype preprint on arXiv
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 4 years ago
Echopype - v0.5.4
Overview
This is a minor release that contains a few bug fixes and new functionalities.
The repo has migrated to use main instead of master after this release.
New features
- Adding external platform-related data (e.g., latitude, longitude) to the EchoData object via the
update_platformmethod (#434) - Allow converting and storing data with duplicated ping times (#433)
- Add simple functions to compute summary statistics under the
metricssubpackage (#444)
Bug fixes
- Allow string info in AD2CP data packet header (#438)
- Re-attach
sonar_modelattribute to outputs ofcombine_echodata(#437) - Handle exception in
open_converteddue to potentially emptybeam_powergroup in Zarr files (#447)
Others
- Warn users of removal of old API in the next release (#443)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 4 years ago
Echopype - v0.5.3
Overview
This is a minor release that adds a few new functionalities, in particular a method to combine multiple EchoData objects, addresses a few bugs, improves packaging by removing pinning for dependencies, and improving the testing framework.
New features
- Add a new method to combine multiple EchoData objects (#383, #414, #422, #425 )
- Potential time reversal problems in time coordinates (e.g.,
ping_time,location_time) are checked and corrected as part of the combine function - The original timestamps are stored in the
Provenancegroup
- Potential time reversal problems in time coordinates (e.g.,
- Add a new method
compute_rangeforEchoDataobject (#400) - Allow flexible extensions for AZFP files in the form ".XXY" where XX is a number and Y is a letter (#428)
Bug fixes
- Fix the bug/logic problems that prevented calibrating data in EK80 files that contains coexisting BB and CW data (#400)
- Fix the bug that prevented using the latest version of
fsspec(#401) - Fix the bug that placed
echosounder_raw_transmit_samples_i/qas the first ping inechosounder_raw_samples_i/qas they should be separate variables (#427)
Improvements
- Consolidate functions that handle local/remote paths and checking file existence (#401)
- Unpin all dependencies (#401)
- Improve test coverage accuracy (#411)
- Improve testing structure to match with subpackage structure (#401, #416, #429 )
Documentaion
- Expand
Contributing to echopypepage, including development workflow and testing strategy (#417, #420, #423)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 4 years ago
Echopype - v0.5.2
Overview
This is a minor release that addresses issues related to time encoding for data variables related to platform locations and data conversion/encoding for AD2CP data files.
Bug fixes and improvements
- Fixed the
location_timeencoding in thePlatformgroup for latitude and longitude data variables (#393) - Fixed the
location_timeencoding in thePlatform/NMEAgroup (#395) - Updated
EchoDatarepr to showPlatform/NMEA(#395, #396) - Improved AD2CP data parsing and conversion (#388)
- Cleaned up organization of data from different sampling modes and their corresponding time coordinates
- Fixed parsing issues that generated spikes in parsed echosounder mode amplitude data
- Removed the
Beam_complexgroup and put raw IQ samples in theVendorgroup per convention requirements - Populated the
Sonargroup with AD2CP information
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 4 years ago
Echopype - v0.5.1
Overview
This is a minor release that addresses a couple of issues from the last major version (0.5.0) and improves code maintenance and testing procedures. See v0.5.0 release notes for important API changes relative to previous versions.
New features
- Added experimental functions to detect and correct
ping_timereversals.
Seeqcsubpackage (#297)
Updates and bug fixes
- Fixed ADCP encoding issues (#361)
- Updated
SetGroupsBaseto use ABC (Abstract Base Classes) Interface (#366) - Whole code-base linted for pep8 (#317)
- Removed old test data from the repository, including from Git LFS (#369, #271)
- Updated package dependencies (#365)
- Simplified requirements for setting up local test environment (#375)
CI improvements
- Added code coverage checking (#317)
- Added version check for echopype install (#367, #370)
Biosphere - Marine Life and Fishery
- Python
Published by lsetiawan almost 5 years ago
Echopype - v0.5.0 (Major API update)
Overview
This release includes:
- major API updates to provide a more coherent data access pattern
- restructuring of subpackages and classes to allow better maintenance and future expansion
- reorganization of documentation, which also documents the API changes
- overhaul and improvements of CI, including removing the use of Git LFS to store test data
- new features
- bug fixes
API updates
The existing API for converting files from raw instrument formats to a standardized format, and for calibrating data and performing operations such as binned averages and noise removal has been updated.
The new API uses a new EchoData object to encapsulate all data and metadata related to/parsed from a raw instrument data file. Beyond the calibration of backscatter quantities, other processing functions follow a consistent form to take an xarray Dataset as input argument and returns another xarray Dataset as output.
The major changes include:
- change from an object-oriented method calls to functional calls for file conversion (using the new
convertsubpackage), and deprecate the previousConvertclass for handling file parsing and conversion - deprecate the previous
Processclass, which use object-oriented method calls for performing both calibration and data processing - separate out calibration functions to a new
calibratesubpackage - separate out noise removal and data reduction functions to a new
preprocesssubpackage - create a new
EchoDataobject class that encapsulates all raw data and metadata from instrument data files, regardless of whether the data is being parsed directly from the raw binary instrument files (returned by the new functionopen_raw) or being read from an already converted file (returned by the new functionopen_converted)
See documentation for detailed usage of the new API.
Subpackage and class restructuring
The subpackages and classes were restructured to improve modularity that will help will future expansion and maintenance. The major restructuring includes:
("SONAR" below is used to indicate the sonar model, such as EK60, EK80 or AZFP)
- consolidate overlapping EK60/EK80 components, deprecate the previous
Convertclasses that handled file parsing and serialization, and revise newParseSONARandSetGroupsSONARclasses for file parsing and serialization - consolidate all calibration-related components to a new
calibratesubmodule, which usesCalibrateSONARclasses under the hood - consolidate all preprocessing functions into a a new
preprocesssubmodule, which will be later expanded to include other functions with similar use in a workflow
CI overhaul and improvements
- Added github workflows for testing, building test docker images, and publishing directly to PyPI
- Deprecated usage of Travis CI
- Test run is now selective on Github, to run tests only on changed/added files. Or run all locally with
run-test.pyscript. (#280, #302)
Documentation reorganization and updates
- Re-organization of pages with better grouping
- Added
What's Newpage - Added
Contributing to echopypepage - Overhaul
API referencepage
New features
- Add interfacing capability to read from and write to cloud object storage directly. (#216, #240)
- Add support to convert
.ad2cpfiles generated by Nortek's Signature series ADCP (#326) - Allow environmental and calibration parameters to be optionally used in calibration in place of the values stored in data file
- Mean volume backscattering strength (MVBS) can now be computed based on actual time interval (specified in seconds) and range (specified in meters) (#54)
- Add NMEA message type as a data variable in the
Platformgroup (#232), which allows users to freely select the suitable ones depending on use
Bug fixes
- Fix EK80 config XML parsing problem for files containing either
PulseDurationorPulseLength(#305) - Fix time encoding discrepancy in AZFP conversion (#328)
- Fix problematic automatic encoding of AZFP frequency (previously as
int) tofloat64(#309) - Overhaul EK80 pulse compressed calibration (current implementation remaining in beta, see #308)
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 5 years ago
Echopype - Patches and enhancements to file conversion
This minor release includes the following changes:
Bug fixes
- Fix bug in top level .nc output when combining multiple AZPF
.01Afiles - Correct time stamp for
.rawMRU data to be from the MRU datagram, instead of those from the RAW3 datagrams (although they are identical from the test files we have). - Remove unused parameter
sa_correctionfrom broadband.rawfiles - Make sure import statement works on Google colab
Enhancements
- Parse Simrad EK80 config XML correctly for data generated by WBAT and WBT Mini, and those involving the 2-in-1 "combi" transducer
- Parse Simrad
.rawfiles withNME1datagram, such as files generated by the Simrad EA640 echosounder - Handle missing or partially valid GPS data in
.rawfiles by padding with NaN - Handle missing MRU data in
.rawfiles by padding with NaN - Parse
.rawfilename with postfix beyond HHMMSS - Allow export EK80 XML configuration datagram as a separate XML file
Notes
To increase maintenance efficiency and code readability we are refactoring the convert and process modules. Some usage of these modules will change in the next major release.
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 5 years ago
Echopype - Add EK80 conversion, rename subpackage model to process
New features
- Add EK80 support:
- File conversion from EK80
.rawfiles to netCDF and zarr formats - "Simple" calibration to frequency-average Sv based on pulse compression output is implemented but needs to be thoroughly tested.
- File conversion from EK80
- Rename subpackage
echopype.modeltoechopype.process- The new name better describes the subpackage's function to process data for further analysis
- Also rename class
EchoDatatoProcessto mirror the structure inConvertbetter. - Importing using the old names will be deprecated in the next release.
- Overhaul converting multiple files with
combine_opt=True- If target format is netCDF, temporary files will be created and finally combined to a single netCDF. This is due to current restriction that xarray does not allow simply appending new data to an existing file.
- If target format is zarr, data in each file are unpacked and appended to the same output file.
- Allow reading Zarr into
Processin addition to netCDF: thanks @lsetiawan! - Add a logo!
Bug fixes
- Fix bugs in slicing NMEA group data based on the same time base when
range_binis changed
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 5 years ago
Echopype - Bug fix for remove noise and testing env update
This minor release includes the following:
- fix the bug in remove_noise function for AZFP data (issue #110)
- update testing to use both python 3.7 and 3.8
- include how to pull test files using git LFS in documentation
- remove a stalled command line file converter that won't be further developed
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 6 years ago
Echopype - Bug fixes and calibration parameter updates
This minor release includes a few bug fixes:
- fix zarr saving error in the Provenance group in the previous release
- fix bugs in updating environmental parameters (used for calibration) for EK60 and AZFP
- allow users to update calibration parameters in EK60
- update notebook EK60_demo_OOI.ipynb to use new raw data archive folder structure
Biosphere - Marine Life and Fishery
- Python
Published by leewujung almost 6 years ago
Echopype - Add more convert options, accommodate range differences
This release contains updates to the convert and model module:
- Correct file parsing and storage for split-beam angle.
- Allow user-defined environmental variables to be used in calibration.
- Accommodate EK60 setting variabilities in the
range_bindimension.- The raw file will be split into multiple .nc files if the length of
range_binchanges in the middle. - For cases when different frequency has different length of
range_bin, the shorter channels are padded withNaN.
- The raw file will be split into multiple .nc files if the length of
- Allow combining multiple files during unpacking.
- Options to:
- overwrite previously converted files.
- specify output directory and filename postfix for
.calibration()and.get_MVBS()operations.
- Add support to convert to .zarr file. Note processing functionalities have not been fully supported.
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 6 years ago
Echopype - Add support for AZFP with uniform interface
This release includes major changes to the package structure and functionality improvements:
- Added support for handling
.01Adata files from the AZFP echosounder. - Changed the module structure to enable a uniform interface to work with EK60 and AZFP data.
- Improvements to EK60 components:
- Included NMEA datagram unpacking in file conversion routine.
- Added handling for pings with different range setting within the same data file. This feature is experimental and the default behavior will change in future release.
Biosphere - Marine Life and Fishery
- Python
Published by leewujung over 6 years ago
Echopype - Updated versioning setup
Minor update:
- use versioneer for auto-versioning
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 7 years ago
Echopype - Added EK60 data model and methods
Biosphere - Marine Life and Fishery
- Python
Published by leewujung about 7 years ago