pingmapper 4.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pingmapper-4.0.0/LICENSE +21 -0
- pingmapper-4.0.0/PKG-INFO +193 -0
- pingmapper-4.0.0/README.md +170 -0
- pingmapper-4.0.0/pingmapper/__init__.py +1 -0
- pingmapper-4.0.0/pingmapper/__main__.py +47 -0
- pingmapper-4.0.0/pingmapper/class_mapSubstrateObj.py +1228 -0
- pingmapper-4.0.0/pingmapper/class_portstarObj.py +2780 -0
- pingmapper-4.0.0/pingmapper/class_rectObj.py +1689 -0
- pingmapper-4.0.0/pingmapper/class_sonObj.py +3105 -0
- pingmapper-4.0.0/pingmapper/default_params.json +49 -0
- pingmapper-4.0.0/pingmapper/funcs_common.py +414 -0
- pingmapper-4.0.0/pingmapper/funcs_model.py +234 -0
- pingmapper-4.0.0/pingmapper/funcs_rectify.py +305 -0
- pingmapper-4.0.0/pingmapper/gui_main.py +367 -0
- pingmapper-4.0.0/pingmapper/gui_main_batchDirectory.py +415 -0
- pingmapper-4.0.0/pingmapper/main_mapSubstrate.py +692 -0
- pingmapper-4.0.0/pingmapper/main_readFiles.py +1744 -0
- pingmapper-4.0.0/pingmapper/main_rectify.py +592 -0
- pingmapper-4.0.0/pingmapper/test_PINGMapper.py +350 -0
- pingmapper-4.0.0/pingmapper/version.py +1 -0
- pingmapper-4.0.0/pingmapper.egg-info/PKG-INFO +193 -0
- pingmapper-4.0.0/pingmapper.egg-info/SOURCES.txt +24 -0
- pingmapper-4.0.0/pingmapper.egg-info/dependency_links.txt +1 -0
- pingmapper-4.0.0/pingmapper.egg-info/top_level.txt +1 -0
- pingmapper-4.0.0/setup.cfg +4 -0
- pingmapper-4.0.0/setup.py +50 -0
pingmapper-4.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Cameron S. Bodine
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: pingmapper
|
|
3
|
+
Version: 4.0.0
|
|
4
|
+
Summary: Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat
|
|
5
|
+
Author: Cameron Bodine
|
|
6
|
+
Author-email: bodine.cs@gmail.email
|
|
7
|
+
Project-URL: Issues, https://github.com/CameronBodine/PINGMapper/issues
|
|
8
|
+
Project-URL: GitHub, https://github.com/CameronBodine/PINGMapper
|
|
9
|
+
Project-URL: Homepage, https://cameronbodine.github.io/PINGMapper/
|
|
10
|
+
Keywords: pingmapper,sonar,ecology,remotesensing,sidescan,sidescan-sonar,aquatic,humminbird,lowrance,gis,oceanography,limnology
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Oceanography
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Hydrology
|
|
20
|
+
Requires-Python: <3.13
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
|
|
24
|
+
# PING-Mapper
|
|
25
|
+
[)](https://pypi.org/project/pingmapper/)
|
|
26
|
+
<!--  -->
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
[](https://github.com/CameronBodine/PINGMapper/commits)
|
|
30
|
+
[](https://github.com/CameronBodine/PINGMapper/commits)
|
|
31
|
+
[](https://github.com/CameronBodine/PINGMapper/blob/main/LICENSE)
|
|
32
|
+
|
|
33
|
+
[](https://www.python.org/)
|
|
34
|
+
[](https://www.anaconda.com/)
|
|
35
|
+
[](https://numpy.org/)
|
|
36
|
+
[](https://pandas.pydata.org/)
|
|
37
|
+
[](https://www.tensorflow.org/)
|
|
38
|
+
|
|
39
|
+
##
|
|
40
|
+
|
|
41
|
+
**Transform recordings from recreation-grade side scan sonar systems...**
|
|
42
|
+
|
|
43
|
+
<!-- <img src="../main/docs/attach/Suwa_Son.gif" width="800"/> -->
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+
|
|
47
|
+
*Video made with [HumViewer](https://humviewer.cm-johansen.dk/)*
|
|
48
|
+
|
|
49
|
+
**...into scientific datasets!**
|
|
50
|
+
|
|
51
|
+
<!-- <img src="../main/docs/attach/GithubMap.png" width="800"/> -->
|
|
52
|
+
|
|
53
|
+

|
|
54
|
+
|
|
55
|
+
# Overview
|
|
56
|
+
|
|
57
|
+
`PINGMapper` is an open-source Python interface for reading and processing side scan sonar datasets and reproducibly mapping benthic habitat features. `PINGMapper` transforms recreation-grade sonar systems (i.e. fishfinders) into scientific data collectors, allowing researchers and citizens alike to reproducibly map their aquatic system with minimal expertise in data processing.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### New Functionality & Bug Fixes (January 6, 2025)
|
|
61
|
+
- PINGMapper is a PyPi package
|
|
62
|
+
- [)](https://pypi.org/project/pingmapper/)
|
|
63
|
+
- [PINGInstaller](https://github.com/CameronBodine/PINGInstaller) - Light-weight application for installing PING ecosystem (PINGMapper, etc.)
|
|
64
|
+
- [)](https://pypi.org/project/pinginstaller/)
|
|
65
|
+
- [PINGWizard](https://github.com/CameronBodine/PINGWizard) - Light-weight interface for running PING ecosystem (PINGMapper, etc.)
|
|
66
|
+
- [)](https://pypi.org/project/pingwizard/)
|
|
67
|
+
|
|
68
|
+
### New Functionality & Bug Fixes (December 28, 2024)
|
|
69
|
+
- [PINGVerter](https://github.com/CameronBodine/PINGVerter) - A Python-based convertor for sonar logs collected with consumer-grade fishfinders.
|
|
70
|
+
- Support for Lowrance® *.sl2 and *.sl3 files!
|
|
71
|
+
- Improved mechanism for reading sonar logs, inspired by [sonarlight](https://github.com/KennethTM/sonarlight), resulting in **~1.3x speedup** when running the [Small Dataset Test](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted/Testing.html#small-dataset-test).
|
|
72
|
+
- [Sonar log filtering](https://github.com/CameronBodine/PINGMapper/releases/tag/v2.1.0) based on heading deviation, speed, and Area of Interest (AOI) shapefile.
|
|
73
|
+
- Export coverage and trackline shapefiles.
|
|
74
|
+
- Fix [bankline export](https://github.com/CameronBodine/PINGMapper/releases/tag/v2.1.0).
|
|
75
|
+
|
|
76
|
+
See the [v3.0.0 release notes](https://github.com/CameronBodine/PINGMapper/releases/tag/v3.0.0) for more information
|
|
77
|
+
|
|
78
|
+
### Key Functionality
|
|
79
|
+
- [PINGVerter](https://github.com/CameronBodine/PINGVerter) - A Python-based convertor for sonar logs collected with consumer-grade fishfinders.
|
|
80
|
+
- [)](https://pypi.org/project/pingverter/)
|
|
81
|
+
- Decode Humminbird® sonar recordings. For more information on Humminbird® recording file formats, [read the docs](https://cameronbodine.github.io/PINGMapper/docs/advanced/HumFileStructure.html).
|
|
82
|
+
|
|
83
|
+
- Decode Lowrance® *.sl2 and *.sl3 files. Lowrance® support made possible by open-source projects including [SL3Reader](https://github.com/halmaia/SL3Reader), [sonarlight](https://github.com/KennethTM/sonarlight), and [Navico (Lowrance, Simrad, B&G) Sonar Log File Format](https://www.memotech.franken.de/FileFormats/Navico_SLG_Format.pdf).
|
|
84
|
+
|
|
85
|
+
- If it doesn't work for your Humminbird® or Lowrance® recording, submit an [Issue](https://github.com/CameronBodine/PINGMapper/issues).
|
|
86
|
+
|
|
87
|
+
- Export all metadata from .DAT, .SON, .sl2, and .sl3 files to .CSV.
|
|
88
|
+
|
|
89
|
+
- Automatically detect depth (i.e. [Zheng et al. 2021](https://www.mdpi.com/2072-4292/13/10/1945)) and shadows in side scan channels .
|
|
90
|
+
|
|
91
|
+
- Correct sonar backscatter with Empiracle Gain Normalization.
|
|
92
|
+
|
|
93
|
+
- Export un-rectified sonar tiles with water column present (WCP) AND/OR export un-rectified sonograms with water column removed (WCR) using Humminbird depth estimates OR automated depth detections.
|
|
94
|
+
|
|
95
|
+
- Export speed corrected un-rectified sonograms.
|
|
96
|
+
|
|
97
|
+
- Smooth and interpolate GPS track points.
|
|
98
|
+
|
|
99
|
+
- Export georectified WCP (spatially inaccurate due to presence of water column) AND/OR WCR sonar imagery for use in GIS w/wo shadows removed.
|
|
100
|
+
|
|
101
|
+
- Mosaic georectified sonar imagery.
|
|
102
|
+
|
|
103
|
+
- Automatically segment and classify substrate patches.
|
|
104
|
+
|
|
105
|
+
More information on PING-Mapper exports can be found [here](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted/Exports.html).
|
|
106
|
+
|
|
107
|
+
## Compatible Sonar Systems
|
|
108
|
+
|
|
109
|
+
`PING-Mapper` is currently compatible with Humminbird® and Lowrance® side imaging sonar systems. The software has been tested with:
|
|
110
|
+
|
|
111
|
+
### Humminbird® Models:
|
|
112
|
+
- 998
|
|
113
|
+
- 1198
|
|
114
|
+
- 1199
|
|
115
|
+
- Helix
|
|
116
|
+
- Solix
|
|
117
|
+
- Onix
|
|
118
|
+
- Apex
|
|
119
|
+
|
|
120
|
+
### Lowrance® File Formats:
|
|
121
|
+
- sl2
|
|
122
|
+
- sl3
|
|
123
|
+
|
|
124
|
+
If `PING-Mapper` doesn't work for your Humminbird® or Lowrance® sonar system, submit an [Issue](https://github.com/CameronBodine/PINGMapper/issues).
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# Software Documentation
|
|
128
|
+
There are several ways you can find out more about `PING-Mapper`. Check out the website, manuscripts, and Zenodo archives below. If you use `PING-Mapper` for your work, please cite the journal articles below.
|
|
129
|
+
|
|
130
|
+
## Website
|
|
131
|
+
Check out PING-Mapper's [website](https://cameronbodine.github.io/PINGMapper/) for more information.
|
|
132
|
+
|
|
133
|
+
## PING-Mapper v2.0.0
|
|
134
|
+
The second version of PING-Mapper is available now. Check the [release notes](https://github.com/CameronBodine/PINGMapper/releases/tag/v2.0.0) for more information.
|
|
135
|
+
|
|
136
|
+
#### Journal Article
|
|
137
|
+
Bodine, C. S., Buscombe, D., & Hocking, T. D. (2024). Automated river substrate mapping from sonar imagery with machine learning. Journal of Geophysical Research: Machine Learning and Computation, 1, e2024JH000135. [https://doi.org/10.1029/2024JH000135](https://doi.org/10.1029/2024JH000135)
|
|
138
|
+
|
|
139
|
+
### Preprint
|
|
140
|
+
[](https://doi.org/10.31223/X5K402)
|
|
141
|
+
|
|
142
|
+
### Code
|
|
143
|
+
[](https://doi.org/10.5281/zenodo.10120054)
|
|
144
|
+
|
|
145
|
+
### Segmentation models
|
|
146
|
+
[](https://doi.org/10.5281/zenodo.10093642)
|
|
147
|
+
|
|
148
|
+
### Segmentation model training datasets
|
|
149
|
+
[](https://doi.org/10.5281/zenodo.10119320)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
## PING-Mapper v1.0.0
|
|
153
|
+
An overview of PING-Mapper v1.0.0 functionality and justification are published in AGU's Earth and Space Science scientific journal. If you use PING-Mapper for your work, please cite the article!
|
|
154
|
+
|
|
155
|
+
### Journal Article
|
|
156
|
+
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
|
|
157
|
+
|
|
158
|
+
### Preprint
|
|
159
|
+
[](https://doi.org/10.31223/X5XP8Q)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
### Code
|
|
163
|
+
[](https://doi.org/10.5281/zenodo.6604785)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# Ready to get started?
|
|
167
|
+
|
|
168
|
+
Follow the installation and testing instructions to [Get Started!](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted)
|
|
169
|
+
|
|
170
|
+
# Acknowledgements
|
|
171
|
+
|
|
172
|
+
*This study was made possible by a partnership between the U.S. Fish and Wildlife Service and Northern Arizona University. Funding for this work was provided by the Open Ocean Trustee Implementation Group to restore natural resources injured by the 2010 Deepwater Horizon oil spill in the Gulf of Mexico. The contents of this website are those of the authors and do not necessarily represent the views of the U.S. Fish and Wildlife Service or Northern Arizona University.*
|
|
173
|
+
|
|
174
|
+
**Primary Developer:** [Cameron S. Bodine](https://github.com/CameronBodine)
|
|
175
|
+
|
|
176
|
+
**Co-Developer:** [Daniel Buscombe](https://github.com/dbuscombe-usgs)
|
|
177
|
+
|
|
178
|
+
Thanks to project collaborators Adam Kaeser (USFWS), Channing St. Aubin (USFWS), Mike Andres (USM), Kasea Price (USM), Alyssa Pagel (USM), Eric Haffey (USM), and Katherine Wright (USM).
|
|
179
|
+
|
|
180
|
+
A special thanks to advocates and early-adoptors including, but not limited to, Jennylyn Redner, Adrian Pinchbeck, Art Trembanis, Dan Carlson, Alan Ryon, Mirko Denecke, Dan Haught, Dan Hamill, Mark Lundine, Elizabeth Greenheck, Hendra Kurnia Febriawan, Bryan Bozeman, Paul Grams, Matt Kaplinski, Jess Kozarek, Chris Milliren, Brett Connell, James Parham and Vincent Capone.
|
|
181
|
+
|
|
182
|
+
Cameron wishes to thank his PhD dissertation committee chair Toby Hocking, co-chair and advisor Dan Buscombe, Rebecca Best, and Adam Kaeser.
|
|
183
|
+
|
|
184
|
+
## Future Development, Collaborations, & Partnerships
|
|
185
|
+
|
|
186
|
+
If you are interested in partnering on future developments, please reach out to [Cameron Bodine](https://cameronbodine.github.io/).
|
|
187
|
+
|
|
188
|
+
# PING-Mapper is part of the Doodleverse!
|
|
189
|
+

|
|
190
|
+
|
|
191
|
+
The Doodleverse is an opinionated collection of Python packages designed for geoscientific image segmentation. Find out more on [GitHub](https://github.com/Doodleverse).
|
|
192
|
+
|
|
193
|
+
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# PING-Mapper
|
|
2
|
+
[)](https://pypi.org/project/pingmapper/)
|
|
3
|
+
<!--  -->
|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
[](https://github.com/CameronBodine/PINGMapper/commits)
|
|
7
|
+
[](https://github.com/CameronBodine/PINGMapper/commits)
|
|
8
|
+
[](https://github.com/CameronBodine/PINGMapper/blob/main/LICENSE)
|
|
9
|
+
|
|
10
|
+
[](https://www.python.org/)
|
|
11
|
+
[](https://www.anaconda.com/)
|
|
12
|
+
[](https://numpy.org/)
|
|
13
|
+
[](https://pandas.pydata.org/)
|
|
14
|
+
[](https://www.tensorflow.org/)
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
|
|
18
|
+
**Transform recordings from recreation-grade side scan sonar systems...**
|
|
19
|
+
|
|
20
|
+
<!-- <img src="../main/docs/attach/Suwa_Son.gif" width="800"/> -->
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
*Video made with [HumViewer](https://humviewer.cm-johansen.dk/)*
|
|
25
|
+
|
|
26
|
+
**...into scientific datasets!**
|
|
27
|
+
|
|
28
|
+
<!-- <img src="../main/docs/attach/GithubMap.png" width="800"/> -->
|
|
29
|
+
|
|
30
|
+

|
|
31
|
+
|
|
32
|
+
# Overview
|
|
33
|
+
|
|
34
|
+
`PINGMapper` is an open-source Python interface for reading and processing side scan sonar datasets and reproducibly mapping benthic habitat features. `PINGMapper` transforms recreation-grade sonar systems (i.e. fishfinders) into scientific data collectors, allowing researchers and citizens alike to reproducibly map their aquatic system with minimal expertise in data processing.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### New Functionality & Bug Fixes (January 6, 2025)
|
|
38
|
+
- PINGMapper is a PyPi package
|
|
39
|
+
- [)](https://pypi.org/project/pingmapper/)
|
|
40
|
+
- [PINGInstaller](https://github.com/CameronBodine/PINGInstaller) - Light-weight application for installing PING ecosystem (PINGMapper, etc.)
|
|
41
|
+
- [)](https://pypi.org/project/pinginstaller/)
|
|
42
|
+
- [PINGWizard](https://github.com/CameronBodine/PINGWizard) - Light-weight interface for running PING ecosystem (PINGMapper, etc.)
|
|
43
|
+
- [)](https://pypi.org/project/pingwizard/)
|
|
44
|
+
|
|
45
|
+
### New Functionality & Bug Fixes (December 28, 2024)
|
|
46
|
+
- [PINGVerter](https://github.com/CameronBodine/PINGVerter) - A Python-based convertor for sonar logs collected with consumer-grade fishfinders.
|
|
47
|
+
- Support for Lowrance® *.sl2 and *.sl3 files!
|
|
48
|
+
- Improved mechanism for reading sonar logs, inspired by [sonarlight](https://github.com/KennethTM/sonarlight), resulting in **~1.3x speedup** when running the [Small Dataset Test](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted/Testing.html#small-dataset-test).
|
|
49
|
+
- [Sonar log filtering](https://github.com/CameronBodine/PINGMapper/releases/tag/v2.1.0) based on heading deviation, speed, and Area of Interest (AOI) shapefile.
|
|
50
|
+
- Export coverage and trackline shapefiles.
|
|
51
|
+
- Fix [bankline export](https://github.com/CameronBodine/PINGMapper/releases/tag/v2.1.0).
|
|
52
|
+
|
|
53
|
+
See the [v3.0.0 release notes](https://github.com/CameronBodine/PINGMapper/releases/tag/v3.0.0) for more information
|
|
54
|
+
|
|
55
|
+
### Key Functionality
|
|
56
|
+
- [PINGVerter](https://github.com/CameronBodine/PINGVerter) - A Python-based convertor for sonar logs collected with consumer-grade fishfinders.
|
|
57
|
+
- [)](https://pypi.org/project/pingverter/)
|
|
58
|
+
- Decode Humminbird® sonar recordings. For more information on Humminbird® recording file formats, [read the docs](https://cameronbodine.github.io/PINGMapper/docs/advanced/HumFileStructure.html).
|
|
59
|
+
|
|
60
|
+
- Decode Lowrance® *.sl2 and *.sl3 files. Lowrance® support made possible by open-source projects including [SL3Reader](https://github.com/halmaia/SL3Reader), [sonarlight](https://github.com/KennethTM/sonarlight), and [Navico (Lowrance, Simrad, B&G) Sonar Log File Format](https://www.memotech.franken.de/FileFormats/Navico_SLG_Format.pdf).
|
|
61
|
+
|
|
62
|
+
- If it doesn't work for your Humminbird® or Lowrance® recording, submit an [Issue](https://github.com/CameronBodine/PINGMapper/issues).
|
|
63
|
+
|
|
64
|
+
- Export all metadata from .DAT, .SON, .sl2, and .sl3 files to .CSV.
|
|
65
|
+
|
|
66
|
+
- Automatically detect depth (i.e. [Zheng et al. 2021](https://www.mdpi.com/2072-4292/13/10/1945)) and shadows in side scan channels .
|
|
67
|
+
|
|
68
|
+
- Correct sonar backscatter with Empiracle Gain Normalization.
|
|
69
|
+
|
|
70
|
+
- Export un-rectified sonar tiles with water column present (WCP) AND/OR export un-rectified sonograms with water column removed (WCR) using Humminbird depth estimates OR automated depth detections.
|
|
71
|
+
|
|
72
|
+
- Export speed corrected un-rectified sonograms.
|
|
73
|
+
|
|
74
|
+
- Smooth and interpolate GPS track points.
|
|
75
|
+
|
|
76
|
+
- Export georectified WCP (spatially inaccurate due to presence of water column) AND/OR WCR sonar imagery for use in GIS w/wo shadows removed.
|
|
77
|
+
|
|
78
|
+
- Mosaic georectified sonar imagery.
|
|
79
|
+
|
|
80
|
+
- Automatically segment and classify substrate patches.
|
|
81
|
+
|
|
82
|
+
More information on PING-Mapper exports can be found [here](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted/Exports.html).
|
|
83
|
+
|
|
84
|
+
## Compatible Sonar Systems
|
|
85
|
+
|
|
86
|
+
`PING-Mapper` is currently compatible with Humminbird® and Lowrance® side imaging sonar systems. The software has been tested with:
|
|
87
|
+
|
|
88
|
+
### Humminbird® Models:
|
|
89
|
+
- 998
|
|
90
|
+
- 1198
|
|
91
|
+
- 1199
|
|
92
|
+
- Helix
|
|
93
|
+
- Solix
|
|
94
|
+
- Onix
|
|
95
|
+
- Apex
|
|
96
|
+
|
|
97
|
+
### Lowrance® File Formats:
|
|
98
|
+
- sl2
|
|
99
|
+
- sl3
|
|
100
|
+
|
|
101
|
+
If `PING-Mapper` doesn't work for your Humminbird® or Lowrance® sonar system, submit an [Issue](https://github.com/CameronBodine/PINGMapper/issues).
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
# Software Documentation
|
|
105
|
+
There are several ways you can find out more about `PING-Mapper`. Check out the website, manuscripts, and Zenodo archives below. If you use `PING-Mapper` for your work, please cite the journal articles below.
|
|
106
|
+
|
|
107
|
+
## Website
|
|
108
|
+
Check out PING-Mapper's [website](https://cameronbodine.github.io/PINGMapper/) for more information.
|
|
109
|
+
|
|
110
|
+
## PING-Mapper v2.0.0
|
|
111
|
+
The second version of PING-Mapper is available now. Check the [release notes](https://github.com/CameronBodine/PINGMapper/releases/tag/v2.0.0) for more information.
|
|
112
|
+
|
|
113
|
+
#### Journal Article
|
|
114
|
+
Bodine, C. S., Buscombe, D., & Hocking, T. D. (2024). Automated river substrate mapping from sonar imagery with machine learning. Journal of Geophysical Research: Machine Learning and Computation, 1, e2024JH000135. [https://doi.org/10.1029/2024JH000135](https://doi.org/10.1029/2024JH000135)
|
|
115
|
+
|
|
116
|
+
### Preprint
|
|
117
|
+
[](https://doi.org/10.31223/X5K402)
|
|
118
|
+
|
|
119
|
+
### Code
|
|
120
|
+
[](https://doi.org/10.5281/zenodo.10120054)
|
|
121
|
+
|
|
122
|
+
### Segmentation models
|
|
123
|
+
[](https://doi.org/10.5281/zenodo.10093642)
|
|
124
|
+
|
|
125
|
+
### Segmentation model training datasets
|
|
126
|
+
[](https://doi.org/10.5281/zenodo.10119320)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
## PING-Mapper v1.0.0
|
|
130
|
+
An overview of PING-Mapper v1.0.0 functionality and justification are published in AGU's Earth and Space Science scientific journal. If you use PING-Mapper for your work, please cite the article!
|
|
131
|
+
|
|
132
|
+
### Journal Article
|
|
133
|
+
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
|
|
134
|
+
|
|
135
|
+
### Preprint
|
|
136
|
+
[](https://doi.org/10.31223/X5XP8Q)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
### Code
|
|
140
|
+
[](https://doi.org/10.5281/zenodo.6604785)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
# Ready to get started?
|
|
144
|
+
|
|
145
|
+
Follow the installation and testing instructions to [Get Started!](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted)
|
|
146
|
+
|
|
147
|
+
# Acknowledgements
|
|
148
|
+
|
|
149
|
+
*This study was made possible by a partnership between the U.S. Fish and Wildlife Service and Northern Arizona University. Funding for this work was provided by the Open Ocean Trustee Implementation Group to restore natural resources injured by the 2010 Deepwater Horizon oil spill in the Gulf of Mexico. The contents of this website are those of the authors and do not necessarily represent the views of the U.S. Fish and Wildlife Service or Northern Arizona University.*
|
|
150
|
+
|
|
151
|
+
**Primary Developer:** [Cameron S. Bodine](https://github.com/CameronBodine)
|
|
152
|
+
|
|
153
|
+
**Co-Developer:** [Daniel Buscombe](https://github.com/dbuscombe-usgs)
|
|
154
|
+
|
|
155
|
+
Thanks to project collaborators Adam Kaeser (USFWS), Channing St. Aubin (USFWS), Mike Andres (USM), Kasea Price (USM), Alyssa Pagel (USM), Eric Haffey (USM), and Katherine Wright (USM).
|
|
156
|
+
|
|
157
|
+
A special thanks to advocates and early-adoptors including, but not limited to, Jennylyn Redner, Adrian Pinchbeck, Art Trembanis, Dan Carlson, Alan Ryon, Mirko Denecke, Dan Haught, Dan Hamill, Mark Lundine, Elizabeth Greenheck, Hendra Kurnia Febriawan, Bryan Bozeman, Paul Grams, Matt Kaplinski, Jess Kozarek, Chris Milliren, Brett Connell, James Parham and Vincent Capone.
|
|
158
|
+
|
|
159
|
+
Cameron wishes to thank his PhD dissertation committee chair Toby Hocking, co-chair and advisor Dan Buscombe, Rebecca Best, and Adam Kaeser.
|
|
160
|
+
|
|
161
|
+
## Future Development, Collaborations, & Partnerships
|
|
162
|
+
|
|
163
|
+
If you are interested in partnering on future developments, please reach out to [Cameron Bodine](https://cameronbodine.github.io/).
|
|
164
|
+
|
|
165
|
+
# PING-Mapper is part of the Doodleverse!
|
|
166
|
+

|
|
167
|
+
|
|
168
|
+
The Doodleverse is an opinionated collection of Python packages designed for geoscientific image segmentation. Find out more on [GitHub](https://github.com/Doodleverse).
|
|
169
|
+
|
|
170
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .version import __version__
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
import os, sys
|
|
3
|
+
|
|
4
|
+
# Add 'pingmapper' to the path, may not need after pypi package...
|
|
5
|
+
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
6
|
+
PACKAGE_DIR = os.path.dirname(SCRIPT_DIR)
|
|
7
|
+
sys.path.append(PACKAGE_DIR)
|
|
8
|
+
|
|
9
|
+
# Default function to run
|
|
10
|
+
if len(sys.argv) == 1:
|
|
11
|
+
to_do = 'gui'
|
|
12
|
+
else:
|
|
13
|
+
to_do = sys.argv[1]
|
|
14
|
+
|
|
15
|
+
# May need to load conda config, check later
|
|
16
|
+
|
|
17
|
+
def main(process):
|
|
18
|
+
|
|
19
|
+
from .version import __version__
|
|
20
|
+
print("\n\nPINGMapper v{}".format(__version__))
|
|
21
|
+
|
|
22
|
+
# Process single sonar log
|
|
23
|
+
if process == 'gui':
|
|
24
|
+
print('\n\nLaunching gui for processing single sonar log...\n\n')
|
|
25
|
+
from pingmapper.gui_main import gui
|
|
26
|
+
gui()
|
|
27
|
+
|
|
28
|
+
# Batch process sonar logs
|
|
29
|
+
elif process == 'gui_batch':
|
|
30
|
+
print('\n\nLaunching gui for batch processing sonar logs...\n\n')
|
|
31
|
+
from pingmapper.gui_main_batchDirectory import gui_batch
|
|
32
|
+
gui_batch()
|
|
33
|
+
|
|
34
|
+
# Do test on small dataset
|
|
35
|
+
elif process == 'test':
|
|
36
|
+
print('\n\nTesting PINGMapper on small dataset...\n\n')
|
|
37
|
+
from pingmapper.test_PINGMapper import test
|
|
38
|
+
test(1)
|
|
39
|
+
|
|
40
|
+
# Do test on large dataset
|
|
41
|
+
elif process == 'test_large':
|
|
42
|
+
print('\n\nTesting PINGMapper on large dataset...\n\n')
|
|
43
|
+
from pingmapper.test_PINGMapper import test
|
|
44
|
+
test(2)
|
|
45
|
+
|
|
46
|
+
if __name__ == "__main__":
|
|
47
|
+
main(to_do)
|