Skip to content

Commit

Permalink
Merge dev(version 0.1.0) into main (#146)
Browse files Browse the repository at this point in the history
* Bugs fix (#88)

* Change importing format to comply with develop mode

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve that curtain could not dynamically render

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Select box correctly when not inverting y-axis

* local testing

* y-axis testing

* Y-axis testing

* add options for echogram

* del testing files

* add options

* set y-axis inversion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* 06/06/2023 - testing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Refactor echogram and associated components using accessor (#93)

* Change importing format to comply with develop mode

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve that curtain could not dynamically render

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Select box correctly when not inverting y-axis

* local testing

* y-axis testing

* Y-axis testing

* add options for echogram

* del testing files

* add options

* set y-axis inversion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* 06/06/2023 - testing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Delete echoshader/new_version directory

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ADD testing file

* del old one

* add test.ipynb

* change "= None" to "is None"

* little fix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add comments

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Sync

* Add docstring and customizing colormap

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Delete .DS_Store

* Delete .DS_Store

* Solve Undefined Name

* Use Literal to solve undefined issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve "compare False should using is not"

* Delete testing files

* delete testing toy dataset

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Wu-Jung Lee <[email protected]>

* Add feature of select box  (#103)

* Change importing format to comply with develop mode

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve that curtain could not dynamically render

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Select box correctly when not inverting y-axis

* local testing

* y-axis testing

* Y-axis testing

* add options for echogram

* del testing files

* add options

* set y-axis inversion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* 06/06/2023 - testing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Delete echoshader/new_version directory

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ADD testing file

* del old one

* add test.ipynb

* change "= None" to "is None"

* little fix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add comments

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Sync

* Add docstring and customizing colormap

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Delete .DS_Store

* Delete .DS_Store

* Solve Undefined Name

* Use Literal to solve undefined issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve "compare False should using is not"

* Delete testing files

* delete testing toy dataset

* Add selected box plotting and extracting feature

* Add python doc for extracting box function

* Delete testing files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve line too long issue

* Change name from ambiguous `gram` to echogram

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Wu-Jung Lee <[email protected]>

* Feature echomap (#122)

* Change importing format to comply with develop mode

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve that curtain could not dynamically render

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Select box correctly when not inverting y-axis

* local testing

* y-axis testing

* Y-axis testing

* add options for echogram

* del testing files

* add options

* set y-axis inversion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* 06/06/2023 - testing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Delete echoshader/new_version directory

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ADD testing file

* del old one

* add test.ipynb

* change "= None" to "is None"

* little fix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add comments

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Sync

* Add docstring and customizing colormap

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Delete .DS_Store

* Delete .DS_Store

* Solve Undefined Name

* Use Literal to solve undefined issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve "compare False should using is not"

* Delete testing files

* delete testing toy dataset

* Add selected box plotting and extracting feature

* Add python doc for extracting box function

* Delete testing files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add map plotting

* Add features of curtain and some comments

* Draft PR for map part

* Update track, curtain and linked connection logic

* Add colormap type (list) for curtain

* Add testing file for demo

* Delete .DS_Store

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve pre-commit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Store link state of curtain

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Delete .DS_Store

* Add .DS_Store to .gitignore

* change name of varaiable "gram_plot" to "echogram"

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Update variable name "old_vmin" to "data_min"

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Wu-Jung Lee <[email protected]>

* Feature stats (#130)

* Change importing format to comply with develop mode

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve that curtain could not dynamically render

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Select box correctly when not inverting y-axis

* local testing

* y-axis testing

* Y-axis testing

* add options for echogram

* del testing files

* add options

* set y-axis inversion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* 06/06/2023 - testing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Delete echoshader/new_version directory

* Add testing files

* rename testing file

* a

* a

* lasso testing

* add for testing

* Add trigram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ADD testing file

* del old one

* add test.ipynb

* change "= None" to "is None"

* little fix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add comments

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Sync

* Add docstring and customizing colormap

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Delete .DS_Store

* Delete .DS_Store

* Solve Undefined Name

* Use Literal to solve undefined issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve 'line too long' issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve "compare False should using is not"

* Delete testing files

* delete testing toy dataset

* Add selected box plotting and extracting feature

* Add python doc for extracting box function

* Delete testing files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add map plotting

* Add features of curtain and some comments

* [pre-commit.ci] pre-commit autoupdate (#105)

updates:
- [github.com/igorshubovych/markdownlint-cli: v0.34.0 → v0.35.0](igorshubovych/markdownlint-cli@v0.34.0...v0.35.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Draft PR for map part

* Update track, curtain and linked connection logic

* Add colormap type (list) for curtain

* Add testing file for demo

* Delete .DS_Store

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve pre-commit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Store link state of curtain

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] pre-commit autoupdate (#123)

updates:
- [github.com/psf/black: 23.3.0 → 23.7.0](psf/black@23.3.0...23.7.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Delete .DS_Store

* Add .DS_Store to .gitignore

* change name of varaiable "gram_plot" to "echogram"

* Update echoshader/new_version/echogram.py

Co-authored-by: Wu-Jung Lee <[email protected]>

* Update variable name "old_vmin" to "data_min"

* Add stats part

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Create functions for repetitive code

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* delete useless importing lib

* Resolve conflict

* Resolve conflicts

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add python doc

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add docstring

* Solve pre-commit issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve pre-commit issue

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Wu-Jung Lee <[email protected]>

* Final-version Refactoring  (#131)

* Create folders for new refactoring

* Add core.py, echogram.py, map.py and utils.py

* Add files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add moored point in map & config in utils

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add echogram in core.py and docstring

* Lined echogram and map for 2nd version

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve pre-commit issue

* High-order structure building

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve pre-commit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add underlying code for hist and curtain

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* sovle pre-commit

* Add curtain, hist and table

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix little bugs ahout curtain and hist

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add subscriber about echogram

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add curtain

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add new requirements

* Add bidirectional control logic

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add reset tool

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add customized opts

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update file stucture

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add __init__.py

* Add more  docstring

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add testing demo

* erase pre-commit warning

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Add testing files (#139)

* Fix channel select bugs

* Add testing files

* solve pre-commit warnings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* extract out testing files

* Add pytest and CI config

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Set the testing files as expected for a user

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Make the testing files to pytest format

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Improve testing files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add more testing cases

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Dev test ci (#142)

* Adding branches for testing

* renaming workflow to workflows

* addign extra empty line to trigger the workflow

* Put the branches into bullet points

* remove test coverage

* Rename test.py to test_plots.py

Adding underscrore for discoverability

* fixing get_data call

* limit to python 3.10

* pin pandas

* test with unpinned Python

* Add document files (#140)

* Fix channel select bugs

* Add testing files

* solve pre-commit warnings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* extract out testing files

* Add pytest and CI config

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Set the testing files as expected for a user

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Make the testing files to pytest format

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Improve testing files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add more testing cases

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add docs for generating data

* Add index and design intro page

* Add index and structure intro pages

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* code blocks should have a language specified

* Add data generation docs

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add echogram showcases

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add track and hist exampls

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add panel server setup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve pre-commit

* Improve based on feedback

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* del deprecated testing files

* Add Configuration file v2 (.readthedocs.yaml)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Solve conflicts

* Solve doc conflicts

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Update README.md

* Dev patch (#147)

* Update setup_server.md

removing repeating sentence from panel

* splitting user and development installation instructions

* removing intro.md

* Update index.md

adding a more general description and a note that folks can skip to the examples as this will be what most users need. Later we may reorganize the order of the sections.

* language

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update _toc.yml

* Update index.md

Fix typo

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dingrui Lei <[email protected]>

* Fix-dev (#149)

* improve dev based on feedback

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Wu-Jung Lee <[email protected]>
Co-authored-by: Valentina Staneva <[email protected]>
  • Loading branch information
4 people authored Oct 13, 2023
1 parent eef0456 commit d43c60d
Show file tree
Hide file tree
Showing 51 changed files with 7,334 additions and 3,322 deletions.
Binary file removed .DS_Store
Binary file not shown.
13 changes: 0 additions & 13 deletions .github/ISSUE_TEMPLATE/gsoc-ideas.md

This file was deleted.

13 changes: 0 additions & 13 deletions .github/ISSUE_TEMPLATE/gsoc-questions.md

This file was deleted.

26 changes: 26 additions & 0 deletions .github/workflow/pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# .github/workflows/pytest.yml
name: PyTest
on: [push, pull_request, workflow_dispatch]

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools wheel
pip install -r requirements-dev.txt
pip install -e .
- name: Run Coverage Pytest
run: pytest --cov=./ --cov-report=xml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
34 changes: 34 additions & 0 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# .github/workflows/pytest.yml

name: PyTest
on:
push:
branches:
- main
- dev
- dev-test-CI
pull_request:
branches:
- main
- dev
- dev-test-CI
workflow_dispatch:

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: "3.*"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools wheel
pip install -r requirements-dev.txt
pip install -e .
- name: Run Pytest
run: pytest
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

.idea/
.DS_Store

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
35 changes: 35 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/source/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt
51 changes: 36 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,50 @@
# echoshader
# Welcome to echoshader

Open Source Python package for building ocean sonar data visualizations based on the HoloViz suite of Python tools.

## What are ocean sonar systems?

Ocean sonar systems, such as echosounders, are the [workhorse to study life in the ocean](https://storymaps.arcgis.com/stories/e245977def474bdba60952f30576908f). They provide continuous observations of fish and zooplankton by transmitting sounds and analyzing the echoes bounced off these animals, just like how medical ultrasound images the interior of human body. In recent years these systems are widely deployed on ships, autonomous vehicles, or moorings, bringing in a lot of data that allow scientists to study the change of the marine ecosystem.

## Conda Development Environment Setup
## What is echoshader?

The setup below assumes that you have installed [Conda](https://docs.conda.io/projects/conda/en/latest/), an open-source package management system.
Echoshader aims to enhance the capability to interactively visualize large volumes of ocean sonar data to accelerate the data exploration and discovery process. The project will go hand-in-hand with ongoing development of the [echopype](https://echopype.readthedocs.io/en/stable/) package that handles the standardization, pre-processing, and organization of these data.

1. Install echoshader conda environment
By providing an accessible and customizable platform for echo data visualization, the project can accelerate advancements in oceanographic research for the benefit of conservation and sustainable resource management like fishery.

```bash
conda create -n echoshader-dev -c conda-forge python=3.9 --file requirements.txt
```
## Installation

2. Activate the `echoshader-dev` environment
To install from PyPi:
To be updated

```bash
conda activate echoshader-dev
```
The latest branch can be installed via the following:

3. Install development version of echoshader package
```bash
pip install git+https://github.com/OSOceanAcoustics/echoshader.git
```

```bash
pip install -e ".[all]"
```
To run in development mode, fork and clone the repository at [Echoshader](https://github.com/OSOceanAcoustics/echoshader):

```bash
mamba create -c conda-forge -n echoshader-dev --yes python=3.10 --file requirements.txt --file requirements-dev.txt
pip install -e
```

We recommend use [mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) to manage conda's environments, which is a re-implementation of conda offering additional benefits.

## Creating 'dev' Environment

This section is intended for those who are actively developing this package.

```bash
mamba create -n echoshader-dev -c pyviz -c conda-forge echopype hvplot geoviews pyvista ipykernel
```

Note: Users may already have `echopype` installed, but it should be at a version greater than or equal to `0.7.1`.

To link this environment with a Jupyter kernel:

```bash
conda activate echoshader-dev
python -m ipykernel install --user --name echoshader-dev --display-name "echoshader-dev"
```
2 changes: 1 addition & 1 deletion docs/source/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ sphinx:
extra_extensions: [
'sphinx_automodapi.automodapi',
'numpydoc',
# 'sphinx.ext.autodoc',
'sphinx.ext.autodoc',
'sphinx.ext.intersphinx',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
Expand Down
26 changes: 18 additions & 8 deletions docs/source/_toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,25 @@
# Learn more at https://jupyterbook.org/customize/toc.html

format: jb-book
root: intro
root: echoshader_doc/index
parts:
- caption: Google Summer of Code
- caption: Echoshader
chapters:
- file: gsoc/index
- file: gsoc/2022/index
- file: echoshader_doc/version_0.1.0/index
title: Version 0.1.0
sections:
- file: gsoc/2022/Echogram_EchoStats
- file: gsoc/2022/EchoMap
- file: gsoc/2022/Benchmarking
- file: gsoc/contributors_guide
- file: echoshader_doc/version_0.1.0/design_pattern
- file: echoshader_doc/version_0.1.0/get_moored_data
- file: echoshader_doc/version_0.1.0/get_ship_data
- file: echoshader_doc/version_0.1.0/echogram_examples
- file: echoshader_doc/version_0.1.0/track_examples
- file: echoshader_doc/version_0.1.0/hist_examples
- file: echoshader_doc/version_0.1.0/setup_server
- file: echoshader_doc/GSoC/index
title: Prototype in GSoC
sections:
- file: echoshader_doc/GSoC/Echogram_EchoStats
- file: echoshader_doc/GSoC/EchoMap
- file: echoshader_doc/GSoC/Benchmarking
- file: echoshader_doc/contributors_guide
title: Contributor's Guide
Original file line number Diff line number Diff line change
Expand Up @@ -83,19 +83,19 @@ Don't forget to use `.servable()` to specify which component you want to display

Then we input below command in `cmd Prompt` or `Anaconda Prompt` to start up the server:

```c
```bash
panel serve --admin --profiler=snakeviz your_file_name.py
```

Users should use the commandline `--admin` and `--profiler` options. Don't forget to specify the profiler.

Once enabled the server, input below urls to open procedure page and admin page:

```
```bash
http://localhost:your_port_number/your_file_name
```

```
```bash
http://localhost:your_port_number/admin
```

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
49 changes: 49 additions & 0 deletions docs/source/echoshader_doc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Welcome to echoshader

Open source Python package for building interactive ocean sonar data visualizations on the HoloViz suite of libraries.

## What are ocean sonar systems?

Ocean sonar systems, such as echosounders, are the [workhorse to study life in the ocean](https://storymaps.arcgis.com/stories/e245977def474bdba60952f30576908f). They provide continuous observations of fish and zooplankton by transmitting sounds and analyzing the echoes bounced off these animals, just like how medical ultrasound images the interior of human body. In recent years these systems are widely deployed on ships, autonomous vehicles, or moorings, bringing in a lot of data that allow scientists to study the change of the marine ecosystem.

## What is echoshader?

Echoshader aims to enhance the capability to interactively visualize large volumes of ocean sonar data to accelerate the data exploration and discovery process. The project will go hand-in-hand with ongoing development of the [echopype](https://echopype.readthedocs.io/en/stable/) package that handles the standardization, pre-processing, and organization of these data.

By providing an accessible and customizable platform for echo data visualization, the project can accelerate advancements in oceanographic research for the benefit of conservation and sustainable resource management like fishery.

## Installation

Echoshader relies on several crucial packages which will need to be installed first (best in a separate environment)

```bash
mamba create -n echoshader -c pyviz -c conda-forge echopype hvplot geoviews pyvista ipykernel
```

We recommend use [mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) to manage conda's environments, which is a re-implementation of conda offering additional benefits.

Note: Users may already have `echopype` installed, but it should be at a version greater than or equal to `0.7.1`.

To link this environment with a Jupyter kernel:

```bash
conda activate echoshader
python -m ipykernel install --user --name echoshader --display-name "echoshader"
```

The latest branch can be installed via the following:

```bash
pip install git+https://github.com/OSOceanAcoustics/echoshader.git
```

## Creating 'dev' Environment

This section is intended for those who are actively developing this package.

To run in development mode, fork and clone the repository at [Echoshader](https://github.com/OSOceanAcoustics/echoshader):

```bash
mamba create -c conda-forge -n echoshader-dev --yes python=3.10 --file requirements.txt --file requirements-dev.txt
pip install -e
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
66 changes: 66 additions & 0 deletions docs/source/echoshader_doc/version_0.1.0/design_pattern.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Design Structure Overview

The Echoshader class acts as the controller that handles user interactions through widgets, triggers the necessary data updates, and updates the view accordingly. It achieves this through the use of callbacks and stream methods provided by libraries like Holoviews and Panel.

There are 3 levels designed in the structure demonstrated below.
![image](./structure.png)

## **1st Level - High-order wrapper (`Echoshader` class)**

The **`Echoshader`** class serves as a comprehensive visualization toolset for analyzing acoustic data. It offers various visualization techniques such as echograms, tracks, curtains, histograms, and tables. Users can interactively explore the data by controlling parameters via interactive widgets.

### **Class Definition and Initialization**

- The **`Echoshader`** class is defined, inheriting from **`param.Parameterized`**, enabling easy integration of interactive parameters.
- The constructor (**`__init__`**) initializes the instance and sets up initial values for parameters.
- The **`_init_widget`** method creates interactive widgets that control visualization parameters.
- The **`_init_param`** method initializes additional parameters and streams required for visualization updates.

### **Visualization Methods**

- Methods are defined to generate different types of plots: echograms, tracks, curtains, histograms, and tables.
- These methods accept parameters that determine the plot's appearance and data selection.
- The **`param.depends`** decorator is used to specify dependencies on widget values and other parameters.
- These methods internally invoke helper functions that create the actual visualizations.

### **Callbacks and Streams**

- Callback methods are defined, such as **`_update_gram_box`**, triggered when gram box bounds change.
- Stream objects (e.g., **`holoviews.streams.BoundsXY`** and custom **`box_stream`**) connect user interactions to callbacks.
- Streams trigger callback methods when users interact with the visualization (e.g., selecting a box).

### **Data Retrieval**

- A method **`get_data_from_box`** retrieves data selected by a box in the visualization.

## **2nd Level - Callback Functions (Decorators and Stream Methods)**

- Decorators and stream methods are used to create callbacks that update plots when widget values or parameters change.
- For example, **`_update_gram_box`** is a callback method triggered when gram box bounds update.
- Stream objects facilitate user interactions by invoking corresponding callback methods.

## **3rd Level - Plotting Functions**

- Functions (**`_echogram_plot`**, **`_tricolor_echogram_plot`**, **`_track_plot`**, **`_tile_plot`**, **`_curtain_plot`**, **`_hist_plot`**, **`_table_plot`**) generate specific types of plots.
- These functions are called within **`Echoshader`** class methods to create actual visualizations.
- Libraries like Holoviews and Panel are used to generate and display plots.
- Customization options and parameters are available for the generated plots.

## Xarray Extensions Using Accessors

[Extending xarray using accessors](https://docs.xarray.dev/en/stable/internals/extending-xarray.html) refers to the process of adding custom functionality and methods to xarray objects by creating and registering custom accessors.

This approach is particularly useful when we have domain-specific operations or manipulations that apply to xarray objects without cluttering your code with custom functions. It keeps code modular, maintainable, and helps leverage the power of xarray for your specific use case.

We write a custom “eshader” accessor. You could use accessor to get echograms

```python
MVBS_ds.eshader.echogram()
```

Or you could just create a new echoshader object

```python
eg = Echogram(MVBS_ds)
eg.echogram()
```
Loading

0 comments on commit d43c60d

Please sign in to comment.