CI-CMG / pyEcholab

pyEcholab is an open-source, Python-based toolkit for reading, processing, plotting and exporting fisheries acoustic echosounder data. The goal for this project is to become a community resource the grows through community involvement and contribution.
Other
37 stars 23 forks source link

pyEcholab

pyEcholab is a python package for reading, writing, processing, and plotting data from Simrad/Kongsberg sonar systems.

Water-column echosounder data are becoming increasingly available and are used for a diversity of research objectives. These data are large, complex, and recorded in instrument-specific binary file formats. pyEcholab is an open-source, python-based system for reading, processing, and visualizing water-column echosounder files. Currently, the system handles Simrad .raw files and will be expanded to support others. It has been developed to meet existing processing and visualization needs, allowing efficient large-scale processing and giving non-programmers data access. In addition, its base classes and open architecture provide a framework for developing new processing algorithms and visualization techniques that can be modularized into the system. Through this open-source mechanism, pyEcholab has the ability to continually grow, increase its capabilities, and expand the use of water-column echosounder data by the scientific community.

Architecture

architecture diagram

Current Classes/Functionalities

  Base Classes

  File Reader Class

  Processing & Analysis Classes

  Plotting and Export Classes

Getting Started

pyEcholab and its core libraryecholab2 are currently hosted in this GitHub repository (https://github.com/CI-CMG/PyEcholab) and are not currently available from any of the Python package management systems. Download to your machine by cloning the git repository.

mkdir ~/<where_you_want_the_code>
cd ~/<where_you_want_the_code>
git clone https://github.com/CI-CMG/pyEcholab.git

Prerequisites

pyEcholab2 requires Python 2.7 or Python 3.6.x (testing is more complete in the 3.6 evironment). For those not familiar with building Python environments, we recommend using an Anaconda Python distribution which includes all needed packages except basemap. The following packages are needed If you use your own Python installation:

  Required

  Optional

Installation

Once you have pyEcholab cloned to your machine, you need to tell Python where to find the package. Your Python development environment may provide a way to do this, if not, the following can be used at a bash prompt or added to your shell initialisation file:

export PYTHONPATH=$PYTHONPATH:~/<where_you_want_the_code>

Data

Raw files used by the example scripts need to be downloaded seperately to the examples/data folder before running. They can be downloaded from the NCEI FTP server: ftp://ftp.ngdc.noaa.gov/pub/outgoing/mgg/wcd/pyEcholab_data/examples/

On Unix based systems, this can easily achieved as follows:

cd ~/<where_you_want_the_code>/examples/data
make

Examples

Numerous example files are provided to introduce users to pyEcholab. These examples exist as both Python scripts and Jupyter Notebooks. The examples are heavily commented to explain each step.

Getting Involved

The pyEcholab project is designed to encourage members of the acoustic community to contribute back to the project. The basic architecture and use of standardized ProcessedData, Mask and Line objects provide a "plug and play" framework for the development of additional processing, analysis, plotting and export modules. Please contact the pyEcholab team at wcd.info@noaa.gov for more information.

Authors

License

This software is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

Contact

wcd.info@noaa.gov