https://github.com/anhph95/neslter-stingray

https://github.com/anhph95/neslter-stingray

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 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: anhph95
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 10.4 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created 12 months ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

NES-LTER Stingray

📌 Overview

This repository contains code and data processing scripts for the In-situ Ichthyoplankton Imaging System (ISIIS), also known as Stingray.

DOI


📦 Installation

Clone this repository

bash git clone https://github.com/anhph95/nes-lter-stingray.git cd nes-lter-stingray

Create Python virtual environment (venv):

bash sudo apt update sudo apt install python3-venv -y python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

Or create Conda environment:

bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh source ~/.bashrc conda env create -f environment.yml conda activate venv


🚀 Usage

Merge sensor data

``` usage: datamerge.py [-h] [--path PATH] [--calyear CALYEAR] --cruise CRUISE --startdate STARTDATE --enddate END_DATE

Merge sensor data from multiple CSV files.

options: -h, --help show this help message and exit --path PATH Path to the sensor data, default is /mnt/vast/nes-lter/Stingray/data/sensordata --calyear CALYEAR Sensor calibration year, default is 2021 --cruise CRUISE Cruise ID, required, e.g. EN706 --startdate STARTDATE Cruise start date (YYYY-MM-DD), required --enddate END_DATE Cruise end date (YYYY-MM-DD), required ```

(Optional) Get media list and Tator link (not recommended for real-time, requires tator, opencv)

``` usage: media_list.py [-h] [--cruise CRUISE] [--host HOST] [--project-id PROJECT_ID] [--token TOKEN] [--media-dir MEDIA_DIR]

options: -h, --help show this help message and exit --cruise CRUISE Cruise ID, required, e.g. EN706 --host HOST Tator host IP address, default is https://tator.whoi.edu --project-id PROJECTID Project ID --token TOKEN Tator login token, string or token file --media-dir MEDIADIR Path to the media data ```

Bin data and compute mean, standard deviation

``` usage: databin.py [-h] --cruise CRUISE [--sensordir SENSORDIR] [--mediadir MEDIADIR] [--bincols BINCOLS [BINCOLS ...]] [--binsteps BINSTEPS [BIN_STEPS ...]]

Process sensor and media data for a given cruise.

options: -h, --help show this help message and exit --cruise CRUISE Cruise ID --sensordir SENSORDIR Path to the sensor data --mediadir MEDIADIR Path to the media data --bincols BINCOLS [BINCOLS ...] Columns to bin (space-separated list, e.g., "matdate depth") --binsteps BINSTEPS [BINSTEPS ...] Steps to bin (space-separated list, e.g., "0.000347 1" [30 seconds/86400, 1 meter]) ```

Visualize data

Data from dash_data/data can be copied into: \\vast.whoi.edu\proj\nes-lter\stingray_dashboard\dash_data\data

The dashboard can then be accessed via:
👉 https://stingraydash.whoi.edu/


OR run the visualization app locally (requires plotly, dash)

``` usage: dashapp.py [-h] [--host HOST] [--port PORT]

Stingray Dashboard

options: -h, --help show this help message and exit --host HOST Host IP address for the Dash app, default is 0.0.0.0 --port PORT Port number for the Dash app, default is 8050 ```


🐳 Running via Docker

The recommended way to run the Stingray Dashboard is with Docker Compose.

🛠 Prerequisites


1. Start the app (build if first time or code changed)

bash docker compose up --build

This will: - Build the Docker image (if not already built or if code changed)
- Mount the dash_data/ folder so new data is available without rebuilding
- Run the dashboard on http://localhost:8050


2. Stop the app

bash docker compose down

This stops and removes the running container(s).


3. Start in background (detached mode)

bash docker compose up -d

The dashboard will run in the background.
Stop it anytime with: bash docker compose down


4. Update data

Because dash_data/ is mounted as a bind volume, any changes to CSVs or input files in dash_data/ on your machine are immediately reflected inside the container.

👉 No rebuild is required when updating data.


5. Rebuild when code changes

You only need to rebuild the image if you: - Modify dashapp.py
- Change code in the assets/ folder
- Update requirements.txt

Rebuild with: bash docker compose up --build


6. Access the dashboard

After startup, visit in your browser:
👉 http://localhost:8050

Or, from another computer on the same network (LAN):
👉 http://<your-computer-ip>:8050


📚 License

This project is licensed under the MIT License. See the LICENSE file for details.


✨ Contributors

  • Anh Pham
  • Sidney Batchelder
  • Heidi Sosik

🔗 GitHub Repository: https://github.com/anhph95/nes-lter-stingray

Owner

  • Name: Anh Pham
  • Login: anhph95
  • Kind: user
  • Location: Atlanta
  • Company: Georgia Institute of Technology

I'm a Ph.D. Candidate in Ocean Science and Engineering, specializing in marine biogeochemistry, phycology, and geoinformatics

GitHub Events

Total
  • Push event: 10
  • Pull request event: 2
  • Create event: 1
Last Year
  • Push event: 10
  • Pull request event: 2
  • Create event: 1

Dependencies

requirements.txt pypi
  • matplotlib *
  • numpy *
  • pandas *
  • scipy *
environment.yml pypi