fishsense-lite
CLI for processing data from the FishSense Lite platform
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
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
Metadata Files
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
- Website: https://e4e.ucsd.edu/
- Repositories: 163
- Profile: https://github.com/UCSD-E4E
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)