echofilter

A project to filter out echosounder noise by identifying the ocean floor and noisy entrained air at the ocean surface

https://github.com/scottclowe/echofilter

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: scholar.google
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary
Last synced: 7 months ago · JSON representation

Repository

A project to filter out echosounder noise by identifying the ocean floor and noisy entrained air at the ocean surface

Basic Info
  • Host: GitHub
  • Owner: scottclowe
  • License: agpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 58.8 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 1
  • Open Issues: 3
  • Releases: 19
Created over 6 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License Citation

README.rst

echofilter
==========

+------------------+----------------------------------------------------------------------+
| Latest Release   | |PyPI badge|                                                         |
+------------------+----------------------------------------------------------------------+
| License          | |License|                                                            |
+------------------+----------------------------------------------------------------------+
| Documentation    | |readthedocs|                                                        |
+------------------+----------------------------------------------------------------------+
| Build Status     | |Documentation| |GHA tests| |Codecov| |pre-commit-status|            |
+------------------+----------------------------------------------------------------------+
| Code style       | |black| |pre-commit|                                                 |
+------------------+----------------------------------------------------------------------+
| Citation         | |DOI badge|                                                          |
+------------------+----------------------------------------------------------------------+

Echofilter is an application for segmenting an echogram. It takes as its
input an Echoview_ .EV file, and produces as its output several lines and
regions:

-  entrained air (turbulence) line

-  seafloor line

-  surface line

-  nearfield line

-  passive data regions

-  (unreliable) bad data regions for entirely removed periods of time, in the form
   of boxes covering the entire vertical depth

-  (unreliable) bad data regions for localised anomalies, in the form of polygonal
   contour patches

Echofilter uses a machine learning model to complete this task.
The machine learning model was trained on upfacing stationary and downfacing
mobile data provided by Fundy Ocean Research Centre for Energy (FORCE).
The training and evaluation data is
`available for download `__.
Queries regarding dataset access should be directed to FORCE, info@fundyforce.ca.

The experimental methodology and results can be found in our
`companion paper `_, published in Frontiers in Marine Science.

Full documentation of how to use echofilter can be viewed at `readthedocs`_.

If you encounter a specific problem please `open a new issue`_.

.. _Echoview: https://www.echoview.com/
.. _doi: https://www.doi.org/10.3389/fmars.2022.867857
.. _readthedocs: https://echofilter.readthedocs.io/en/stable/usage/
.. _open a new issue: https://github.com/DeepSenseCA/echofilter/issues/new

Usage
-----

After installing, the model can be applied at the command prompt with:

.. code:: bash

    echofilter PATH PATH2 ...

Any number of paths can be specified. Each path can either be a path to
a single csv file to process (exported using the Echoview_ application),
or a directory containing csv files. If a directory is given, all csv files
within nested subfolders of the directory will be processed.

All optional parameters can be seen by running ``echofilter`` with the help
argument.

.. code:: bash

    echofilter --help

For more details, see the
`Usage Guide `__,
and the
`command line interface (CLI) reference `__
documentation.


Installation
------------

Installing as a stand-alone executable
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For your convenience, we provide a copy of Echofilter compiled as
a stand-alone executable for Windows.
To install this, download and unzip the echofilter-executable-M.N.P.zip file
from the latest release in the
`releases tab `__.
For example:
`echofilter-executable-1.2.0.zip `__

For more details, see the step-by-step instructions in the
`Usage Guide `__.

Note: The precompiled executable has only CPU support, and does not support
running on GPU.

Installing in Python
^^^^^^^^^^^^^^^^^^^^

Alternatively, the echofilter package can be installed for Python 3.6 or 3.7
using pip as follows.

First, install torch.

Either with CPU-only capabilities:

.. code:: bash

    pip install torch==1.4.0+cpu torchvision==0.5.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

Or with CUDA GPU support as well:

.. code:: bash

    pip install torch==1.4.0 torchvision==0.5.0 -f https://download.pytorch.org/whl/torch_stable.html

Then install the rest of the requirements.

.. code:: bash

    pip install -r frozen_requirements.txt
    pip install echofilter


Citing Echofilter
-----------------

For technical details about how the Echofilter model was trained, and our
findings about its empirical results, please consult our companion paper:

    SC Lowe, LP McGarry, J Douglas, J Newport, S Oore, C Whidden, DJ Hasselman (2022). Echofilter: A Deep Learning Segmention Model Improves the Automation, Standardization, and Timeliness for Post-Processing Echosounder Data in Tidal Energy Streams. *Front. Mar. Sci.*, **9**, 121.
    doi: |nbsp| `10.3389/fmars.2022.867857 `_.

If you use Echofilter for your research, we would be grateful if you could cite
this paper in any resulting publications.

For your convenience, we provide a copy of this citation in `bibtex`_ format.

.. _bibtex: https://raw.githubusercontent.com/DeepSenseCA/echofilter/master/CITATION.bib

You can browse papers which utilise Echofilter `here `_.

.. _gscholarcitations: https://scholar.google.com/scholar?cites=18122679926970563847


License
-------

Copyright (C) 2020-2022  Scott C. Lowe and Offshore Energy Research Association (OERA)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see .


.. |nbsp| unicode:: 0xA0
   :trim:
.. |PyPI badge| image:: https://img.shields.io/pypi/v/echofilter.svg
   :target: https://pypi.org/project/echofilter/
   :alt: Latest PyPI release
.. |GHA tests| image:: https://github.com/DeepSenseCA/echofilter/workflows/tests/badge.svg
   :target: https://github.com/DeepSenseCA/echofilter/actions?query=workflow%3Atest
   :alt: GHA Status
.. |readthedocs| image:: https://img.shields.io/badge/docs-readthedocs-blue
   :target: readthedocs_
   :alt: Documentation
.. |Documentation| image:: https://readthedocs.org/projects/echofilter/badge/
   :target: readthedocs_
   :alt: Documentation Status
.. |Codecov| image:: https://codecov.io/gh/DeepSenseCA/echofilter/branch/master/graph/badge.svg?token=BGX2EJ0SSI
   :target: https://codecov.io/gh/DeepSenseCA/echofilter
   :alt: Coverage
.. |DOI badge| image:: https://img.shields.io/badge/DOI-10.3389/fmars.2022.867857-blue.svg
   :target: doi_
   :alt: DOI
.. |License| image:: https://img.shields.io/pypi/l/echofilter
   :target: https://raw.githubusercontent.com/DeepSenseCA/echofilter/master/COPYING
   :alt: AGPLv3 License
.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
   :target: https://github.com/pre-commit/pre-commit
   :alt: pre-commit enabled
.. |pre-commit-status| image:: https://results.pre-commit.ci/badge/github/DeepSenseCA/echofilter/master.svg
   :target: https://results.pre-commit.ci/stable/github/DeepSenseCA/echofilter/master
   :alt: pre-commit.ci status
.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black
   :alt: black

Owner

  • Name: Scott Lowe
  • Login: scottclowe
  • Kind: user
  • Location: Toronto, Canada
  • Company: @VectorInstitute

GitHub Events

Total
  • Watch event: 2
  • Public event: 1
  • Fork event: 1
Last Year
  • Watch event: 2
  • Public event: 1
  • Fork event: 1

Committers

Last synced: 12 months ago

All Time
  • Total Commits: 1,299
  • Total Committers: 4
  • Avg Commits per committer: 324.75
  • Development Distribution Score (DDS): 0.005
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Scott Lowe s****e@g****m 1,292
pre-commit-ci[bot] 6****] 3
j-newport 4****t 3
Chris Whidden c****n@g****m 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 163
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Total issue authors: 0
  • Total pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.1
  • Merged pull requests: 162
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • scottclowe (96)
  • j-newport (3)
  • eefami (1)
Top Labels
Issue Labels
Pull Request Labels
bug (12) enhancement (10)

Dependencies

requirements-dev.txt pypi
  • black * development
  • nbstripout * development
  • pre-commit * development
requirements-docs.txt pypi
  • myst-parser *
  • pypandoc >=1.6.3
  • sphinx <5,>=3.5.4
  • sphinx-argparse *
  • sphinx-autobuild *
  • sphinx_book_theme *
requirements-plots.txt pypi
  • jupyter *
  • matplotlib *
  • seaborn *
  • tqdm *
requirements-test.txt pypi
  • pytest >=3.5.0 test
requirements-train.txt pypi
  • apex *
  • seaborn *
  • tensorboard *
requirements.txt pypi
  • appdirs *
  • colorama *
  • matplotlib *
  • numpy *
  • pandas *
  • pywin32 *
  • pyyaml *
  • scikit-image *
  • scipy *
  • torch *
  • torchvision *
  • tqdm *
.github/workflows/build-release-candidate.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/docs.yaml actions
  • actions/checkout v2 composite
  • ammaraskar/sphinx-action master composite
  • docker://pandoc/core 2.9 composite
.github/workflows/test.yaml actions
  • actions/cache v3 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v3 composite
frozen_requirements.txt pypi
  • Babel ==2.8.0
  • Click ==7.0
  • Jinja2 ==2.11.1
  • Keras-Applications ==1.0.8
  • Keras-Preprocessing ==1.1.0
  • Markdown ==3.1.1
  • MarkupSafe ==1.1.1
  • Pillow ==7.0.0
  • PySocks ==1.7.1
  • PyWavelets ==1.1.1
  • PyYAML ==5.1.2
  • Pygments ==2.6.1
  • QtPy ==1.9.0
  • Send2Trash ==1.5.0
  • Shapely ==1.7.1
  • Sphinx ==3.0.3
  • Werkzeug ==0.15.4
  • absl-py ==0.7.1
  • alabaster ==0.7.12
  • appdirs ==1.4.4
  • argh ==0.26.2
  • asn1crypto ==1.3.0
  • astor ==0.7.1
  • atomicwrites ==1.3.0
  • attrs ==19.3.0
  • backcall ==0.1.0
  • bleach ==3.1.4
  • certifi ==2020.6.20
  • cffi ==1.12.3
  • chardet ==3.0.4
  • cloudpickle ==1.3.0
  • colorama ==0.4.3
  • coverage ==4.5.4
  • cryptography ==2.8
  • cycler ==0.10.0
  • dask ==2.14.0
  • decorator ==4.4.2
  • defusedxml ==0.6.0
  • docutils ==0.16
  • entrypoints ==0.3
  • future ==0.17.1
  • gast ==0.2.2
  • google-pasta ==0.1.6
  • grpcio ==1.16.1
  • h5py ==2.8.0
  • hypothesis ==3.59.1
  • idna ==2.8
  • imageio ==2.8.0
  • imagesize ==1.2.0
  • importlib-metadata ==1.5.0
  • ipykernel ==5.1.4
  • ipython ==7.13.0
  • ipython-genutils ==0.2.0
  • ipywidgets ==7.5.1
  • jedi ==0.16.0
  • jsonschema ==3.2.0
  • jupyter ==1.0.0
  • jupyter-client ==6.1.2
  • jupyter-console ==6.1.0
  • jupyter-core ==4.6.1
  • kiwisolver ==1.1.0
  • livereload ==2.6.1
  • llvmlite ==0.29.0
  • matplotlib ==3.1.3
  • mistune ==0.8.4
  • mock ==2.0.0
  • more-itertools ==8.2.0
  • nbconvert ==5.6.1
  • nbformat ==5.0.4
  • nbstripout ==0.3.7
  • networkx ==2.2
  • notebook ==6.0.3
  • numba ==0.45.1
  • numpy ==1.16.6
  • olefile ==0.46
  • onnx ==1.5.0
  • packaging ==20.3
  • pandas ==1.0.3
  • pandocfilters ==1.4.2
  • parso ==0.6.2
  • pathtools ==0.1.2
  • pbr ==5.4.4
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • pluggy ==0.13.1
  • port-for ==0.3.1
  • prometheus-client ==0.7.1
  • prompt-toolkit ==3.0.4
  • protobuf ==3.8.0
  • ptyprocess ==0.6.0
  • py ==1.8.1
  • pyOpenSSL ==19.1.0
  • pycparser ==2.20
  • pyparsing ==2.4.6
  • pyrsistent ==0.16.0
  • pytest ==4.4.2
  • python-dateutil ==2.8.1
  • pytz ==2019.3
  • pyzmq ==18.1.1
  • qtconsole ==4.7.3
  • requests ==2.22.0
  • scikit-image ==0.15.0
  • scipy ==1.3.1
  • seaborn ==0.10.0
  • six ==1.12.0
  • snowballstemmer ==2.0.0
  • sphinx-autobuild ==0.7.1
  • sphinx-rtd-theme ==0.4.3
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==1.0.3
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.4
  • tabulate ==0.8.2
  • tensorboard ==1.15.0
  • tensorflow ==1.15.2
  • tensorflow-estimator ==1.15.1
  • termcolor ==1.1.0
  • terminado ==0.8.3
  • testpath ==0.4.4
  • toolz ==0.10.0
  • torch ==1.4.0
  • torch_lr_finder ==0.2.0
  • torchtext ==0.4.0
  • torchvision ==0.5.0
  • tornado ==6.0.4
  • tqdm ==4.32.1
  • traitlets ==4.3.3
  • urllib3 ==1.25.8
  • watchdog ==0.10.2
  • wcwidth ==0.1.9
  • webencodings ==0.5.1
  • widgetsnbextension ==3.5.1
  • wrapt ==1.11.2
  • zipp ==2.2.0