Skip to main content

Horizon

CI License: Apache-2.0

Horizon is an uncertainty analysis tool for Navigate, the open-source maritime transition model. It samples uncertain input parameters (Monte Carlo or Latin Hypercube), generates one Navigate simulation per sample across scenario combinations, queues the runs, and aggregates the results — turning a single Navigate scenario into an uncertainty study.

Horizon is a companion to Navigate, not a standalone tool: it prepares, schedules, and post-processes Navigate simulations, and a working Navigate installation is required for any actual simulation run.

Disclaimer

Horizon is an open-source analytical tool intended for research and scenario analysis of maritime decarbonisation pathways. Its outputs depend on the model, assumptions, and parameter ranges selected by the user and are provided for illustrative and analytical purposes only. They should not be interpreted as forecasts, benchmarks, recommendations or commercially optimal outcomes, nor as legal, financial or investment advice. Users are responsible for selecting appropriate assumptions and for exercising their own independent judgement when interpreting any outputs.

Requirements

  • Python >= 3.12
  • Navigate installed in the same environment (Horizon invokes the navigate command)
  • pueue for queuing simulation runs — the daemon must be running (pueued -d)

Installation

Install Horizon into the same environment as Navigate:

conda activate nav       # or whatever environment Navigate lives in
pip install .

For development with lint and test tools:

pip install -e ".[dev]"

Quick start

The bundled example runs without Navigate or pueue — it stops after sampling (SampleOnly = TRUE) and writes sampled values plus sampling diagnostics:

cd examples/uncertainty
horizon fuel_cost_study.hor

See examples/uncertainty/README.md for a walkthrough, and docs/configuration.md for the full configuration reference.

Workflow

A full uncertainty study runs in three steps:

# 1. Sample parameters, generate .nav files, queue Navigate runs via pueue
horizon my_study.hor

# 2. Watch progress (pueue) or check for failures
pueue status
horizon --status path/to/output_dir

# 3. Collect the Excel reports of completed runs into one file
horizon -c path/to/output_dir results.xlsx

The .hor file defines the study: which parameters vary, over what ranges and distributions, across which scenario combinations. The .unc file it points at is an ordinary Navigate simulation file with %TOKEN% placeholders where sampled values are substituted.

Sensitivity analysis

After a study completes, Horizon can compute PRCC (partial rank correlation coefficient) sensitivities linking sampled parameters to output metrics:

horizon --sensitivity-analysis my_study.sen

Command-line options

See horizon --help for the full list. The most used flags:

Flag Description
-c, --collect Collect reports from completed runs into a single Excel file.
--report-name PATTERN Only collect reports matching a filename pattern (supports *).
--priority {low,normal,high} Pueue scheduling priority for queued runs.
--solver {auto,gurobi,highs} Solver backend passed through to Navigate.
--navigate-flags "..." Extra flags appended to each navigate command (e.g. "-d ./assumptions -s").
--output-dir DIR Directory for generated scenario folders (default: next to the .unc file).
--dry-run Validate the configuration and preview what would be generated.
--status DIR Check pueue task status and report failures for an output directory.
--replot DIR ... Queue Navigate replot jobs for directories containing plot_data.pkl.
--sensitivity-analysis [FILE] Run PRCC sensitivity analysis, optionally from a .sen config.
--calibration-plot Generate a calibration comparison dashboard from completed results.

Editor support

The syntax/ folder contains Notepad++ user-defined-language files with syntax highlighting for .hor, .sen, and Navigate files.

Documentation

Testing

pip install -e ".[dev]"
pytest

See CONTRIBUTING.md for contribution guidelines and CODESTYLE.md for coding conventions.

License

Copyright 2026 Fonden Mærsk Mc-Kinney Møller Center for Zero Carbon Shipping.

Horizon is licensed under two licenses, depending on the type of content:

Every file declares its license through an SPDX-License-Identifier header or through the metadata in REUSE.toml, following the REUSE specification. The full license texts are in the LICENSES directory.

Metadata

Release files for horizon-zcs 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for horizon-zcs 1.0.0
File Size Uploaded
horizon_zcs-1.0.0.tar.gz 93.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for horizon-zcs 1.0.0
File Interpreter ABI Platform
horizon_zcs-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 192.6 kB

Release files / horizon_zcs-1.0.0.tar.gz

Download URL horizon_zcs-1.0.0.tar.gz
Size 93.8 kB
Tags Source
SHA-256 checksum
How to use checksums
81701eab468d66cf38dec2bb6f81d8882d4eb392441637067eb19f4a8123ac39
BLAKE2b-256 checksum
How to use checksums
367af799d317c6b9635ebdc2e86727c879dc6f8616abcce3c096556191245abb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / horizon_zcs-1.0.0-py3-none-any.whl

Download URL horizon_zcs-1.0.0-py3-none-any.whl
Size 98.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fdba4a93a4879efe631f1b1d4a74c5bc134047ccf42dafbea1a81bab878e040
BLAKE2b-256 checksum
How to use checksums
2a990fca2b8d69e55fc75c0a028233e32bfdefc1a5ef3d7f1154f8799ab4ed5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page