Skip to content

Repository files navigation

CruisePlan

Tests Python 3.10+ License: MIT Documentation

CruisePlan is a Python tool for planning oceanographic research cruises. It takes a YAML cruise description and produces enriched configurations, cruise schedules, maps (PNG/KML), LaTeX station tables, and real-time workplans.

Full documentation: https://ocean-uhh.github.io/cruiseplan/


Installation

pip

python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install cruiseplan

conda / mamba

conda create -n cruiseplan -c conda-forge python=3.11
conda activate cruiseplan
pip install cruiseplan

Development install

git clone https://github.com/ocean-uhh/cruiseplan.git
cd cruiseplan

# Using conda/mamba (includes dev dependencies)
conda env create -f environment.yml
conda activate cruiseplan
pip install -e ".[dev]"

# Using venv
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Quick start

# Enrich a YAML config, generate schedule and map
cruiseplan process cruise.yaml
cruiseplan schedule cruise_enriched.yaml
cruiseplan map cruise_enriched.yaml

Or use the Python API:

import cruiseplan

# Process and schedule in one step
process_result, schedule_result = cruiseplan.run("cruise.yaml")
print(schedule_result.files_created)

See the Usage Guide and API Reference for details.


Breaking changes

v0.3.0: Commands cruiseplan download and cruiseplan pandoi removed. Bathymetry flags shortened (--bathymetry-*--bathy-*).

v0.3.3: YAML now uses transects: (not transits:) for line operations and waypoints: (not stations:) for point operations.

v0.3.6: Module renames — cruiseplan.schemacruiseplan.config, cruiseplan.corecruiseplan.runtime, cruiseplan.calculatorscruiseplan.timeline.

v0.4.0: cruiseplan stationplan renamed to cruiseplan forecast. New cruiseplan list and cruiseplan run subcommands added.


Development

pytest tests/
cd docs && make html

Disclaimer: This software is provided without warranty. Users are responsible for validating all calculations, timing estimates, and operational feasibility before finalising cruise plans.


Acknowledgments

The original timing algorithms were developed by Yves Sorge and Sunke Trace-Kleeberg. CruisePlan was initially developed by Yves Sorge and redesigned by Eleanor Frajka-Williams.

If you use CruisePlan in your research, please cite it using CITATION.cff.


Related software

The following tools may also be useful (untested):

Python/GIS:

Python:

  • dreamcoat — personal cruise planning tools

R:

MATLAB:

About

A software tool for planning research cruises. Includes interactive station picking and rough cruise-timing estimators.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages