Skip to main content

PyPI - Version

A Python-based convertor for sonar logs collected with consumer-grade fishfinders.

PINGVerter is designed to pre-process sonar logs for PINGMapper post-processing. It is not intended to function as a stand-alone package.

Compatibility

Installation

pip install pingverter

Usage - Example Only

PINGVerter can be used as a stand-alone engine for decoding sonar logs and exporting ping attributes to CSV. While this functionality is described here, please use PINGMapper for all sonar log processing.

Humminbird

# Import
from pingverter import hum2pingmapper

# Parameters
inFile = r'C:\Path\To\Recording\Rec00001.DAT'
projDir = r'C:\Path\To\Outputs\MyProject'

sonar_object = hum2pingmapper(inFile, projDir)

Lowrance

# Import
from pingverter import low2pingmapper

# Parameters
inFile = r'C:\Path\To\Recording\Log.sl2'
projDir = r'C:\Path\To\Outputs\MyProject'

sonar_object = low2pingmapper(inFile, projDir)

Lowrance SL2/SL3 files can also be exported as synchronized raw sample projects for viewer applications, with optional per-beam waterfall PNG previews:

from pingverter import low

inFile = r'C:\Path\To\Recording\Log.sl3'
outDir = r'C:\Path\To\Outputs\SonarProject'

sonar_object = low(inFile, nchunk=500, exportUnknown=True)
manifest = sonar_object.write_sonar_data_player_project(outDir, include_pngs=True)

The project writer creates manifest.json, pings.csv, frames.jsonl, samples.u16le, and one channel PNG per decoded Lowrance beam. Lowrance sample payloads are expanded to uint16-le for compatibility with viewers that share the Garmin project sample format.

Garmin

# Import
from pingverter import gar2pingmapper

# Parameters
inFile = r'C:\Path\To\Recording\Log.RSD'
projDir = r'C:\Path\To\Outputs\MyProject'

sonar_object = gar2pingmapper(inFile, projDir)

Garmin RSD files can also be exported as synchronized raw sample projects for viewer applications, with optional per-channel waterfall PNG previews:

from pingverter import gar

inFile = r'C:\Path\To\Recording\Log.RSD'
outDir = r'C:\Path\To\Outputs\SonarProject'

sonar_object = gar(inFile, nchunk=500, exportUnknown=True)
manifest = sonar_object.write_sonar_data_player_project(outDir, include_pngs=True)

The project writer creates manifest.json, pings.csv, frames.jsonl, samples.u16le, and one channel PNG per decoded Garmin channel. The same project format is consumed by SonarDataPlayer.

You can also use the shared export API for any supported source format:

from pingverter import export_sonar_data_player_project

inFile = r'C:\Path\To\Recording\Line001.xtf'
outDir = r'C:\Path\To\Outputs\SonarProject'

manifest = export_sonar_data_player_project(inFile, outDir, include_pngs=True)

Cerulean

# Import
from pingverter import cerul2pingmapper

# Parameters
inFile = r'C:\Path\To\Recording\Log.svlog'
projDir = r'C:\Path\To\Outputs\MyProject'

sonar_object = cerul2pingmapper(inFile, projDir)

JSF

# Import
from pingverter import jsf2pingmapper

# Parameters
inFile = r'C:\Path\To\Recording\Line001.jsf'
projDir = r'C:\Path\To\Outputs\MyProject'

sonar_object = jsf2pingmapper(inFile, projDir)

XTF

# Import
from pingverter import xtf2pingmapper

# Parameters
inFile = r'C:\Path\To\Recording\Line001.xtf'
projDir = r'C:\Path\To\Outputs\MyProject'

sonar_object = xtf2pingmapper(inFile, projDir)

Outputs from the above examples will be exported to C:\Path\To\Outputs\MyProject\meta.

Acknowledgments

PINGVerter has been made possible through mentorship, partnerships, financial support, open-source software, manuscripts, and documentation linked below.

NOTE: The contents of this repository are those of the author(s) and do not necessarily represent the views of the individuals and organizations specifically mentioned here.

Future Development, Collaborations, & Partnerships

If you are interested in partnering on future developments, please reach out to Cameron Bodine.

Metadata

Release files for pingverter 2.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pingverter 2.1.7
File Size Uploaded
pingverter-2.1.7.tar.gz 79.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pingverter 2.1.7
File Interpreter ABI Platform
pingverter-2.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 163.1 kB

Release files / pingverter-2.1.7.tar.gz

Download URL pingverter-2.1.7.tar.gz
Size 79.7 kB
Tags Source
SHA-256 checksum
How to use checksums
027dc1550385774629ac1feb680253538500d5ca67ad235725ff1d3cd03980b0
BLAKE2b-256 checksum
How to use checksums
1f5b257a75c61d8b6cdc141ae81a05e81a497e81a4620439839b099022a849ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / pingverter-2.1.7-py3-none-any.whl

Download URL pingverter-2.1.7-py3-none-any.whl
Size 83.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c3253edb72deeb7a70a6e29305f0ad713655e0e2554f91f2835afabeadf42c6
BLAKE2b-256 checksum
How to use checksums
8749f3d1e8f72d847c7c8ae3888040ca6e089e94f475d9fe2031d5bab902abe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page