Skip to main content

Interactive tool for estimating seafloor anchor positions from ship survey data.

Project description

⚓ Anchor Survey Tool

Interactive Python tool for estimating seafloor anchor positions from ship survey data.


Features

  • File Input: Load station .dat files for survey analysis
  • Custom Inputs: Enter ship transducer depth, drop lat/lon (DMS), and sound speed
  • Real-Time Visualization: Interactive Matplotlib plot of triangulated anchor position
  • Robust Computation: Iterative least-squares anchor location solver with RMS error reporting
  • Automated Testing: Pytest suite with GitHub Actions integration
  • Fully Reproducible: Conda + pip hybrid environment and Makefile automation

Installation

git clone git@github.com:WHOIGit/anchor_survey.git
cd anchor_survey
make env

Usage

Launch Gui

panel serve gui/survey_gui.py --show

Run from Python

from survey.survey import calculate_anchor_position

Example data

An example stations.dat file and drop_points.dat file are provided in data folder.

Quick Start

1️⃣ Clone the repository

git clone git@github.com:WHOIGit/anchor_survey.git
cd anchor_survey

2️⃣ Create the environment

Use the included Makefile to create or update the Conda environment:

make env

Or, manually:

conda env create -f environment.yml

This will:

  • Create an environment named anchor_survey
  • Install all required dependencies (numpy, pandas, matplotlib, panel)
  • Install the package in editable mode (-e .)

3️⃣ Activate the environment

conda activate anchor_survey

Check libraries installed (optional):

make check-env

4️⃣ Launch the GUI

Run the interactive Panel-based interface:

make gui

This opens your default browser with the web app at: http://localhost:5006/survey_gui


5️⃣ Run tests

To confirm the code is working properly:

make test

Repository Organization

anchor_survey/
│
├── survey/       
│   ├── __init__.py
│   ├── survey.py                    
│   ├── utils.py                     
│
├── gui/
│   ├── __init__.py
│   ├── survey_gui.py                
│
├── data/
│   ├── example_stations.dat
│   ├── drop_points.dat         
│
├── tests/
│   ├── __init__.py
│   ├── test_survey.py               
│
├── notebooks/
│   ├── exploration.ipynb            
│              
├── environment.yml                  
├── .gitignore
├── README.md
├── LICENSE
├── Makefile                          
└── pyproject.toml                         

Citation & License

This project is released under the BSD-3-clause License

If you use this tool in a publication, please cite:

Reed, A. (2025). Anchor Triangulation Tool: Python Implementation of Acoustic Survey Positioning. GitHub Repository. https://github.com/reedan88/anchor_survey

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anchor_survey-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anchor_survey-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file anchor_survey-0.1.0.tar.gz.

File metadata

  • Download URL: anchor_survey-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for anchor_survey-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b43c131d547a53756d8c3d6294100282bcdf535b98d45612a42e61f32c4cd6b3
MD5 83835bc27085ec099cc7561fdf58cab5
BLAKE2b-256 d358e2e30b0c139ebd73b67de8bb35996f018fe7ffb1265efc86cef43a3a837e

See more details on using hashes here.

File details

Details for the file anchor_survey-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anchor_survey-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for anchor_survey-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2dd43bd7207c658b65b611bac432cf75fca0287131b04d6edda7047e91d6d324
MD5 becfd75d2fc758aa968898ca1b9124dc
BLAKE2b-256 f471878b49f93c29bc268bd34f9030594fd9fb92d72af4cf8902062d508601c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page