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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b43c131d547a53756d8c3d6294100282bcdf535b98d45612a42e61f32c4cd6b3
|
|
| MD5 |
83835bc27085ec099cc7561fdf58cab5
|
|
| BLAKE2b-256 |
d358e2e30b0c139ebd73b67de8bb35996f018fe7ffb1265efc86cef43a3a837e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dd43bd7207c658b65b611bac432cf75fca0287131b04d6edda7047e91d6d324
|
|
| MD5 |
becfd75d2fc758aa968898ca1b9124dc
|
|
| BLAKE2b-256 |
f471878b49f93c29bc268bd34f9030594fd9fb92d72af4cf8902062d508601c4
|