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.6.tar.gz (79.7 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.6-py3-none-any.whl (83.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pingverter-2.1.6.tar.gz
  • Upload date:
  • Size: 79.7 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.6.tar.gz
Algorithm Hash digest
SHA256 736e0572b936638977ecf410fc7ffeaf066e80e416535afe6dd42894f89668e1
MD5 a8db06ebea71d5bdefc58b3497ce4568
BLAKE2b-256 dbf7f4e8843fe9b3cd96b7c1745c7f7dfe64dbb09d86e137a93cee5161e5229b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pingverter-2.1.6-py3-none-any.whl
  • Upload date:
  • Size: 83.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ec80a43a00fe5ae9480ecace156fd0cdadd1de0b9fd7e9b44cb54e9138d73946
MD5 6b1913b26c64c7cbc2846abc05b2fd25
BLAKE2b-256 85ea209b9f994b2214a4e157c9a0f5a718f82c4d17b2812f05bf3848524b0dcc

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