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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pingverter-2.1.5.tar.gz (79.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pingverter-2.1.5-py3-none-any.whl (83.3 kB view details)

Uploaded Python 3

File details

Details for the file pingverter-2.1.5.tar.gz.

File metadata

  • Download URL: pingverter-2.1.5.tar.gz
  • Upload date:
  • Size: 79.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pingverter-2.1.5.tar.gz
Algorithm Hash digest
SHA256 6ac3100a41d6b50df02830184e1e8dbc9d973c52664e9f504fd9181fe9a5b5f0
MD5 0c08e9bc27a21d5467264ac31d7da704
BLAKE2b-256 5ff9553f7bca608d6f5a77c3e74c49814daf89c93e4e93635860056692422fea

See more details on using hashes here.

File details

Details for the file pingverter-2.1.5-py3-none-any.whl.

File metadata

  • Download URL: pingverter-2.1.5-py3-none-any.whl
  • Upload date:
  • Size: 83.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pingverter-2.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 26849be25a48e9a5785d2cf3f33c8d28f723cbe7aa0082148e1b704166933d56
MD5 4a14510a134c8057e15340ac06247b7e
BLAKE2b-256 9297ed295486baa46a3a84dd4b915efb741d3a94f8e696957be12de8d47f7c64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page