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/
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install cruiseplanconda create -n cruiseplan -c conda-forge python=3.11
conda activate cruiseplan
pip install cruiseplangit 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]"# Enrich a YAML config, generate schedule and map
cruiseplan process cruise.yaml
cruiseplan schedule cruise_enriched.yaml
cruiseplan map cruise_enriched.yamlOr 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.
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.schema → cruiseplan.config, cruiseplan.core → cruiseplan.runtime, cruiseplan.calculators → cruiseplan.timeline.
v0.4.0: cruiseplan stationplan renamed to cruiseplan forecast. New cruiseplan list and cruiseplan run subcommands added.
pytest tests/
cd docs && make htmlDisclaimer: This software is provided without warranty. Users are responsible for validating all calculations, timing estimates, and operational feasibility before finalising cruise plans.
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.
The following tools may also be useful (untested):
Python/GIS:
- cruisetools — QGIS plugin
Python:
- dreamcoat — personal cruise planning tools
R:
- cruisePlanning — DFO AZMP-based cruise planning
- cruisetrack-planner — cruise track planning with Shiny app
MATLAB:
- PlanCampanha — cruise planning from CSV input