Releases: CameronBodine/PINGMapper
v4.2
What's New
- Ping-wise rectification based on Heading and COG
- Updated sonar tile workflows. More Info
What's Changed
- Merge dev with main by @CameronBodine in #149
Full Changelog: v4.0...v4.2
PINGMapper v4.0
New Features
PINGMapper has been turned into a PyPi package. Two additional PyPi packages are also created and are new dependencies: PINGInstaller and PINGWizard. PINGInstaller dramatically improves the installation of PINGMapper, the ping environment, and all dependencies. Another package called PINGWizard now acts as the entry point for PINGMapper and other packages in the PING ecosystem.
- PINGMapper is a PyPi package
- PINGInstaller - Light-weight application for installing PING ecosystem (PINGMapper, etc.)
- PINGWizard - Light-weight interface for running PING ecosystem (PINGMapper, etc.)
What's Changed
- Update gitignore by @CameronBodine in #140
- Pull Dev v4.0.0 into main by @CameronBodine in #141
Full Changelog: v3.0.0...v4.0
PINGMapper v3.0.0
New Features
Introducing PINGVerter v1.0.1
PINGVerter is a new Python-based convertor for sonar logs collected with consumer-grade fishfinders. PINGMapper now uses PINGVerter as the primary processing engine for decoding sonar logs. It is designed to ease adding support for new sonar data acquisition platforms and filetypes. Find out more below...
Support for Lowrance®
It is now possible to process sl2 and sl3 files with PING-Mapper. All of the processing features PING-Mapper made possible for Humminbird® are now available for Lowrance®. This includes EGN corrections, shadow removal, depth detection, substrate mapping, etc.
Acknowledgments
Adding support for sl2/3 files would not have been possible without these incredible open-source projects and documentation:
- SL3Reader
- Halmai, Akos; Gradwohl Valkay, Alexandra; Czigany, Szabolcs; Ficsor, Johanna; Liptay, ZoltAn Arpad; Kiss, Kinga; Loczy, Denes and Pirkhoffer, Ervin. 2020. "Applicability of a Recreational-Grade Interferometric Sonar for the Bathymetric Survey and Monitoring of the Drava River" ISPRS International Journal of Geo-Information 9, no. 3: 149. https://doi.org/10.3390/ijgi9030149
- sonarlight - Kenneth Thoro Martinsen
- Navico (Lowrance, Simrad, B&G) Sonar Log File Format - Herbert Oppmann
Please report any issues with processing sl2 or sl3 files here
~1.3x Speedup
PINGVerter and PINGMapper now feature an improved mechanism for reading sonar logs, inspired by sonarlight. This results in ~1.3x speedup when running the Small Dataset Test.
Recently released v2.1.0
The recently released v2.1.0 also had important improvements and bug fixes including:
- Sonar Log Filtering
- Coverage and Trackline Shapefile Export
- Fix to Bankline Shapefile Export
Read the details in the release.
What's Changed
- Merge pull request #126 from CameronBodine/dev by @CameronBodine in #127
- Kludge to fix tf.shape for shadow model #128 by @CameronBodine in #129
- Merge dev branch for v3.0.0-alpha by @CameronBodine in #130
Full Changelog: v2.1.0...v3.0.0
PINGMapper v3.0.0-alpha
New Features
Introducing PINGVerter v1.0.1
PINGVerter is a new Python-based convertor for sonar logs collected with consumer-grade fishfinders. PINGMapper now uses PINGVerter as the primary processing engine for decoding sonar logs. It is designed to ease adding support for new sonar data acquisition platforms and filetypes. Find out more below...
Support for Lowrance®
It is now possible to process sl2 and sl3 files with PING-Mapper. All of the processing features PING-Mapper made possible for Humminbird® are now available for Lowrance®. This includes EGN corrections, shadow removal, depth detection, substrate mapping, etc.
Acknowledgments
Adding support for sl2/3 files would not have been possible without these incredible open-source projects and documentation:
- SL3Reader
- Halmai, Akos; Gradwohl Valkay, Alexandra; Czigany, Szabolcs; Ficsor, Johanna; Liptay, ZoltAn Arpad; Kiss, Kinga; Loczy, Denes and Pirkhoffer, Ervin. 2020. "Applicability of a Recreational-Grade Interferometric Sonar for the Bathymetric Survey and Monitoring of the Drava River" ISPRS International Journal of Geo-Information 9, no. 3: 149. https://doi.org/10.3390/ijgi9030149
- sonarlight - Kenneth Thoro Martinsen
- Navico (Lowrance, Simrad, B&G) Sonar Log File Format - Herbert Oppmann
Please report any issues with processing sl2 or sl3 files here
~1.3x Speedup
PINGVerter and PINGMapper now feature an improved mechanism for reading sonar logs, inspired by sonarlight. This results in ~1.3x speedup when running the Small Dataset Test.
Recently released v2.1.0
The recently released v2.1.0 also had important improvements and bug fixes including:
- Sonar Log Filtering
- Coverage and Trackline Shapefile Export
- Fix to Bankline Shapefile Export
Read the details in the release.
What's Changed
- Merge pull request #126 from CameronBodine/dev by @CameronBodine in #127
- Kludge to fix tf.shape for shadow model #128 by @CameronBodine in #129
- Merge dev branch for v3.0.0-alpha by @CameronBodine in #130
Full Changelog: v2.1.0...v3.0.0-alpha
PINGMapper v2.1.0
New Features
Sonar Log Filtering
You can now filter a sonar log based on heading deviation over a provided distance, minimum and maximum vessel speed, or based on an Area of Interest (AOI) shapefile. Once filtered, survey transect mosaics are automatically made from contiguous chunks. This enables toggling visibility or layer ordering in a GIS.
Coverage & Trackline Shapefile
Option to export sonar coverage polygon and track points to shapefile.
Bug Fixes
Bankline Shapefile
Fixed the bankline shapefile export. Previously, the bankline polygon was generated from the sonar mosaic. If the mosaic was very large, this would often result in an OOM error. The new new workflow generates a bankline for each chunk, then merges and dissolves into a final shapefile.
What's Changed
- Sonar log filter, coverage, bankline workflow by @CameronBodine in #126
Full Changelog: v2.0.0...v2.1.0
PINGMapper v2.0.0
PINGMapper v2.0.0 adds to existing functionality from v1.0.0 and many bug fixes. The new features will be documented in a forthcoming manuscript. If you encounter any issues, please report them here with the corresponding logs.
New Features
Automated Substrate Classification
Neural network models trained with Segmentation Gym have been incorporated into PINGMapper. The models will perform a pixel-wise prediction across 6 different substrate classes [Fines - Rippled, Fines - Flat, Cobble - Boulder, Hard Bottom, Wood, Other]. Plots of the predictions can be optionally exported. Raster and polygon maps can also be exported and overlayed on the sonar mosaics.
NOTE: Exercise caution when interpreting and using the outputs from the substrate prediction. The models were trained on two river systems in Mississippi. It is currently unknown how well the models will perform on other aquatic systems.
Image Corrections
To correct for the impact of attenuation on the sonar imagery, a new feature called Empirical Gain Normalization (EGN) is now available. This process involves calculating the average pixel intensity for each range bin and dividing the raw backscatter by the associated average.
NOTE: Correcting imagery with EGN does take some time; please be patient.
Use Matplotlib colormaps on sonar mosaics
You can now assign one of matplotlibs many colormaps to sonar mosaics.
GUI
PINGMapper now includes a simple GUI for passing processing parameters rather then editing the Python script. Run the GUI with python gui_main.py or python gui_main_batchDirectory.py.
Ready to get started?
New PINGMapper Users
Please follow the installation instructions.
Existing PINGMapper Users
Update your current installation by following these instructions.
Then check to make sure everything is running as expected by running the test.
What's Changed
- Pull v1.1.0 bug fixes into dev by @CameronBodine in #44
- Remove USE_GPU option and issue with fixNoDat by @CameronBodine in #45
- Add explicit pip installation #47 by @CameronBodine in #48
- Fix negative values after smoothing w/ instrument depth #43 #49 by @CameronBodine in #50
- main to dev by @CameronBodine in #51
- Change gdal import by @CameronBodine in #52
- main to dev by @CameronBodine in #53
- Use weights stored in object #54 by @CameronBodine in #55
- Pull main changes to dev by @CameronBodine in #59
- Pull from main by @CameronBodine in #62
- Update sonar tile export options by @CameronBodine in #63
- Pull main into dev by @CameronBodine in #64
- Merge EGN workflow into dev by @CameronBodine in #70
- Add h5py to yml by @CameronBodine in #71
- Pulling
cropRangefunctionality by @CameronBodine in #79 - Pull x/y offset workflow from main to dev by @CameronBodine in #82
- Massive mem leak #38 should fix #78 too. Don't return self! by @CameronBodine in #86
- Numpy deprecation: use int instead of np.int #85 by @CameronBodine in #87
- Merging dev to main for v2.0.0-alpha release by @CameronBodine in #89
- Pull main into dev by @CameronBodine in #91
- Error in main scripts by @CameronBodine in #93
- Merge pull request #93 from CameronBodine/dev by @CameronBodine in #94
- Add a simple gui by @CameronBodine in #95
- Add Ubuntu install instructions by @mirkix in #98
New Contributors
Full Changelog: v1.1.0...v2.0.0
PINGMapper v2.0.0-alpha
PINGMapper v2.0.0-alpha adds to existing functionality from v1.0.0 and many bug fixes. The new features will be documented in a forthcoming manuscript, at which time a production-ready release will be made. Bugs are expected!!! Please report them here.
New Features
Automated Substrate Classification
Neural network models trained with Segmentation Gym have been incorporated into PINGMapper. The models will perform a pixel-wise prediction across 6 different substrate classes [Fines - Rippled, Fines - Flat, Cobble - Boulder, Hard Bottom, Wood, Other]. Plots of the predictions can be optionally exported. Raster and polygon maps can also be exported and overlayed on the sonar mosaics.
NOTE: Exercise caution when interpreting and using the outputs from the substrate prediction. The models were trained on two river systems in Mississippi. It is currently unknown how well the models will perform on other aquatic systems.
Image Corrections
To correct for the impact of attenuation on the sonar imagery, a new feature called Empirical Gain Normalization (EGN) is now available. This process involves calculating the average pixel intensity for each range bin and dividing the raw backscatter by the associated average.
NOTE: Correcting imagery with EGN does take some time; please be patient.
Use Matplotlib colormaps on sonar mosaics
You can now assign one of matplotlibs many colormaps to sonar mosaics.
Ready to get started?
New PINGMapper Users
Please follow the installation instructions.
Existing PINGMapper Users
Update your current installation by following these instructions.
Then check to make sure everything is running as expected by running the test.
v1.1.0 Auto Depth & Shadow Detection
New workflows, models, and bug fixes added to PING-Mapper since v1.0.0:
- Automated depth detection (#31)
- Automated shadow removal (#37, updated model coming in near future)
- Export speed corrected non-rectified images for labeling w/ Doodler (#35)
- Process corrupt recordings w/ missing data (#33)
- Addressed memory leaks during batch processing (#38)
- And other minor bug fixes...
What's Changed
- Development --> Main by @CameronBodine in #40
- Merge pull request #40 from CameronBodine/development by @CameronBodine in #41
- Merge pull request #41 from CameronBodine/main by @CameronBodine in #42
Full Changelog: v1.0.0...v1.1.0
v1.0.0 PING-Mapper Paper
Overview
PING-Mapper is a Python interface for reading, processing, and mapping side scan sonar data from Humminbird® sonar systems. This release is the archived version of PING-Mapper v1.0.0 (6/1/2022) described in the companion manuscript:
Bodine, C. S., Buscombe, D., Best, R. J., Redner, J. A., & Kaeser, A. J. (2022). PING-Mapper: Open-source software for automated benthic imaging and mapping using recreation-grade sonar. Earth and Space Science, 9, e2022EA002469. https://doi.org/10.1029/2022EA002469
Features
Decode Humminbird® Sonar Recordings
PING-Mapper will automatically decode sonar recordings (***.DAT, ***.SON, ***.IDX files) from any Humminbird model (tested on 1197, 1198, 1199, Helix, Solix, Onix models).
Export Ping Attributes
All associated ping attributes (latitude, longitude, heading, depth, etc.) are automatically exported to ***.CSV.
Export Sonograms
Option to export non-georectified sonograms with the water column present (WCP) or with the water column removed (WCR) based on the Humminbird® sensor depth estimates and slant-range correction with a flat-bottom assumption.
Export Trackline
A smoothed trackline is fit to raw GPS coordinates. New coordinates are re-interpolated along the smoothed trackline to ensure optimal sonar mosaics.
Export Sonar Mosaics
Export georectified sonar mosaics as geotiff with the water column present (WCP; spatially inaccurate bed locations due to presence of water column) or water column removed (WCR; spatially accurate bed locations) for further analysis in any GIS.
Full Changelog
Sample data for the PING-Mapper program
Sample sonar recording from the Pearl River, MS.
-
Instrument: Humminbird Solix w/ Mega Imaging.
-
Date collected: March 3, 2021.
-
Duration: 01h:00m:06s.
Distributed with permission from the U.S. Fish and Wildlife Service.

