fishsense-lite

CLI for processing data from the FishSense Lite platform

https://github.com/ucsd-e4e/fishsense-lite

Science Score: 52.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization ucsd-e4e has institutional domain (e4e.ucsd.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

CLI for processing data from the FishSense Lite platform

Basic Info
  • Host: GitHub
  • Owner: UCSD-E4E
  • License: bsd-3-clause
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: https://e4e.ucsd.edu/fishsense
  • Size: 44.4 MB
Statistics
  • Stars: 3
  • Watchers: 10
  • Forks: 0
  • Open Issues: 12
  • Releases: 4
Created over 2 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation

README.md

FishSense Lite

Dependencies

  • https://github.com/UCSD-E4E/pyFishSense
  • https://github.com/UCSD-E4E/pyFishSenseDev

Setup

Install the dependencies

Supported Linux Distros

Ubuntu 24.04:

console sudo apt-get install -y build-essential git libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl cmake libopencv-dev clang libclang-dev

Unsupported Linux Distros

These Linux distros should function, but these steps are not regularly tested. YMMV.

Fedora 41+:

console sudo dnf install -y @development-tools git openssl-devel zlib-devel bzip2-devel sqlite-devel wget curl llvm ncurses-devel xz tk-devel libffi-devel xz-devel

For RHEL 9 / Fedora 40

console sudo dnf group install "Development Tools"

console sudo dnf install -y git openssl-devel zlib-devel bzip2-devel sqlite-devel wget curl llvm ncurses-devel xz tk-devel libffi-devel xz-devel

Then, make sure you have pyenv installed. curl https://pyenv.run | bash

Then, add the following to your ~/.bashrc export PYENV_ROOT="$HOME/.pyenv" [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"

Source your ~/.bashrc, install Python 3.12, and poetry source ~/.bashrc pyenv install 3.12

Install rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

In the root of this project, run the following. If you do not have x86 with CUDA, you may need to delete poetry.lock. ``` pip install poetry pip install --upgrade pip

poetry install ```

Development Dependencies

We provide a docker container which has the dependencies pre-installed. In order to use this, please ensure you have docker installed on your system. When running Visual Studio Code, ensure that you use the option to reopen in the container. This step will time for the intial setup.

To Run Demo

Open the notebook in demo/pipeline.ipynb

To run the CLI

To run the CLI to process data. Note that this will not rerun files previously stored in ./output/results.db. poetry run python -m fishsense_lite process ~/data/**/*.ORF --lens-calibration ~/data/fsl-01d-lens-raw.pkg --laser-calibration ~/data/laser-calibration.pkg --output ./output/results.db

Limiting Resources

CPU

The number of CPU workers can be limited multiple ways.

GPU

Memory

RAY_memory_usage_threshold environment variable.

Owner

  • Name: UCSD Engineers for Exploration
  • Login: UCSD-E4E
  • Kind: organization
  • Email: e4e@ucsd.edu
  • Location: UC San Diego

Exploration through technology

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: FishSense-Lite
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Christopher L.
    family-names: Crutchfield
    email: ccrutchf@ucsd.edu
    affiliation: UC San Diego
    orcid: 'https://orcid.org/0000-0002-2011-721X'
  - given-names: Kyle S.
    family-names: Hu
    email: kshu@ucsd.edu
    affiliation: UC San Diego
    orcid: 'https://orcid.org/0009-0006-4494-7257'
  - given-names: Vivaswat
    family-names: Suresh
    email: visuresh@ucsd.edu
    affiliation: UC San Diego
    orcid: 'https://orcid.org/0009-0005-4691-8567'
  - given-names: Hamish J.
    family-names: Grant
    email: hjgrant1@gmail.com
    affiliation: Technical University of Munich
    orcid: 'https://orcid.org/0009-0001-8201-6668'
  - given-names: Ana I.
    family-names: Perez
    email: ana_i_perez@brown.edu
    affiliation: Brown University
    orcid: 'https://orcid.org/0009-0008-0365-6685'
repository-code: 'https://github.com/UCSD-E4E/fishsense-lite'
abstract: >-
  Length is a vital metric for studying a fish population's
  overall health. Studying size distribution over time can
  aid in documenting population recovery efforts. Common
  scientific methods include having divers manually survey
  an area and record individuals and their approximate sizes
  (known as a roving diver survey), which has the potential
  to be inaccurate and catch and release, which is
  time-consuming and highly invasive. Previous attempts at
  automating this process use a dual laser caliper system,
  which is difficult to calibrate and maintain, and stereo
  cameras, which are costly and require extensive manual
  work. We propose a system that is relatively
  cost-effective and easy to use, with the ultimate goal of
  it being able to be built and used by citizen scientists.
  This system consists of a standard underwater
  point-and-shoot camera combined with a single laser using
  a 3D-printed mount, for which we provide a tool for
  calibration and length calculation. By using this system
  to measure objects of known length, we are able to verify
  a measurement error of less than $20\%$ at ranges of up to
  5 meters.
keywords:
  - fish
  - ecology
  - optics
  - depth camera
  - laser
license: BSD-3-Clause

GitHub Events

Total
  • Create event: 12
  • Release event: 3
  • Issues event: 23
  • Delete event: 4
  • Issue comment event: 15
  • Push event: 218
  • Pull request review event: 2
  • Pull request event: 7
Last Year
  • Create event: 12
  • Release event: 3
  • Issues event: 23
  • Delete event: 4
  • Issue comment event: 15
  • Push event: 218
  • Pull request review event: 2
  • Pull request event: 7

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 15
  • Total pull requests: 3
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 hour
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.67
  • Merged pull requests: 1
  • Bot issues: 1
  • Bot pull requests: 2
Past Year
  • Issues: 15
  • Pull requests: 3
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 hour
  • Issue authors: 3
  • Pull request authors: 2
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.67
  • Merged pull requests: 1
  • Bot issues: 1
  • Bot pull requests: 2
Top Authors
Issue Authors
  • ntlhui (16)
  • ccrutchf (1)
  • dependabot[bot] (1)
Pull Request Authors
  • dependabot[bot] (8)
  • ccrutchf (2)
  • ntlhui (1)
  • Shuzhengz (1)
Top Labels
Issue Labels
dependencies (2) documentation (1) good first issue (1)
Pull Request Labels
dependencies (8) python (2)